RE: [PATCH/RFC v2 1/2] gpio: rcar: Optimize GPIO pin state read on R-Car Gen3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Geert-san,

Thank you for the patch!

> From: Geert Uytterhoeven, Sent: Friday, October 30, 2020 5:15 PM
> 
> Currently, the R-Car GPIO driver treats R-Car Gen2 and R-Car Gen3 GPIO
> controllers the same.  However, there exist small differences, like the
> behavior of the General Input Register (INDT):
>   - On R-Car Gen1, R-Car Gen2, and RZ/G1, INDT only reflects the state
>     of an input pin if the GPIO is configured for input,
>   - On R-Car Gen3 and RZ/G2, INDT always reflects the state of the input
>     pins.
> Hence to accommodate all variants, the driver does not use the INDT
> register to read the status of a GPIO line when configured for output,
> at the expense of doing 2 or 3 register reads instead of 1.
> 
> Given register accesses are slow, change the .get() and .get_multiple()
> callbacks to always use INDT to read pin state on SoCs where this is
> supported.
> 
> Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
<snip>
> @@ -302,9 +303,9 @@ static int gpio_rcar_get(struct gpio_chip *chip, unsigned offset)
>  	struct gpio_rcar_priv *p = gpiochip_get_data(chip);
>  	u32 bit = BIT(offset);
> 
> -	/* testing on r8a7790 shows that INDT does not show correct pin state
> -	 * when configured as output, so use OUTDT in case of output pins */
> -	if (gpio_rcar_read(p, INOUTSEL) & bit)
> +	/* Before R-Car Gen3, INDT does not show correct pin state when
> +	 * configured as output, so use OUTDT in case of output pins */

nit: checkpatch.pl said warning as the following.
---
WARNING: Block comments use a trailing */ on a separate line
#46: FILE: drivers/gpio/gpio-rcar.c:307:
+        * configured as output, so use OUTDT in case of output pins */

total: 0 errors, 1 warnings, 72 lines checked
---

Regardless:

Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>

Best regards,
Yoshihiro Shimoda





[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux