aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorDave Olson <dave.olson@qlogic.com>2007-08-16 21:10:43 -0400
committerRoland Dreier <rolandd@cisco.com>2007-10-09 23:58:49 -0400
commitaa7c79abd154ed9aba4c19b861d439ef6af35d3a (patch)
tree717bac066316893e3fb059ab97c5157dfa60794d /drivers/infiniband
parent20bed343142bfaf08765e35aaefa56dc5cc287db (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.c44
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 */