Lines Matching refs:port_info

128 		struct mptsas_portinfo *port_info, u8 force);
384 struct mptsas_portinfo *port_info, *rc=NULL; in mptsas_find_portinfo_by_handle() local
387 list_for_each_entry(port_info, &ioc->sas_topology, list) in mptsas_find_portinfo_by_handle()
388 for (i = 0; i < port_info->num_phys; i++) in mptsas_find_portinfo_by_handle()
389 if (port_info->phy_info[i].identify.handle == handle) { in mptsas_find_portinfo_by_handle()
390 rc = port_info; in mptsas_find_portinfo_by_handle()
408 struct mptsas_portinfo *port_info, *rc = NULL; in mptsas_find_portinfo_by_sas_address() local
417 list_for_each_entry(port_info, &ioc->sas_topology, list) in mptsas_find_portinfo_by_sas_address()
418 for (i = 0; i < port_info->num_phys; i++) in mptsas_find_portinfo_by_sas_address()
419 if (port_info->phy_info[i].identify.sas_address == in mptsas_find_portinfo_by_sas_address()
421 rc = port_info; in mptsas_find_portinfo_by_sas_address()
453 struct mptsas_portinfo *port_info; in mptsas_port_delete() local
460 port_info = port_details->port_info; in mptsas_port_delete()
461 phy_info = port_info->phy_info; in mptsas_port_delete()
468 for (i = 0; i < port_info->num_phys; i++, phy_info++) { in mptsas_port_delete()
831 mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_setup_wide_ports() argument
840 phy_info = port_info->phy_info; in mptsas_setup_wide_ports()
841 for (i = 0 ; i < port_info->num_phys ; i++, phy_info++) { in mptsas_setup_wide_ports()
872 phy_info = port_info->phy_info; in mptsas_setup_wide_ports()
873 for (i = 0 ; i < port_info->num_phys ; i++, phy_info++) { in mptsas_setup_wide_ports()
889 port_details->port_info = port_info; in mptsas_setup_wide_ports()
900 if (i == port_info->num_phys - 1) in mptsas_setup_wide_ports()
902 phy_info_cmp = &port_info->phy_info[i + 1]; in mptsas_setup_wide_ports()
903 for (j = i + 1 ; j < port_info->num_phys ; j++, in mptsas_setup_wide_ports()
941 for (i = 0; i < port_info->num_phys; i++) { in mptsas_setup_wide_ports()
942 port_details = port_info->phy_info[i].port_details; in mptsas_setup_wide_ports()
1497 struct mptsas_portinfo *port_info; in mptsas_del_end_device() local
1553 port_info = phy_info->portinfo; in mptsas_del_end_device()
1554 phy_info_parent = port_info->phy_info; in mptsas_del_end_device()
1555 for (i = 0; i < port_info->num_phys; i++, phy_info_parent++) { in mptsas_del_end_device()
1581 struct mptsas_portinfo *port_info; in mptsas_refreshing_device_handles() local
1588 port_info = phy_info->portinfo; in mptsas_refreshing_device_handles()
1589 if (!port_info) in mptsas_refreshing_device_handles()
1592 for (i = 0; i < port_info->num_phys; i++) { in mptsas_refreshing_device_handles()
1593 if (port_info->phy_info[i].attached.sas_address != in mptsas_refreshing_device_handles()
1596 port_info->phy_info[i].attached.channel = sas_device->channel; in mptsas_refreshing_device_handles()
1597 port_info->phy_info[i].attached.id = sas_device->id; in mptsas_refreshing_device_handles()
1598 port_info->phy_info[i].attached.sas_address = in mptsas_refreshing_device_handles()
1600 port_info->phy_info[i].attached.handle = sas_device->handle; in mptsas_refreshing_device_handles()
1601 port_info->phy_info[i].attached.handle_parent = in mptsas_refreshing_device_handles()
1603 port_info->phy_info[i].attached.handle_enclosure = in mptsas_refreshing_device_handles()
2260 struct mptsas_portinfo *port_info; in mptsas_smp_handler() local
2263 port_info = ioc->hba_port_info; in mptsas_smp_handler()
2264 if (port_info && port_info->phy_info) in mptsas_smp_handler()
2266 port_info->phy_info[0].phy->identify.sas_address; in mptsas_smp_handler()
2361 mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_sas_io_unit_pg0() argument
2406 port_info->num_phys = buffer->NumPhys; in mptsas_sas_io_unit_pg0()
2407 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_sas_io_unit_pg0()
2409 if (!port_info->phy_info) { in mptsas_sas_io_unit_pg0()
2419 for (i = 0; i < port_info->num_phys; i++) { in mptsas_sas_io_unit_pg0()
2421 port_info->phy_info[i].phy_id = i; in mptsas_sas_io_unit_pg0()
2422 port_info->phy_info[i].port_id = in mptsas_sas_io_unit_pg0()
2424 port_info->phy_info[i].negotiated_link_rate = in mptsas_sas_io_unit_pg0()
2426 port_info->phy_info[i].portinfo = port_info; in mptsas_sas_io_unit_pg0()
2427 port_info->phy_info[i].handle = in mptsas_sas_io_unit_pg0()
2641 mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info, in mptsas_sas_expander_pg0() argument
2651 memset(port_info, 0, sizeof(struct mptsas_portinfo)); in mptsas_sas_expander_pg0()
2667 memset(port_info, 0, sizeof(struct mptsas_portinfo)); in mptsas_sas_expander_pg0()
2697 port_info->num_phys = (buffer->NumPhys) ? buffer->NumPhys : 1; in mptsas_sas_expander_pg0()
2698 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_sas_expander_pg0()
2700 if (!port_info->phy_info) { in mptsas_sas_expander_pg0()
2706 for (i = 0; i < port_info->num_phys; i++) { in mptsas_sas_expander_pg0()
2707 port_info->phy_info[i].portinfo = port_info; in mptsas_sas_expander_pg0()
2708 port_info->phy_info[i].handle = in mptsas_sas_expander_pg0()
2710 port_info->phy_info[i].identify.sas_address = in mptsas_sas_expander_pg0()
2712 port_info->phy_info[i].identify.handle_parent = in mptsas_sas_expander_pg0()
3212 struct mptsas_portinfo *port_info; in mptsas_probe_one_phy() local
3215 port_info = ioc->hba_port_info; in mptsas_probe_one_phy()
3217 for (i = 0; i < port_info->num_phys; i++) in mptsas_probe_one_phy()
3218 if (port_info->phy_info[i].identify.sas_address == in mptsas_probe_one_phy()
3286 struct mptsas_portinfo *port_info, *hba; in mptsas_probe_hba_phys() local
3299 port_info = ioc->hba_port_info; in mptsas_probe_hba_phys()
3300 if (!port_info) { in mptsas_probe_hba_phys()
3301 ioc->hba_port_info = port_info = hba; in mptsas_probe_hba_phys()
3302 ioc->hba_port_num_phy = port_info->num_phys; in mptsas_probe_hba_phys()
3303 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_probe_hba_phys()
3306 port_info->phy_info[i].negotiated_link_rate = in mptsas_probe_hba_phys()
3308 port_info->phy_info[i].handle = in mptsas_probe_hba_phys()
3310 port_info->phy_info[i].port_id = in mptsas_probe_hba_phys()
3319 ioc->num_ports = port_info->num_phys; in mptsas_probe_hba_phys()
3321 for (i = 0; i < port_info->num_phys; i++) { in mptsas_probe_hba_phys()
3322 mptsas_sas_phy_pg0(ioc, &port_info->phy_info[i], in mptsas_probe_hba_phys()
3325 port_info->phy_info[i].identify.handle = in mptsas_probe_hba_phys()
3326 port_info->phy_info[i].handle; in mptsas_probe_hba_phys()
3327 mptsas_sas_device_pg0(ioc, &port_info->phy_info[i].identify, in mptsas_probe_hba_phys()
3330 port_info->phy_info[i].identify.handle); in mptsas_probe_hba_phys()
3333 port_info->phy_info[i].identify.sas_address; in mptsas_probe_hba_phys()
3334 port_info->phy_info[i].identify.phy_id = in mptsas_probe_hba_phys()
3335 port_info->phy_info[i].phy_id = i; in mptsas_probe_hba_phys()
3336 if (port_info->phy_info[i].attached.handle) in mptsas_probe_hba_phys()
3338 &port_info->phy_info[i].attached, in mptsas_probe_hba_phys()
3341 port_info->phy_info[i].attached.handle); in mptsas_probe_hba_phys()
3344 mptsas_setup_wide_ports(ioc, port_info); in mptsas_probe_hba_phys()
3346 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++) in mptsas_probe_hba_phys()
3348 &port_info->phy_info[i], ioc->sas_index, 1); in mptsas_probe_hba_phys()
3359 mptsas_expander_refresh(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_expander_refresh() argument
3368 handle = port_info->phy_info[0].handle; in mptsas_expander_refresh()
3369 sas_address = port_info->phy_info[0].identify.sas_address; in mptsas_expander_refresh()
3370 for (i = 0; i < port_info->num_phys; i++) { in mptsas_expander_refresh()
3371 mptsas_sas_expander_pg1(ioc, &port_info->phy_info[i], in mptsas_expander_refresh()
3376 &port_info->phy_info[i].identify, in mptsas_expander_refresh()
3379 port_info->phy_info[i].identify.handle); in mptsas_expander_refresh()
3380 port_info->phy_info[i].identify.phy_id = in mptsas_expander_refresh()
3381 port_info->phy_info[i].phy_id; in mptsas_expander_refresh()
3383 if (port_info->phy_info[i].attached.handle) { in mptsas_expander_refresh()
3385 &port_info->phy_info[i].attached, in mptsas_expander_refresh()
3388 port_info->phy_info[i].attached.handle); in mptsas_expander_refresh()
3389 port_info->phy_info[i].attached.phy_id = in mptsas_expander_refresh()
3390 port_info->phy_info[i].phy_id; in mptsas_expander_refresh()
3396 port_info->phy_info[0].identify.handle_parent); in mptsas_expander_refresh()
3410 mptsas_setup_wide_ports(ioc, port_info); in mptsas_expander_refresh()
3411 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++) in mptsas_expander_refresh()
3412 mptsas_probe_one_phy(parent_dev, &port_info->phy_info[i], in mptsas_expander_refresh()
3420 struct mptsas_portinfo *port_info; in mptsas_expander_event_add() local
3424 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL); in mptsas_expander_event_add()
3425 if (!port_info) in mptsas_expander_event_add()
3427 port_info->num_phys = (expander_data->NumPhys) ? in mptsas_expander_event_add()
3429 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_expander_event_add()
3431 if (!port_info->phy_info) in mptsas_expander_event_add()
3434 for (i = 0; i < port_info->num_phys; i++) { in mptsas_expander_event_add()
3435 port_info->phy_info[i].portinfo = port_info; in mptsas_expander_event_add()
3436 port_info->phy_info[i].handle = in mptsas_expander_event_add()
3438 port_info->phy_info[i].identify.sas_address = in mptsas_expander_event_add()
3440 port_info->phy_info[i].identify.handle_parent = in mptsas_expander_event_add()
3445 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_expander_event_add()
3449 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_event_add()
3452 mptsas_expander_refresh(ioc, port_info); in mptsas_expander_event_add()
3466 struct mptsas_portinfo *port_info; in mptsas_delete_expander_siblings() local
3488 port_info = mptsas_find_portinfo_by_sas_address(ioc, in mptsas_delete_expander_siblings()
3490 if (!port_info) in mptsas_delete_expander_siblings()
3492 if (port_info == parent) /* backlink rphy */ in mptsas_delete_expander_siblings()
3498 mptsas_expander_delete(ioc, port_info, 1); in mptsas_delete_expander_siblings()
3513 struct mptsas_portinfo *port_info, u8 force) in mptsas_expander_delete() argument
3524 if (!port_info) in mptsas_expander_delete()
3531 port_info->phy_info[0].identify.handle); in mptsas_expander_delete()
3545 port_info->phy_info[0].identify.sas_address; in mptsas_expander_delete()
3547 port_info->phy_info[0].identify.handle_parent); in mptsas_expander_delete()
3548 mptsas_delete_expander_siblings(ioc, parent, port_info); in mptsas_expander_delete()
3584 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_delete()
3590 list_del(&port_info->list); in mptsas_expander_delete()
3591 kfree(port_info->phy_info); in mptsas_expander_delete()
3592 kfree(port_info); in mptsas_expander_delete()
3610 struct mptsas_portinfo *port_info; in mptsas_send_expander_event() local
3619 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address); in mptsas_send_expander_event()
3622 if (port_info) { in mptsas_send_expander_event()
3623 for (i = 0; i < port_info->num_phys; i++) { in mptsas_send_expander_event()
3624 port_info->phy_info[i].portinfo = port_info; in mptsas_send_expander_event()
3625 port_info->phy_info[i].handle = in mptsas_send_expander_event()
3627 port_info->phy_info[i].identify.sas_address = in mptsas_send_expander_event()
3629 port_info->phy_info[i].identify.handle_parent = in mptsas_send_expander_event()
3632 mptsas_expander_refresh(ioc, port_info); in mptsas_send_expander_event()
3633 } else if (!port_info && expander_data->NumPhys) in mptsas_send_expander_event()
3637 mptsas_expander_delete(ioc, port_info, 0); in mptsas_send_expander_event()
3652 struct mptsas_portinfo buffer, *port_info; in mptsas_expander_add() local
3660 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_ATOMIC); in mptsas_expander_add()
3661 if (!port_info) { in mptsas_expander_add()
3667 port_info->num_phys = buffer.num_phys; in mptsas_expander_add()
3668 port_info->phy_info = buffer.phy_info; in mptsas_expander_add()
3669 for (i = 0; i < port_info->num_phys; i++) in mptsas_expander_add()
3670 port_info->phy_info[i].portinfo = port_info; in mptsas_expander_add()
3672 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_expander_add()
3675 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_add()
3677 mptsas_expander_refresh(ioc, port_info); in mptsas_expander_add()
3678 return port_info; in mptsas_expander_add()
3686 struct mptsas_portinfo *port_info; in mptsas_send_link_status_event() local
3700 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address); in mptsas_send_link_status_event()
3701 if (port_info) { in mptsas_send_link_status_event()
3702 phy_info = &port_info->phy_info[phy_num]; in mptsas_send_link_status_event()
3711 if (!port_info) { in mptsas_send_link_status_event()
3713 port_info = mptsas_expander_add(ioc, in mptsas_send_link_status_event()
3715 if (port_info) in mptsas_send_link_status_event()
3721 if (port_info == ioc->hba_port_info) in mptsas_send_link_status_event()
3724 mptsas_expander_refresh(ioc, port_info); in mptsas_send_link_status_event()
3777 struct mptsas_portinfo buffer, *port_info; in mptsas_not_responding_devices() local
3867 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_not_responding_devices()
3869 if (!(port_info->phy_info[0].identify.device_info & in mptsas_not_responding_devices()
3881 port_info->phy_info[0].identify.sas_address) { in mptsas_not_responding_devices()
3888 mptsas_expander_delete(ioc, port_info, 0); in mptsas_not_responding_devices()
3903 struct mptsas_portinfo buffer, *port_info; in mptsas_probe_expanders() local
3913 port_info = mptsas_find_portinfo_by_sas_address(ioc, in mptsas_probe_expanders()
3916 if (port_info) { in mptsas_probe_expanders()
3919 port_info->phy_info[i].handle = handle; in mptsas_probe_expanders()
3920 port_info->phy_info[i].identify.handle_parent = in mptsas_probe_expanders()
3923 mptsas_expander_refresh(ioc, port_info); in mptsas_probe_expanders()
3928 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL); in mptsas_probe_expanders()
3929 if (!port_info) { in mptsas_probe_expanders()
3935 port_info->num_phys = buffer.num_phys; in mptsas_probe_expanders()
3936 port_info->phy_info = buffer.phy_info; in mptsas_probe_expanders()
3937 for (i = 0; i < port_info->num_phys; i++) in mptsas_probe_expanders()
3938 port_info->phy_info[i].portinfo = port_info; in mptsas_probe_expanders()
3940 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_probe_expanders()
3943 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_probe_expanders()
3945 mptsas_expander_refresh(ioc, port_info); in mptsas_probe_expanders()
4115 struct mptsas_portinfo *port_info; in mptsas_find_phyinfo_by_sas_address() local
4120 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_find_phyinfo_by_sas_address()
4121 for (i = 0; i < port_info->num_phys; i++) { in mptsas_find_phyinfo_by_sas_address()
4123 &port_info->phy_info[i].attached)) in mptsas_find_phyinfo_by_sas_address()
4125 if (port_info->phy_info[i].attached.sas_address in mptsas_find_phyinfo_by_sas_address()
4128 phy_info = &port_info->phy_info[i]; in mptsas_find_phyinfo_by_sas_address()
4149 struct mptsas_portinfo *port_info; in mptsas_find_phyinfo_by_phys_disk_num() local
4191 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_find_phyinfo_by_phys_disk_num()
4192 for (i = 0; i < port_info->num_phys && !phy_info; i++) { in mptsas_find_phyinfo_by_phys_disk_num()
4194 &port_info->phy_info[i].attached)) in mptsas_find_phyinfo_by_phys_disk_num()
4196 if (port_info->phy_info[i].attached.phys_disk_num == ~0) in mptsas_find_phyinfo_by_phys_disk_num()
4198 if ((port_info->phy_info[i].attached.phys_disk_num == in mptsas_find_phyinfo_by_phys_disk_num()
4200 (port_info->phy_info[i].attached.id == id) && in mptsas_find_phyinfo_by_phys_disk_num()
4201 (port_info->phy_info[i].attached.channel == in mptsas_find_phyinfo_by_phys_disk_num()
4203 phy_info = &port_info->phy_info[i]; in mptsas_find_phyinfo_by_phys_disk_num()
4314 struct mptsas_portinfo *port_info; in mptsas_hotplug_work() local
4361 port_info = mptsas_find_portinfo_by_handle(ioc, in mptsas_hotplug_work()
4364 if (port_info == ioc->hba_port_info) in mptsas_hotplug_work()
4366 else if (port_info) in mptsas_hotplug_work()
4367 mptsas_expander_refresh(ioc, port_info); in mptsas_hotplug_work()