Hi Thierry
On Wed, Apr 08, 2020 at 08:02:44PM +0200, Thierry Reding wrote:
From: Thierry Reding treding@nvidia.com
In order to properly release the I2C adapter used for DDC/CI, use the i2c_put_adapter() function provided by the I2C subsystem rather than the put_device() function which doesn't include code to drop a reference to the adapter's owner module.
Is this a problem for the other users too?
$ cd drivers/gpu/drm; git grep put_device | grep ddc
exynos/exynos_hdmi.c: put_device(&hdata->ddc_adpt->dev); exynos/exynos_hdmi.c: put_device(&hdata->ddc_adpt->dev); panel/panel-simple.c: put_device(&panel->ddc->dev); panel/panel-simple.c: put_device(&panel->ddc->dev); tegra/output.c: put_device(&output->ddc->dev); vc4/vc4_hdmi.c: put_device(&hdmi->ddc->dev); vc4/vc4_hdmi.c: put_device(&hdmi->ddc->dev);
??
Sam
Signed-off-by: Thierry Reding treding@nvidia.com
drivers/gpu/drm/tegra/output.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/tegra/output.c b/drivers/gpu/drm/tegra/output.c index a264259b97a2..136fd2f56af0 100644 --- a/drivers/gpu/drm/tegra/output.c +++ b/drivers/gpu/drm/tegra/output.c @@ -177,7 +177,7 @@ void tegra_output_remove(struct tegra_output *output) free_irq(output->hpd_irq, output);
if (output->ddc)
put_device(&output->ddc->dev);
i2c_put_adapter(output->ddc);
}
int tegra_output_init(struct drm_device *drm, struct tegra_output *output)
2.24.1
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel