dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] remove deprecated i2c_new_device API
@ 2020-06-15  7:58 Wolfram Sang
  2020-06-15  7:58 ` [PATCH 1/6] drm: encoder_slave: fix refcouting error for modules Wolfram Sang
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Wolfram Sang @ 2020-06-15  7:58 UTC (permalink / raw)
  To: linux-i2c
  Cc: linux-fbdev, x86, linux-kernel, dri-devel, platform-driver-x86,
	Wolfram Sang, linux-media

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(-)

-- 
2.27.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/6] drm: encoder_slave: fix refcouting error for modules
  2020-06-15  7:58 [PATCH 0/6] remove deprecated i2c_new_device API Wolfram Sang
@ 2020-06-15  7:58 ` Wolfram Sang
  2020-06-15  7:58 ` [PATCH 2/6] drm: encoder_slave: use new I2C API Wolfram Sang
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Wolfram Sang @ 2020-06-15  7:58 UTC (permalink / raw)
  To: linux-i2c
  Cc: David Airlie, Emil Velikov, linux-kernel, Wolfram Sang,
	dri-devel, Thomas Zimmermann, Dave Airlie

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;
 }
-- 
2.27.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] drm: encoder_slave: use new I2C API
  2020-06-15  7:58 [PATCH 0/6] remove deprecated i2c_new_device API Wolfram Sang
  2020-06-15  7:58 ` [PATCH 1/6] drm: encoder_slave: fix refcouting error for modules Wolfram Sang
@ 2020-06-15  7:58 ` Wolfram Sang
  2020-06-15  7:58 ` [PATCH 4/6] video: backlight: tosa_lcd: convert to use i2c_new_client_device() Wolfram Sang
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Wolfram Sang @ 2020-06-15  7:58 UTC (permalink / raw)
  To: linux-i2c
  Cc: David Airlie, Emil Velikov, linux-kernel, Wolfram Sang,
	dri-devel, Thomas Zimmermann

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);
-- 
2.27.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] video: backlight: tosa_lcd: convert to use i2c_new_client_device()
  2020-06-15  7:58 [PATCH 0/6] remove deprecated i2c_new_device API Wolfram Sang
  2020-06-15  7:58 ` [PATCH 1/6] drm: encoder_slave: fix refcouting error for modules Wolfram Sang
  2020-06-15  7:58 ` [PATCH 2/6] drm: encoder_slave: use new I2C API Wolfram Sang
@ 2020-06-15  7:58 ` Wolfram Sang
  2020-06-18  8:43   ` Lee Jones
  2020-06-16 12:12 ` [PATCH 0/6] remove deprecated i2c_new_device API Daniel Vetter
  2020-06-19  7:21 ` Wolfram Sang
  4 siblings, 1 reply; 8+ messages in thread
From: Wolfram Sang @ 2020-06-15  7:58 UTC (permalink / raw)
  To: linux-i2c
  Cc: Daniel Thompson, Bartlomiej Zolnierkiewicz, Jingoo Han,
	linux-fbdev, dri-devel, linux-kernel, Wolfram Sang, Lee Jones

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);
 	}
 }
 
-- 
2.27.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/6] remove deprecated i2c_new_device API
  2020-06-15  7:58 [PATCH 0/6] remove deprecated i2c_new_device API Wolfram Sang
                   ` (2 preceding siblings ...)
  2020-06-15  7:58 ` [PATCH 4/6] video: backlight: tosa_lcd: convert to use i2c_new_client_device() Wolfram Sang
@ 2020-06-16 12:12 ` Daniel Vetter
  2020-06-16 14:05   ` Emil Velikov
  2020-06-19  7:21 ` Wolfram Sang
  4 siblings, 1 reply; 8+ messages in thread
From: Daniel Vetter @ 2020-06-16 12:12 UTC (permalink / raw)
  To: Wolfram Sang
  Cc: linux-fbdev, x86, linux-kernel, dri-devel, platform-driver-x86,
	linux-i2c, linux-media

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

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/6] remove deprecated i2c_new_device API
  2020-06-16 12:12 ` [PATCH 0/6] remove deprecated i2c_new_device API Daniel Vetter
@ 2020-06-16 14:05   ` Emil Velikov
  0 siblings, 0 replies; 8+ messages in thread
From: Emil Velikov @ 2020-06-16 14:05 UTC (permalink / raw)
  To: Wolfram Sang, linux-i2c, linux-fbdev, x86,
	Linux-Kernel@Vger. Kernel. Org, ML dri-devel,
	platform-driver-x86, linux-media

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
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 4/6] video: backlight: tosa_lcd: convert to use i2c_new_client_device()
  2020-06-15  7:58 ` [PATCH 4/6] video: backlight: tosa_lcd: convert to use i2c_new_client_device() Wolfram Sang
@ 2020-06-18  8:43   ` Lee Jones
  0 siblings, 0 replies; 8+ messages in thread
From: Lee Jones @ 2020-06-18  8:43 UTC (permalink / raw)
  To: Wolfram Sang
  Cc: Daniel Thompson, Bartlomiej Zolnierkiewicz, Jingoo Han,
	linux-fbdev, dri-devel, linux-kernel, linux-i2c

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>

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/6] remove deprecated i2c_new_device API
  2020-06-15  7:58 [PATCH 0/6] remove deprecated i2c_new_device API Wolfram Sang
                   ` (3 preceding siblings ...)
  2020-06-16 12:12 ` [PATCH 0/6] remove deprecated i2c_new_device API Daniel Vetter
@ 2020-06-19  7:21 ` Wolfram Sang
  4 siblings, 0 replies; 8+ messages in thread
From: Wolfram Sang @ 2020-06-19  7:21 UTC (permalink / raw)
  To: linux-i2c
  Cc: linux-fbdev, x86, linux-kernel, dri-devel, platform-driver-x86,
	linux-media


[-- Attachment #1.1: Type: text/plain, Size: 683 bytes --]

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!


[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-06-22  7:08 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-15  7:58 [PATCH 0/6] remove deprecated i2c_new_device API Wolfram Sang
2020-06-15  7:58 ` [PATCH 1/6] drm: encoder_slave: fix refcouting error for modules Wolfram Sang
2020-06-15  7:58 ` [PATCH 2/6] drm: encoder_slave: use new I2C API Wolfram Sang
2020-06-15  7:58 ` [PATCH 4/6] video: backlight: tosa_lcd: convert to use i2c_new_client_device() Wolfram Sang
2020-06-18  8:43   ` Lee Jones
2020-06-16 12:12 ` [PATCH 0/6] remove deprecated i2c_new_device API Daniel Vetter
2020-06-16 14:05   ` Emil Velikov
2020-06-19  7:21 ` Wolfram Sang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).