Lines Matching refs:port_info

128 		struct mptsas_portinfo *port_info, u8 force);
384 struct mptsas_portinfo *port_info, *rc=NULL;
387 list_for_each_entry(port_info, &ioc->sas_topology, list)
388 for (i = 0; i < port_info->num_phys; i++)
389 if (port_info->phy_info[i].identify.handle == handle) {
390 rc = port_info;
408 struct mptsas_portinfo *port_info, *rc = NULL;
417 list_for_each_entry(port_info, &ioc->sas_topology, list)
418 for (i = 0; i < port_info->num_phys; i++)
419 if (port_info->phy_info[i].identify.sas_address ==
421 rc = port_info;
453 struct mptsas_portinfo *port_info;
460 port_info = port_details->port_info;
461 phy_info = port_info->phy_info;
468 for (i = 0; i < port_info->num_phys; i++, phy_info++) {
831 mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
840 phy_info = port_info->phy_info;
841 for (i = 0 ; i < port_info->num_phys ; i++, phy_info++) {
872 phy_info = port_info->phy_info;
873 for (i = 0 ; i < port_info->num_phys ; i++, phy_info++) {
889 port_details->port_info = port_info;
900 if (i == port_info->num_phys - 1)
902 phy_info_cmp = &port_info->phy_info[i + 1];
903 for (j = i + 1 ; j < port_info->num_phys ; j++,
941 for (i = 0; i < port_info->num_phys; i++) {
942 port_details = port_info->phy_info[i].port_details;
1496 struct mptsas_portinfo *port_info;
1552 port_info = phy_info->portinfo;
1553 phy_info_parent = port_info->phy_info;
1554 for (i = 0; i < port_info->num_phys; i++, phy_info_parent++) {
1580 struct mptsas_portinfo *port_info;
1587 port_info = phy_info->portinfo;
1588 if (!port_info)
1591 for (i = 0; i < port_info->num_phys; i++) {
1592 if (port_info->phy_info[i].attached.sas_address !=
1595 port_info->phy_info[i].attached.channel = sas_device->channel;
1596 port_info->phy_info[i].attached.id = sas_device->id;
1597 port_info->phy_info[i].attached.sas_address =
1599 port_info->phy_info[i].attached.handle = sas_device->handle;
1600 port_info->phy_info[i].attached.handle_parent =
1602 port_info->phy_info[i].attached.handle_enclosure =
2254 struct mptsas_portinfo *port_info;
2257 port_info = ioc->hba_port_info;
2258 if (port_info && port_info->phy_info)
2260 port_info->phy_info[0].phy->identify.sas_address;
2356 mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
2401 port_info->num_phys = buffer->NumPhys;
2402 port_info->phy_info = kcalloc(port_info->num_phys,
2404 if (!port_info->phy_info) {
2414 for (i = 0; i < port_info->num_phys; i++) {
2416 port_info->phy_info[i].phy_id = i;
2417 port_info->phy_info[i].port_id =
2419 port_info->phy_info[i].negotiated_link_rate =
2421 port_info->phy_info[i].portinfo = port_info;
2422 port_info->phy_info[i].handle =
2636 mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info,
2646 memset(port_info, 0, sizeof(struct mptsas_portinfo));
2662 memset(port_info, 0, sizeof(struct mptsas_portinfo));
2692 port_info->num_phys = (buffer->NumPhys) ? buffer->NumPhys : 1;
2693 port_info->phy_info = kcalloc(port_info->num_phys,
2695 if (!port_info->phy_info) {
2701 for (i = 0; i < port_info->num_phys; i++) {
2702 port_info->phy_info[i].portinfo = port_info;
2703 port_info->phy_info[i].handle =
2705 port_info->phy_info[i].identify.sas_address =
2707 port_info->phy_info[i].identify.handle_parent =
3207 struct mptsas_portinfo *port_info;
3210 port_info = ioc->hba_port_info;
3212 for (i = 0; i < port_info->num_phys; i++)
3213 if (port_info->phy_info[i].identify.sas_address ==
3281 struct mptsas_portinfo *port_info, *hba;
3294 port_info = ioc->hba_port_info;
3295 if (!port_info) {
3296 ioc->hba_port_info = port_info = hba;
3297 ioc->hba_port_num_phy = port_info->num_phys;
3298 list_add_tail(&port_info->list, &ioc->sas_topology);
3301 port_info->phy_info[i].negotiated_link_rate =
3303 port_info->phy_info[i].handle =
3305 port_info->phy_info[i].port_id =
3314 ioc->num_ports = port_info->num_phys;
3316 for (i = 0; i < port_info->num_phys; i++) {
3317 mptsas_sas_phy_pg0(ioc, &port_info->phy_info[i],
3320 port_info->phy_info[i].identify.handle =
3321 port_info->phy_info[i].handle;
3322 mptsas_sas_device_pg0(ioc, &port_info->phy_info[i].identify,
3325 port_info->phy_info[i].identify.handle);
3328 port_info->phy_info[i].identify.sas_address;
3329 port_info->phy_info[i].identify.phy_id =
3330 port_info->phy_info[i].phy_id = i;
3331 if (port_info->phy_info[i].attached.handle)
3333 &port_info->phy_info[i].attached,
3336 port_info->phy_info[i].attached.handle);
3339 mptsas_setup_wide_ports(ioc, port_info);
3341 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++)
3343 &port_info->phy_info[i], ioc->sas_index, 1);
3354 mptsas_expander_refresh(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
3363 handle = port_info->phy_info[0].handle;
3364 sas_address = port_info->phy_info[0].identify.sas_address;
3365 for (i = 0; i < port_info->num_phys; i++) {
3366 mptsas_sas_expander_pg1(ioc, &port_info->phy_info[i],
3371 &port_info->phy_info[i].identify,
3374 port_info->phy_info[i].identify.handle);
3375 port_info->phy_info[i].identify.phy_id =
3376 port_info->phy_info[i].phy_id;
3378 if (port_info->phy_info[i].attached.handle) {
3380 &port_info->phy_info[i].attached,
3383 port_info->phy_info[i].attached.handle);
3384 port_info->phy_info[i].attached.phy_id =
3385 port_info->phy_info[i].phy_id;
3391 port_info->phy_info[0].identify.handle_parent);
3405 mptsas_setup_wide_ports(ioc, port_info);
3406 for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++)
3407 mptsas_probe_one_phy(parent_dev, &port_info->phy_info[i],
3415 struct mptsas_portinfo *port_info;
3419 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL);
3420 if (!port_info)
3422 port_info->num_phys = (expander_data->NumPhys) ?
3424 port_info->phy_info = kcalloc(port_info->num_phys,
3426 if (!port_info->phy_info)
3429 for (i = 0; i < port_info->num_phys; i++) {
3430 port_info->phy_info[i].portinfo = port_info;
3431 port_info->phy_info[i].handle =
3433 port_info->phy_info[i].identify.sas_address =
3435 port_info->phy_info[i].identify.handle_parent =
3440 list_add_tail(&port_info->list, &ioc->sas_topology);
3444 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys,
3447 mptsas_expander_refresh(ioc, port_info);
3453 * @parent: the parent port_info object
3454 * @expander: the expander port_info object
3461 struct mptsas_portinfo *port_info;
3483 port_info = mptsas_find_portinfo_by_sas_address(ioc,
3485 if (!port_info)
3487 if (port_info == parent) /* backlink rphy */
3493 mptsas_expander_delete(ioc, port_info, 1);
3502 * @port_info: expander port_info struct
3508 struct mptsas_portinfo *port_info, u8 force)
3519 if (!port_info)
3526 port_info->phy_info[0].identify.handle);
3536 * Obtain the port_info instance to the parent port
3540 port_info->phy_info[0].identify.sas_address;
3542 port_info->phy_info[0].identify.handle_parent);
3543 mptsas_delete_expander_siblings(ioc, parent, port_info);
3579 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys,
3585 list_del(&port_info->list);
3586 kfree(port_info->phy_info);
3587 kfree(port_info);
3605 struct mptsas_portinfo *port_info;
3614 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address);
3617 if (port_info) {
3618 for (i = 0; i < port_info->num_phys; i++) {
3619 port_info->phy_info[i].portinfo = port_info;
3620 port_info->phy_info[i].handle =
3622 port_info->phy_info[i].identify.sas_address =
3624 port_info->phy_info[i].identify.handle_parent =
3627 mptsas_expander_refresh(ioc, port_info);
3628 } else if (!port_info && expander_data->NumPhys)
3632 mptsas_expander_delete(ioc, port_info, 0);
3647 struct mptsas_portinfo buffer, *port_info;
3655 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_ATOMIC);
3656 if (!port_info) {
3662 port_info->num_phys = buffer.num_phys;
3663 port_info->phy_info = buffer.phy_info;
3664 for (i = 0; i < port_info->num_phys; i++)
3665 port_info->phy_info[i].portinfo = port_info;
3667 list_add_tail(&port_info->list, &ioc->sas_topology);
3670 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys,
3672 mptsas_expander_refresh(ioc, port_info);
3673 return port_info;
3681 struct mptsas_portinfo *port_info;
3695 port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address);
3696 if (port_info) {
3697 phy_info = &port_info->phy_info[phy_num];
3706 if (!port_info) {
3708 port_info = mptsas_expander_add(ioc,
3710 if (port_info)
3716 if (port_info == ioc->hba_port_info)
3719 mptsas_expander_refresh(ioc, port_info);
3772 struct mptsas_portinfo buffer, *port_info;
3862 list_for_each_entry(port_info, &ioc->sas_topology, list) {
3864 if (!(port_info->phy_info[0].identify.device_info &
3876 port_info->phy_info[0].identify.sas_address) {
3883 mptsas_expander_delete(ioc, port_info, 0);
3898 struct mptsas_portinfo buffer, *port_info;
3908 port_info = mptsas_find_portinfo_by_sas_address(ioc,
3911 if (port_info) {
3914 port_info->phy_info[i].handle = handle;
3915 port_info->phy_info[i].identify.handle_parent =
3918 mptsas_expander_refresh(ioc, port_info);
3923 port_info = kzalloc(sizeof(struct mptsas_portinfo), GFP_KERNEL);
3924 if (!port_info) {
3930 port_info->num_phys = buffer.num_phys;
3931 port_info->phy_info = buffer.phy_info;
3932 for (i = 0; i < port_info->num_phys; i++)
3933 port_info->phy_info[i].portinfo = port_info;
3935 list_add_tail(&port_info->list, &ioc->sas_topology);
3938 "sas_addr (0x%llx)\n", ioc->name, port_info->num_phys,
3940 mptsas_expander_refresh(ioc, port_info);
4110 struct mptsas_portinfo *port_info;
4115 list_for_each_entry(port_info, &ioc->sas_topology, list) {
4116 for (i = 0; i < port_info->num_phys; i++) {
4118 &port_info->phy_info[i].attached))
4120 if (port_info->phy_info[i].attached.sas_address
4123 phy_info = &port_info->phy_info[i];
4144 struct mptsas_portinfo *port_info;
4186 list_for_each_entry(port_info, &ioc->sas_topology, list) {
4187 for (i = 0; i < port_info->num_phys && !phy_info; i++) {
4189 &port_info->phy_info[i].attached))
4191 if (port_info->phy_info[i].attached.phys_disk_num == ~0)
4193 if ((port_info->phy_info[i].attached.phys_disk_num ==
4195 (port_info->phy_info[i].attached.id == id) &&
4196 (port_info->phy_info[i].attached.channel ==
4198 phy_info = &port_info->phy_info[i];
4309 struct mptsas_portinfo *port_info;
4356 port_info = mptsas_find_portinfo_by_handle(ioc,
4359 if (port_info == ioc->hba_port_info)
4361 else if (port_info)
4362 mptsas_expander_refresh(ioc, port_info);