[PATCH v2 0/3] drm: fix i2c adapter device driver user counter

Vladimir Zapolskiy vladimir_zapolskiy at mentor.com
Mon Nov 30 06:19:12 PST 2015


David, Russell,

ping. No response for more than 2 months.

On 02.11.2015 17:10, Vladimir Zapolskiy wrote:
> David, Russell,
> 
> ping.
> 
> On 12.10.2015 16:15, Vladimir Zapolskiy wrote:
>> David, Russell,
>>
>> ping.
>>
>> On 23.09.2015 00:46, Vladimir Zapolskiy wrote:
>>> of_find_i2c_adapter_by_node() call requires quite often missing
>>> put_device(), and i2c_put_adapter() releases a device locked by
>>> i2c_get_adapter() only.
>>>
>>> Below is a common error reproduction scenario as a result of the
>>> misusage described above (this is run on iMX6 platform with
>>> HDMI and I2C bus drivers compiled as kernel modules for clearness):
>>>
>>>     root at mx6q:~# lsmod | grep i2c
>>>     i2c_imx                15348  0
>>>     root at mx6q:~# lsmod | grep dw_hdmi_imx
>>>     dw_hdmi_imx             3567  0
>>>     dw_hdmi                15850  1 dw_hdmi_imx
>>>     imxdrm                  8610  3 dw_hdmi_imx,imx_ipuv3_crtc,imx_ldb
>>>     root at mx6q:~# rmmod dw_hdmi_imx
>>>     root at mx6q:~# lsmod | grep i2c
>>>     i2c_imx                15348  -1
>>>
>>>                                  ^^^^^
>>>
>>>     root at mx6q:~# rmmod i2c_imx
>>>     rmmod: ERROR: Module i2c_imx is in use
>>>
>>> To fix existing users of these interfaces use of_get_i2c_adapter_by_node()
>>> interface, which is similar to i2c_get_adapter() in sense that an I2C bus
>>> device driver found and locked by a user can be correctly unlocked by
>>> i2c_put_adapter() call.
>>>
>>> Changes from v1 to v2:
>>> - none, this series is a straightforward bugfix, v1 was a blend of
>>>   I2C core changes, bugfixes and improvements
>>>
>>> The change is based on dri/drm-next.
>>>
>>> Vladimir Zapolskiy (3):
>>>   drm: dw_hdmi: use of_get_i2c_adapter_by_node interface
>>>   drm: tilcdc: use of_get_i2c_adapter_by_node interface
>>>   drm: tegra: use of_get_i2c_adapter_by_node interface
>>>
>>>  drivers/gpu/drm/bridge/dw_hdmi.c       | 14 +++++++++-----
>>>  drivers/gpu/drm/tegra/output.c         | 23 ++++++++++++-----------
>>>  drivers/gpu/drm/tilcdc/tilcdc_tfp410.c |  6 ++----
>>>  3 files changed, 23 insertions(+), 20 deletions(-)
>>>
>>
> 

--
With best wishes,
Vladimir



More information about the dri-devel mailing list