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 | |
| 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>
| -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 |
