aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw
diff options
context:
space:
mode:
authorBryan O'Sullivan <bos@pathscale.com>2006-08-25 14:24:39 -0400
committerRoland Dreier <rolandd@cisco.com>2006-09-22 18:22:35 -0400
commit525d0ca1d452ed336c1d907fb20c104467a8a47b (patch)
tree8c6e6b649f7b7ce988ac697c58d60e36ab16dc8b /drivers/infiniband/hw
parent092260b8f966ebe0742045416082e9a81bd971d1 (diff)
IB/ipath: support new QLogic product naming scheme
This patch only renames files, fixes product names, and updates comments. Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r--drivers/infiniband/hw/ipath/Makefile4
-rw-r--r--drivers/infiniband/hw/ipath/ipath_driver.c9
-rw-r--r--drivers/infiniband/hw/ipath/ipath_file_ops.c6
-rw-r--r--drivers/infiniband/hw/ipath/ipath_iba6110.c (renamed from drivers/infiniband/hw/ipath/ipath_ht400.c)39
-rw-r--r--drivers/infiniband/hw/ipath/ipath_iba6120.c (renamed from drivers/infiniband/hw/ipath/ipath_pe800.c)68
-rw-r--r--drivers/infiniband/hw/ipath/ipath_kernel.h8
-rw-r--r--drivers/infiniband/hw/ipath/ipath_registers.h5
7 files changed, 68 insertions, 71 deletions
diff --git a/drivers/infiniband/hw/ipath/Makefile b/drivers/infiniband/hw/ipath/Makefile
index 690dc713e63e..5e29cb0095e5 100644
--- a/drivers/infiniband/hw/ipath/Makefile
+++ b/drivers/infiniband/hw/ipath/Makefile
@@ -10,7 +10,8 @@ ib_ipath-y := \
10 ipath_eeprom.o \ 10 ipath_eeprom.o \
11 ipath_file_ops.o \ 11 ipath_file_ops.o \
12 ipath_fs.o \ 12 ipath_fs.o \
13 ipath_ht400.o \ 13 ipath_iba6110.o \
14 ipath_iba6120.o \
14 ipath_init_chip.o \ 15 ipath_init_chip.o \
15 ipath_intr.o \ 16 ipath_intr.o \
16 ipath_keys.o \ 17 ipath_keys.o \
@@ -18,7 +19,6 @@ ib_ipath-y := \
18 ipath_mad.o \ 19 ipath_mad.o \
19 ipath_mmap.o \ 20 ipath_mmap.o \
20 ipath_mr.o \ 21 ipath_mr.o \
21 ipath_pe800.o \
22 ipath_qp.o \ 22 ipath_qp.o \
23 ipath_rc.o \ 23 ipath_rc.o \
24 ipath_ruc.o \ 24 ipath_ruc.o \
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c
index 8c908b30984e..3a15efee7387 100644
--- a/drivers/infiniband/hw/ipath/ipath_driver.c
+++ b/drivers/infiniband/hw/ipath/ipath_driver.c
@@ -401,10 +401,10 @@ static int __devinit ipath_init_one(struct pci_dev *pdev,
401 /* setup the chip-specific functions, as early as possible. */ 401 /* setup the chip-specific functions, as early as possible. */
402 switch (ent->device) { 402 switch (ent->device) {
403 case PCI_DEVICE_ID_INFINIPATH_HT: 403 case PCI_DEVICE_ID_INFINIPATH_HT:
404 ipath_init_ht400_funcs(dd); 404 ipath_init_iba6110_funcs(dd);
405 break; 405 break;
406 case PCI_DEVICE_ID_INFINIPATH_PE800: 406 case PCI_DEVICE_ID_INFINIPATH_PE800:
407 ipath_init_pe800_funcs(dd); 407 ipath_init_iba6120_funcs(dd);
408 break; 408 break;
409 default: 409 default:
410 ipath_dev_err(dd, "Found unknown QLogic deviceid 0x%x, " 410 ipath_dev_err(dd, "Found unknown QLogic deviceid 0x%x, "
@@ -969,7 +969,8 @@ reloop:
969 */ 969 */
970 if (l == hdrqtail || (i && !(i&0xf))) { 970 if (l == hdrqtail || (i && !(i&0xf))) {
971 u64 lval; 971 u64 lval;
972 if (l == hdrqtail) /* PE-800 interrupt only on last */ 972 if (l == hdrqtail)
973 /* request IBA6120 interrupt only on last */
973 lval = dd->ipath_rhdrhead_intr_off | l; 974 lval = dd->ipath_rhdrhead_intr_off | l;
974 else 975 else
975 lval = l; 976 lval = l;
@@ -983,7 +984,7 @@ reloop:
983 } 984 }
984 985
985 if (!dd->ipath_rhdrhead_intr_off && !reloop) { 986 if (!dd->ipath_rhdrhead_intr_off && !reloop) {
986 /* HT-400 workaround; we can have a race clearing chip 987 /* IBA6110 workaround; we can have a race clearing chip
987 * interrupt with another interrupt about to be delivered, 988 * interrupt with another interrupt about to be delivered,
988 * and can clear it before it is delivered on the GPIO 989 * and can clear it before it is delivered on the GPIO
989 * workaround. By doing the extra check here for the 990 * workaround. By doing the extra check here for the
diff --git a/drivers/infiniband/hw/ipath/ipath_file_ops.c b/drivers/infiniband/hw/ipath/ipath_file_ops.c
index 4080fed2dcd9..6ba9a2d1e6ec 100644
--- a/drivers/infiniband/hw/ipath/ipath_file_ops.c
+++ b/drivers/infiniband/hw/ipath/ipath_file_ops.c
@@ -1110,7 +1110,7 @@ static int ipath_mmap(struct file *fp, struct vm_area_struct *vma)
1110 ret = mmap_rcvegrbufs(vma, pd); 1110 ret = mmap_rcvegrbufs(vma, pd);
1111 else if (pgaddr == (u64) pd->port_rcvhdrq_phys) { 1111 else if (pgaddr == (u64) pd->port_rcvhdrq_phys) {
1112 /* 1112 /*
1113 * The rcvhdrq itself; readonly except on HT-400 (so have 1113 * The rcvhdrq itself; readonly except on HT (so have
1114 * to allow writable mapping), multiple pages, contiguous 1114 * to allow writable mapping), multiple pages, contiguous
1115 * from an i/o perspective. 1115 * from an i/o perspective.
1116 */ 1116 */
@@ -1298,14 +1298,14 @@ static int find_best_unit(struct file *fp)
1298 * This code is present to allow a knowledgeable person to 1298 * This code is present to allow a knowledgeable person to
1299 * specify the layout of processes to processors before opening 1299 * specify the layout of processes to processors before opening
1300 * this driver, and then we'll assign the process to the "closest" 1300 * this driver, and then we'll assign the process to the "closest"
1301 * HT-400 to that processor (we assume reasonable connectivity, 1301 * InfiniPath chip to that processor (we assume reasonable connectivity,
1302 * for now). This code assumes that if affinity has been set 1302 * for now). This code assumes that if affinity has been set
1303 * before this point, that at most one cpu is set; for now this 1303 * before this point, that at most one cpu is set; for now this
1304 * is reasonable. I check for both cpus_empty() and cpus_full(), 1304 * is reasonable. I check for both cpus_empty() and cpus_full(),
1305 * in case some kernel variant sets none of the bits when no 1305 * in case some kernel variant sets none of the bits when no
1306 * affinity is set. 2.6.11 and 12 kernels have all present 1306 * affinity is set. 2.6.11 and 12 kernels have all present
1307 * cpus set. Some day we'll have to fix it up further to handle 1307 * cpus set. Some day we'll have to fix it up further to handle
1308 * a cpu subset. This algorithm fails for two HT-400's connected 1308 * a cpu subset. This algorithm fails for two HT chips connected
1309 * in tunnel fashion. Eventually this needs real topology 1309 * in tunnel fashion. Eventually this needs real topology
1310 * information. There may be some issues with dual core numbering 1310 * information. There may be some issues with dual core numbering
1311 * as well. This needs more work prior to release. 1311 * as well. This needs more work prior to release.
diff --git a/drivers/infiniband/hw/ipath/ipath_ht400.c b/drivers/infiniband/hw/ipath/ipath_iba6110.c
index 3db015da6e77..5076738aff32 100644
--- a/drivers/infiniband/hw/ipath/ipath_ht400.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba6110.c
@@ -33,7 +33,7 @@
33 33
34/* 34/*
35 * This file contains all of the code that is specific to the InfiniPath 35 * This file contains all of the code that is specific to the InfiniPath
36 * HT-400 chip. 36 * HT chip.
37 */ 37 */
38 38
39#include <linux/pci.h> 39#include <linux/pci.h>
@@ -43,7 +43,7 @@
43#include "ipath_registers.h" 43#include "ipath_registers.h"
44 44
45/* 45/*
46 * This lists the InfiniPath HT400 registers, in the actual chip layout. 46 * This lists the InfiniPath registers, in the actual chip layout.
47 * This structure should never be directly accessed. 47 * This structure should never be directly accessed.
48 * 48 *
49 * The names are in InterCap form because they're taken straight from 49 * The names are in InterCap form because they're taken straight from
@@ -537,7 +537,7 @@ static void ipath_ht_handle_hwerrors(struct ipath_devdata *dd, char *msg,
537 if (hwerrs & INFINIPATH_HWE_HTCMISCERR7) 537 if (hwerrs & INFINIPATH_HWE_HTCMISCERR7)
538 strlcat(msg, "[HT core Misc7]", msgl); 538 strlcat(msg, "[HT core Misc7]", msgl);
539 if (hwerrs & INFINIPATH_HWE_MEMBISTFAILED) { 539 if (hwerrs & INFINIPATH_HWE_MEMBISTFAILED) {
540 strlcat(msg, "[Memory BIST test failed, HT-400 unusable]", 540 strlcat(msg, "[Memory BIST test failed, InfiniPath hardware unusable]",
541 msgl); 541 msgl);
542 /* ignore from now on, so disable until driver reloaded */ 542 /* ignore from now on, so disable until driver reloaded */
543 dd->ipath_hwerrmask &= ~INFINIPATH_HWE_MEMBISTFAILED; 543 dd->ipath_hwerrmask &= ~INFINIPATH_HWE_MEMBISTFAILED;
@@ -553,7 +553,7 @@ static void ipath_ht_handle_hwerrors(struct ipath_devdata *dd, char *msg,
553 553
554 if (hwerrs & _IPATH_PLL_FAIL) { 554 if (hwerrs & _IPATH_PLL_FAIL) {
555 snprintf(bitsmsg, sizeof bitsmsg, 555 snprintf(bitsmsg, sizeof bitsmsg,
556 "[PLL failed (%llx), HT-400 unusable]", 556 "[PLL failed (%llx), InfiniPath hardware unusable]",
557 (unsigned long long) (hwerrs & _IPATH_PLL_FAIL)); 557 (unsigned long long) (hwerrs & _IPATH_PLL_FAIL));
558 strlcat(msg, bitsmsg, msgl); 558 strlcat(msg, bitsmsg, msgl);
559 /* ignore from now on, so disable until driver reloaded */ 559 /* ignore from now on, so disable until driver reloaded */
@@ -610,18 +610,18 @@ static int ipath_ht_boardname(struct ipath_devdata *dd, char *name,
610 break; 610 break;
611 case 5: 611 case 5:
612 /* 612 /*
613 * HT-460 original production board; two production levels, with 613 * original production board; two production levels, with
614 * different serial number ranges. See ipath_ht_early_init() for 614 * different serial number ranges. See ipath_ht_early_init() for
615 * case where we enable IPATH_GPIO_INTR for later serial # range. 615 * case where we enable IPATH_GPIO_INTR for later serial # range.
616 */ 616 */
617 n = "InfiniPath_HT-460"; 617 n = "InfiniPath_QHT7040";
618 break; 618 break;
619 case 6: 619 case 6:
620 n = "OEM_Board_3"; 620 n = "OEM_Board_3";
621 break; 621 break;
622 case 7: 622 case 7:
623 /* HT-460 small form factor production board */ 623 /* small form factor production board */
624 n = "InfiniPath_HT-465"; 624 n = "InfiniPath_QHT7140";
625 break; 625 break;
626 case 8: 626 case 8:
627 n = "LS/X-1"; 627 n = "LS/X-1";
@@ -633,7 +633,7 @@ static int ipath_ht_boardname(struct ipath_devdata *dd, char *name,
633 n = "OEM_Board_2"; 633 n = "OEM_Board_2";
634 break; 634 break;
635 case 11: 635 case 11:
636 n = "InfiniPath_HT-470"; 636 n = "InfiniPath_HT-470"; /* obsoleted */
637 break; 637 break;
638 case 12: 638 case 12:
639 n = "OEM_Board_4"; 639 n = "OEM_Board_4";
@@ -641,7 +641,7 @@ static int ipath_ht_boardname(struct ipath_devdata *dd, char *name,
641 default: /* don't know, just print the number */ 641 default: /* don't know, just print the number */
642 ipath_dev_err(dd, "Don't yet know about board " 642 ipath_dev_err(dd, "Don't yet know about board "
643 "with ID %u\n", boardrev); 643 "with ID %u\n", boardrev);
644 snprintf(name, namelen, "Unknown_InfiniPath_HT-4xx_%u", 644 snprintf(name, namelen, "Unknown_InfiniPath_QHT7xxx_%u",
645 boardrev); 645 boardrev);
646 break; 646 break;
647 } 647 }
@@ -650,11 +650,10 @@ static int ipath_ht_boardname(struct ipath_devdata *dd, char *name,
650 650
651 if (dd->ipath_majrev != 3 || (dd->ipath_minrev < 2 || dd->ipath_minrev > 3)) { 651 if (dd->ipath_majrev != 3 || (dd->ipath_minrev < 2 || dd->ipath_minrev > 3)) {
652 /* 652 /*
653 * This version of the driver only supports the HT-400 653 * This version of the driver only supports Rev 3.2 and 3.3
654 * Rev 3.2
655 */ 654 */
656 ipath_dev_err(dd, 655 ipath_dev_err(dd,
657 "Unsupported HT-400 revision %u.%u!\n", 656 "Unsupported InfiniPath hardware revision %u.%u!\n",
658 dd->ipath_majrev, dd->ipath_minrev); 657 dd->ipath_majrev, dd->ipath_minrev);
659 ret = 1; 658 ret = 1;
660 goto bail; 659 goto bail;
@@ -738,7 +737,7 @@ static void ipath_check_htlink(struct ipath_devdata *dd)
738 737
739static int ipath_setup_ht_reset(struct ipath_devdata *dd) 738static int ipath_setup_ht_reset(struct ipath_devdata *dd)
740{ 739{
741 ipath_dbg("No reset possible for HT-400\n"); 740 ipath_dbg("No reset possible for this InfiniPath hardware\n");
742 return 0; 741 return 0;
743} 742}
744 743
@@ -925,7 +924,7 @@ static int set_int_handler(struct ipath_devdata *dd, struct pci_dev *pdev,
925 924
926 /* 925 /*
927 * kernels with CONFIG_PCI_MSI set the vector in the irq field of 926 * kernels with CONFIG_PCI_MSI set the vector in the irq field of
928 * struct pci_device, so we use that to program the HT-400 internal 927 * struct pci_device, so we use that to program the internal
929 * interrupt register (not config space) with that value. The BIOS 928 * interrupt register (not config space) with that value. The BIOS
930 * must still have done the basic MSI setup. 929 * must still have done the basic MSI setup.
931 */ 930 */
@@ -1013,7 +1012,7 @@ bail:
1013 * @dd: the infinipath device 1012 * @dd: the infinipath device
1014 * 1013 *
1015 * Called during driver unload. 1014 * Called during driver unload.
1016 * This is currently a nop for the HT-400, not for all chips 1015 * This is currently a nop for the HT chip, not for all chips
1017 */ 1016 */
1018static void ipath_setup_ht_cleanup(struct ipath_devdata *dd) 1017static void ipath_setup_ht_cleanup(struct ipath_devdata *dd)
1019{ 1018{
@@ -1470,7 +1469,7 @@ static int ipath_ht_early_init(struct ipath_devdata *dd)
1470 dd->ipath_rcvhdrsize = IPATH_DFLT_RCVHDRSIZE; 1469 dd->ipath_rcvhdrsize = IPATH_DFLT_RCVHDRSIZE;
1471 1470
1472 /* 1471 /*
1473 * For HT-400, we allocate a somewhat overly large eager buffer, 1472 * For HT, we allocate a somewhat overly large eager buffer,
1474 * such that we can guarantee that we can receive the largest 1473 * such that we can guarantee that we can receive the largest
1475 * packet that we can send out. To truly support a 4KB MTU, 1474 * packet that we can send out. To truly support a 4KB MTU,
1476 * we need to bump this to a large value. To date, other than 1475 * we need to bump this to a large value. To date, other than
@@ -1531,7 +1530,7 @@ static int ipath_ht_early_init(struct ipath_devdata *dd)
1531 if(dd->ipath_boardrev == 5 && dd->ipath_serial[0] == '1' && 1530 if(dd->ipath_boardrev == 5 && dd->ipath_serial[0] == '1' &&
1532 dd->ipath_serial[1] == '2' && dd->ipath_serial[2] == '8') { 1531 dd->ipath_serial[1] == '2' && dd->ipath_serial[2] == '8') {
1533 /* 1532 /*
1534 * Later production HT-460 has same changes as HT-465, so 1533 * Later production QHT7040 has same changes as QHT7140, so
1535 * can use GPIO interrupts. They have serial #'s starting 1534 * can use GPIO interrupts. They have serial #'s starting
1536 * with 128, rather than 112. 1535 * with 128, rather than 112.
1537 */ 1536 */
@@ -1560,13 +1559,13 @@ static int ipath_ht_get_base_info(struct ipath_portdata *pd, void *kbase)
1560} 1559}
1561 1560
1562/** 1561/**
1563 * ipath_init_ht400_funcs - set up the chip-specific function pointers 1562 * ipath_init_iba6110_funcs - set up the chip-specific function pointers
1564 * @dd: the infinipath device 1563 * @dd: the infinipath device
1565 * 1564 *
1566 * This is global, and is called directly at init to set up the 1565 * This is global, and is called directly at init to set up the
1567 * chip-specific function pointers for later use. 1566 * chip-specific function pointers for later use.
1568 */ 1567 */
1569void ipath_init_ht400_funcs(struct ipath_devdata *dd) 1568void ipath_init_iba6110_funcs(struct ipath_devdata *dd)
1570{ 1569{
1571 dd->ipath_f_intrsetup = ipath_ht_intconfig; 1570 dd->ipath_f_intrsetup = ipath_ht_intconfig;
1572 dd->ipath_f_bus = ipath_setup_ht_config; 1571 dd->ipath_f_bus = ipath_setup_ht_config;
diff --git a/drivers/infiniband/hw/ipath/ipath_pe800.c b/drivers/infiniband/hw/ipath/ipath_iba6120.c
index b83f66d8262c..f4233baaa338 100644
--- a/drivers/infiniband/hw/ipath/ipath_pe800.c
+++ b/drivers/infiniband/hw/ipath/ipath_iba6120.c
@@ -32,7 +32,7 @@
32 */ 32 */
33/* 33/*
34 * This file contains all of the code that is specific to the 34 * This file contains all of the code that is specific to the
35 * InfiniPath PE-800 chip. 35 * InfiniPath PCIe chip.
36 */ 36 */
37 37
38#include <linux/interrupt.h> 38#include <linux/interrupt.h>
@@ -45,9 +45,9 @@
45 45
46/* 46/*
47 * This file contains all the chip-specific register information and 47 * This file contains all the chip-specific register information and
48 * access functions for the QLogic InfiniPath PE800, the PCI-Express chip. 48 * access functions for the QLogic InfiniPath PCI-Express chip.
49 * 49 *
50 * This lists the InfiniPath PE800 registers, in the actual chip layout. 50 * This lists the InfiniPath registers, in the actual chip layout.
51 * This structure should never be directly accessed. 51 * This structure should never be directly accessed.
52 */ 52 */
53struct _infinipath_do_not_use_kernel_regs { 53struct _infinipath_do_not_use_kernel_regs {
@@ -213,7 +213,6 @@ static const struct ipath_kregs ipath_pe_kregs = {
213 .kr_rcvhdraddr = IPATH_KREG_OFFSET(RcvHdrAddr0), 213 .kr_rcvhdraddr = IPATH_KREG_OFFSET(RcvHdrAddr0),
214 .kr_rcvhdrtailaddr = IPATH_KREG_OFFSET(RcvHdrTailAddr0), 214 .kr_rcvhdrtailaddr = IPATH_KREG_OFFSET(RcvHdrTailAddr0),
215 215
216 /* This group is pe-800-specific; and used only in this file */
217 /* The rcvpktled register controls one of the debug port signals, so 216 /* The rcvpktled register controls one of the debug port signals, so
218 * a packet activity LED can be connected to it. */ 217 * a packet activity LED can be connected to it. */
219 .kr_rcvpktledcnt = IPATH_KREG_OFFSET(RcvPktLEDCnt), 218 .kr_rcvpktledcnt = IPATH_KREG_OFFSET(RcvPktLEDCnt),
@@ -388,7 +387,7 @@ static void ipath_pe_handle_hwerrors(struct ipath_devdata *dd, char *msg,
388 *msg = '\0'; 387 *msg = '\0';
389 388
390 if (hwerrs & INFINIPATH_HWE_MEMBISTFAILED) { 389 if (hwerrs & INFINIPATH_HWE_MEMBISTFAILED) {
391 strlcat(msg, "[Memory BIST test failed, PE-800 unusable]", 390 strlcat(msg, "[Memory BIST test failed, InfiniPath hardware unusable]",
392 msgl); 391 msgl);
393 /* ignore from now on, so disable until driver reloaded */ 392 /* ignore from now on, so disable until driver reloaded */
394 *dd->ipath_statusp |= IPATH_STATUS_HWERROR; 393 *dd->ipath_statusp |= IPATH_STATUS_HWERROR;
@@ -433,7 +432,7 @@ static void ipath_pe_handle_hwerrors(struct ipath_devdata *dd, char *msg,
433 432
434 if (hwerrs & _IPATH_PLL_FAIL) { 433 if (hwerrs & _IPATH_PLL_FAIL) {
435 snprintf(bitsmsg, sizeof bitsmsg, 434 snprintf(bitsmsg, sizeof bitsmsg,
436 "[PLL failed (%llx), PE-800 unusable]", 435 "[PLL failed (%llx), InfiniPath hardware unusable]",
437 (unsigned long long) hwerrs & _IPATH_PLL_FAIL); 436 (unsigned long long) hwerrs & _IPATH_PLL_FAIL);
438 strlcat(msg, bitsmsg, msgl); 437 strlcat(msg, bitsmsg, msgl);
439 /* ignore from now on, so disable until driver reloaded */ 438 /* ignore from now on, so disable until driver reloaded */
@@ -511,22 +510,25 @@ static int ipath_pe_boardname(struct ipath_devdata *dd, char *name,
511 n = "InfiniPath_Emulation"; 510 n = "InfiniPath_Emulation";
512 break; 511 break;
513 case 1: 512 case 1:
514 n = "InfiniPath_PE-800-Bringup"; 513 n = "InfiniPath_QLE7140-Bringup";
515 break; 514 break;
516 case 2: 515 case 2:
517 n = "InfiniPath_PE-880"; 516 n = "InfiniPath_QLE7140";
518 break; 517 break;
519 case 3: 518 case 3:
520 n = "InfiniPath_PE-850"; 519 n = "InfiniPath_QMI7140";
521 break; 520 break;
522 case 4: 521 case 4:
523 n = "InfiniPath_PE-860"; 522 n = "InfiniPath_QEM7140";
523 break;
524 case 5:
525 n = "InfiniPath_QMH7140";
524 break; 526 break;
525 default: 527 default:
526 ipath_dev_err(dd, 528 ipath_dev_err(dd,
527 "Don't yet know about board with ID %u\n", 529 "Don't yet know about board with ID %u\n",
528 boardrev); 530 boardrev);
529 snprintf(name, namelen, "Unknown_InfiniPath_PE-8xx_%u", 531 snprintf(name, namelen, "Unknown_InfiniPath_PCIe_%u",
530 boardrev); 532 boardrev);
531 break; 533 break;
532 } 534 }
@@ -534,7 +536,7 @@ static int ipath_pe_boardname(struct ipath_devdata *dd, char *name,
534 snprintf(name, namelen, "%s", n); 536 snprintf(name, namelen, "%s", n);
535 537
536 if (dd->ipath_majrev != 4 || !dd->ipath_minrev || dd->ipath_minrev>2) { 538 if (dd->ipath_majrev != 4 || !dd->ipath_minrev || dd->ipath_minrev>2) {
537 ipath_dev_err(dd, "Unsupported PE-800 revision %u.%u!\n", 539 ipath_dev_err(dd, "Unsupported InfiniPath hardware revision %u.%u!\n",
538 dd->ipath_majrev, dd->ipath_minrev); 540 dd->ipath_majrev, dd->ipath_minrev);
539 ret = 1; 541 ret = 1;
540 } else 542 } else
@@ -705,7 +707,7 @@ static void ipath_pe_quiet_serdes(struct ipath_devdata *dd)
705 ipath_write_kreg(dd, dd->ipath_kregs->kr_serdesconfig0, val); 707 ipath_write_kreg(dd, dd->ipath_kregs->kr_serdesconfig0, val);
706} 708}
707 709
708/* this is not yet needed on the PE800, so just return 0. */ 710/* this is not yet needed on this chip, so just return 0. */
709static int ipath_pe_intconfig(struct ipath_devdata *dd) 711static int ipath_pe_intconfig(struct ipath_devdata *dd)
710{ 712{
711 return 0; 713 return 0;
@@ -759,8 +761,8 @@ static void ipath_setup_pe_setextled(struct ipath_devdata *dd, u64 lst,
759 * 761 *
760 * This is called during driver unload. 762 * This is called during driver unload.
761 * We do the pci_disable_msi here, not in generic code, because it 763 * We do the pci_disable_msi here, not in generic code, because it
762 * isn't used for the HT-400. If we do end up needing pci_enable_msi 764 * isn't used for the HT chips. If we do end up needing pci_enable_msi
763 * at some point in the future for HT-400, we'll move the call back 765 * at some point in the future for HT, we'll move the call back
764 * into the main init_one code. 766 * into the main init_one code.
765 */ 767 */
766static void ipath_setup_pe_cleanup(struct ipath_devdata *dd) 768static void ipath_setup_pe_cleanup(struct ipath_devdata *dd)
@@ -780,10 +782,10 @@ static void ipath_setup_pe_cleanup(struct ipath_devdata *dd)
780 * late in 2.6.16). 782 * late in 2.6.16).
781 * All that can be done is to edit the kernel source to remove the quirk 783 * All that can be done is to edit the kernel source to remove the quirk
782 * check until that is fixed. 784 * check until that is fixed.
783 * We do not need to call enable_msi() for our HyperTransport chip (HT-400), 785 * We do not need to call enable_msi() for our HyperTransport chip,
784 * even those it uses MSI, and we want to avoid the quirk warning, so 786 * even though it uses MSI, and we want to avoid the quirk warning, so
785 * So we call enable_msi only for the PE-800. If we do end up needing 787 * So we call enable_msi only for PCIe. If we do end up needing
786 * pci_enable_msi at some point in the future for HT-400, we'll move the 788 * pci_enable_msi at some point in the future for HT, we'll move the
787 * call back into the main init_one code. 789 * call back into the main init_one code.
788 * We save the msi lo and hi values, so we can restore them after 790 * We save the msi lo and hi values, so we can restore them after
789 * chip reset (the kernel PCI infrastructure doesn't yet handle that 791 * chip reset (the kernel PCI infrastructure doesn't yet handle that
@@ -971,8 +973,7 @@ static int ipath_setup_pe_reset(struct ipath_devdata *dd)
971 int ret; 973 int ret;
972 974
973 /* Use ERROR so it shows up in logs, etc. */ 975 /* Use ERROR so it shows up in logs, etc. */
974 ipath_dev_err(dd, "Resetting PE-800 unit %u\n", 976 ipath_dev_err(dd, "Resetting InfiniPath unit %u\n", dd->ipath_unit);
975 dd->ipath_unit);
976 /* keep chip from being accessed in a few places */ 977 /* keep chip from being accessed in a few places */
977 dd->ipath_flags &= ~(IPATH_INITTED|IPATH_PRESENT); 978 dd->ipath_flags &= ~(IPATH_INITTED|IPATH_PRESENT);
978 val = dd->ipath_control | INFINIPATH_C_RESET; 979 val = dd->ipath_control | INFINIPATH_C_RESET;
@@ -1078,7 +1079,7 @@ static void ipath_pe_put_tid(struct ipath_devdata *dd, u64 __iomem *tidptr,
1078 * @port: the port 1079 * @port: the port
1079 * 1080 *
1080 * clear all TID entries for a port, expected and eager. 1081 * clear all TID entries for a port, expected and eager.
1081 * Used from ipath_close(). On PE800, TIDs are only 32 bits, 1082 * Used from ipath_close(). On this chip, TIDs are only 32 bits,
1082 * not 64, but they are still on 64 bit boundaries, so tidbase 1083 * not 64, but they are still on 64 bit boundaries, so tidbase
1083 * is declared as u64 * for the pointer math, even though we write 32 bits 1084 * is declared as u64 * for the pointer math, even though we write 32 bits
1084 */ 1085 */
@@ -1148,9 +1149,9 @@ static int ipath_pe_early_init(struct ipath_devdata *dd)
1148 dd->ipath_flags |= IPATH_4BYTE_TID; 1149 dd->ipath_flags |= IPATH_4BYTE_TID;
1149 1150
1150 /* 1151 /*
1151 * For openib, we need to be able to handle an IB header of 96 bytes 1152 * For openfabrics, we need to be able to handle an IB header of
1152 * or 24 dwords. HT-400 has arbitrary sized receive buffers, so we 1153 * 24 dwords. HT chip has arbitrary sized receive buffers, so we
1153 * made them the same size as the PIO buffers. The PE-800 does not 1154 * made them the same size as the PIO buffers. This chip does not
1154 * handle arbitrary size buffers, so we need the header large enough 1155 * handle arbitrary size buffers, so we need the header large enough
1155 * to handle largest IB header, but still have room for a 2KB MTU 1156 * to handle largest IB header, but still have room for a 2KB MTU
1156 * standard IB packet. 1157 * standard IB packet.
@@ -1158,11 +1159,10 @@ static int ipath_pe_early_init(struct ipath_devdata *dd)
1158 dd->ipath_rcvhdrentsize = 24; 1159 dd->ipath_rcvhdrentsize = 24;
1159 dd->ipath_rcvhdrsize = IPATH_DFLT_RCVHDRSIZE; 1160 dd->ipath_rcvhdrsize = IPATH_DFLT_RCVHDRSIZE;
1160 1161
1161 /* For HT-400, we allocate a somewhat overly large eager buffer, 1162 /*
1162 * such that we can guarantee that we can receive the largest packet 1163 * To truly support a 4KB MTU (for usermode), we need to
1163 * that we can send out. To truly support a 4KB MTU, we need to 1164 * bump this to a larger value. For now, we use them for
1164 * bump this to a larger value. We'll do this when I get around to 1165 * the kernel only.
1165 * testing 4KB sends on the PE-800, which I have not yet done.
1166 */ 1166 */
1167 dd->ipath_rcvegrbufsize = 2048; 1167 dd->ipath_rcvegrbufsize = 2048;
1168 /* 1168 /*
@@ -1175,9 +1175,9 @@ static int ipath_pe_early_init(struct ipath_devdata *dd)
1175 dd->ipath_init_ibmaxlen = dd->ipath_ibmaxlen; 1175 dd->ipath_init_ibmaxlen = dd->ipath_ibmaxlen;
1176 1176
1177 /* 1177 /*
1178 * For PE-800, we can request a receive interrupt for 1 or 1178 * We can request a receive interrupt for 1 or
1179 * more packets from current offset. For now, we set this 1179 * more packets from current offset. For now, we set this
1180 * up for a single packet, to match the HT-400 behavior. 1180 * up for a single packet.
1181 */ 1181 */
1182 dd->ipath_rhdrhead_intr_off = 1ULL<<32; 1182 dd->ipath_rhdrhead_intr_off = 1ULL<<32;
1183 1183
@@ -1216,13 +1216,13 @@ static int ipath_pe_get_base_info(struct ipath_portdata *pd, void *kbase)
1216} 1216}
1217 1217
1218/** 1218/**
1219 * ipath_init_pe800_funcs - set up the chip-specific function pointers 1219 * ipath_init_iba6120_funcs - set up the chip-specific function pointers
1220 * @dd: the infinipath device 1220 * @dd: the infinipath device
1221 * 1221 *
1222 * This is global, and is called directly at init to set up the 1222 * This is global, and is called directly at init to set up the
1223 * chip-specific function pointers for later use. 1223 * chip-specific function pointers for later use.
1224 */ 1224 */
1225void ipath_init_pe800_funcs(struct ipath_devdata *dd) 1225void ipath_init_iba6120_funcs(struct ipath_devdata *dd)
1226{ 1226{
1227 dd->ipath_f_intrsetup = ipath_pe_intconfig; 1227 dd->ipath_f_intrsetup = ipath_pe_intconfig;
1228 dd->ipath_f_bus = ipath_setup_pe_config; 1228 dd->ipath_f_bus = ipath_setup_pe_config;
diff --git a/drivers/infiniband/hw/ipath/ipath_kernel.h b/drivers/infiniband/hw/ipath/ipath_kernel.h
index f8accc79b92f..2530686f6893 100644
--- a/drivers/infiniband/hw/ipath/ipath_kernel.h
+++ b/drivers/infiniband/hw/ipath/ipath_kernel.h
@@ -236,7 +236,7 @@ struct ipath_devdata {
236 u64 ipath_tidtemplate; 236 u64 ipath_tidtemplate;
237 /* value to write to free TIDs */ 237 /* value to write to free TIDs */
238 u64 ipath_tidinvalid; 238 u64 ipath_tidinvalid;
239 /* PE-800 rcv interrupt setup */ 239 /* IBA6120 rcv interrupt setup */
240 u64 ipath_rhdrhead_intr_off; 240 u64 ipath_rhdrhead_intr_off;
241 241
242 /* size of memory at ipath_kregbase */ 242 /* size of memory at ipath_kregbase */
@@ -621,10 +621,8 @@ void ipath_free_data(struct ipath_portdata *dd);
621int ipath_waitfor_mdio_cmdready(struct ipath_devdata *); 621int ipath_waitfor_mdio_cmdready(struct ipath_devdata *);
622int ipath_waitfor_complete(struct ipath_devdata *, ipath_kreg, u64, u64 *); 622int ipath_waitfor_complete(struct ipath_devdata *, ipath_kreg, u64, u64 *);
623u32 __iomem *ipath_getpiobuf(struct ipath_devdata *, u32 *); 623u32 __iomem *ipath_getpiobuf(struct ipath_devdata *, u32 *);
624/* init PE-800-specific func */ 624void ipath_init_iba6120_funcs(struct ipath_devdata *);
625void ipath_init_pe800_funcs(struct ipath_devdata *); 625void ipath_init_iba6110_funcs(struct ipath_devdata *);
626/* init HT-400-specific func */
627void ipath_init_ht400_funcs(struct ipath_devdata *);
628void ipath_get_eeprom_info(struct ipath_devdata *); 626void ipath_get_eeprom_info(struct ipath_devdata *);
629u64 ipath_snap_cntr(struct ipath_devdata *, ipath_creg); 627u64 ipath_snap_cntr(struct ipath_devdata *, ipath_creg);
630 628
diff --git a/drivers/infiniband/hw/ipath/ipath_registers.h b/drivers/infiniband/hw/ipath/ipath_registers.h
index 89df8f5ea998..f08c86088ca4 100644
--- a/drivers/infiniband/hw/ipath/ipath_registers.h
+++ b/drivers/infiniband/hw/ipath/ipath_registers.h
@@ -36,8 +36,7 @@
36 36
37/* 37/*
38 * This file should only be included by kernel source, and by the diags. It 38 * This file should only be included by kernel source, and by the diags. It
39 * defines the registers, and their contents, for the InfiniPath HT-400 39 * defines the registers, and their contents, for InfiniPath chips.
40 * chip.
41 */ 40 */
42 41
43/* 42/*
@@ -286,7 +285,7 @@
286 285
287#define INFINIPATH_RT_ADDR_MASK 0xFFFFFFFFFFULL /* 40 bits valid */ 286#define INFINIPATH_RT_ADDR_MASK 0xFFFFFFFFFFULL /* 40 bits valid */
288 287
289/* TID entries (memory), HT400-only */ 288/* TID entries (memory), HT-only */
290#define INFINIPATH_RT_VALID 0x8000000000000000ULL 289#define INFINIPATH_RT_VALID 0x8000000000000000ULL
291#define INFINIPATH_RT_ADDR_SHIFT 0 290#define INFINIPATH_RT_ADDR_SHIFT 0
292#define INFINIPATH_RT_BUFSIZE_MASK 0x3FFF 291#define INFINIPATH_RT_BUFSIZE_MASK 0x3FFF