Lines Matching refs:port_info
128 struct mptsas_portinfo *port_info, u8 force);
409 struct mptsas_portinfo *port_info, *rc=NULL; in mptsas_find_portinfo_by_handle() local
412 list_for_each_entry(port_info, &ioc->sas_topology, list) in mptsas_find_portinfo_by_handle()
413 for (i = 0; i < port_info->num_phys; i++) in mptsas_find_portinfo_by_handle()
414 if (port_info->phy_info[i].identify.handle == handle) { in mptsas_find_portinfo_by_handle()
415 rc = port_info; in mptsas_find_portinfo_by_handle()
435 struct mptsas_portinfo *port_info, *rc = NULL; in mptsas_find_portinfo_by_sas_address() local
444 list_for_each_entry(port_info, &ioc->sas_topology, list) in mptsas_find_portinfo_by_sas_address()
445 for (i = 0; i < port_info->num_phys; i++) in mptsas_find_portinfo_by_sas_address()
446 if (port_info->phy_info[i].identify.sas_address == in mptsas_find_portinfo_by_sas_address()
448 rc = port_info; in mptsas_find_portinfo_by_sas_address()
480 struct mptsas_portinfo *port_info; in mptsas_port_delete() local
487 port_info = port_details->port_info; in mptsas_port_delete()
488 phy_info = port_info->phy_info; in mptsas_port_delete()
495 for (i = 0; i < port_info->num_phys; i++, phy_info++) { in mptsas_port_delete()
857 mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_setup_wide_ports() argument
866 phy_info = port_info->phy_info; in mptsas_setup_wide_ports()
867 for (i = 0 ; i < port_info->num_phys ; i++, phy_info++) { in mptsas_setup_wide_ports()
898 phy_info = port_info->phy_info; in mptsas_setup_wide_ports()
899 for (i = 0 ; i < port_info->num_phys ; i++, phy_info++) { in mptsas_setup_wide_ports()
915 port_details->port_info = port_info; in mptsas_setup_wide_ports()
926 if (i == port_info->num_phys - 1) in mptsas_setup_wide_ports()
928 phy_info_cmp = &port_info->phy_info[i + 1]; in mptsas_setup_wide_ports()
929 for (j = i + 1 ; j < port_info->num_phys ; j++, in mptsas_setup_wide_ports()
967 for (i = 0; i < port_info->num_phys; i++) { in mptsas_setup_wide_ports()
968 port_details = port_info->phy_info[i].port_details; in mptsas_setup_wide_ports()
1524 struct mptsas_portinfo *port_info; in mptsas_del_end_device() local
1580 port_info = phy_info->portinfo; in mptsas_del_end_device()
1581 phy_info_parent = port_info->phy_info; in mptsas_del_end_device()
1582 for (i = 0; i < port_info->num_phys; i++, phy_info_parent++) { in mptsas_del_end_device()
1608 struct mptsas_portinfo *port_info; in mptsas_refreshing_device_handles() local
1615 port_info = phy_info->portinfo; in mptsas_refreshing_device_handles()
1616 if (!port_info) in mptsas_refreshing_device_handles()
1619 for (i = 0; i < port_info->num_phys; i++) { in mptsas_refreshing_device_handles()
1620 if (port_info->phy_info[i].attached.sas_address != in mptsas_refreshing_device_handles()
1623 port_info->phy_info[i].attached.channel = sas_device->channel; in mptsas_refreshing_device_handles()
1624 port_info->phy_info[i].attached.id = sas_device->id; in mptsas_refreshing_device_handles()
1625 port_info->phy_info[i].attached.sas_address = in mptsas_refreshing_device_handles()
1627 port_info->phy_info[i].attached.handle = sas_device->handle; in mptsas_refreshing_device_handles()
1628 port_info->phy_info[i].attached.handle_parent = in mptsas_refreshing_device_handles()
1630 port_info->phy_info[i].attached.handle_enclosure = in mptsas_refreshing_device_handles()
2283 struct mptsas_portinfo *port_info; in mptsas_smp_handler() local
2286 port_info = ioc->hba_port_info; in mptsas_smp_handler()
2287 if (port_info && port_info->phy_info) in mptsas_smp_handler()
2289 port_info->phy_info[0].phy->identify.sas_address; in mptsas_smp_handler()
2385 mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_sas_io_unit_pg0() argument
2430 port_info->num_phys = buffer->NumPhys; in mptsas_sas_io_unit_pg0()
2431 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_sas_io_unit_pg0()
2433 if (!port_info->phy_info) { in mptsas_sas_io_unit_pg0()
2443 for (i = 0; i < port_info->num_phys; i++) { in mptsas_sas_io_unit_pg0()
2445 port_info->phy_info[i].phy_id = i; in mptsas_sas_io_unit_pg0()
2446 port_info->phy_info[i].port_id = in mptsas_sas_io_unit_pg0()
2448 port_info->phy_info[i].negotiated_link_rate = in mptsas_sas_io_unit_pg0()
2450 port_info->phy_info[i].portinfo = port_info; in mptsas_sas_io_unit_pg0()
2451 port_info->phy_info[i].handle = in mptsas_sas_io_unit_pg0()
2665 mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info, in mptsas_sas_expander_pg0() argument
2675 memset(port_info, 0, sizeof(struct mptsas_portinfo)); in mptsas_sas_expander_pg0()
2691 memset(port_info, 0, sizeof(struct mptsas_portinfo)); in mptsas_sas_expander_pg0()
2721 port_info->num_phys = (buffer->NumPhys) ? buffer->NumPhys : 1; in mptsas_sas_expander_pg0()
2722 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_sas_expander_pg0()
2724 if (!port_info->phy_info) { in mptsas_sas_expander_pg0()
2730 for (i = 0; i < port_info->num_phys; i++) { in mptsas_sas_expander_pg0()
2731 port_info->phy_info[i].portinfo = port_info; in mptsas_sas_expander_pg0()
2732 port_info->phy_info[i].handle = in mptsas_sas_expander_pg0()
2734 port_info->phy_info[i].identify.sas_address = in mptsas_sas_expander_pg0()
2736 port_info->phy_info[i].identify.handle_parent = in mptsas_sas_expander_pg0()
3235 struct mptsas_portinfo *port_info; in mptsas_probe_one_phy() local
3238 port_info = ioc->hba_port_info; in mptsas_probe_one_phy()
3240 for (i = 0; i < port_info->num_phys; i++) in mptsas_probe_one_phy()
3241 if (port_info->phy_info[i].identify.sas_address == in mptsas_probe_one_phy()
3309 struct mptsas_portinfo *port_info, *hba; in mptsas_probe_hba_phys() local
3322 port_info = ioc->hba_port_info; in mptsas_probe_hba_phys()
3323 if (!port_info) { in mptsas_probe_hba_phys()
3324 ioc->hba_port_info = port_info = hba; in mptsas_probe_hba_phys()
3325 ioc->hba_port_num_phy = port_info->num_phys; in mptsas_probe_hba_phys()
3326 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_probe_hba_phys()
3329 port_info->phy_info[i].negotiated_link_rate = in mptsas_probe_hba_phys()
3331 port_info->phy_info[i].handle = in mptsas_probe_hba_phys()
3333 port_info->phy_info[i].port_id = in mptsas_probe_hba_phys()
3342 ioc->num_ports = port_info->num_phys; in mptsas_probe_hba_phys()
3344 for (i = 0; i < port_info->num_phys; i++) { in mptsas_probe_hba_phys()
3345 mptsas_sas_phy_pg0(ioc, &port_info->phy_info[i], in mptsas_probe_hba_phys()
3348 port_info->phy_info[i].identify.handle = in mptsas_probe_hba_phys()
3349 port_info->phy_info[i].handle; in mptsas_probe_hba_phys()
3350 mptsas_sas_device_pg0(ioc, &port_info->phy_info[i].identify, in mptsas_probe_hba_phys()
3353 port_info->phy_info[i].identify.handle); in mptsas_probe_hba_phys()
3356 port_info->phy_info[i].identify.sas_address; in mptsas_probe_hba_phys()
3357 port_info->phy_info[i].identify.phy_id = in mptsas_probe_hba_phys()
3358 port_info->phy_info[i].phy_id = i; in mptsas_probe_hba_phys()
3359 if (port_info->phy_info[i].attached.handle) in mptsas_probe_hba_phys()
3361 &port_info->phy_info[i].attached, in mptsas_probe_hba_phys()
3364 port_info->phy_info[i].attached.handle); in mptsas_probe_hba_phys()
3367 mptsas_setup_wide_ports(ioc, port_info); in mptsas_probe_hba_phys()
3369 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++) in mptsas_probe_hba_phys()
3371 &port_info->phy_info[i], ioc->sas_index, 1); in mptsas_probe_hba_phys()
3382 mptsas_expander_refresh(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_expander_refresh() argument
3391 handle = port_info->phy_info[0].handle; in mptsas_expander_refresh()
3392 sas_address = port_info->phy_info[0].identify.sas_address; in mptsas_expander_refresh()
3393 for (i = 0; i < port_info->num_phys; i++) { in mptsas_expander_refresh()
3394 mptsas_sas_expander_pg1(ioc, &port_info->phy_info[i], in mptsas_expander_refresh()
3399 &port_info->phy_info[i].identify, in mptsas_expander_refresh()
3402 port_info->phy_info[i].identify.handle); in mptsas_expander_refresh()
3403 port_info->phy_info[i].identify.phy_id = in mptsas_expander_refresh()
3404 port_info->phy_info[i].phy_id; in mptsas_expander_refresh()
3406 if (port_info->phy_info[i].attached.handle) { in mptsas_expander_refresh()
3408 &port_info->phy_info[i].attached, in mptsas_expander_refresh()
3411 port_info->phy_info[i].attached.handle); in mptsas_expander_refresh()
3412 port_info->phy_info[i].attached.phy_id = in mptsas_expander_refresh()
3413 port_info->phy_info[i].phy_id; in mptsas_expander_refresh()
3419 port_info->phy_info[0].identify.handle_parent); in mptsas_expander_refresh()
3433 mptsas_setup_wide_ports(ioc, port_info); in mptsas_expander_refresh()
3434 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++) in mptsas_expander_refresh()
3435 mptsas_probe_one_phy(parent_dev, &port_info->phy_info[i], in mptsas_expander_refresh()
3443 struct mptsas_portinfo *port_info; in mptsas_expander_event_add() local
3447 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL); in mptsas_expander_event_add()
3448 BUG_ON(!port_info); in mptsas_expander_event_add()
3449 port_info->num_phys = (expander_data->NumPhys) ? in mptsas_expander_event_add()
3451 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_expander_event_add()
3453 BUG_ON(!port_info->phy_info); in mptsas_expander_event_add()
3455 for (i = 0; i < port_info->num_phys; i++) { in mptsas_expander_event_add()
3456 port_info->phy_info[i].portinfo = port_info; in mptsas_expander_event_add()
3457 port_info->phy_info[i].handle = in mptsas_expander_event_add()
3459 port_info->phy_info[i].identify.sas_address = in mptsas_expander_event_add()
3461 port_info->phy_info[i].identify.handle_parent = in mptsas_expander_event_add()
3466 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_expander_event_add()
3470 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_event_add()
3473 mptsas_expander_refresh(ioc, port_info); in mptsas_expander_event_add()
3487 struct mptsas_portinfo *port_info; in mptsas_delete_expander_siblings() local
3509 port_info = mptsas_find_portinfo_by_sas_address(ioc, in mptsas_delete_expander_siblings()
3511 if (!port_info) in mptsas_delete_expander_siblings()
3513 if (port_info == parent) /* backlink rphy */ in mptsas_delete_expander_siblings()
3519 mptsas_expander_delete(ioc, port_info, 1); in mptsas_delete_expander_siblings()
3534 struct mptsas_portinfo *port_info, u8 force) in mptsas_expander_delete() argument
3545 if (!port_info) in mptsas_expander_delete()
3552 port_info->phy_info[0].identify.handle); in mptsas_expander_delete()
3566 port_info->phy_info[0].identify.sas_address; in mptsas_expander_delete()
3568 port_info->phy_info[0].identify.handle_parent); in mptsas_expander_delete()
3569 mptsas_delete_expander_siblings(ioc, parent, port_info); in mptsas_expander_delete()
3605 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_delete()
3611 list_del(&port_info->list); in mptsas_expander_delete()
3612 kfree(port_info->phy_info); in mptsas_expander_delete()
3613 kfree(port_info); in mptsas_expander_delete()
3630 struct mptsas_portinfo *port_info; in mptsas_send_expander_event() local
3639 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address); in mptsas_send_expander_event()
3642 if (port_info) { in mptsas_send_expander_event()
3643 for (i = 0; i < port_info->num_phys; i++) { in mptsas_send_expander_event()
3644 port_info->phy_info[i].portinfo = port_info; in mptsas_send_expander_event()
3645 port_info->phy_info[i].handle = in mptsas_send_expander_event()
3647 port_info->phy_info[i].identify.sas_address = in mptsas_send_expander_event()
3649 port_info->phy_info[i].identify.handle_parent = in mptsas_send_expander_event()
3652 mptsas_expander_refresh(ioc, port_info); in mptsas_send_expander_event()
3653 } else if (!port_info && expander_data->NumPhys) in mptsas_send_expander_event()
3657 mptsas_expander_delete(ioc, port_info, 0); in mptsas_send_expander_event()
3672 struct mptsas_portinfo buffer, *port_info; in mptsas_expander_add() local
3680 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL); in mptsas_expander_add()
3681 if (!port_info) { in mptsas_expander_add()
3687 port_info->num_phys = buffer.num_phys; in mptsas_expander_add()
3688 port_info->phy_info = buffer.phy_info; in mptsas_expander_add()
3689 for (i = 0; i < port_info->num_phys; i++) in mptsas_expander_add()
3690 port_info->phy_info[i].portinfo = port_info; in mptsas_expander_add()
3692 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_expander_add()
3695 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_add()
3697 mptsas_expander_refresh(ioc, port_info); in mptsas_expander_add()
3698 return port_info; in mptsas_expander_add()
3706 struct mptsas_portinfo *port_info; in mptsas_send_link_status_event() local
3720 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address); in mptsas_send_link_status_event()
3721 if (port_info) { in mptsas_send_link_status_event()
3722 phy_info = &port_info->phy_info[phy_num]; in mptsas_send_link_status_event()
3731 if (!port_info) { in mptsas_send_link_status_event()
3733 port_info = mptsas_expander_add(ioc, in mptsas_send_link_status_event()
3735 if (port_info) in mptsas_send_link_status_event()
3741 if (port_info == ioc->hba_port_info) in mptsas_send_link_status_event()
3744 mptsas_expander_refresh(ioc, port_info); in mptsas_send_link_status_event()
3797 struct mptsas_portinfo buffer, *port_info; in mptsas_not_responding_devices() local
3887 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_not_responding_devices()
3889 if (!(port_info->phy_info[0].identify.device_info & in mptsas_not_responding_devices()
3901 port_info->phy_info[0].identify.sas_address) { in mptsas_not_responding_devices()
3908 mptsas_expander_delete(ioc, port_info, 0); in mptsas_not_responding_devices()
3923 struct mptsas_portinfo buffer, *port_info; in mptsas_probe_expanders() local
3933 port_info = mptsas_find_portinfo_by_sas_address(ioc, in mptsas_probe_expanders()
3936 if (port_info) { in mptsas_probe_expanders()
3939 port_info->phy_info[i].handle = handle; in mptsas_probe_expanders()
3940 port_info->phy_info[i].identify.handle_parent = in mptsas_probe_expanders()
3943 mptsas_expander_refresh(ioc, port_info); in mptsas_probe_expanders()
3948 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL); in mptsas_probe_expanders()
3949 if (!port_info) { in mptsas_probe_expanders()
3955 port_info->num_phys = buffer.num_phys; in mptsas_probe_expanders()
3956 port_info->phy_info = buffer.phy_info; in mptsas_probe_expanders()
3957 for (i = 0; i < port_info->num_phys; i++) in mptsas_probe_expanders()
3958 port_info->phy_info[i].portinfo = port_info; in mptsas_probe_expanders()
3960 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_probe_expanders()
3963 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_probe_expanders()
3965 mptsas_expander_refresh(ioc, port_info); in mptsas_probe_expanders()
4135 struct mptsas_portinfo *port_info; in mptsas_find_phyinfo_by_sas_address() local
4140 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_find_phyinfo_by_sas_address()
4141 for (i = 0; i < port_info->num_phys; i++) { in mptsas_find_phyinfo_by_sas_address()
4143 &port_info->phy_info[i].attached)) in mptsas_find_phyinfo_by_sas_address()
4145 if (port_info->phy_info[i].attached.sas_address in mptsas_find_phyinfo_by_sas_address()
4148 phy_info = &port_info->phy_info[i]; in mptsas_find_phyinfo_by_sas_address()
4170 struct mptsas_portinfo *port_info; in mptsas_find_phyinfo_by_phys_disk_num() local
4212 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_find_phyinfo_by_phys_disk_num()
4213 for (i = 0; i < port_info->num_phys && !phy_info; i++) { in mptsas_find_phyinfo_by_phys_disk_num()
4215 &port_info->phy_info[i].attached)) in mptsas_find_phyinfo_by_phys_disk_num()
4217 if (port_info->phy_info[i].attached.phys_disk_num == ~0) in mptsas_find_phyinfo_by_phys_disk_num()
4219 if ((port_info->phy_info[i].attached.phys_disk_num == in mptsas_find_phyinfo_by_phys_disk_num()
4221 (port_info->phy_info[i].attached.id == id) && in mptsas_find_phyinfo_by_phys_disk_num()
4222 (port_info->phy_info[i].attached.channel == in mptsas_find_phyinfo_by_phys_disk_num()
4224 phy_info = &port_info->phy_info[i]; in mptsas_find_phyinfo_by_phys_disk_num()
4335 struct mptsas_portinfo *port_info; in mptsas_hotplug_work() local
4382 port_info = mptsas_find_portinfo_by_handle(ioc, in mptsas_hotplug_work()
4385 if (port_info == ioc->hba_port_info) in mptsas_hotplug_work()
4387 else if (port_info) in mptsas_hotplug_work()
4388 mptsas_expander_refresh(ioc, port_info); in mptsas_hotplug_work()