aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorRalph Campbell <ralph.campbell@qlogic.com>2007-07-06 15:48:48 -0400
committerRoland Dreier <rolandd@cisco.com>2007-07-09 23:12:26 -0400
commit9ca48655667214be6ebd191628a3c4b5b529a87e (patch)
tree89670425b57296ebeeb0ca86d818e36efd8c0603 /drivers/infiniband
parent12f9a49e1bce241c243268c764e1b37391157cd0 (diff)
IB/ipath: Remove support for preproduction HTX InfiniPath cards
Clean up some code by removing support for some older pre-production HTX InfiniPath cards. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_driver.c10
-rw-r--r--drivers/infiniband/hw/ipath/ipath_iba6110.c39
-rw-r--r--drivers/infiniband/hw/ipath/ipath_kernel.h4
-rw-r--r--drivers/infiniband/hw/ipath/ipath_verbs.c7
4 files changed, 12 insertions, 48 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c
index c40a542bebec..da4a2cfb61b4 100644
--- a/drivers/infiniband/hw/ipath/ipath_driver.c
+++ b/drivers/infiniband/hw/ipath/ipath_driver.c
@@ -1021,14 +1021,10 @@ void ipath_kreceive(struct ipath_devdata *dd)
1021 goto bail; 1021 goto bail;
1022 } 1022 }
1023 1023
1024 /* There is already a thread processing this queue. */
1025 if (test_and_set_bit(0, &dd->ipath_rcv_pending))
1026 goto bail;
1027
1028 l = dd->ipath_port0head; 1024 l = dd->ipath_port0head;
1029 hdrqtail = (u32) le64_to_cpu(*dd->ipath_hdrqtailptr); 1025 hdrqtail = (u32) le64_to_cpu(*dd->ipath_hdrqtailptr);
1030 if (l == hdrqtail) 1026 if (l == hdrqtail)
1031 goto done; 1027 goto bail;
1032 1028
1033reloop: 1029reloop:
1034 for (i = 0; l != hdrqtail; i++) { 1030 for (i = 0; l != hdrqtail; i++) {
@@ -1163,10 +1159,6 @@ reloop:
1163 ipath_stats.sps_avgpkts_call = 1159 ipath_stats.sps_avgpkts_call =
1164 ipath_stats.sps_port0pkts / ++totcalls; 1160 ipath_stats.sps_port0pkts / ++totcalls;
1165 1161
1166done:
1167 clear_bit(0, &dd->ipath_rcv_pending);
1168 smp_mb__after_clear_bit();
1169
1170bail:; 1162bail:;
1171} 1163}
1172 1164
diff --git a/drivers/infiniband/hw/ipath/ipath_iba6110.c b/drivers/infiniband/hw/ipath/ipath_iba6110.c
index fdfa95d0dd72..650745d83fac 100644
--- a/drivers/infiniband/hw/ipath/ipath_iba6110.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba6110.c
@@ -677,6 +677,12 @@ static int ipath_ht_boardname(struct ipath_devdata *dd, char *name,
677 if (n) 677 if (n)
678 snprintf(name, namelen, "%s", n); 678 snprintf(name, namelen, "%s", n);
679 679
680 if (dd->ipath_boardrev != 6 && dd->ipath_boardrev != 7 &&
681 dd->ipath_boardrev != 11) {
682 ipath_dev_err(dd, "Unsupported InfiniPath board %s!\n", name);
683 ret = 1;
684 goto bail;
685 }
680 if (dd->ipath_majrev != 3 || (dd->ipath_minrev < 2 || 686 if (dd->ipath_majrev != 3 || (dd->ipath_minrev < 2 ||
681 dd->ipath_minrev > 4)) { 687 dd->ipath_minrev > 4)) {
682 /* 688 /*
@@ -694,36 +700,11 @@ static int ipath_ht_boardname(struct ipath_devdata *dd, char *name,
694 * copies 700 * copies
695 */ 701 */
696 dd->ipath_flags |= IPATH_32BITCOUNTERS; 702 dd->ipath_flags |= IPATH_32BITCOUNTERS;
703 dd->ipath_flags |= IPATH_GPIO_INTR;
697 if (dd->ipath_htspeed != 800) 704 if (dd->ipath_htspeed != 800)
698 ipath_dev_err(dd, 705 ipath_dev_err(dd,
699 "Incorrectly configured for HT @ %uMHz\n", 706 "Incorrectly configured for HT @ %uMHz\n",
700 dd->ipath_htspeed); 707 dd->ipath_htspeed);
701 if (dd->ipath_boardrev == 7 || dd->ipath_boardrev == 11 ||
702 dd->ipath_boardrev == 6)
703 dd->ipath_flags |= IPATH_GPIO_INTR;
704 else
705 dd->ipath_flags |= IPATH_POLL_RX_INTR;
706 if (dd->ipath_boardrev == 8) { /* LS/X-1 */
707 u64 val;
708 val = ipath_read_kreg64(dd, dd->ipath_kregs->kr_extstatus);
709 if (val & INFINIPATH_EXTS_SERDESSEL) {
710 /*
711 * hardware disabled
712 *
713 * This means that the chip is hardware disabled,
714 * and will not be able to bring up the link,
715 * in any case. We special case this and abort
716 * early, to avoid later messages. We also set
717 * the DISABLED status bit
718 */
719 ipath_dbg("Unit %u is hardware-disabled\n",
720 dd->ipath_unit);
721 *dd->ipath_statusp |= IPATH_STATUS_DISABLED;
722 /* this value is handled differently */
723 ret = 2;
724 goto bail;
725 }
726 }
727 ret = 0; 708 ret = 0;
728 709
729bail: 710bail:
@@ -1574,8 +1555,10 @@ static int ipath_ht_early_init(struct ipath_devdata *dd)
1574 * with 128, rather than 112. 1555 * with 128, rather than 112.
1575 */ 1556 */
1576 dd->ipath_flags |= IPATH_GPIO_INTR; 1557 dd->ipath_flags |= IPATH_GPIO_INTR;
1577 dd->ipath_flags &= ~IPATH_POLL_RX_INTR; 1558 } else
1578 } 1559 ipath_dev_err(dd, "Unsupported InfiniPath serial "
1560 "number %.16s!\n", dd->ipath_serial);
1561
1579 return 0; 1562 return 0;
1580} 1563}
1581 1564
diff --git a/drivers/infiniband/hw/ipath/ipath_kernel.h b/drivers/infiniband/hw/ipath/ipath_kernel.h
index 8bad3e3c5550..a27e06297636 100644
--- a/drivers/infiniband/hw/ipath/ipath_kernel.h
+++ b/drivers/infiniband/hw/ipath/ipath_kernel.h
@@ -391,9 +391,6 @@ struct ipath_devdata {
391 struct class_device *diag_class_dev; 391 struct class_device *diag_class_dev;
392 /* timer used to prevent stats overflow, error throttling, etc. */ 392 /* timer used to prevent stats overflow, error throttling, etc. */
393 struct timer_list ipath_stats_timer; 393 struct timer_list ipath_stats_timer;
394 /* check for stale messages in rcv queue */
395 /* only allow one intr at a time. */
396 unsigned long ipath_rcv_pending;
397 void *ipath_dummy_hdrq; /* used after port close */ 394 void *ipath_dummy_hdrq; /* used after port close */
398 dma_addr_t ipath_dummy_hdrq_phys; 395 dma_addr_t ipath_dummy_hdrq_phys;
399 396
@@ -740,7 +737,6 @@ int ipath_set_rx_pol_inv(struct ipath_devdata *dd, u8 new_pol_inv);
740 * are 64bit */ 737 * are 64bit */
741#define IPATH_32BITCOUNTERS 0x20000 738#define IPATH_32BITCOUNTERS 0x20000
742 /* can miss port0 rx interrupts */ 739 /* can miss port0 rx interrupts */
743#define IPATH_POLL_RX_INTR 0x40000
744#define IPATH_DISABLED 0x80000 /* administratively disabled */ 740#define IPATH_DISABLED 0x80000 /* administratively disabled */
745 /* Use GPIO interrupts for new counters */ 741 /* Use GPIO interrupts for new counters */
746#define IPATH_GPIO_ERRINTRS 0x100000 742#define IPATH_GPIO_ERRINTRS 0x100000
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.c b/drivers/infiniband/hw/ipath/ipath_verbs.c
index c76ea0e0b024..65f7181e9cf8 100644
--- a/drivers/infiniband/hw/ipath/ipath_verbs.c
+++ b/drivers/infiniband/hw/ipath/ipath_verbs.c
@@ -1375,13 +1375,6 @@ static void __verbs_timer(unsigned long arg)
1375{ 1375{
1376 struct ipath_devdata *dd = (struct ipath_devdata *) arg; 1376 struct ipath_devdata *dd = (struct ipath_devdata *) arg;
1377 1377
1378 /*
1379 * If port 0 receive packet interrupts are not available, or
1380 * can be missed, poll the receive queue
1381 */
1382 if (dd->ipath_flags & IPATH_POLL_RX_INTR)
1383 ipath_kreceive(dd);
1384
1385 /* Handle verbs layer timeouts. */ 1378 /* Handle verbs layer timeouts. */
1386 ipath_ib_timer(dd->verbs_dev); 1379 ipath_ib_timer(dd->verbs_dev);
1387 1380