RE: [PATCH v8] i2c: designware: fix master is holding SCL low while ENABLE bit is disabled

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

 



Hi Jarkko 

>-----Original Message-----
>From: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx> 
>Sent: 2024年9月10日 17:03
>To: Liu Kimriver/刘金河 <kimriver.liu@xxxxxxxxxxxx>
>Cc: andriy.shevchenko@xxxxxxxxxxxxxxx; mika.westerberg@xxxxxxxxxxxxxxx; jsd@xxxxxxxxxxxx; andi.shyti@xxxxxxxxxx; linux-i2c@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
>Subject: Re: [PATCH v8] i2c: designware: fix master is holding SCL low while ENABLE bit is disabled

>On 9/10/24 9:13 AM, Kimriver Liu wrote:
>> It was observed issuing ABORT bit(IC_ENABLE[1]) will not work when 
>> IC_ENABLE is already disabled.
>> 
>> Check if ENABLE bit(IC_ENABLE[0]) is disabled when the master is 
>> holding SCL low. If ENABLE bit is disabled, the software need enable 
>> it before trying to issue ABORT bit. otherwise, the controller ignores 
>> any write to ABORT bit.
>> 
>> Signed-off-by: Kimriver Liu <kimriver.liu@xxxxxxxxxxxx>
>> Reviewed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx>
>> 
>> ---
>> V7->V8:
>> 	1.calculate this delay based on the actual speed in use
>> 	  fsleep(DIV_ROUND_CLOSEST_ULL(10 * MICRO, t->bus_freq_hz))
>> 	2. add Reviewed-by: Mika Westerberg<mika.westerberg@xxxxxxxxxxxxxxx>
>> V6->V7:
>> 	1. add Subject versioning [PATCH v7]
>> 	2. change fsleep(25) to usleep_range(25, 250)
>> 	3. Add macro definition DW_iC_ENABLE_ENABLE to fix compile errors
>> 	  | Reported-by: kernel test robot <lkp@xxxxxxxxx>
>> 	  | Closes:https://lore.kernel.org/oe-kbuild-all/202409082011.9JF6aYsk-lkp@xxxxxxxxx/
>> 	4. base: 
>> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commi
>> t/?h=master
>> V5->V6: restore i2c_dw_is_master_idling() function checking
>> V4->V5: delete master idling checking
>> V3->V4:
>> 	1. update commit messages and add patch version and changelog
>> 	2. move print the error message in i2c_dw_xfer
>> V2->V3: change (!enable) to (!(enable & DW_IC_ENABLE_ENABLE))
>> V1->V2: used standard words in function names and addressed review 
>> V1->comments
>> 
>> link to V1:
>> https://lore.kernel.org/lkml/20240904064224.2394-1-kimriver.liu@siengi
>> ne.com/
>> ---
>>   drivers/i2c/busses/i2c-designware-common.c | 13 +++++++++++++
>>   drivers/i2c/busses/i2c-designware-core.h   |  1 +
>>   drivers/i2c/busses/i2c-designware-master.c | 22 ++++++++++++++++++++++
>>   3 files changed, 36 insertions(+)
>> 
>Acked-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>

Thanks for the Acked!

I will update a new version V9 based on Andy's suggestions.

------------------------------------------
Best Regards
Kimriver Liu




[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