• Vladimir Zapolskiy's avatar
    drm: dw_hdmi: use of_get_i2c_adapter_by_node interface · 9f04a1f2
    Vladimir Zapolskiy authored
    This change is needed to properly lock I2C bus driver, which serves
    DDC.
    
    The change fixes an overflow over zero of I2C bus driver user counter:
    
      root@imx6q:~# lsmod
      Not tainted
      dw_hdmi_ahb_audio 4082 0 - Live 0xbf02c000
      dw_hdmi_imx 3498 0 - Live 0xbf00d000
      dw_hdmi 16398 2 dw_hdmi_ahb_audio,dw_hdmi_imx, Live 0xbf004000
      i2c_imx 16687 0 - Live 0xbf017000
    
      root@imx6q:~# rmmod dw_hdmi_imx
      root@imx6q:~# lsmod
      Not tainted
      dw_hdmi_ahb_audio 4082 0 - Live 0xbf02c000
      dw_hdmi 16398 1 dw_hdmi_ahb_audio, Live 0xbf004000
      i2c_imx 16687 -1 - Live 0xbf017000
                    ^^
    
      root@imx6q:~# rmmod i2c_imx
      rmmod: ERROR: Module i2c_imx is in use
    
    Note that prior to this change put_device() coupled with
    of_find_i2c_adapter_by_node() was missing on error path of
    dw_hdmi_bind(), added i2c_put_adapter() there along with the change.
    Signed-off-by: default avatarVladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
    Acked-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    Cc: Fabio Estevam <fabio.estevam@nxp.com>
    Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
    9f04a1f2
dw-hdmi.c 50.5 KB