mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
gpio: amd-fch: ionly return allowed values from amd_fch_gpio_get()
As of86ef402d80("gpiolib: sanitize the return value of gpio_chip::get()") gpiolib requires drivers implementing GPIOs to only return 0, 1 or negative error for the get() callbacks. Ensure that amd-fch complies with this requirement. Fixes:86ef402d80("gpiolib: sanitize the return value of gpio_chip::get()") Reported-and-tested-by: Tj <tj.iam.tj@proton.me> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Link: https://patch.msgid.link/aZTlwnvHt2Gho4yN@google.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
This commit is contained in:
parent
6766f59012
commit
fbd03587ba
|
|
@ -8,6 +8,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/kernel.h>
|
||||
|
|
@ -120,15 +121,15 @@ static int amd_fch_gpio_get(struct gpio_chip *gc,
|
|||
unsigned int offset)
|
||||
{
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
u32 val;
|
||||
struct amd_fch_gpio_priv *priv = gpiochip_get_data(gc);
|
||||
void __iomem *ptr = amd_fch_gpio_addr(priv, offset);
|
||||
|
||||
spin_lock_irqsave(&priv->lock, flags);
|
||||
ret = (readl_relaxed(ptr) & AMD_FCH_GPIO_FLAG_READ);
|
||||
val = readl_relaxed(ptr);
|
||||
spin_unlock_irqrestore(&priv->lock, flags);
|
||||
|
||||
return ret;
|
||||
return FIELD_GET(AMD_FCH_GPIO_FLAG_READ, val);
|
||||
}
|
||||
|
||||
static int amd_fch_gpio_request(struct gpio_chip *chip,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user