diff options
Diffstat (limited to 'drivers/message/fusion/mptsas.c')
-rw-r--r-- | drivers/message/fusion/mptsas.c | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c index f7bd8b11ed3b..0fb7d5881f4f 100644 --- a/drivers/message/fusion/mptsas.c +++ b/drivers/message/fusion/mptsas.c | |||
@@ -144,7 +144,6 @@ struct mptsas_devinfo { | |||
144 | * Specific details on ports, wide/narrow | 144 | * Specific details on ports, wide/narrow |
145 | */ | 145 | */ |
146 | struct mptsas_portinfo_details{ | 146 | struct mptsas_portinfo_details{ |
147 | u8 port_id; /* port number provided to transport */ | ||
148 | u16 num_phys; /* number of phys belong to this port */ | 147 | u16 num_phys; /* number of phys belong to this port */ |
149 | u64 phy_bitmask; /* TODO, extend support for 255 phys */ | 148 | u64 phy_bitmask; /* TODO, extend support for 255 phys */ |
150 | struct sas_rphy *rphy; /* transport layer rphy object */ | 149 | struct sas_rphy *rphy; /* transport layer rphy object */ |
@@ -350,10 +349,10 @@ mptsas_port_delete(struct mptsas_portinfo_details * port_details) | |||
350 | port_info = port_details->port_info; | 349 | port_info = port_details->port_info; |
351 | phy_info = port_info->phy_info; | 350 | phy_info = port_info->phy_info; |
352 | 351 | ||
353 | dsaswideprintk((KERN_DEBUG "%s: [%p]: port=%02d num_phys=%02d " | 352 | dsaswideprintk((KERN_DEBUG "%s: [%p]: num_phys=%02d " |
354 | "bitmask=0x%016llX\n", | 353 | "bitmask=0x%016llX\n", |
355 | __FUNCTION__, port_details, port_details->port_id, | 354 | __FUNCTION__, port_details, port_details->num_phys, |
356 | port_details->num_phys, port_details->phy_bitmask)); | 355 | port_details->phy_bitmask)); |
357 | 356 | ||
358 | for (i = 0; i < port_info->num_phys; i++, phy_info++) { | 357 | for (i = 0; i < port_info->num_phys; i++, phy_info++) { |
359 | if(phy_info->port_details != port_details) | 358 | if(phy_info->port_details != port_details) |
@@ -462,9 +461,8 @@ mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) | |||
462 | * phy be removed by firmware events. | 461 | * phy be removed by firmware events. |
463 | */ | 462 | */ |
464 | dsaswideprintk((KERN_DEBUG | 463 | dsaswideprintk((KERN_DEBUG |
465 | "%s: [%p]: port=%d deleting phy = %d\n", | 464 | "%s: [%p]: deleting phy = %d\n", |
466 | __FUNCTION__, port_details, | 465 | __FUNCTION__, port_details, i)); |
467 | port_details->port_id, i)); | ||
468 | port_details->num_phys--; | 466 | port_details->num_phys--; |
469 | port_details->phy_bitmask &= ~ (1 << phy_info->phy_id); | 467 | port_details->phy_bitmask &= ~ (1 << phy_info->phy_id); |
470 | memset(&phy_info->attached, 0, sizeof(struct mptsas_devinfo)); | 468 | memset(&phy_info->attached, 0, sizeof(struct mptsas_devinfo)); |
@@ -493,7 +491,6 @@ mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) | |||
493 | goto out; | 491 | goto out; |
494 | port_details->num_phys = 1; | 492 | port_details->num_phys = 1; |
495 | port_details->port_info = port_info; | 493 | port_details->port_info = port_info; |
496 | port_details->port_id = ioc->port_serial_number++; | ||
497 | if (phy_info->phy_id < 64 ) | 494 | if (phy_info->phy_id < 64 ) |
498 | port_details->phy_bitmask |= | 495 | port_details->phy_bitmask |= |
499 | (1 << phy_info->phy_id); | 496 | (1 << phy_info->phy_id); |
@@ -525,12 +522,8 @@ mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) | |||
525 | mptsas_get_port(phy_info_cmp); | 522 | mptsas_get_port(phy_info_cmp); |
526 | port_details->starget = | 523 | port_details->starget = |
527 | mptsas_get_starget(phy_info_cmp); | 524 | mptsas_get_starget(phy_info_cmp); |
528 | port_details->port_id = | ||
529 | phy_info_cmp->port_details->port_id; | ||
530 | port_details->num_phys = | 525 | port_details->num_phys = |
531 | phy_info_cmp->port_details->num_phys; | 526 | phy_info_cmp->port_details->num_phys; |
532 | // port_info->port_serial_number--; | ||
533 | ioc->port_serial_number--; | ||
534 | if (!phy_info_cmp->port_details->num_phys) | 527 | if (!phy_info_cmp->port_details->num_phys) |
535 | kfree(phy_info_cmp->port_details); | 528 | kfree(phy_info_cmp->port_details); |
536 | } else | 529 | } else |
@@ -554,11 +547,11 @@ mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info) | |||
554 | if (!port_details) | 547 | if (!port_details) |
555 | continue; | 548 | continue; |
556 | dsaswideprintk((KERN_DEBUG | 549 | dsaswideprintk((KERN_DEBUG |
557 | "%s: [%p]: phy_id=%02d port_id=%02d num_phys=%02d " | 550 | "%s: [%p]: phy_id=%02d num_phys=%02d " |
558 | "bitmask=0x%016llX\n", | 551 | "bitmask=0x%016llX\n", |
559 | __FUNCTION__, | 552 | __FUNCTION__, |
560 | port_details, i, port_details->port_id, | 553 | port_details, i, port_details->num_phys, |
561 | port_details->num_phys, port_details->phy_bitmask)); | 554 | port_details->phy_bitmask)); |
562 | dsaswideprintk((KERN_DEBUG"\t\tport = %p rphy=%p\n", | 555 | dsaswideprintk((KERN_DEBUG"\t\tport = %p rphy=%p\n", |
563 | port_details->port, port_details->rphy)); | 556 | port_details->port, port_details->rphy)); |
564 | } | 557 | } |
@@ -1608,11 +1601,7 @@ static int mptsas_probe_one_phy(struct device *dev, | |||
1608 | if (phy_info->sas_port_add_phy) { | 1601 | if (phy_info->sas_port_add_phy) { |
1609 | 1602 | ||
1610 | if (!port) { | 1603 | if (!port) { |
1611 | port = sas_port_alloc(dev, | 1604 | port = sas_port_alloc_num(dev); |
1612 | phy_info->port_details->port_id); | ||
1613 | dsaswideprintk((KERN_DEBUG | ||
1614 | "sas_port_alloc: port=%p dev=%p port_id=%d\n", | ||
1615 | port, dev, phy_info->port_details->port_id)); | ||
1616 | if (!port) { | 1605 | if (!port) { |
1617 | error = -ENOMEM; | 1606 | error = -ENOMEM; |
1618 | goto out; | 1607 | goto out; |
@@ -1625,6 +1614,9 @@ static int mptsas_probe_one_phy(struct device *dev, | |||
1625 | goto out; | 1614 | goto out; |
1626 | } | 1615 | } |
1627 | mptsas_set_port(phy_info, port); | 1616 | mptsas_set_port(phy_info, port); |
1617 | dsaswideprintk((KERN_DEBUG | ||
1618 | "sas_port_alloc: port=%p dev=%p port_id=%d\n", | ||
1619 | port, dev, port->port_identifier)); | ||
1628 | } | 1620 | } |
1629 | dsaswideprintk((KERN_DEBUG "sas_port_add_phy: phy_id=%d\n", | 1621 | dsaswideprintk((KERN_DEBUG "sas_port_add_phy: phy_id=%d\n", |
1630 | phy_info->phy_id)); | 1622 | phy_info->phy_id)); |
@@ -1939,7 +1931,8 @@ mptsas_delete_expander_phys(MPT_ADAPTER *ioc) | |||
1939 | expander_sas_address) | 1931 | expander_sas_address) |
1940 | continue; | 1932 | continue; |
1941 | #ifdef MPT_DEBUG_SAS_WIDE | 1933 | #ifdef MPT_DEBUG_SAS_WIDE |
1942 | dev_printk(KERN_DEBUG, &port->dev, "delete\n"); | 1934 | dev_printk(KERN_DEBUG, &port->dev, |
1935 | "delete port (%d)\n", port->port_identifier); | ||
1943 | #endif | 1936 | #endif |
1944 | sas_port_delete(port); | 1937 | sas_port_delete(port); |
1945 | mptsas_port_delete(phy_info->port_details); | 1938 | mptsas_port_delete(phy_info->port_details); |
@@ -2185,7 +2178,8 @@ mptsas_hotplug_work(void *arg) | |||
2185 | ioc->name, ds, ev->channel, ev->id, phy_info->phy_id); | 2178 | ioc->name, ds, ev->channel, ev->id, phy_info->phy_id); |
2186 | 2179 | ||
2187 | #ifdef MPT_DEBUG_SAS_WIDE | 2180 | #ifdef MPT_DEBUG_SAS_WIDE |
2188 | dev_printk(KERN_DEBUG, &port->dev, "delete\n"); | 2181 | dev_printk(KERN_DEBUG, &port->dev, |
2182 | "delete port (%d)\n", port->port_identifier); | ||
2189 | #endif | 2183 | #endif |
2190 | sas_port_delete(port); | 2184 | sas_port_delete(port); |
2191 | mptsas_port_delete(phy_info->port_details); | 2185 | mptsas_port_delete(phy_info->port_details); |