diff options
author | Bryan O'Sullivan <bos@pathscale.com> | 2006-08-25 14:24:39 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2006-09-22 18:22:35 -0400 |
commit | 525d0ca1d452ed336c1d907fb20c104467a8a47b (patch) | |
tree | 8c6e6b649f7b7ce988ac697c58d60e36ab16dc8b /drivers/infiniband/hw | |
parent | 092260b8f966ebe0742045416082e9a81bd971d1 (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/Makefile | 4 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_driver.c | 9 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_file_ops.c | 6 | ||||
-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.h | 8 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_registers.h | 5 |
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 | ||
739 | static int ipath_setup_ht_reset(struct ipath_devdata *dd) | 738 | static 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 | */ |
1018 | static void ipath_setup_ht_cleanup(struct ipath_devdata *dd) | 1017 | static 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 | */ |
1569 | void ipath_init_ht400_funcs(struct ipath_devdata *dd) | 1568 | void 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 | */ |
53 | struct _infinipath_do_not_use_kernel_regs { | 53 | struct _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. */ |
709 | static int ipath_pe_intconfig(struct ipath_devdata *dd) | 711 | static 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 | */ |
766 | static void ipath_setup_pe_cleanup(struct ipath_devdata *dd) | 768 | static 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 | */ |
1225 | void ipath_init_pe800_funcs(struct ipath_devdata *dd) | 1225 | void 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); | |||
621 | int ipath_waitfor_mdio_cmdready(struct ipath_devdata *); | 621 | int ipath_waitfor_mdio_cmdready(struct ipath_devdata *); |
622 | int ipath_waitfor_complete(struct ipath_devdata *, ipath_kreg, u64, u64 *); | 622 | int ipath_waitfor_complete(struct ipath_devdata *, ipath_kreg, u64, u64 *); |
623 | u32 __iomem *ipath_getpiobuf(struct ipath_devdata *, u32 *); | 623 | u32 __iomem *ipath_getpiobuf(struct ipath_devdata *, u32 *); |
624 | /* init PE-800-specific func */ | 624 | void ipath_init_iba6120_funcs(struct ipath_devdata *); |
625 | void ipath_init_pe800_funcs(struct ipath_devdata *); | 625 | void ipath_init_iba6110_funcs(struct ipath_devdata *); |
626 | /* init HT-400-specific func */ | ||
627 | void ipath_init_ht400_funcs(struct ipath_devdata *); | ||
628 | void ipath_get_eeprom_info(struct ipath_devdata *); | 626 | void ipath_get_eeprom_info(struct ipath_devdata *); |
629 | u64 ipath_snap_cntr(struct ipath_devdata *, ipath_creg); | 627 | u64 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 |