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()
2261 struct mptsas_portinfo *port_info; in mptsas_smp_handler() local
2264 port_info = ioc->hba_port_info; in mptsas_smp_handler()
2265 if (port_info && port_info->phy_info) in mptsas_smp_handler()
2267 port_info->phy_info[0].phy->identify.sas_address; in mptsas_smp_handler()
2362 mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_sas_io_unit_pg0() argument
2407 port_info->num_phys = buffer->NumPhys; in mptsas_sas_io_unit_pg0()
2408 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_sas_io_unit_pg0()
2410 if (!port_info->phy_info) { in mptsas_sas_io_unit_pg0()
2420 for (i = 0; i < port_info->num_phys; i++) { in mptsas_sas_io_unit_pg0()
2422 port_info->phy_info[i].phy_id = i; in mptsas_sas_io_unit_pg0()
2423 port_info->phy_info[i].port_id = in mptsas_sas_io_unit_pg0()
2425 port_info->phy_info[i].negotiated_link_rate = in mptsas_sas_io_unit_pg0()
2427 port_info->phy_info[i].portinfo = port_info; in mptsas_sas_io_unit_pg0()
2428 port_info->phy_info[i].handle = in mptsas_sas_io_unit_pg0()
2642 mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info, in mptsas_sas_expander_pg0() argument
2652 memset(port_info, 0, sizeof(struct mptsas_portinfo)); in mptsas_sas_expander_pg0()
2668 memset(port_info, 0, sizeof(struct mptsas_portinfo)); in mptsas_sas_expander_pg0()
2698 port_info->num_phys = (buffer->NumPhys) ? buffer->NumPhys : 1; in mptsas_sas_expander_pg0()
2699 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_sas_expander_pg0()
2701 if (!port_info->phy_info) { in mptsas_sas_expander_pg0()
2707 for (i = 0; i < port_info->num_phys; i++) { in mptsas_sas_expander_pg0()
2708 port_info->phy_info[i].portinfo = port_info; in mptsas_sas_expander_pg0()
2709 port_info->phy_info[i].handle = in mptsas_sas_expander_pg0()
2711 port_info->phy_info[i].identify.sas_address = in mptsas_sas_expander_pg0()
2713 port_info->phy_info[i].identify.handle_parent = in mptsas_sas_expander_pg0()
3213 struct mptsas_portinfo *port_info; in mptsas_probe_one_phy() local
3216 port_info = ioc->hba_port_info; in mptsas_probe_one_phy()
3218 for (i = 0; i < port_info->num_phys; i++) in mptsas_probe_one_phy()
3219 if (port_info->phy_info[i].identify.sas_address == in mptsas_probe_one_phy()
3287 struct mptsas_portinfo *port_info, *hba; in mptsas_probe_hba_phys() local
3300 port_info = ioc->hba_port_info; in mptsas_probe_hba_phys()
3301 if (!port_info) { in mptsas_probe_hba_phys()
3302 ioc->hba_port_info = port_info = hba; in mptsas_probe_hba_phys()
3303 ioc->hba_port_num_phy = port_info->num_phys; in mptsas_probe_hba_phys()
3304 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_probe_hba_phys()
3307 port_info->phy_info[i].negotiated_link_rate = in mptsas_probe_hba_phys()
3309 port_info->phy_info[i].handle = in mptsas_probe_hba_phys()
3311 port_info->phy_info[i].port_id = in mptsas_probe_hba_phys()
3320 ioc->num_ports = port_info->num_phys; in mptsas_probe_hba_phys()
3322 for (i = 0; i < port_info->num_phys; i++) { in mptsas_probe_hba_phys()
3323 mptsas_sas_phy_pg0(ioc, &port_info->phy_info[i], in mptsas_probe_hba_phys()
3326 port_info->phy_info[i].identify.handle = in mptsas_probe_hba_phys()
3327 port_info->phy_info[i].handle; in mptsas_probe_hba_phys()
3328 mptsas_sas_device_pg0(ioc, &port_info->phy_info[i].identify, in mptsas_probe_hba_phys()
3331 port_info->phy_info[i].identify.handle); in mptsas_probe_hba_phys()
3334 port_info->phy_info[i].identify.sas_address; in mptsas_probe_hba_phys()
3335 port_info->phy_info[i].identify.phy_id = in mptsas_probe_hba_phys()
3336 port_info->phy_info[i].phy_id = i; in mptsas_probe_hba_phys()
3337 if (port_info->phy_info[i].attached.handle) in mptsas_probe_hba_phys()
3339 &port_info->phy_info[i].attached, in mptsas_probe_hba_phys()
3342 port_info->phy_info[i].attached.handle); in mptsas_probe_hba_phys()
3345 mptsas_setup_wide_ports(ioc, port_info); in mptsas_probe_hba_phys()
3347 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++) in mptsas_probe_hba_phys()
3349 &port_info->phy_info[i], ioc->sas_index, 1); in mptsas_probe_hba_phys()
3360 mptsas_expander_refresh(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) in mptsas_expander_refresh() argument
3369 handle = port_info->phy_info[0].handle; in mptsas_expander_refresh()
3370 sas_address = port_info->phy_info[0].identify.sas_address; in mptsas_expander_refresh()
3371 for (i = 0; i < port_info->num_phys; i++) { in mptsas_expander_refresh()
3372 mptsas_sas_expander_pg1(ioc, &port_info->phy_info[i], in mptsas_expander_refresh()
3377 &port_info->phy_info[i].identify, in mptsas_expander_refresh()
3380 port_info->phy_info[i].identify.handle); in mptsas_expander_refresh()
3381 port_info->phy_info[i].identify.phy_id = in mptsas_expander_refresh()
3382 port_info->phy_info[i].phy_id; in mptsas_expander_refresh()
3384 if (port_info->phy_info[i].attached.handle) { in mptsas_expander_refresh()
3386 &port_info->phy_info[i].attached, in mptsas_expander_refresh()
3389 port_info->phy_info[i].attached.handle); in mptsas_expander_refresh()
3390 port_info->phy_info[i].attached.phy_id = in mptsas_expander_refresh()
3391 port_info->phy_info[i].phy_id; in mptsas_expander_refresh()
3397 port_info->phy_info[0].identify.handle_parent); in mptsas_expander_refresh()
3411 mptsas_setup_wide_ports(ioc, port_info); in mptsas_expander_refresh()
3412 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++) in mptsas_expander_refresh()
3413 mptsas_probe_one_phy(parent_dev, &port_info->phy_info[i], in mptsas_expander_refresh()
3421 struct mptsas_portinfo *port_info; in mptsas_expander_event_add() local
3425 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL); in mptsas_expander_event_add()
3426 if (!port_info) in mptsas_expander_event_add()
3428 port_info->num_phys = (expander_data->NumPhys) ? in mptsas_expander_event_add()
3430 port_info->phy_info = kcalloc(port_info->num_phys, in mptsas_expander_event_add()
3432 if (!port_info->phy_info) in mptsas_expander_event_add()
3435 for (i = 0; i < port_info->num_phys; i++) { in mptsas_expander_event_add()
3436 port_info->phy_info[i].portinfo = port_info; in mptsas_expander_event_add()
3437 port_info->phy_info[i].handle = in mptsas_expander_event_add()
3439 port_info->phy_info[i].identify.sas_address = in mptsas_expander_event_add()
3441 port_info->phy_info[i].identify.handle_parent = in mptsas_expander_event_add()
3446 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_expander_event_add()
3450 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_event_add()
3453 mptsas_expander_refresh(ioc, port_info); in mptsas_expander_event_add()
3467 struct mptsas_portinfo *port_info; in mptsas_delete_expander_siblings() local
3489 port_info = mptsas_find_portinfo_by_sas_address(ioc, in mptsas_delete_expander_siblings()
3491 if (!port_info) in mptsas_delete_expander_siblings()
3493 if (port_info == parent) /* backlink rphy */ in mptsas_delete_expander_siblings()
3499 mptsas_expander_delete(ioc, port_info, 1); in mptsas_delete_expander_siblings()
3514 struct mptsas_portinfo *port_info, u8 force) in mptsas_expander_delete() argument
3525 if (!port_info) in mptsas_expander_delete()
3532 port_info->phy_info[0].identify.handle); in mptsas_expander_delete()
3546 port_info->phy_info[0].identify.sas_address; in mptsas_expander_delete()
3548 port_info->phy_info[0].identify.handle_parent); in mptsas_expander_delete()
3549 mptsas_delete_expander_siblings(ioc, parent, port_info); in mptsas_expander_delete()
3585 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_delete()
3591 list_del(&port_info->list); in mptsas_expander_delete()
3592 kfree(port_info->phy_info); in mptsas_expander_delete()
3593 kfree(port_info); in mptsas_expander_delete()
3611 struct mptsas_portinfo *port_info; in mptsas_send_expander_event() local
3620 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address); in mptsas_send_expander_event()
3623 if (port_info) { in mptsas_send_expander_event()
3624 for (i = 0; i < port_info->num_phys; i++) { in mptsas_send_expander_event()
3625 port_info->phy_info[i].portinfo = port_info; in mptsas_send_expander_event()
3626 port_info->phy_info[i].handle = in mptsas_send_expander_event()
3628 port_info->phy_info[i].identify.sas_address = in mptsas_send_expander_event()
3630 port_info->phy_info[i].identify.handle_parent = in mptsas_send_expander_event()
3633 mptsas_expander_refresh(ioc, port_info); in mptsas_send_expander_event()
3634 } else if (!port_info && expander_data->NumPhys) in mptsas_send_expander_event()
3638 mptsas_expander_delete(ioc, port_info, 0); in mptsas_send_expander_event()
3653 struct mptsas_portinfo buffer, *port_info; in mptsas_expander_add() local
3661 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_ATOMIC); in mptsas_expander_add()
3662 if (!port_info) { in mptsas_expander_add()
3668 port_info->num_phys = buffer.num_phys; in mptsas_expander_add()
3669 port_info->phy_info = buffer.phy_info; in mptsas_expander_add()
3670 for (i = 0; i < port_info->num_phys; i++) in mptsas_expander_add()
3671 port_info->phy_info[i].portinfo = port_info; in mptsas_expander_add()
3673 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_expander_add()
3676 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_expander_add()
3678 mptsas_expander_refresh(ioc, port_info); in mptsas_expander_add()
3679 return port_info; in mptsas_expander_add()
3687 struct mptsas_portinfo *port_info; in mptsas_send_link_status_event() local
3701 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address); in mptsas_send_link_status_event()
3702 if (port_info) { in mptsas_send_link_status_event()
3703 phy_info = &port_info->phy_info[phy_num]; in mptsas_send_link_status_event()
3712 if (!port_info) { in mptsas_send_link_status_event()
3714 port_info = mptsas_expander_add(ioc, in mptsas_send_link_status_event()
3716 if (port_info) in mptsas_send_link_status_event()
3722 if (port_info == ioc->hba_port_info) in mptsas_send_link_status_event()
3725 mptsas_expander_refresh(ioc, port_info); in mptsas_send_link_status_event()
3778 struct mptsas_portinfo buffer, *port_info; in mptsas_not_responding_devices() local
3868 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_not_responding_devices()
3870 if (!(port_info->phy_info[0].identify.device_info & in mptsas_not_responding_devices()
3882 port_info->phy_info[0].identify.sas_address) { in mptsas_not_responding_devices()
3889 mptsas_expander_delete(ioc, port_info, 0); in mptsas_not_responding_devices()
3904 struct mptsas_portinfo buffer, *port_info; in mptsas_probe_expanders() local
3914 port_info = mptsas_find_portinfo_by_sas_address(ioc, in mptsas_probe_expanders()
3917 if (port_info) { in mptsas_probe_expanders()
3920 port_info->phy_info[i].handle = handle; in mptsas_probe_expanders()
3921 port_info->phy_info[i].identify.handle_parent = in mptsas_probe_expanders()
3924 mptsas_expander_refresh(ioc, port_info); in mptsas_probe_expanders()
3929 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL); in mptsas_probe_expanders()
3930 if (!port_info) { in mptsas_probe_expanders()
3936 port_info->num_phys = buffer.num_phys; in mptsas_probe_expanders()
3937 port_info->phy_info = buffer.phy_info; in mptsas_probe_expanders()
3938 for (i = 0; i < port_info->num_phys; i++) in mptsas_probe_expanders()
3939 port_info->phy_info[i].portinfo = port_info; in mptsas_probe_expanders()
3941 list_add_tail(&port_info->list, &ioc->sas_topology); in mptsas_probe_expanders()
3944 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys, in mptsas_probe_expanders()
3946 mptsas_expander_refresh(ioc, port_info); in mptsas_probe_expanders()
4116 struct mptsas_portinfo *port_info; in mptsas_find_phyinfo_by_sas_address() local
4121 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_find_phyinfo_by_sas_address()
4122 for (i = 0; i < port_info->num_phys; i++) { in mptsas_find_phyinfo_by_sas_address()
4124 &port_info->phy_info[i].attached)) in mptsas_find_phyinfo_by_sas_address()
4126 if (port_info->phy_info[i].attached.sas_address in mptsas_find_phyinfo_by_sas_address()
4129 phy_info = &port_info->phy_info[i]; in mptsas_find_phyinfo_by_sas_address()
4150 struct mptsas_portinfo *port_info; in mptsas_find_phyinfo_by_phys_disk_num() local
4192 list_for_each_entry(port_info, &ioc->sas_topology, list) { in mptsas_find_phyinfo_by_phys_disk_num()
4193 for (i = 0; i < port_info->num_phys && !phy_info; i++) { in mptsas_find_phyinfo_by_phys_disk_num()
4195 &port_info->phy_info[i].attached)) in mptsas_find_phyinfo_by_phys_disk_num()
4197 if (port_info->phy_info[i].attached.phys_disk_num == ~0) in mptsas_find_phyinfo_by_phys_disk_num()
4199 if ((port_info->phy_info[i].attached.phys_disk_num == in mptsas_find_phyinfo_by_phys_disk_num()
4201 (port_info->phy_info[i].attached.id == id) && in mptsas_find_phyinfo_by_phys_disk_num()
4202 (port_info->phy_info[i].attached.channel == in mptsas_find_phyinfo_by_phys_disk_num()
4204 phy_info = &port_info->phy_info[i]; in mptsas_find_phyinfo_by_phys_disk_num()
4315 struct mptsas_portinfo *port_info; in mptsas_hotplug_work() local
4362 port_info = mptsas_find_portinfo_by_handle(ioc, in mptsas_hotplug_work()
4365 if (port_info == ioc->hba_port_info) in mptsas_hotplug_work()
4367 else if (port_info) in mptsas_hotplug_work()
4368 mptsas_expander_refresh(ioc, port_info); in mptsas_hotplug_work()