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

From: sxauwsk@xxxxxxx
Date: Fri Nov 08 2019 - 07:25:31 EST


>Hi Shikai,
>
>On Tue, Nov 5, 2019 at 2:18 PM sxauwsk@xxxxxxx <sxauwsk@xxxxxxx> wrote:
>>
>> >Hi Shikai,
>> >
>> >On Tue, Feb 19, 2019 at 8:19 AM Shikai Wang <sxauwsk@xxxxxxx> 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.
>> >>
>> >I am missing the issue that you are facing.
>> >You are having a multimaster scenario and getting arbitration lost.
>> >
>> >the current code would attempt a retry did that lead to any issues?
>> >
>> >Can you explain the issue that you are facing?
>>
>> Of cource, The following describe my situation.
>>
>> In my product, Touchscreen connect to zynq-7000 XC7Z010 by i2c bus( Just connect only one i2c-device of touchscreen),
>> when user tap Touchscreen, Touchscreen interrupt send to CPU and notifyed i2c-driver to obtain location data by i2c-bus,
>
>So it is single master single slave.
>>
>> when Tap the screen frequently, sometimes CPU get interrupt from touchscreen and try to obtain data, then detect arbitration lost,
>the arbitration lost is surprising in non-multimaster scenario.
>Is there any other master in the configuration that we may not be triggering.
>Or can you probe the lines?
>
>> Although i2c-driver try three times, it's useless.
>
>You get bus busy? what is the issue.
>>
>> Actually i2c clock-line and data-line keep high, that mean i2c bus free.
>> Once this situation occur, i2c-control did't work anynay but cpu receive interrputs still.
>>
>> I am sorry that I have't found a good solution for this issuse;

Yes, ÂI can't believe that, ÂMaybe caused by the hardware environment or any other well.
Additionally I have't Âprobe this issue recently.Â