Re: [PATCH] i2c: cadence: try reset when master receive arbitration lost

2019-02-18 Thread Wolfram Sang
On Mon, Feb 18, 2019 at 05:41:32PM +0800, Shikai Wang wrote:
> When the adapter receive arbitration lost error interrupts,
> cdns_i2c_master_xfer return to the caller directly instead of resetting
> the adapter which resulted in the adapter being out of control.
> 
> So when driver detect err_status such as arbitration lost,
> then try to repair and fix it.

Thanks for working on this issue.

> Signed-off-by: Shikai Wang 
> Signed-off-by: Shubhrajyoti Datta 

Reading the previous thread, isn't this more of an acked-by or
reviewed-by than a Signed-off?

Also, is there a suitable Fixes tag?



signature.asc
Description: PGP signature


Re: [PATCH] i2c: cadence: try reset when master receive arbitration lost

2019-02-18 Thread Michal Simek
On 18. 02. 19 10:41, Shikai Wang wrote:
> When the adapter receive arbitration lost error interrupts,
> cdns_i2c_master_xfer return to the caller directly instead of resetting
> the adapter which resulted in the adapter being out of control.
> 
> So when driver detect err_status such as arbitration lost,
> then try to repair and fix it.
> 
> Signed-off-by: Shikai Wang 

ok. This is much better.

> Signed-off-by: Shubhrajyoti Datta 

I haven't see that Shubhrajyoti gave you this line that he is coauthor
of this.
It means you shouldn't add this SoB line if he didn't work on this.
He reviewed it that's why you should wait what he is going to sent.

Anyway based on email I see that this is 3rd version but I can't see any
version in subject and also description of changes.

That's why please take a look at this
Documentation/process/submitting-patches.rst

And send proper version. I would suggest to use v2 or v3.

Thanks,
Michal


[PATCH] i2c: cadence: try reset when master receive arbitration lost

2019-02-18 Thread Shikai Wang
When the adapter receive arbitration lost error interrupts,
cdns_i2c_master_xfer return to the caller directly instead of resetting
the adapter which resulted in the adapter being out of control.

So when driver detect err_status such as arbitration lost,
then try to repair and fix it.

Signed-off-by: Shikai Wang 
Signed-off-by: Shubhrajyoti Datta 
---
 drivers/i2c/busses/i2c-cadence.c | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/i2c/busses/i2c-cadence.c b/drivers/i2c/busses/i2c-cadence.c
index b13605718291..595b0d56ff1a 100644
--- a/drivers/i2c/busses/i2c-cadence.c
+++ b/drivers/i2c/busses/i2c-cadence.c
@@ -548,10 +548,6 @@ static int cdns_i2c_process_msg(struct cdns_i2c *id, 
struct i2c_msg *msg,
cdns_i2c_writereg(CDNS_I2C_IXR_ALL_INTR_MASK,
  CDNS_I2C_IDR_OFFSET);
 
-   /* If it is bus arbitration error, try again */
-   if (id->err_status & CDNS_I2C_IXR_ARB_LOST)
-   return -EAGAIN;
-
return 0;
 }
 
@@ -624,6 +620,12 @@ static int cdns_i2c_master_xfer(struct i2c_adapter *adap, 
struct i2c_msg *msgs,
if (id->err_status) {
cdns_i2c_master_reset(adap);
 
+   /* If it is bus arbitration error, try again */
+   if (id->err_status & CDNS_I2C_IXR_ARB_LOST) {
+   ret = -EAGAIN;
+   goto out;
+   }
+
if (id->err_status & CDNS_I2C_IXR_NACK) {
ret = -ENXIO;
goto out;
-- 
2.19.2




Re: [PATCH] i2c: cadence: try reset when master receive arbitration lost

2019-02-18 Thread Michal Simek
Hi,

On 18. 02. 19 9:35, sxauwsk wrote:
> When the adapter receive arbitration lost error interrupts,
> cdns_i2c_master_xfer return to the caller directly instead of resetting
> the adapter which resulted in the adapter being out of control.
> 
> So when driver detect err_status such as arbitration lost,
> then try to repair and fix it.
> 
> Signed-off-by: sxauwsk 

Can you please fix your name here? And also in subject.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs




signature.asc
Description: OpenPGP digital signature


[PATCH] i2c: cadence: try reset when master receive arbitration lost

2019-02-18 Thread sxauwsk
When the adapter receive arbitration lost error interrupts,
cdns_i2c_master_xfer return to the caller directly instead of resetting
the adapter which resulted in the adapter being out of control.

So when driver detect err_status such as arbitration lost,
then try to repair and fix it.

Signed-off-by: sxauwsk 
Signed-off-by: Shubhrajyoti Datta 
---
 drivers/i2c/busses/i2c-cadence.c | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/i2c/busses/i2c-cadence.c b/drivers/i2c/busses/i2c-cadence.c
index b13605718291..595b0d56ff1a 100644
--- a/drivers/i2c/busses/i2c-cadence.c
+++ b/drivers/i2c/busses/i2c-cadence.c
@@ -548,10 +548,6 @@ static int cdns_i2c_process_msg(struct cdns_i2c *id, 
struct i2c_msg *msg,
cdns_i2c_writereg(CDNS_I2C_IXR_ALL_INTR_MASK,
  CDNS_I2C_IDR_OFFSET);
 
-   /* If it is bus arbitration error, try again */
-   if (id->err_status & CDNS_I2C_IXR_ARB_LOST)
-   return -EAGAIN;
-
return 0;
 }
 
@@ -624,6 +620,12 @@ static int cdns_i2c_master_xfer(struct i2c_adapter *adap, 
struct i2c_msg *msgs,
if (id->err_status) {
cdns_i2c_master_reset(adap);
 
+   /* If it is bus arbitration error, try again */
+   if (id->err_status & CDNS_I2C_IXR_ARB_LOST) {
+   ret = -EAGAIN;
+   goto out;
+   }
+
if (id->err_status & CDNS_I2C_IXR_NACK) {
ret = -ENXIO;
goto out;
-- 
2.19.2