mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
Revert "watchdog: iTCO_wdt: Account for rebooting on second timeout"
This reverts commit39ed17de8cwhich is commitcb011044e3upstream. It is reported to cause problems with systems and probably should not have been backported in the first place :( Link: https://lore.kernel.org/r/20210803165108.4154cd52@endymion Reported-by: Jean Delvare <jdelvare@suse.de> Cc: Jan Kiszka <jan.kiszka@siemens.com> Cc: Guenter Roeck <linux@roeck-us.net> Cc: Guenter Roeck <linux@roeck-us.net> Cc: Wim Van Sebroeck <wim@linux-watchdog.org> Cc: Sasha Levin <sashal@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
@@ -73,8 +73,6 @@
|
|||||||
#define TCOBASE(p) ((p)->tco_res->start)
|
#define TCOBASE(p) ((p)->tco_res->start)
|
||||||
/* SMI Control and Enable Register */
|
/* SMI Control and Enable Register */
|
||||||
#define SMI_EN(p) ((p)->smi_res->start)
|
#define SMI_EN(p) ((p)->smi_res->start)
|
||||||
#define TCO_EN (1 << 13)
|
|
||||||
#define GBL_SMI_EN (1 << 0)
|
|
||||||
|
|
||||||
#define TCO_RLD(p) (TCOBASE(p) + 0x00) /* TCO Timer Reload/Curr. Value */
|
#define TCO_RLD(p) (TCOBASE(p) + 0x00) /* TCO Timer Reload/Curr. Value */
|
||||||
#define TCOv1_TMR(p) (TCOBASE(p) + 0x01) /* TCOv1 Timer Initial Value*/
|
#define TCOv1_TMR(p) (TCOBASE(p) + 0x01) /* TCOv1 Timer Initial Value*/
|
||||||
@@ -359,12 +357,8 @@ static int iTCO_wdt_set_timeout(struct watchdog_device *wd_dev, unsigned int t)
|
|||||||
|
|
||||||
tmrval = seconds_to_ticks(p, t);
|
tmrval = seconds_to_ticks(p, t);
|
||||||
|
|
||||||
/*
|
/* For TCO v1 the timer counts down twice before rebooting */
|
||||||
* If TCO SMIs are off, the timer counts down twice before rebooting.
|
if (p->iTCO_version == 1)
|
||||||
* Otherwise, the BIOS generally reboots when the SMI triggers.
|
|
||||||
*/
|
|
||||||
if (p->smi_res &&
|
|
||||||
(SMI_EN(p) & (TCO_EN | GBL_SMI_EN)) != (TCO_EN | GBL_SMI_EN))
|
|
||||||
tmrval /= 2;
|
tmrval /= 2;
|
||||||
|
|
||||||
/* from the specs: */
|
/* from the specs: */
|
||||||
@@ -529,7 +523,7 @@ static int iTCO_wdt_probe(struct platform_device *pdev)
|
|||||||
* Disables TCO logic generating an SMI#
|
* Disables TCO logic generating an SMI#
|
||||||
*/
|
*/
|
||||||
val32 = inl(SMI_EN(p));
|
val32 = inl(SMI_EN(p));
|
||||||
val32 &= ~TCO_EN; /* Turn off SMI clearing watchdog */
|
val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */
|
||||||
outl(val32, SMI_EN(p));
|
outl(val32, SMI_EN(p));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user