Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

watchdog: hpwdt: add support for iLO5

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>

authored by

Brian Boylston and committed by
Wim Van Sebroeck
fc113d54 97beb3ae

+5 -3
+5 -3
drivers/watchdog/hpwdt.c
··· 39 39 #include <asm/nmi.h> 40 40 #include <asm/frame.h> 41 41 42 - #define HPWDT_VERSION "1.3.3" 42 + #define HPWDT_VERSION "1.4.0" 43 43 #define SECS_TO_TICKS(secs) ((secs) * 1000 / 128) 44 44 #define TICKS_TO_SECS(ticks) ((ticks) * 128 / 1000) 45 45 #define HPWDT_MAX_TIMER TICKS_TO_SECS(65535) ··· 814 814 * not run on a legacy ASM box. 815 815 * So we only support the G5 ProLiant servers and higher. 816 816 */ 817 - if (dev->subsystem_vendor != PCI_VENDOR_ID_HP) { 817 + if (dev->subsystem_vendor != PCI_VENDOR_ID_HP && 818 + dev->subsystem_vendor != PCI_VENDOR_ID_HP_3PAR) { 818 819 dev_warn(&dev->dev, 819 820 "This server does not have an iLO2+ ASIC.\n"); 820 821 return -ENODEV; ··· 824 823 /* 825 824 * Ignore all auxilary iLO devices with the following PCI ID 826 825 */ 827 - if (dev->subsystem_device == 0x1979) 826 + if (dev->subsystem_vendor == PCI_VENDOR_ID_HP && 827 + dev->subsystem_device == 0x1979) 828 828 return -ENODEV; 829 829 830 830 if (pci_enable_device(dev)) {