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()
1496 struct mptsas_portinfo *port_info; in mptsas_del_end_device() local
1552 port_info = phy_info->portinfo; in mptsas_del_end_device()
1553 phy_info_parent = port_info->phy_info; in mptsas_del_end_device()
1554 for (i = 0; i < port_info->num_phys; i++, phy_info_parent++) { in mptsas_del_end_device()
1580 struct mptsas_portinfo *port_info; in mptsas_refreshing_device_handles() local
1587 port_info = phy_info->portinfo; in mptsas_refreshing_device_handles()
1588 if (!port_info) in mptsas_refreshing_device_handles()
1591 for (i = 0; i < port_info->num_phys; i++) { in mptsas_refreshing_device_handles()
1592 if (port_info->phy_info[i].attached.sas_address != in mptsas_refreshing_device_handles()
1595 port_info->phy_info[i].attached.channel = sas_device->channel; in mptsas_refreshing_device_handles()
1596 port_info->phy_info[i].attached.id = sas_device->id; in mptsas_refreshing_device_handles()
1597 port_info->phy_info[i].attached.sas_address = in mptsas_refreshing_device_handles()
1599 port_info->phy_info[i].attached.handle = sas_device->handle; in mptsas_refreshing_device_handles()
1600 port_info->phy_info[i].attached.handle_parent = in mptsas_refreshing_device_handles()
1602 port_info->phy_info[i].attached.handle_enclosure = in mptsas_refreshing_device_handles()
2255 struct mptsas_portinfo *port_info; in mptsas_smp_handler() local
2258 port_info = ioc->hba_port_info; in mptsas_smp_handler()
2259 if (port_info && port_info->phy_info) in mptsas_smp_handler()
2261 port_info->phy_info[0].phy->identify.sas_address; in mptsas_smp_handler()
2357 mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_sas_io_unit_pg0() argument
2402 port_info->num_phys = buffer->NumPhys; in mptsas_sas_io_unit_pg0()
2403 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_sas_io_unit_pg0()
2405 if (!port_info->phy_info) { in mptsas_sas_io_unit_pg0()
2415 for (i = 0; i < port_info->num_phys; i++) { in mptsas_sas_io_unit_pg0()
2417 port_info->phy_info[i].phy_id = i; in mptsas_sas_io_unit_pg0()
2418 port_info->phy_info[i].port_id = in mptsas_sas_io_unit_pg0()
2420 port_info->phy_info[i].negotiated_link_rate = in mptsas_sas_io_unit_pg0()
2422 port_info->phy_info[i].portinfo = port_info; in mptsas_sas_io_unit_pg0()
2423 port_info->phy_info[i].handle = in mptsas_sas_io_unit_pg0()
2637 mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info, in mptsas_sas_expander_pg0() argument
2647 memset(port_info, 0, sizeof(struct mptsas_portinfo)); in mptsas_sas_expander_pg0()
2663 memset(port_info, 0, sizeof(struct mptsas_portinfo)); in mptsas_sas_expander_pg0()
2693 port_info->num_phys = (buffer->NumPhys) ? buffer->NumPhys : 1; in mptsas_sas_expander_pg0()
2694 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_sas_expander_pg0()
2696 if (!port_info->phy_info) { in mptsas_sas_expander_pg0()
2702 for (i = 0; i < port_info->num_phys; i++) { in mptsas_sas_expander_pg0()
2703 port_info->phy_info[i].portinfo = port_info; in mptsas_sas_expander_pg0()
2704 port_info->phy_info[i].handle = in mptsas_sas_expander_pg0()
2706 port_info->phy_info[i].identify.sas_address = in mptsas_sas_expander_pg0()
2708 port_info->phy_info[i].identify.handle_parent = in mptsas_sas_expander_pg0()
3208 struct mptsas_portinfo *port_info; in mptsas_probe_one_phy() local
3211 port_info = ioc->hba_port_info; in mptsas_probe_one_phy()
3213 for (i = 0; i < port_info->num_phys; i++) in mptsas_probe_one_phy()
3214 if (port_info->phy_info[i].identify.sas_address == in mptsas_probe_one_phy()
3282 struct mptsas_portinfo *port_info, *hba; in mptsas_probe_hba_phys() local
3295 port_info = ioc->hba_port_info; in mptsas_probe_hba_phys()
3296 if (!port_info) { in mptsas_probe_hba_phys()
3297 ioc->hba_port_info = port_info = hba; in mptsas_probe_hba_phys()
3298 ioc->hba_port_num_phy = port_info->num_phys; in mptsas_probe_hba_phys()
3299 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_probe_hba_phys()
3302 port_info->phy_info[i].negotiated_link_rate = in mptsas_probe_hba_phys()
3304 port_info->phy_info[i].handle = in mptsas_probe_hba_phys()
3306 port_info->phy_info[i].port_id = in mptsas_probe_hba_phys()
3315 ioc->num_ports = port_info->num_phys; in mptsas_probe_hba_phys()
3317 for (i = 0; i < port_info->num_phys; i++) { in mptsas_probe_hba_phys()
3318 mptsas_sas_phy_pg0(ioc, &port_info->phy_info[i], in mptsas_probe_hba_phys()
3321 port_info->phy_info[i].identify.handle = in mptsas_probe_hba_phys()
3322 port_info->phy_info[i].handle; in mptsas_probe_hba_phys()
3323 mptsas_sas_device_pg0(ioc, &port_info->phy_info[i].identify, in mptsas_probe_hba_phys()
3326 port_info->phy_info[i].identify.handle); in mptsas_probe_hba_phys()
3329 port_info->phy_info[i].identify.sas_address; in mptsas_probe_hba_phys()
3330 port_info->phy_info[i].identify.phy_id = in mptsas_probe_hba_phys()
3331 port_info->phy_info[i].phy_id = i; in mptsas_probe_hba_phys()
3332 if (port_info->phy_info[i].attached.handle) in mptsas_probe_hba_phys()
3334 &port_info->phy_info[i].attached, in mptsas_probe_hba_phys()
3337 port_info->phy_info[i].attached.handle); in mptsas_probe_hba_phys()
3340 mptsas_setup_wide_ports(ioc, port_info); in mptsas_probe_hba_phys()
3342 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++) in mptsas_probe_hba_phys()
3344 &port_info->phy_info[i], ioc->sas_index, 1); in mptsas_probe_hba_phys()
3355 mptsas_expander_refresh(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_expander_refresh() argument
3364 handle = port_info->phy_info[0].handle; in mptsas_expander_refresh()
3365 sas_address = port_info->phy_info[0].identify.sas_address; in mptsas_expander_refresh()
3366 for (i = 0; i < port_info->num_phys; i++) { in mptsas_expander_refresh()
3367 mptsas_sas_expander_pg1(ioc, &port_info->phy_info[i], in mptsas_expander_refresh()
3372 &port_info->phy_info[i].identify, in mptsas_expander_refresh()
3375 port_info->phy_info[i].identify.handle); in mptsas_expander_refresh()
3376 port_info->phy_info[i].identify.phy_id = in mptsas_expander_refresh()
3377 port_info->phy_info[i].phy_id; in mptsas_expander_refresh()
3379 if (port_info->phy_info[i].attached.handle) { in mptsas_expander_refresh()
3381 &port_info->phy_info[i].attached, in mptsas_expander_refresh()
3384 port_info->phy_info[i].attached.handle); in mptsas_expander_refresh()
3385 port_info->phy_info[i].attached.phy_id = in mptsas_expander_refresh()
3386 port_info->phy_info[i].phy_id; in mptsas_expander_refresh()
3392 port_info->phy_info[0].identify.handle_parent); in mptsas_expander_refresh()
3406 mptsas_setup_wide_ports(ioc, port_info); in mptsas_expander_refresh()
3407 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++) in mptsas_expander_refresh()
3408 mptsas_probe_one_phy(parent_dev, &port_info->phy_info[i], in mptsas_expander_refresh()
3416 struct mptsas_portinfo *port_info; in mptsas_expander_event_add() local
3420 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL); in mptsas_expander_event_add()
3421 if (!port_info) in mptsas_expander_event_add()
3423 port_info->num_phys = (expander_data->NumPhys) ? in mptsas_expander_event_add()
3425 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_expander_event_add()
3427 if (!port_info->phy_info) in mptsas_expander_event_add()
3430 for (i = 0; i < port_info->num_phys; i++) { in mptsas_expander_event_add()
3431 port_info->phy_info[i].portinfo = port_info; in mptsas_expander_event_add()
3432 port_info->phy_info[i].handle = in mptsas_expander_event_add()
3434 port_info->phy_info[i].identify.sas_address = in mptsas_expander_event_add()
3436 port_info->phy_info[i].identify.handle_parent = in mptsas_expander_event_add()
3441 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_expander_event_add()
3445 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_event_add()
3448 mptsas_expander_refresh(ioc, port_info); in mptsas_expander_event_add()
3462 struct mptsas_portinfo *port_info; in mptsas_delete_expander_siblings() local
3484 port_info = mptsas_find_portinfo_by_sas_address(ioc, in mptsas_delete_expander_siblings()
3486 if (!port_info) in mptsas_delete_expander_siblings()
3488 if (port_info == parent) /* backlink rphy */ in mptsas_delete_expander_siblings()
3494 mptsas_expander_delete(ioc, port_info, 1); in mptsas_delete_expander_siblings()
3509 struct mptsas_portinfo *port_info, u8 force) in mptsas_expander_delete() argument
3520 if (!port_info) in mptsas_expander_delete()
3527 port_info->phy_info[0].identify.handle); in mptsas_expander_delete()
3541 port_info->phy_info[0].identify.sas_address; in mptsas_expander_delete()
3543 port_info->phy_info[0].identify.handle_parent); in mptsas_expander_delete()
3544 mptsas_delete_expander_siblings(ioc, parent, port_info); in mptsas_expander_delete()
3580 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_delete()
3586 list_del(&port_info->list); in mptsas_expander_delete()
3587 kfree(port_info->phy_info); in mptsas_expander_delete()
3588 kfree(port_info); in mptsas_expander_delete()
3606 struct mptsas_portinfo *port_info; in mptsas_send_expander_event() local
3615 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address); in mptsas_send_expander_event()
3618 if (port_info) { in mptsas_send_expander_event()
3619 for (i = 0; i < port_info->num_phys; i++) { in mptsas_send_expander_event()
3620 port_info->phy_info[i].portinfo = port_info; in mptsas_send_expander_event()
3621 port_info->phy_info[i].handle = in mptsas_send_expander_event()
3623 port_info->phy_info[i].identify.sas_address = in mptsas_send_expander_event()
3625 port_info->phy_info[i].identify.handle_parent = in mptsas_send_expander_event()
3628 mptsas_expander_refresh(ioc, port_info); in mptsas_send_expander_event()
3629 } else if (!port_info && expander_data->NumPhys) in mptsas_send_expander_event()
3633 mptsas_expander_delete(ioc, port_info, 0); in mptsas_send_expander_event()
3648 struct mptsas_portinfo buffer, *port_info; in mptsas_expander_add() local
3656 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_ATOMIC); in mptsas_expander_add()
3657 if (!port_info) { in mptsas_expander_add()
3663 port_info->num_phys = buffer.num_phys; in mptsas_expander_add()
3664 port_info->phy_info = buffer.phy_info; in mptsas_expander_add()
3665 for (i = 0; i < port_info->num_phys; i++) in mptsas_expander_add()
3666 port_info->phy_info[i].portinfo = port_info; in mptsas_expander_add()
3668 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_expander_add()
3671 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_add()
3673 mptsas_expander_refresh(ioc, port_info); in mptsas_expander_add()
3674 return port_info; in mptsas_expander_add()
3682 struct mptsas_portinfo *port_info; in mptsas_send_link_status_event() local
3696 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address); in mptsas_send_link_status_event()
3697 if (port_info) { in mptsas_send_link_status_event()
3698 phy_info = &port_info->phy_info[phy_num]; in mptsas_send_link_status_event()
3707 if (!port_info) { in mptsas_send_link_status_event()
3709 port_info = mptsas_expander_add(ioc, in mptsas_send_link_status_event()
3711 if (port_info) in mptsas_send_link_status_event()
3717 if (port_info == ioc->hba_port_info) in mptsas_send_link_status_event()
3720 mptsas_expander_refresh(ioc, port_info); in mptsas_send_link_status_event()
3773 struct mptsas_portinfo buffer, *port_info; in mptsas_not_responding_devices() local
3863 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_not_responding_devices()
3865 if (!(port_info->phy_info[0].identify.device_info & in mptsas_not_responding_devices()
3877 port_info->phy_info[0].identify.sas_address) { in mptsas_not_responding_devices()
3884 mptsas_expander_delete(ioc, port_info, 0); in mptsas_not_responding_devices()
3899 struct mptsas_portinfo buffer, *port_info; in mptsas_probe_expanders() local
3909 port_info = mptsas_find_portinfo_by_sas_address(ioc, in mptsas_probe_expanders()
3912 if (port_info) { in mptsas_probe_expanders()
3915 port_info->phy_info[i].handle = handle; in mptsas_probe_expanders()
3916 port_info->phy_info[i].identify.handle_parent = in mptsas_probe_expanders()
3919 mptsas_expander_refresh(ioc, port_info); in mptsas_probe_expanders()
3924 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL); in mptsas_probe_expanders()
3925 if (!port_info) { in mptsas_probe_expanders()
3931 port_info->num_phys = buffer.num_phys; in mptsas_probe_expanders()
3932 port_info->phy_info = buffer.phy_info; in mptsas_probe_expanders()
3933 for (i = 0; i < port_info->num_phys; i++) in mptsas_probe_expanders()
3934 port_info->phy_info[i].portinfo = port_info; in mptsas_probe_expanders()
3936 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_probe_expanders()
3939 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_probe_expanders()
3941 mptsas_expander_refresh(ioc, port_info); in mptsas_probe_expanders()
4111 struct mptsas_portinfo *port_info; in mptsas_find_phyinfo_by_sas_address() local
4116 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_find_phyinfo_by_sas_address()
4117 for (i = 0; i < port_info->num_phys; i++) { in mptsas_find_phyinfo_by_sas_address()
4119 &port_info->phy_info[i].attached)) in mptsas_find_phyinfo_by_sas_address()
4121 if (port_info->phy_info[i].attached.sas_address in mptsas_find_phyinfo_by_sas_address()
4124 phy_info = &port_info->phy_info[i]; in mptsas_find_phyinfo_by_sas_address()
4145 struct mptsas_portinfo *port_info; in mptsas_find_phyinfo_by_phys_disk_num() local
4187 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_find_phyinfo_by_phys_disk_num()
4188 for (i = 0; i < port_info->num_phys && !phy_info; i++) { in mptsas_find_phyinfo_by_phys_disk_num()
4190 &port_info->phy_info[i].attached)) in mptsas_find_phyinfo_by_phys_disk_num()
4192 if (port_info->phy_info[i].attached.phys_disk_num == ~0) in mptsas_find_phyinfo_by_phys_disk_num()
4194 if ((port_info->phy_info[i].attached.phys_disk_num == in mptsas_find_phyinfo_by_phys_disk_num()
4196 (port_info->phy_info[i].attached.id == id) && in mptsas_find_phyinfo_by_phys_disk_num()
4197 (port_info->phy_info[i].attached.channel == in mptsas_find_phyinfo_by_phys_disk_num()
4199 phy_info = &port_info->phy_info[i]; in mptsas_find_phyinfo_by_phys_disk_num()
4310 struct mptsas_portinfo *port_info; in mptsas_hotplug_work() local
4357 port_info = mptsas_find_portinfo_by_handle(ioc, in mptsas_hotplug_work()
4360 if (port_info == ioc->hba_port_info) in mptsas_hotplug_work()
4362 else if (port_info) in mptsas_hotplug_work()
4363 mptsas_expander_refresh(ioc, port_info); in mptsas_hotplug_work()