Re: [PATCH v1] i2c: designware: Consider SCL GPIO optional

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

 



On 20/02/2018 19:01, Andy Shevchenko wrote:
On Sat, 2018-02-17 at 22:58 +0200, Andy Shevchenko wrote:
GPIO library can return -ENOSYS for the failed request.
Instead of failing ->probe() in this case override error code to 0.


Oops, Cc'ing Dominik.
Dominik, I meant this one.

Fixes: ca382f5b38f3 ("i2c: designware: add i2c gpio recovery option")
Reported-by: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
Cc: Tim Sander <tim@xxxxxxxxxxxxxxx>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
---
  drivers/i2c/busses/i2c-designware-master.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-designware-master.c
b/drivers/i2c/busses/i2c-designware-master.c
index ae691884d071..5778908351a2 100644
--- a/drivers/i2c/busses/i2c-designware-master.c
+++ b/drivers/i2c/busses/i2c-designware-master.c
@@ -644,7 +644,7 @@ static int i2c_dw_init_recovery_info(struct
dw_i2c_dev *dev)
  	gpio = devm_gpiod_get(dev->dev, "scl", GPIOD_OUT_HIGH);
  	if (IS_ERR(gpio)) {
  		r = PTR_ERR(gpio);
-		if (r == -ENOENT)
+		if (r == -ENOENT || r == -ENOSYS)
  			return 0;
  		return r;
  	}

Looking at this again, I think I should have used devm_gpiod_get_optional.
I think this would do the same thing. get_optional returns null instead of ENOSYS

   	gpio = devm_gpiod_get_optional(dev->dev, "scl", GPIOD_OUT_HIGH);
   	if (IS_ERR_OR_NULL(gpio))
   		return PTR_ERR(gpio);


--
Regards
Phil Reid



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux