aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_iba6110.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_iba6110.c')
-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 */