summaryrefslogtreecommitdiff
path: root/drivers/watchdog/iTCO_wdt.c
AgeCommit message (Collapse)Author
2012-01-27watchdog: iTCO_wdt: add Intel Lynx Point DeviceIDsSeth Heasley
This patch adds the TCO Watchdog DeviceIDs for the Intel Lynx Point PCH. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-12-27watchdog: iTCO_wdt.c - problems with newer hardware due to SMI clearing (part 2)Wim Van Sebroeck
Redhat Bugzilla: Bug 727875 - TCO_EN bit is disabled by TCO driver The previous patch breaks reset watchdog behaviour on the older hardware. It is therefor better to make sure that the behaviour for older hardware (<=ICH5 or 6300ESB) is preserved and that the behaviour for newer hardware is changed. We therefor use the iTCO_version to see if we need the clearing of the SMI_TCO_EN bit in the SMI_EN register. So the new behaviour becomes: turn_SMI_watchdog_clear_off=0 -> Do not turn off SMI clearing watchdog. turn_SMI_watchdog_clear_off=1 -> Turn off SMI clearing watchdog when iTCO_version=1 (ICHO till ICH5 + 6300ESB only) turn_SMI_watchdog_clear_off=2 -> Turn off SMI clearing watchdog. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-11-05watchdog: iTCO_wdt.c - problems with newer hardware due to SMI clearingWim Van Sebroeck
Redhat Bugzilla: Bug 727875 - TCO_EN bit is disabled by TCO driver Jiri Slaby: 28d41f53f broke temperature sensors on a ICH10 chipset The iTCO_wdt driver disables the SMI. This breaks good working of newer hardware. The disabling of the SMI by the TCO logic dates back from the i810-tco driver from Nils Faerber (around 28 July 2000). The reason for this was that some BIOSes install handlers reset or disable the watchdog timer instead of resetting the system. The trick to fix this was to disable the SMI (by clearing the SMI_TCO_EN bit of the SMI_EN register) to prevent this from happening. This however has strange effects on newer hardware. So we are in a situation that a fix for broken old hardware affects newer hardware. The correct solution is to make this fix an option (with the new module parameter: turn_SMI_watchdog_clear_off) so that the default behaviour is the unfixed version. the next patch will be to move this in the start and stop functions of the driver and to add a new module parameter for the global_smi_en bit and to get rid of the vendor_support code. This fix can have an effect on old (typical ICH & ICH2 chipsets) motherboards that have a broken BIOS implementation concerning TCO logic. In these case the module parameter turn_SMI_watchdog_clear_off=1 will need to be added. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-07-26watchdog: remove empty pm-functionsWolfram Sang
While checking what watchdog drivers usually do in suspend/resume to spot common behaviour for the watchdog framework, I found these drivers which do nothing but add some cruft. Remove it, it is superfluous. New approaches should probably be done with pm_ops anyway. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-07-22watchdog: iTCO_wdt: clean-up PCI device ID'sWim Van Sebroeck
Clean up of the iTCO_wdt PCI device ID's. Own macro is replaced by the PCI_VDEVICE macro. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-04-26watchdog: iTCO_wdt: TCO Watchdog patch for Intel Panther Point PCHSeth Heasley
This patch adds the TCO Watchdog DeviceIDs for the Intel Panther Point PCH. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-03-15watchdog: cleanup spaces before tabsWim Van Sebroeck
cleanup spaces before tabs in drivers/watchdog/ Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-03-15watchdog: convert to DEFINE_PCI_DEVICE_TABLEWim Van Sebroeck
Convert static struct pci_device_id *[] to static DEFINE_PCI_DEVICE_TABLE tables. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-01-12watchdog: iTCO_wdt: TCO Watchdog patch for Intel DH89xxCC PCHSeth Heasley
This patch adds the DeviceIDs for TCO Watchdog on the Intel DH89xxCC PCH. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2011-01-12watchdog: iTCO_wdt: TCO Watchdog patch for Intel NM10 DeviceIDsWim Van Sebroeck
This patch adds the Intel NM10 DeviceIDs for iTCO Watchdog. Reported-by: Dan Weinlader <dan@weinlader.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2010-12-02watchdog: iTCO_wdt: TCO Watchdog patch for Intel Patsburg PCHSeth Heasley
This patch adds an additional LPC Controller DeviceID for the Intel Patsburg PCH for TCO Watchdog. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2010-10-28watchdog: iTCO_wdt.c: remove extra pci_dev_put()'s from init codePrarit Bhargava
The iTCO_wdt driver erroneously releases the pci_dev, and causes PCI hotremove to fail because of an incorrect usage count. The probe for this driver does a for_each_pci_dev() which gets a reference for a pci_dev when iTCO_wdt_init() is successful. The for_each_pci_dev() loop puts a reference for a pci_dev when iTCO_wdt_init() fails, so the iTCO_wdt_init() does not need to do any pci_dev_put()'s. The only pci_dev_put() that is required is in the iTCO_wdt_cleanup() function. Signed-off-by: Prarit Bhargava <prarit@redhat.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2010-10-28watchdog: iTCO_wdt: Cleanup warning messagesPrarit Bhargava
The current iTCO_wdt driver warnings are confusing. Currently when the device driver returns an error the console contains: iTCO_vendor_support: vendor-support=0 iTCO_wdt: Intel TCO WatchDog Timer Driver v1.05 iTCO_wdt: failed to reset NO_REBOOT flag, reboot disabled by hardware iTCO_wdt: No card detected After the patch, iTCO_vendor_support: vendor-support=0 iTCO_wdt: Intel TCO WatchDog Timer Driver v1.05 iTCO_wdt: failed to reset NO_REBOOT flag, device disabled by hardware/BIOS Clean this up and use the word "device" to describe the device. Signed-off-by: Prarit Bhargava <prarit@redhat.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2010-10-28watchdog: iTCO_wdt: TCO Watchdog patch for Intel Patsburg DeviceIDsSeth Heasley
This patch adds the Intel Patsburg (PCH) DeviceIDs for iTCO Watchdog. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2010-05-25iTCO_wdt: fix TCO V1 timeout values and limitsPádraig Brady
For TCO V1 devices the programmed timeout was twice too long because the fact that the TCO V1 timer needs to count down twice before triggering the watchdog, wasn't accounted for. Also the timeout values in the module description and error message were clarified. And the _STS registers are 16 bit instead of 8 bit. Signed-off-by: Pádraig Brady <P@draigBrady.com> Tested-by: Simon Kagstrom <simon.kagstrom@netinsight.se> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2010-04-06[WATCHDOG] iTCO_wdt: TCO Watchdog patch for additional Intel Cougar Point ↵Seth Heasley
DeviceIDs This patch adds the Intel Cougar Point PCH LPC Controller DeviceIDs for iTCO Watchdog. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be> Cc: stable <stable@kernel.org>
2010-03-07[WATCHDOG] watchdog_info constifyWim Van Sebroeck
make the watchdog_info struct const where possible. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2010-03-06[WATCHDOG] iTCO_wdt: clean up probe(), modify err msgNaga Chumbalkar
It's possible that the platform is not allowing reboot via TCO timer expiration. Also, differentiate between not finding a chipset that has TCO, and the case where TCO is present but the driver fails to initialize for some reason. Signed-off-by: Naga Chumbalkar <nagananda.chumbalkar@hp.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2010-01-18[WATCHDOG] iTCO_wdt: Add Intel Cougar Point and PCH DeviceIDsSeth Heasley
This patch adds the Intel Cougar Point and PCH DeviceIDs for iTCO Watchdog. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2009-12-23[WATCHDOG] iTCO_wdt: add PCI ID for the Intel EP80579 (Tolapai) SoCImre Kaloz
add PCI ID for the Intel EP80579 (Tolapai) SoC Signed-off-by: Imre Kaloz <kaloz@openwrt.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2009-12-04[WATCHDOG] iTCO_wdt.c - cleanup chipset documentationWim Van Sebroeck
Cleanup the documentation about the supported chipsets. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2009-12-04[WATCHDOG] iTCO_wdt: Add support for Intel Ibex PeakSeth Heasley
Add the Intel Ibex Peak (PCH) Device IDs to iTCO_wdt.c. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2009-06-18[WATCHDOG] iTCO_wdt: fix memory corruption when RCBA is disabled by hardwareDenis V. Lunev
According to 9.1.33 on p.343 of ICH8.pdf RCBA can be disabled by hardware if bit 0 of RCBA register is not set. Perform correct check for this to prevent memory corruption under some virtual machines where this feature is disabled. Signed-off-by: Denis V. Lunev <den@openvz.org> CC: Vasily Averin <vvs@openvz.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2009-06-18[WATCHDOG] iTCO_wdt: Cleanup codeWim Van Sebroeck
Clean-up the iTCO_wdt code so that checkpatch.pl get's happy... Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2009-03-25[WATCHDOG] More coding-style and trivial clean-upWim Van Sebroeck
Some more cleaning-up of the watchdog drivers. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2009-02-14[WATCHDOG] iTCO_wdt: fix SMI_EN regression 2Wim Van Sebroeck
bugzilla: #12363 commit 7cd5b08be3c489df11b559fef210b81133764ad4 added a second regression: some Dell's and Compaq's lockup on boot. So we revert most of the code. The ICH9 reboot issue remains in place and will need some more fixing... :-( Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-12-03iTCO_wdt: fix typo when setting TCO_EN bitLinus Torvalds
The code used '&= 0x00002000' when it tried to set the TCO_EN bit, which obviously didn't set that bit at all, but instead just reset all the other bits in the SMI_EN register. This bug seemingly caused various random behavior, with Frans Pop reporting that X.org just silently hung at startup and Rafael Wysocki reports the fan spinning with full speed. See http://lkml.org/lkml/2008/12/3/178 http://bugzilla.kernel.org/show_bug.cgi?id=12162 The problem seems to have been triggered by "[WATCHDOG] iTCO_wdt : problem with rebooting on new ICH9 based motherboards" (commit 7cd5b08be3c489df11b559fef210b81133764ad4), but the bogus code existed before that too (in the "supermicro_old_pre_stop()" function), it just apparently never showed up due to different logic. In that commit the broken code got moved around and now gets executed much more. Reported-by: Rafael J. Wysocki <rjw@sisk.pl> Tested-by: Frans Pop <elendil@planet.nl> Cc: Wim Van Sebroeck <wim@iguana.be> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-11-21[WATCHDOG] iTCO_wdt: add PCI ID's for ICH9 & ICH10 chipsetsWim Van Sebroeck
Add support for the following I/O controller hubs: ICH7DH, ICH9M, ICH9M-E, ICH10, ICH10R, ICH10D and ICH10DO. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-11-21[WATCHDOG] iTCO_wdt : correct status clearingWim Van Sebroeck
The iTCO_wdt code was not clearing the correct bits. It now clears the timeout status bit and then the SECOND_TO_STS bit and then the BOOT_STS bit. Note: we should first clear the SECOND_TO_STS bit before clearing the BOOT_STS bit. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-11-21[WATCHDOG] iTCO_wdt : problem with rebooting on new ICH9 based motherboardsWim Van Sebroeck
Bugzilla #9868: On Intel motherboards with the ICH9 based I/O controllers (Like DP35DP and DG33FB) the iTCO timer counts but it doesn't reboot the system after the counter expires. This patch fixes this by moving the enabling & disabling of the TCO_EN bit in the SMI_EN register into the start and stop code. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-08-06[WATCHDOG] more coding style clean-up'sWim Van Sebroeck
More coding style clean-up's. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-08-06[WATCHDOG] Coding style - Indentation - part 2Wim Van Sebroeck
This brings the watchdog drivers into line with coding style. This patch takes cares of the indentation as described in chapter 1. Main changes: * Re-structure the ioctl switch call for all drivers as follows: switch (cmd) { case WDIOC_GETSUPPORT: case WDIOC_GETSTATUS: case WDIOC_GETBOOTSTATUS: case WDIOC_GETTEMP: case WDIOC_SETOPTIONS: case WDIOC_KEEPALIVE: case WDIOC_SETTIMEOUT: case WDIOC_GETTIMEOUT: case WDIOC_GETTIMELEFT: default: } This to make the migration from the drivers to the uniform watchdog device driver easier in the future. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-05-28[WATCHDOG 18/57] iTCO: unlocked_ioctl, coding style and cleanupAlan Cox
Review and switch to unlocked_ioctl Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-05-25[WATCHDOG] Add ICH9DO into the iTCO_wdt.c driverGabriel C
Add the Intel ICH9DO controller ID's for the iTCO_wdt kernel driver and bump the driver version. Tested on an P5E-VM DO ASUS motherboard. Signed-off-by: Gabriel Craciunescu <nix.or.die@googlemail.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2007-11-02[WATCHDOG] iTCO_wdt.c ICH8 pci-device-id'sWim Van Sebroeck
Add the pci-device-id's for the ICH8M and the ICH8M-E chipsets. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2007-11-02[WATCHDOG] iTCO_wdt.c init & exit fixesWim Van Sebroeck
Mark init and exit procedures as __devinit & _-devexit. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2007-11-02[WATCHDOG] iTCO_wdt.c pci_device_id table clean-upWim Van Sebroeck
Make the pci_device_id table more readable. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2007-10-27[WATCHDOG] Unlock in iTCO_wdt_start when reboot is disabledRoel Kluin
Unlock in iTCO_wdt_start when reboot is disabled Signed-off-by: Roel Kluin <12o3l@tiscali.nl> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2007-10-18mv watchdog tree under driversWim Van Sebroeck
move watchdog tree from drivers/char/watchdog to drivers/watchdog. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>