Loading PKGBUILD +5 −3 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ pkgname=linux-seblu pkgver=5.14.14 pkgrel=1 pkgrel=2 pkgdesc='The Linux Kernel cooked by Seblu' arch=('x86_64') license=('GPL2') Loading @@ -19,9 +19,11 @@ install=linux-seblu.install _main=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git _stable=https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git source=("git+$_stable#tag=v5.14.14" "config.$CARCH") "config.$CARCH" 'Revert-watchdog-iTCO_wdt-Account-for-rebooting-on-second-timeout.diff') sha256sums=('SKIP' '02ad39779449a9d3443889f1de68af129759b28fc513e3e9b8016d48622f1bf9') '02ad39779449a9d3443889f1de68af129759b28fc513e3e9b8016d48622f1bf9' 'df6fb7b3468e66b443a80d7f61144cdd8602b13f36490996c0dc79bbc175be45') prepare() { [[ -d linux-stable ]] && ln -snf linux-stable linux Loading Revert-watchdog-iTCO_wdt-Account-for-rebooting-on-second-timeout.diff 0 → 100644 +37 −0 Original line number Diff line number Diff line diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c index 643c6c2d0b72..ced2fc0deb8c 100644 --- a/drivers/watchdog/iTCO_wdt.c +++ b/drivers/watchdog/iTCO_wdt.c @@ -71,8 +71,6 @@ #define TCOBASE(p) ((p)->tco_res->start) /* SMI Control and Enable Register */ #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 TCOv1_TMR(p) (TCOBASE(p) + 0x01) /* TCOv1 Timer Initial Value*/ @@ -357,12 +355,8 @@ static int iTCO_wdt_set_timeout(struct watchdog_device *wd_dev, unsigned int t) tmrval = seconds_to_ticks(p, t); - /* - * If TCO SMIs are off, the timer counts down twice before rebooting. - * Otherwise, the BIOS generally reboots when the SMI triggers. - */ - if (p->smi_res && - (inl(SMI_EN(p)) & (TCO_EN | GBL_SMI_EN)) != (TCO_EN | GBL_SMI_EN)) + /* For TCO v1 the timer counts down twice before rebooting */ + if (p->iTCO_version == 1) tmrval /= 2; /* from the specs: */ @@ -527,7 +521,7 @@ static int iTCO_wdt_probe(struct platform_device *pdev) * Disables TCO logic generating an SMI# */ 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)); } Loading
PKGBUILD +5 −3 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ pkgname=linux-seblu pkgver=5.14.14 pkgrel=1 pkgrel=2 pkgdesc='The Linux Kernel cooked by Seblu' arch=('x86_64') license=('GPL2') Loading @@ -19,9 +19,11 @@ install=linux-seblu.install _main=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git _stable=https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git source=("git+$_stable#tag=v5.14.14" "config.$CARCH") "config.$CARCH" 'Revert-watchdog-iTCO_wdt-Account-for-rebooting-on-second-timeout.diff') sha256sums=('SKIP' '02ad39779449a9d3443889f1de68af129759b28fc513e3e9b8016d48622f1bf9') '02ad39779449a9d3443889f1de68af129759b28fc513e3e9b8016d48622f1bf9' 'df6fb7b3468e66b443a80d7f61144cdd8602b13f36490996c0dc79bbc175be45') prepare() { [[ -d linux-stable ]] && ln -snf linux-stable linux Loading
Revert-watchdog-iTCO_wdt-Account-for-rebooting-on-second-timeout.diff 0 → 100644 +37 −0 Original line number Diff line number Diff line diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c index 643c6c2d0b72..ced2fc0deb8c 100644 --- a/drivers/watchdog/iTCO_wdt.c +++ b/drivers/watchdog/iTCO_wdt.c @@ -71,8 +71,6 @@ #define TCOBASE(p) ((p)->tco_res->start) /* SMI Control and Enable Register */ #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 TCOv1_TMR(p) (TCOBASE(p) + 0x01) /* TCOv1 Timer Initial Value*/ @@ -357,12 +355,8 @@ static int iTCO_wdt_set_timeout(struct watchdog_device *wd_dev, unsigned int t) tmrval = seconds_to_ticks(p, t); - /* - * If TCO SMIs are off, the timer counts down twice before rebooting. - * Otherwise, the BIOS generally reboots when the SMI triggers. - */ - if (p->smi_res && - (inl(SMI_EN(p)) & (TCO_EN | GBL_SMI_EN)) != (TCO_EN | GBL_SMI_EN)) + /* For TCO v1 the timer counts down twice before rebooting */ + if (p->iTCO_version == 1) tmrval /= 2; /* from the specs: */ @@ -527,7 +521,7 @@ static int iTCO_wdt_probe(struct platform_device *pdev) * Disables TCO logic generating an SMI# */ 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)); }