]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
watchdog: hpwdt: add support for iLO5
authorBrian Boylston <brian.boylston@hpe.com>
Mon, 26 Sep 2016 18:57:14 +0000 (13:57 -0500)
committerWim Van Sebroeck <wim@iguana.be>
Mon, 3 Oct 2016 06:37:41 +0000 (08:37 +0200)
iLO5 will offer the same watchdog timer as previous generations, but the
PCI subsystem vendor ID will be PCI_VENDOR_ID_HP_3PAR (0x1590) instead of
PCI_VENDOR_ID_HP (0x103c).  Add 0x1590 to the whitelist and be more
specific when ignoring the 103c,1979 device.

Signed-off-by: Brian Boylston <brian.boylston@hpe.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/hpwdt.c

index 8f89bd8a826a994b2076733c3b0d8b03869977fd..70c7194e2810dff05ddc0535dc5d8d7579ab7e77 100644 (file)
@@ -39,7 +39,7 @@
 #include <asm/nmi.h>
 #include <asm/frame.h>
 
-#define HPWDT_VERSION                  "1.3.3"
+#define HPWDT_VERSION                  "1.4.0"
 #define SECS_TO_TICKS(secs)            ((secs) * 1000 / 128)
 #define TICKS_TO_SECS(ticks)           ((ticks) * 128 / 1000)
 #define HPWDT_MAX_TIMER                        TICKS_TO_SECS(65535)
@@ -814,7 +814,8 @@ static int hpwdt_init_one(struct pci_dev *dev,
         * not run on a legacy ASM box.
         * So we only support the G5 ProLiant servers and higher.
         */
-       if (dev->subsystem_vendor != PCI_VENDOR_ID_HP) {
+       if (dev->subsystem_vendor != PCI_VENDOR_ID_HP &&
+           dev->subsystem_vendor != PCI_VENDOR_ID_HP_3PAR) {
                dev_warn(&dev->dev,
                        "This server does not have an iLO2+ ASIC.\n");
                return -ENODEV;
@@ -823,7 +824,8 @@ static int hpwdt_init_one(struct pci_dev *dev,
        /*
         * Ignore all auxilary iLO devices with the following PCI ID
         */
-       if (dev->subsystem_device == 0x1979)
+       if (dev->subsystem_vendor == PCI_VENDOR_ID_HP &&
+           dev->subsystem_device == 0x1979)
                return -ENODEV;
 
        if (pci_enable_device(dev)) {