28 Dec, 2011

1 commit

  • 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 ( 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 Van Sebroeck
     

06 Nov, 2011

1 commit

  • 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 Van Sebroeck
     

27 Jul, 2011

1 commit

  • 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
    Signed-off-by: Wim Van Sebroeck

    Wolfram Sang
     

22 Jul, 2011

1 commit


26 Apr, 2011

1 commit


16 Mar, 2011

2 commits


12 Jan, 2011

2 commits


02 Dec, 2010

1 commit


29 Oct, 2010

3 commits

  • 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
    Signed-off-by: Wim Van Sebroeck

    Prarit 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
    Signed-off-by: Wim Van Sebroeck

    Prarit Bhargava
     
  • This patch adds the Intel Patsburg (PCH) DeviceIDs for iTCO Watchdog.

    Signed-off-by: Seth Heasley
    Signed-off-by: Wim Van Sebroeck

    Seth Heasley
     

25 May, 2010

1 commit

  • 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
    Tested-by: Simon Kagstrom
    Signed-off-by: Wim Van Sebroeck

    Pádraig Brady
     

06 Apr, 2010

1 commit


07 Mar, 2010

1 commit


06 Mar, 2010

1 commit


19 Jan, 2010

1 commit


24 Dec, 2009

1 commit


04 Dec, 2009

2 commits


18 Jun, 2009

2 commits


25 Mar, 2009

1 commit


14 Feb, 2009

1 commit


04 Dec, 2008

1 commit

  • 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
    Tested-by: Frans Pop
    Cc: Wim Van Sebroeck
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

21 Nov, 2008

3 commits


07 Aug, 2008

1 commit


06 Aug, 2008

1 commit

  • 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 Van Sebroeck
     

28 May, 2008

1 commit


25 May, 2008

1 commit


03 Nov, 2007

3 commits


27 Oct, 2007

1 commit


18 Oct, 2007

1 commit