RE: [PATCH v1] i2c: designware: save the preset value of DW_IC_SDA_HOLD

From: Lee, Zhuo-hao
Date: Tue Aug 30 2016 - 20:25:10 EST


>On Sat, Aug 27, 2016 at 03:39:30PM +0800, Zhuo-hao Lee wrote:
>> There are several ways to set the SDA hold time for i2c controller,
>> including: Device Tree, built-in device properties and ACPI. However,
>> if the SDA hold time is not specified by above method, we should read
>> the value, where it is preset by firmware, and save it to
>> sda_hold_time. This is needed because when i2c controller enters
>> runtime suspend, the DW_IC_SDA_HOLD value will be reset to chipset
>> default value. And during runtime resume, i2c_dw_init will be called
>> to reconfigure i2c controller. If sda_hold_time is zero, the chipset
>> default hold time will be used, that will be too short for some
>> platforms. Therefore, to have a better tolerance, the DW_IC_SDA_HOLD
>> value should be kept by sda_hold_time.
>>
>> Signed-off-by: Zhuo-hao Lee <zhuo-hao.lee@xxxxxxxxx>

>Looks good. But is it a bugfix? Looks more like for-next material to me, but not sure...
Yes, as least for me, this is a bug.
This is an error handling in case Device Tree, built-in device properties and ACPI were not set
the SDA hold time. We should use the firmware setting instead of chipset reset value.