[PATCH] realtek: ZyXEL GS1900-48: drop gpio-restart

Birger Koblitz mail at birger-koblitz.de
Sun Feb 20 12:13:24 PST 2022


Hi,

during development I came across situations where the RTL839x
SoC's own reset did not always completely reset its state.
U-Boot was no longer able to boot via tftp afterwards.
This is the same situation we see on the RTL838x.
While users will hopefully never mess up the SoC as during
development, I would prefer a solution that reliably
resets the device over a solution that avoids a warning.
At least we should have a comment in, that states that
once this is fixed in libgpiod this should be the way
to reset the device. And we should look into fixing libgpiod.

Cheers,
   Birger


On 20/02/2022 19:50, Sander Vanheule wrote:
> GPIO 5 on the RTL8231 can be used to reset the system, but gpio-restart
> uses gpiod_set_value. This triggers a kernel warning and backtrace for
> GPIO pins that can sleep, such as the RTL8231's. Two warnings are
> emitted by libgpiod, and a third warning by gpio-restart itself after it
> fails to restart the system:
> 
> [  106.654008] ------------[ cut here ]------------
> [  106.659240] WARNING: CPU: 0 PID: 4279 at drivers/gpio/gpiolib.c:3098 gpiod_set_value+0x7c/0x108
>                 [ Stack dump and call trace ]
> [  106.826218] ---[ end trace d1de50b401f5a153 ]---
> [  106.962992] ------------[ cut here ]------------
> [  106.968208] WARNING: CPU: 0 PID: 4279 at drivers/gpio/gpiolib.c:3098 gpiod_set_value+0x7c/0x108
>                 [ Stack dump and call trace ]
> [  107.136718] ---[ end trace d1de50b401f5a154 ]---
> [  111.087092] ------------[ cut here ]------------
> [  111.092271] WARNING: CPU: 0 PID: 4279 at drivers/power/reset/gpio-restart.c:46 gpio_restart_notify+0xc0/0xdc
>                 [ Stack dump and call trace ]
> [  111.256629] ---[ end trace d1de50b401f5a155 ]---
> 
> By removing gpio-restart from this device, we skip the restart-by-GPIO
> attempt and rely only on the watchdog for restarts, which is already the
> de facto behaviour.
> 
> Signed-off-by: Sander Vanheule <sander at svanheule.net>
> ---
>   target/linux/realtek/dts-5.10/rtl8393_zyxel_gs1900-48.dts | 5 -----
>   1 file changed, 5 deletions(-)
> 
> diff --git a/target/linux/realtek/dts-5.10/rtl8393_zyxel_gs1900-48.dts b/target/linux/realtek/dts-5.10/rtl8393_zyxel_gs1900-48.dts
> index dd392c5a9beb..e0e79068d2bc 100644
> --- a/target/linux/realtek/dts-5.10/rtl8393_zyxel_gs1900-48.dts
> +++ b/target/linux/realtek/dts-5.10/rtl8393_zyxel_gs1900-48.dts
> @@ -39,11 +39,6 @@
>   		gpio-controller;
>   	};
>   
> -	gpio-restart {
> -		compatible = "gpio-restart";
> -		gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
> -	};
> -
>   	keys {
>   		compatible = "gpio-keys-polled";
>   		poll-interval = <20>;



More information about the openwrt-devel mailing list