diff options
| author | Andy Yan <andy.yan@rock-chips.com> | 2025-05-12 20:46:08 +0800 |
|---|---|---|
| committer | Heiko Stuebner <heiko@sntech.de> | 2025-07-08 17:44:08 +0200 |
| commit | 078bb17c7bbfe5bb119943fb7a9ef4f9a8c8c543 (patch) | |
| tree | 9bad3ada22caaf551dc4f9b10f563b88d9947eb5 /drivers/gpu | |
| parent | drm/rockchip: inno_hdmi: Use sleep_range instead of udelay (diff) | |
| download | linux-078bb17c7bbfe5bb119943fb7a9ef4f9a8c8c543.tar.gz linux-078bb17c7bbfe5bb119943fb7a9ef4f9a8c8c543.zip | |
drm/rockchip: inno_hdmi: switch i2c registration to devm functions
Switch from i2c_add_adapter() to resource managed
devm_i2c_add_adapter(), which will make the cleanup code more simpler.
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20250512124615.2848731-8-andyshrk@163.com
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/rockchip/inno_hdmi.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c index f36280306079..776a2aa74e49 100644 --- a/drivers/gpu/drm/rockchip/inno_hdmi.c +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c @@ -1230,10 +1230,9 @@ static struct i2c_adapter *inno_hdmi_i2c_adapter(struct inno_hdmi *hdmi) strscpy(adap->name, "Inno HDMI", sizeof(adap->name)); i2c_set_adapdata(adap, hdmi); - ret = i2c_add_adapter(adap); + ret = devm_i2c_add_adapter(hdmi->dev, adap); if (ret) { dev_warn(hdmi->dev, "cannot add %s I2C adapter\n", adap->name); - devm_kfree(hdmi->dev, i2c); return ERR_PTR(ret); } @@ -1316,7 +1315,7 @@ static int inno_hdmi_bind(struct device *dev, struct device *master, ret = inno_hdmi_register(drm, hdmi); if (ret) - goto err_put_adapter; + goto err_disable_clk; dev_set_drvdata(dev, hdmi); @@ -1330,8 +1329,6 @@ static int inno_hdmi_bind(struct device *dev, struct device *master, err_cleanup_hdmi: hdmi->connector.funcs->destroy(&hdmi->connector); hdmi->encoder.encoder.funcs->destroy(&hdmi->encoder.encoder); -err_put_adapter: - i2c_put_adapter(hdmi->ddc); err_disable_clk: clk_disable_unprepare(hdmi->refclk); err_disable_pclk: @@ -1347,7 +1344,6 @@ static void inno_hdmi_unbind(struct device *dev, struct device *master, hdmi->connector.funcs->destroy(&hdmi->connector); hdmi->encoder.encoder.funcs->destroy(&hdmi->encoder.encoder); - i2c_put_adapter(hdmi->ddc); clk_disable_unprepare(hdmi->refclk); clk_disable_unprepare(hdmi->pclk); } |
