I want to remove the above API this cycle, and just a few patches have not made it into 5.8-rc1. They have been reviewed and most had been promised to get into linux-next, but well, things happen. So, I hope it is okay for everyone to collect them like this and push them via I2C for 5.8-rc2.
One minor exception is the media documentation patch which I simply have missed so far, but it is trivial.
And then, finally, there is the removal of the old API as the final patch. Phew, that's been a long ride.
I am open for comments, of course.
Happy hacking,
Wolfram
Wolfram Sang (6): drm: encoder_slave: fix refcouting error for modules drm: encoder_slave: use new I2C API x86/platform/intel-mid: convert to use i2c_new_client_device() video: backlight: tosa_lcd: convert to use i2c_new_client_device() Documentation: media: convert to use i2c_new_client_device() i2c: remove deprecated i2c_new_device API
.../driver-api/media/v4l2-subdev.rst | 2 +- .../userspace-api/media/conf_nitpick.py | 2 +- arch/x86/platform/intel-mid/sfi.c | 4 +-- drivers/gpu/drm/drm_encoder_slave.c | 15 ++++------- drivers/i2c/i2c-core-base.c | 25 ------------------- drivers/video/backlight/tosa_lcd.c | 4 +-- include/linux/i2c.h | 8 +++--- 7 files changed, 14 insertions(+), 46 deletions(-)
module_put() balances try_module_get(), not request_module(). Fix the error path to match that.
Fixes: 2066facca4c7 ("drm/kms: slave encoder interface.") Signed-off-by: Wolfram Sang wsa+renesas@sang-engineering.com Reviewed-by: Emil Velikov emil.l.velikov@gmail.com ---
I'd like to push it via I2C for 5.8-rc2.
drivers/gpu/drm/drm_encoder_slave.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_encoder_slave.c b/drivers/gpu/drm/drm_encoder_slave.c index cf804389f5ec..d50a7884e69e 100644 --- a/drivers/gpu/drm/drm_encoder_slave.c +++ b/drivers/gpu/drm/drm_encoder_slave.c @@ -84,7 +84,7 @@ int drm_i2c_encoder_init(struct drm_device *dev,
err = encoder_drv->encoder_init(client, dev, encoder); if (err) - goto fail_unregister; + goto fail_module_put;
if (info->platform_data) encoder->slave_funcs->set_config(&encoder->base, @@ -92,9 +92,10 @@ int drm_i2c_encoder_init(struct drm_device *dev,
return 0;
+fail_module_put: + module_put(module); fail_unregister: i2c_unregister_device(client); - module_put(module); fail: return err; }
i2c_new_client() is deprecated, use the replacement i2c_new_client_device(). Also, we have a helper to check if a driver is bound. Use it to simplify the code. Note that this changes the errno for a failed device creation from ENOMEM to ENODEV. No callers currently interpret this errno, though, so we use this condensed error check.
Signed-off-by: Wolfram Sang wsa+renesas@sang-engineering.com Reviewed-by: Emil Velikov emil.l.velikov@gmail.com ---
I'd like to push it via I2C for 5.8-rc2.
drivers/gpu/drm/drm_encoder_slave.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/drm_encoder_slave.c b/drivers/gpu/drm/drm_encoder_slave.c index d50a7884e69e..e464429d32df 100644 --- a/drivers/gpu/drm/drm_encoder_slave.c +++ b/drivers/gpu/drm/drm_encoder_slave.c @@ -61,13 +61,8 @@ int drm_i2c_encoder_init(struct drm_device *dev,
request_module("%s%s", I2C_MODULE_PREFIX, info->type);
- client = i2c_new_device(adap, info); - if (!client) { - err = -ENOMEM; - goto fail; - } - - if (!client->dev.driver) { + client = i2c_new_client_device(adap, info); + if (!i2c_client_has_driver(client)) { err = -ENODEV; goto fail_unregister; } @@ -96,7 +91,6 @@ int drm_i2c_encoder_init(struct drm_device *dev, module_put(module); fail_unregister: i2c_unregister_device(client); -fail: return err; } EXPORT_SYMBOL(drm_i2c_encoder_init);
Move away from the deprecated API and return the shiny new ERRPTR where useful.
Signed-off-by: Wolfram Sang wsa+renesas@sang-engineering.com Reviewed-by: Daniel Thompson daniel.thompson@linaro.org ---
I'd like to push it via I2C for 5.8-rc2.
drivers/video/backlight/tosa_lcd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c index e8ab583e5098..113116d3585c 100644 --- a/drivers/video/backlight/tosa_lcd.c +++ b/drivers/video/backlight/tosa_lcd.c @@ -107,7 +107,7 @@ static void tosa_lcd_tg_on(struct tosa_lcd_data *data) /* TG LCD GVSS */ tosa_tg_send(spi, TG_PINICTL, 0x0);
- if (!data->i2c) { + if (IS_ERR_OR_NULL(data->i2c)) { /* * after the pannel is powered up the first time, * we can access the i2c bus so probe for the DAC @@ -119,7 +119,7 @@ static void tosa_lcd_tg_on(struct tosa_lcd_data *data) .addr = DAC_BASE, .platform_data = data->spi, }; - data->i2c = i2c_new_device(adap, &info); + data->i2c = i2c_new_client_device(adap, &info); } }
On Mon, 15 Jun 2020, Wolfram Sang wrote:
Move away from the deprecated API and return the shiny new ERRPTR where useful.
Signed-off-by: Wolfram Sang wsa+renesas@sang-engineering.com Reviewed-by: Daniel Thompson daniel.thompson@linaro.org
I'd like to push it via I2C for 5.8-rc2.
Go for it:
Acked-by: Lee Jones lee.jones@linaro.org
On Mon, Jun 15, 2020 at 09:58:09AM +0200, Wolfram Sang wrote:
I want to remove the above API this cycle, and just a few patches have not made it into 5.8-rc1. They have been reviewed and most had been promised to get into linux-next, but well, things happen. So, I hope it is okay for everyone to collect them like this and push them via I2C for 5.8-rc2.
for the drm side of things:
Acked-by: Daniel Vetter daniel.vetter@ffwll.ch
One minor exception is the media documentation patch which I simply have missed so far, but it is trivial.
And then, finally, there is the removal of the old API as the final patch. Phew, that's been a long ride.
I am open for comments, of course.
Happy hacking,
Wolfram
Wolfram Sang (6): drm: encoder_slave: fix refcouting error for modules drm: encoder_slave: use new I2C API x86/platform/intel-mid: convert to use i2c_new_client_device() video: backlight: tosa_lcd: convert to use i2c_new_client_device() Documentation: media: convert to use i2c_new_client_device() i2c: remove deprecated i2c_new_device API
.../driver-api/media/v4l2-subdev.rst | 2 +- .../userspace-api/media/conf_nitpick.py | 2 +- arch/x86/platform/intel-mid/sfi.c | 4 +-- drivers/gpu/drm/drm_encoder_slave.c | 15 ++++------- drivers/i2c/i2c-core-base.c | 25 ------------------- drivers/video/backlight/tosa_lcd.c | 4 +-- include/linux/i2c.h | 8 +++--- 7 files changed, 14 insertions(+), 46 deletions(-)
-- 2.27.0
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Hi all,
On Tue, 16 Jun 2020 at 13:12, Daniel Vetter daniel@ffwll.ch wrote:
On Mon, Jun 15, 2020 at 09:58:09AM +0200, Wolfram Sang wrote:
I want to remove the above API this cycle, and just a few patches have not made it into 5.8-rc1. They have been reviewed and most had been promised to get into linux-next, but well, things happen. So, I hope it is okay for everyone to collect them like this and push them via I2C for 5.8-rc2.
for the drm side of things:
Acked-by: Daniel Vetter daniel.vetter@ffwll.ch
One minor exception is the media documentation patch which I simply have missed so far, but it is trivial.
And then, finally, there is the removal of the old API as the final patch. Phew, that's been a long ride.
I am open for comments, of course.
Happy hacking,
Wolfram
Wolfram Sang (6): drm: encoder_slave: fix refcouting error for modules drm: encoder_slave: use new I2C API
The first two are in drm-misc-next and are to be expected with the 5.9 merge window. As long as that doesn't cause major nuisance proceed as you prefer.
-Emil
On Mon, Jun 15, 2020 at 09:58:09AM +0200, Wolfram Sang wrote:
I want to remove the above API this cycle, and just a few patches have not made it into 5.8-rc1. They have been reviewed and most had been promised to get into linux-next, but well, things happen. So, I hope it is okay for everyone to collect them like this and push them via I2C for 5.8-rc2.
One minor exception is the media documentation patch which I simply have missed so far, but it is trivial.
And then, finally, there is the removal of the old API as the final patch. Phew, that's been a long ride.
I am open for comments, of course.
Applied to for-current, thanks!
dri-devel@lists.freedesktop.org