diff options
author | Dave Olson <dave.olson@qlogic.com> | 2007-08-16 21:10:43 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-10-09 23:58:49 -0400 |
commit | aa7c79abd154ed9aba4c19b861d439ef6af35d3a (patch) | |
tree | 717bac066316893e3fb059ab97c5157dfa60794d /drivers/infiniband | |
parent | 20bed343142bfaf08765e35aaefa56dc5cc287db (diff) |
IB/ipath: Fix QHT7040 serial number check
Remove all the OEM and bringup boards, and complain and fail
initialization if one is found. QHT7040 with GPIO rework (128ywwuuuu)
is OK, older 112ywwuuuu is no longer supported). The check that had been
added was failing both the 112 and 128 series.
Signed-off-by: Dave Olson <dave.olson@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_iba6110.c | 44 |
1 files changed, 15 insertions, 29 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_iba6110.c b/drivers/infiniband/hw/ipath/ipath_iba6110.c index df42a1e3b6b7..ddbebe4bdb27 100644 --- a/drivers/infiniband/hw/ipath/ipath_iba6110.c +++ b/drivers/infiniband/hw/ipath/ipath_iba6110.c | |||
@@ -631,56 +631,35 @@ static int ipath_ht_boardname(struct ipath_devdata *dd, char *name, | |||
631 | { | 631 | { |
632 | char *n = NULL; | 632 | char *n = NULL; |
633 | u8 boardrev = dd->ipath_boardrev; | 633 | u8 boardrev = dd->ipath_boardrev; |
634 | int ret; | 634 | int ret = 0; |
635 | 635 | ||
636 | switch (boardrev) { | 636 | switch (boardrev) { |
637 | case 4: /* Ponderosa is one of the bringup boards */ | ||
638 | n = "Ponderosa"; | ||
639 | break; | ||
640 | case 5: | 637 | case 5: |
641 | /* | 638 | /* |
642 | * original production board; two production levels, with | 639 | * original production board; two production levels, with |
643 | * different serial number ranges. See ipath_ht_early_init() for | 640 | * different serial number ranges. See ipath_ht_early_init() for |
644 | * case where we enable IPATH_GPIO_INTR for later serial # range. | 641 | * case where we enable IPATH_GPIO_INTR for later serial # range. |
642 | * Original 112* serial number is no longer supported. | ||
645 | */ | 643 | */ |
646 | n = "InfiniPath_QHT7040"; | 644 | n = "InfiniPath_QHT7040"; |
647 | break; | 645 | break; |
648 | case 6: | ||
649 | n = "OEM_Board_3"; | ||
650 | break; | ||
651 | case 7: | 646 | case 7: |
652 | /* small form factor production board */ | 647 | /* small form factor production board */ |
653 | n = "InfiniPath_QHT7140"; | 648 | n = "InfiniPath_QHT7140"; |
654 | break; | 649 | break; |
655 | case 8: | ||
656 | n = "LS/X-1"; | ||
657 | break; | ||
658 | case 9: /* Comstock bringup test board */ | ||
659 | n = "Comstock"; | ||
660 | break; | ||
661 | case 10: | ||
662 | n = "OEM_Board_2"; | ||
663 | break; | ||
664 | case 11: | ||
665 | n = "InfiniPath_HT-470"; /* obsoleted */ | ||
666 | break; | ||
667 | case 12: | ||
668 | n = "OEM_Board_4"; | ||
669 | break; | ||
670 | default: /* don't know, just print the number */ | 650 | default: /* don't know, just print the number */ |
671 | ipath_dev_err(dd, "Don't yet know about board " | 651 | ipath_dev_err(dd, "Don't yet know about board " |
672 | "with ID %u\n", boardrev); | 652 | "with ID %u\n", boardrev); |
673 | snprintf(name, namelen, "Unknown_InfiniPath_QHT7xxx_%u", | 653 | snprintf(name, namelen, "Unknown_InfiniPath_QHT7xxx_%u", |
674 | boardrev); | 654 | boardrev); |
655 | ret = 1; | ||
675 | break; | 656 | break; |
676 | } | 657 | } |
677 | if (n) | 658 | if (n) |
678 | snprintf(name, namelen, "%s", n); | 659 | snprintf(name, namelen, "%s", n); |
679 | 660 | ||
680 | if (dd->ipath_boardrev != 6 && dd->ipath_boardrev != 7 && | 661 | if (ret) { |
681 | dd->ipath_boardrev != 11) { | ||
682 | ipath_dev_err(dd, "Unsupported InfiniPath board %s!\n", name); | 662 | ipath_dev_err(dd, "Unsupported InfiniPath board %s!\n", name); |
683 | ret = 1; | ||
684 | goto bail; | 663 | goto bail; |
685 | } | 664 | } |
686 | if (dd->ipath_majrev != 3 || (dd->ipath_minrev < 2 || | 665 | if (dd->ipath_majrev != 3 || (dd->ipath_minrev < 2 || |
@@ -1554,10 +1533,17 @@ static int ipath_ht_early_init(struct ipath_devdata *dd) | |||
1554 | * can use GPIO interrupts. They have serial #'s starting | 1533 | * can use GPIO interrupts. They have serial #'s starting |
1555 | * with 128, rather than 112. | 1534 | * with 128, rather than 112. |
1556 | */ | 1535 | */ |
1557 | dd->ipath_flags |= IPATH_GPIO_INTR; | 1536 | if (dd->ipath_serial[0] == '1' && |
1558 | } else | 1537 | dd->ipath_serial[1] == '2' && |
1559 | ipath_dev_err(dd, "Unsupported InfiniPath serial " | 1538 | dd->ipath_serial[2] == '8') |
1560 | "number %.16s!\n", dd->ipath_serial); | 1539 | dd->ipath_flags |= IPATH_GPIO_INTR; |
1540 | else { | ||
1541 | ipath_dev_err(dd, "Unsupported InfiniPath board " | ||
1542 | "(serial number %.16s)!\n", | ||
1543 | dd->ipath_serial); | ||
1544 | return 1; | ||
1545 | } | ||
1546 | } | ||
1561 | 1547 | ||
1562 | if (dd->ipath_minrev >= 4) { | 1548 | if (dd->ipath_minrev >= 4) { |
1563 | /* Rev4+ reports extra errors via internal GPIO pins */ | 1549 | /* Rev4+ reports extra errors via internal GPIO pins */ |