linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant
@ 2019-11-06  9:50 Wolfram Sang
  2019-11-06  9:50 ` [RFC PATCH 07/12] media: pci: cx23885: convert to i2c_new_scanned_device Wolfram Sang
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Wolfram Sang @ 2019-11-06  9:50 UTC (permalink / raw)
  To: linux-i2c
  Cc: Wolfram Sang, dri-devel, linux-fbdev, linux-input, linux-kernel,
	linux-media, linuxppc-dev

From: Wolfram Sang <wsa@the-dreams.de>

In the on-going mission to let i2c_new_* calls return an ERR_PTR instead
of NULL, here is a series converting i2c_new_probed_device(). A new
function called i2c_new_scanned_device() is introduced with the new
retval, but for now, a compatibility helper is provided until all users
are converted. The rest of the patches convert all current in-tree
users.

Note that these patches are RFC because I want feedback on the approach
and hopefully collect acks on the driver conversions. If all goes well,
I'll apply the first two patches for the next merge window. Then, once
this dependency is upstream, I'll resend this series with all issues
fixed and acks collected.

Core changes tested on a Renesas Salvator-XS board (R-Car M3-N), driver
patches build tested by me and buildbot.

Wolfram Sang (12):
  i2c: replace i2c_new_probed_device with an ERR_PTR variant
  i2c: icy: convert to i2c_new_scanned_device
  macintosh: convert to i2c_new_scanned_device
  platform: chrome: convert to i2c_new_scanned_device
  video: fbdev: matrox: convert to i2c_new_scanned_device
  input: mouse: convert to i2c_new_scanned_device
  media: pci: cx23885: convert to i2c_new_scanned_device
  media: pci: cx88: convert to i2c_new_scanned_device
  media: pci: bt8xx: convert to i2c_new_scanned_device
  media: pci: cx18: convert to i2c_new_scanned_device
  media: pci: ivtv: convert to i2c_new_scanned_device
  media: v4l2-core: convert to i2c_new_scanned_device

 Documentation/i2c/instantiating-devices.rst | 10 ++++-----
 Documentation/i2c/writing-clients.rst       |  8 +++----
 drivers/i2c/busses/i2c-icy.c                |  8 +++----
 drivers/i2c/i2c-core-base.c                 | 25 ++++++++++++++++-----
 drivers/input/mouse/psmouse-smbus.c         |  8 ++++---
 drivers/macintosh/therm_windtunnel.c        |  4 ++--
 drivers/media/pci/bt8xx/bttv-input.c        |  6 ++---
 drivers/media/pci/cx18/cx18-i2c.c           |  2 +-
 drivers/media/pci/cx23885/cx23885-i2c.c     |  4 ++--
 drivers/media/pci/cx88/cx88-input.c         |  2 +-
 drivers/media/pci/ivtv/ivtv-i2c.c           |  6 ++---
 drivers/media/pci/ivtv/ivtv-i2c.h           |  2 +-
 drivers/media/v4l2-core/v4l2-i2c.c          | 10 ++++-----
 drivers/platform/chrome/chromeos_laptop.c   | 18 ++++++++-------
 drivers/video/fbdev/matrox/i2c-matroxfb.c   |  4 ++--
 include/linux/i2c.h                         | 12 +++++++---
 16 files changed, 76 insertions(+), 53 deletions(-)

-- 
2.20.1


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

* [RFC PATCH 07/12] media: pci: cx23885: convert to i2c_new_scanned_device
  2019-11-06  9:50 [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Wolfram Sang
@ 2019-11-06  9:50 ` Wolfram Sang
  2019-11-06 11:18   ` Hans Verkuil
  2019-11-06  9:50 ` [RFC PATCH 08/12] media: pci: cx88: " Wolfram Sang
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2019-11-06  9:50 UTC (permalink / raw)
  To: linux-i2c; +Cc: Wolfram Sang, Mauro Carvalho Chehab, linux-media, linux-kernel

Move from the deprecated i2c_new_probed_device() to the new
i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---

Build tested only. RFC, please comment and/or ack, but don't apply yet.

 drivers/media/pci/cx23885/cx23885-i2c.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/pci/cx23885/cx23885-i2c.c b/drivers/media/pci/cx23885/cx23885-i2c.c
index 4f327ee9659e..f51fad33dc04 100644
--- a/drivers/media/pci/cx23885/cx23885-i2c.c
+++ b/drivers/media/pci/cx23885/cx23885-i2c.c
@@ -337,8 +337,8 @@ int cx23885_i2c_register(struct cx23885_i2c *bus)
 		strscpy(info.type, "ir_video", I2C_NAME_SIZE);
 		/* Use quick read command for probe, some IR chips don't
 		 * support writes */
-		i2c_new_probed_device(&bus->i2c_adap, &info, addr_list,
-				      i2c_probe_func_quick_read);
+		i2c_new_scanned_device(&bus->i2c_adap, &info, addr_list,
+				       i2c_probe_func_quick_read);
 	}
 
 	return bus->i2c_rc;
-- 
2.20.1


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

* [RFC PATCH 08/12] media: pci: cx88: convert to i2c_new_scanned_device
  2019-11-06  9:50 [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Wolfram Sang
  2019-11-06  9:50 ` [RFC PATCH 07/12] media: pci: cx23885: convert to i2c_new_scanned_device Wolfram Sang
@ 2019-11-06  9:50 ` Wolfram Sang
  2019-11-06 11:18   ` Hans Verkuil
  2019-11-06  9:50 ` [RFC PATCH 09/12] media: pci: bt8xx: " Wolfram Sang
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2019-11-06  9:50 UTC (permalink / raw)
  To: linux-i2c; +Cc: Wolfram Sang, Mauro Carvalho Chehab, linux-media, linux-kernel

Move from the deprecated i2c_new_probed_device() to the new
i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---

Build tested only. RFC, please comment and/or ack, but don't apply yet.

 drivers/media/pci/cx88/cx88-input.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/pci/cx88/cx88-input.c b/drivers/media/pci/cx88/cx88-input.c
index 589f52d961eb..c7c2acd55266 100644
--- a/drivers/media/pci/cx88/cx88-input.c
+++ b/drivers/media/pci/cx88/cx88-input.c
@@ -613,7 +613,7 @@ void cx88_i2c_init_ir(struct cx88_core *core)
 	}
 
 	/*
-	 * We can't call i2c_new_probed_device() because it uses
+	 * We can't call i2c_new_scanned_device() because it uses
 	 * quick writes for probing and at least some RC receiver
 	 * devices only reply to reads.
 	 * Also, Hauppauge XVR needs to be specified, as address 0x71
-- 
2.20.1


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

* [RFC PATCH 09/12] media: pci: bt8xx: convert to i2c_new_scanned_device
  2019-11-06  9:50 [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Wolfram Sang
  2019-11-06  9:50 ` [RFC PATCH 07/12] media: pci: cx23885: convert to i2c_new_scanned_device Wolfram Sang
  2019-11-06  9:50 ` [RFC PATCH 08/12] media: pci: cx88: " Wolfram Sang
@ 2019-11-06  9:50 ` Wolfram Sang
  2019-11-06 11:19   ` Hans Verkuil
  2019-11-06  9:50 ` [RFC PATCH 10/12] media: pci: cx18: " Wolfram Sang
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2019-11-06  9:50 UTC (permalink / raw)
  To: linux-i2c; +Cc: Wolfram Sang, Mauro Carvalho Chehab, linux-media, linux-kernel

Move from the deprecated i2c_new_probed_device() to the new
i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---

Build tested only. RFC, please comment and/or ack, but don't apply yet.

 drivers/media/pci/bt8xx/bttv-input.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/media/pci/bt8xx/bttv-input.c b/drivers/media/pci/bt8xx/bttv-input.c
index 492bc85c2700..41226f1d0e5b 100644
--- a/drivers/media/pci/bt8xx/bttv-input.c
+++ b/drivers/media/pci/bt8xx/bttv-input.c
@@ -386,7 +386,7 @@ void init_bttv_i2c_ir(struct bttv *btv)
 
 	if (btv->init_data.name) {
 		info.platform_data = &btv->init_data;
-		i2c_dev = i2c_new_device(&btv->c.i2c_adap, &info);
+		i2c_dev = i2c_new_client_device(&btv->c.i2c_adap, &info);
 	} else {
 		/*
 		 * The external IR receiver is at i2c address 0x34 (0x35 for
@@ -396,9 +396,9 @@ void init_bttv_i2c_ir(struct bttv *btv)
 		 * internal.
 		 * That's why we probe 0x1a (~0x34) first. CB
 		 */
-		i2c_dev = i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list, NULL);
+		i2c_dev = i2c_new_scanned_device(&btv->c.i2c_adap, &info, addr_list, NULL);
 	}
-	if (NULL == i2c_dev)
+	if (IS_ERR(i2c_dev))
 		return;
 
 #if defined(CONFIG_MODULES) && defined(MODULE)
-- 
2.20.1


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

* [RFC PATCH 10/12] media: pci: cx18: convert to i2c_new_scanned_device
  2019-11-06  9:50 [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Wolfram Sang
                   ` (2 preceding siblings ...)
  2019-11-06  9:50 ` [RFC PATCH 09/12] media: pci: bt8xx: " Wolfram Sang
@ 2019-11-06  9:50 ` Wolfram Sang
  2019-11-06 11:23   ` Hans Verkuil
  2019-11-06  9:50 ` [RFC PATCH 11/12] media: pci: ivtv: " Wolfram Sang
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2019-11-06  9:50 UTC (permalink / raw)
  To: linux-i2c
  Cc: Wolfram Sang, Andy Walls, Mauro Carvalho Chehab, linux-media,
	linux-kernel

Move from the deprecated i2c_new_probed_device() to the new
i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---

Build tested only. RFC, please comment and/or ack, but don't apply yet.

 drivers/media/pci/cx18/cx18-i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/pci/cx18/cx18-i2c.c b/drivers/media/pci/cx18/cx18-i2c.c
index 1ef7ccf4a722..a83435245251 100644
--- a/drivers/media/pci/cx18/cx18-i2c.c
+++ b/drivers/media/pci/cx18/cx18-i2c.c
@@ -88,7 +88,7 @@ static int cx18_i2c_new_ir(struct cx18 *cx, struct i2c_adapter *adap, u32 hw,
 		break;
 	}
 
-	return i2c_new_probed_device(adap, &info, addr_list, NULL) == NULL ?
+	return IS_ERR(i2c_new_scanned_device(adap, &info, addr_list, NULL)) ?
 	       -1 : 0;
 }
 
-- 
2.20.1


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

* [RFC PATCH 11/12] media: pci: ivtv: convert to i2c_new_scanned_device
  2019-11-06  9:50 [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Wolfram Sang
                   ` (3 preceding siblings ...)
  2019-11-06  9:50 ` [RFC PATCH 10/12] media: pci: cx18: " Wolfram Sang
@ 2019-11-06  9:50 ` Wolfram Sang
  2019-11-06 11:21   ` Hans Verkuil
  2019-11-06  9:50 ` [RFC PATCH 12/12] media: v4l2-core: " Wolfram Sang
  2019-11-06 10:06 ` [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Sean Young
  6 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2019-11-06  9:50 UTC (permalink / raw)
  To: linux-i2c
  Cc: Wolfram Sang, Andy Walls, Mauro Carvalho Chehab, linux-media,
	linux-kernel

Move from the deprecated i2c_new_probed_device() to the new
i2c_new_scanned_device(). Make use of the new ERRPTR if suitable. Change
the legacy function to simply return void because the retval was never
used anywhere.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---

Build tested only. RFC, please comment and/or ack, but don't apply yet.

 drivers/media/pci/ivtv/ivtv-i2c.c | 6 +++---
 drivers/media/pci/ivtv/ivtv-i2c.h | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/media/pci/ivtv/ivtv-i2c.c b/drivers/media/pci/ivtv/ivtv-i2c.c
index 0772d757a389..982045c4eea8 100644
--- a/drivers/media/pci/ivtv/ivtv-i2c.c
+++ b/drivers/media/pci/ivtv/ivtv-i2c.c
@@ -208,12 +208,12 @@ static int ivtv_i2c_new_ir(struct ivtv *itv, u32 hw, const char *type, u8 addr)
 	info.platform_data = init_data;
 	strscpy(info.type, type, I2C_NAME_SIZE);
 
-	return i2c_new_probed_device(adap, &info, addr_list, NULL) == NULL ?
+	return IS_ERR(i2c_new_scanned_device(adap, &info, addr_list, NULL)) ?
 	       -1 : 0;
 }
 
 /* Instantiate the IR receiver device using probing -- undesirable */
-struct i2c_client *ivtv_i2c_new_ir_legacy(struct ivtv *itv)
+void ivtv_i2c_new_ir_legacy(struct ivtv *itv)
 {
 	struct i2c_board_info info;
 	/*
@@ -235,7 +235,7 @@ struct i2c_client *ivtv_i2c_new_ir_legacy(struct ivtv *itv)
 
 	memset(&info, 0, sizeof(struct i2c_board_info));
 	strscpy(info.type, "ir_video", I2C_NAME_SIZE);
-	return i2c_new_probed_device(&itv->i2c_adap, &info, addr_list, NULL);
+	i2c_new_scanned_device(&itv->i2c_adap, &info, addr_list, NULL);
 }
 
 int ivtv_i2c_register(struct ivtv *itv, unsigned idx)
diff --git a/drivers/media/pci/ivtv/ivtv-i2c.h b/drivers/media/pci/ivtv/ivtv-i2c.h
index 462f73449a6e..2d9cdaa682c5 100644
--- a/drivers/media/pci/ivtv/ivtv-i2c.h
+++ b/drivers/media/pci/ivtv/ivtv-i2c.h
@@ -9,7 +9,7 @@
 #ifndef IVTV_I2C_H
 #define IVTV_I2C_H
 
-struct i2c_client *ivtv_i2c_new_ir_legacy(struct ivtv *itv);
+void ivtv_i2c_new_ir_legacy(struct ivtv *itv);
 int ivtv_i2c_register(struct ivtv *itv, unsigned idx);
 struct v4l2_subdev *ivtv_find_hw(struct ivtv *itv, u32 hw);
 
-- 
2.20.1


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

* [RFC PATCH 12/12] media: v4l2-core: convert to i2c_new_scanned_device
  2019-11-06  9:50 [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Wolfram Sang
                   ` (4 preceding siblings ...)
  2019-11-06  9:50 ` [RFC PATCH 11/12] media: pci: ivtv: " Wolfram Sang
@ 2019-11-06  9:50 ` Wolfram Sang
  2019-11-06 11:24   ` Hans Verkuil
  2019-11-06 10:06 ` [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Sean Young
  6 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2019-11-06  9:50 UTC (permalink / raw)
  To: linux-i2c; +Cc: Wolfram Sang, Mauro Carvalho Chehab, linux-media, linux-kernel

Move from the deprecated i2c_new_probed_device() to the new
i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---

Build tested only. RFC, please comment and/or ack, but don't apply yet.

 drivers/media/v4l2-core/v4l2-i2c.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/media/v4l2-core/v4l2-i2c.c b/drivers/media/v4l2-core/v4l2-i2c.c
index 5bf99e7c0c09..25ddda3b7ce6 100644
--- a/drivers/media/v4l2-core/v4l2-i2c.c
+++ b/drivers/media/v4l2-core/v4l2-i2c.c
@@ -74,10 +74,10 @@ struct v4l2_subdev
 
 	/* Create the i2c client */
 	if (info->addr == 0 && probe_addrs)
-		client = i2c_new_probed_device(adapter, info, probe_addrs,
-					       NULL);
+		client = i2c_new_scanned_device(adapter, info, probe_addrs,
+					        NULL);
 	else
-		client = i2c_new_device(adapter, info);
+		client = i2c_new_client_device(adapter, info);
 
 	/*
 	 * Note: by loading the module first we are certain that c->driver
@@ -88,7 +88,7 @@ struct v4l2_subdev
 	 * want to use the i2c device, so explicitly loading the module
 	 * is the best alternative.
 	 */
-	if (!client || !client->dev.driver)
+	if (IS_ERR(client) || !client->dev.driver)
 		goto error;
 
 	/* Lock the module so we can safely get the v4l2_subdev pointer */
@@ -110,7 +110,7 @@ struct v4l2_subdev
 	 * If we have a client but no subdev, then something went wrong and
 	 * we must unregister the client.
 	 */
-	if (client && !sd)
+	if (!IS_ERR(client) && !sd)
 		i2c_unregister_device(client);
 	return sd;
 }
-- 
2.20.1


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

* Re: [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant
  2019-11-06  9:50 [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Wolfram Sang
                   ` (5 preceding siblings ...)
  2019-11-06  9:50 ` [RFC PATCH 12/12] media: v4l2-core: " Wolfram Sang
@ 2019-11-06 10:06 ` Sean Young
  6 siblings, 0 replies; 15+ messages in thread
From: Sean Young @ 2019-11-06 10:06 UTC (permalink / raw)
  To: Wolfram Sang
  Cc: linux-i2c, Wolfram Sang, dri-devel, linux-fbdev, linux-input,
	linux-kernel, linux-media, linuxppc-dev

On Wed, Nov 06, 2019 at 10:50:18AM +0100, Wolfram Sang wrote:
> From: Wolfram Sang <wsa@the-dreams.de>
> 
> In the on-going mission to let i2c_new_* calls return an ERR_PTR instead
> of NULL, here is a series converting i2c_new_probed_device(). A new
> function called i2c_new_scanned_device() is introduced with the new
> retval, but for now, a compatibility helper is provided until all users
> are converted. The rest of the patches convert all current in-tree
> users.
> 
> Note that these patches are RFC because I want feedback on the approach
> and hopefully collect acks on the driver conversions. If all goes well,
> I'll apply the first two patches for the next merge window. Then, once
> this dependency is upstream, I'll resend this series with all issues
> fixed and acks collected.

The patches to drivers/media/pci/* are all IR related which have touched
on/read over the years. So, for those:

Acked-by: Sean Young <sean@mess.org>

> 
> Core changes tested on a Renesas Salvator-XS board (R-Car M3-N), driver
> patches build tested by me and buildbot.
> 
> Wolfram Sang (12):
>   i2c: replace i2c_new_probed_device with an ERR_PTR variant
>   i2c: icy: convert to i2c_new_scanned_device
>   macintosh: convert to i2c_new_scanned_device
>   platform: chrome: convert to i2c_new_scanned_device
>   video: fbdev: matrox: convert to i2c_new_scanned_device
>   input: mouse: convert to i2c_new_scanned_device
>   media: pci: cx23885: convert to i2c_new_scanned_device
>   media: pci: cx88: convert to i2c_new_scanned_device
>   media: pci: bt8xx: convert to i2c_new_scanned_device
>   media: pci: cx18: convert to i2c_new_scanned_device
>   media: pci: ivtv: convert to i2c_new_scanned_device
>   media: v4l2-core: convert to i2c_new_scanned_device
> 
>  Documentation/i2c/instantiating-devices.rst | 10 ++++-----
>  Documentation/i2c/writing-clients.rst       |  8 +++----
>  drivers/i2c/busses/i2c-icy.c                |  8 +++----
>  drivers/i2c/i2c-core-base.c                 | 25 ++++++++++++++++-----
>  drivers/input/mouse/psmouse-smbus.c         |  8 ++++---
>  drivers/macintosh/therm_windtunnel.c        |  4 ++--
>  drivers/media/pci/bt8xx/bttv-input.c        |  6 ++---
>  drivers/media/pci/cx18/cx18-i2c.c           |  2 +-
>  drivers/media/pci/cx23885/cx23885-i2c.c     |  4 ++--
>  drivers/media/pci/cx88/cx88-input.c         |  2 +-
>  drivers/media/pci/ivtv/ivtv-i2c.c           |  6 ++---
>  drivers/media/pci/ivtv/ivtv-i2c.h           |  2 +-
>  drivers/media/v4l2-core/v4l2-i2c.c          | 10 ++++-----
>  drivers/platform/chrome/chromeos_laptop.c   | 18 ++++++++-------
>  drivers/video/fbdev/matrox/i2c-matroxfb.c   |  4 ++--
>  include/linux/i2c.h                         | 12 +++++++---
>  16 files changed, 76 insertions(+), 53 deletions(-)
> 
> -- 
> 2.20.1

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

* Re: [RFC PATCH 08/12] media: pci: cx88: convert to i2c_new_scanned_device
  2019-11-06  9:50 ` [RFC PATCH 08/12] media: pci: cx88: " Wolfram Sang
@ 2019-11-06 11:18   ` Hans Verkuil
  2019-11-06 14:49     ` Wolfram Sang
  0 siblings, 1 reply; 15+ messages in thread
From: Hans Verkuil @ 2019-11-06 11:18 UTC (permalink / raw)
  To: Wolfram Sang, linux-i2c; +Cc: Mauro Carvalho Chehab, linux-media, linux-kernel

On 11/6/19 10:50 AM, Wolfram Sang wrote:
> Move from the deprecated i2c_new_probed_device() to the new
> i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.

This commit text is a bit out-of-sync with the actual patch.

This should be improved for the next version. Looks good otherwise.

Regards,

	Hans

> 
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> ---
> 
> Build tested only. RFC, please comment and/or ack, but don't apply yet.
> 
>  drivers/media/pci/cx88/cx88-input.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/pci/cx88/cx88-input.c b/drivers/media/pci/cx88/cx88-input.c
> index 589f52d961eb..c7c2acd55266 100644
> --- a/drivers/media/pci/cx88/cx88-input.c
> +++ b/drivers/media/pci/cx88/cx88-input.c
> @@ -613,7 +613,7 @@ void cx88_i2c_init_ir(struct cx88_core *core)
>  	}
>  
>  	/*
> -	 * We can't call i2c_new_probed_device() because it uses
> +	 * We can't call i2c_new_scanned_device() because it uses
>  	 * quick writes for probing and at least some RC receiver
>  	 * devices only reply to reads.
>  	 * Also, Hauppauge XVR needs to be specified, as address 0x71
> 


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

* Re: [RFC PATCH 07/12] media: pci: cx23885: convert to i2c_new_scanned_device
  2019-11-06  9:50 ` [RFC PATCH 07/12] media: pci: cx23885: convert to i2c_new_scanned_device Wolfram Sang
@ 2019-11-06 11:18   ` Hans Verkuil
  0 siblings, 0 replies; 15+ messages in thread
From: Hans Verkuil @ 2019-11-06 11:18 UTC (permalink / raw)
  To: Wolfram Sang, linux-i2c; +Cc: Mauro Carvalho Chehab, linux-media, linux-kernel

On 11/6/19 10:50 AM, Wolfram Sang wrote:
> Move from the deprecated i2c_new_probed_device() to the new
> i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.
> 
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Regards,

	Hans

> ---
> 
> Build tested only. RFC, please comment and/or ack, but don't apply yet.
> 
>  drivers/media/pci/cx23885/cx23885-i2c.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/pci/cx23885/cx23885-i2c.c b/drivers/media/pci/cx23885/cx23885-i2c.c
> index 4f327ee9659e..f51fad33dc04 100644
> --- a/drivers/media/pci/cx23885/cx23885-i2c.c
> +++ b/drivers/media/pci/cx23885/cx23885-i2c.c
> @@ -337,8 +337,8 @@ int cx23885_i2c_register(struct cx23885_i2c *bus)
>  		strscpy(info.type, "ir_video", I2C_NAME_SIZE);
>  		/* Use quick read command for probe, some IR chips don't
>  		 * support writes */
> -		i2c_new_probed_device(&bus->i2c_adap, &info, addr_list,
> -				      i2c_probe_func_quick_read);
> +		i2c_new_scanned_device(&bus->i2c_adap, &info, addr_list,
> +				       i2c_probe_func_quick_read);
>  	}
>  
>  	return bus->i2c_rc;
> 


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

* Re: [RFC PATCH 09/12] media: pci: bt8xx: convert to i2c_new_scanned_device
  2019-11-06  9:50 ` [RFC PATCH 09/12] media: pci: bt8xx: " Wolfram Sang
@ 2019-11-06 11:19   ` Hans Verkuil
  0 siblings, 0 replies; 15+ messages in thread
From: Hans Verkuil @ 2019-11-06 11:19 UTC (permalink / raw)
  To: Wolfram Sang, linux-i2c; +Cc: Mauro Carvalho Chehab, linux-media, linux-kernel

On 11/6/19 10:50 AM, Wolfram Sang wrote:
> Move from the deprecated i2c_new_probed_device() to the new
> i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.
> 
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Regards,

	Hans

> ---
> 
> Build tested only. RFC, please comment and/or ack, but don't apply yet.
> 
>  drivers/media/pci/bt8xx/bttv-input.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/media/pci/bt8xx/bttv-input.c b/drivers/media/pci/bt8xx/bttv-input.c
> index 492bc85c2700..41226f1d0e5b 100644
> --- a/drivers/media/pci/bt8xx/bttv-input.c
> +++ b/drivers/media/pci/bt8xx/bttv-input.c
> @@ -386,7 +386,7 @@ void init_bttv_i2c_ir(struct bttv *btv)
>  
>  	if (btv->init_data.name) {
>  		info.platform_data = &btv->init_data;
> -		i2c_dev = i2c_new_device(&btv->c.i2c_adap, &info);
> +		i2c_dev = i2c_new_client_device(&btv->c.i2c_adap, &info);
>  	} else {
>  		/*
>  		 * The external IR receiver is at i2c address 0x34 (0x35 for
> @@ -396,9 +396,9 @@ void init_bttv_i2c_ir(struct bttv *btv)
>  		 * internal.
>  		 * That's why we probe 0x1a (~0x34) first. CB
>  		 */
> -		i2c_dev = i2c_new_probed_device(&btv->c.i2c_adap, &info, addr_list, NULL);
> +		i2c_dev = i2c_new_scanned_device(&btv->c.i2c_adap, &info, addr_list, NULL);
>  	}
> -	if (NULL == i2c_dev)
> +	if (IS_ERR(i2c_dev))
>  		return;
>  
>  #if defined(CONFIG_MODULES) && defined(MODULE)
> 


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

* Re: [RFC PATCH 11/12] media: pci: ivtv: convert to i2c_new_scanned_device
  2019-11-06  9:50 ` [RFC PATCH 11/12] media: pci: ivtv: " Wolfram Sang
@ 2019-11-06 11:21   ` Hans Verkuil
  0 siblings, 0 replies; 15+ messages in thread
From: Hans Verkuil @ 2019-11-06 11:21 UTC (permalink / raw)
  To: Wolfram Sang, linux-i2c
  Cc: Andy Walls, Mauro Carvalho Chehab, linux-media, linux-kernel

On 11/6/19 10:50 AM, Wolfram Sang wrote:
> Move from the deprecated i2c_new_probed_device() to the new
> i2c_new_scanned_device(). Make use of the new ERRPTR if suitable. Change
> the legacy function to simply return void because the retval was never
> used anywhere.
> 
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Regards,

	Hans

> ---
> 
> Build tested only. RFC, please comment and/or ack, but don't apply yet.
> 
>  drivers/media/pci/ivtv/ivtv-i2c.c | 6 +++---
>  drivers/media/pci/ivtv/ivtv-i2c.h | 2 +-
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/media/pci/ivtv/ivtv-i2c.c b/drivers/media/pci/ivtv/ivtv-i2c.c
> index 0772d757a389..982045c4eea8 100644
> --- a/drivers/media/pci/ivtv/ivtv-i2c.c
> +++ b/drivers/media/pci/ivtv/ivtv-i2c.c
> @@ -208,12 +208,12 @@ static int ivtv_i2c_new_ir(struct ivtv *itv, u32 hw, const char *type, u8 addr)
>  	info.platform_data = init_data;
>  	strscpy(info.type, type, I2C_NAME_SIZE);
>  
> -	return i2c_new_probed_device(adap, &info, addr_list, NULL) == NULL ?
> +	return IS_ERR(i2c_new_scanned_device(adap, &info, addr_list, NULL)) ?
>  	       -1 : 0;
>  }
>  
>  /* Instantiate the IR receiver device using probing -- undesirable */
> -struct i2c_client *ivtv_i2c_new_ir_legacy(struct ivtv *itv)
> +void ivtv_i2c_new_ir_legacy(struct ivtv *itv)
>  {
>  	struct i2c_board_info info;
>  	/*
> @@ -235,7 +235,7 @@ struct i2c_client *ivtv_i2c_new_ir_legacy(struct ivtv *itv)
>  
>  	memset(&info, 0, sizeof(struct i2c_board_info));
>  	strscpy(info.type, "ir_video", I2C_NAME_SIZE);
> -	return i2c_new_probed_device(&itv->i2c_adap, &info, addr_list, NULL);
> +	i2c_new_scanned_device(&itv->i2c_adap, &info, addr_list, NULL);
>  }
>  
>  int ivtv_i2c_register(struct ivtv *itv, unsigned idx)
> diff --git a/drivers/media/pci/ivtv/ivtv-i2c.h b/drivers/media/pci/ivtv/ivtv-i2c.h
> index 462f73449a6e..2d9cdaa682c5 100644
> --- a/drivers/media/pci/ivtv/ivtv-i2c.h
> +++ b/drivers/media/pci/ivtv/ivtv-i2c.h
> @@ -9,7 +9,7 @@
>  #ifndef IVTV_I2C_H
>  #define IVTV_I2C_H
>  
> -struct i2c_client *ivtv_i2c_new_ir_legacy(struct ivtv *itv);
> +void ivtv_i2c_new_ir_legacy(struct ivtv *itv);
>  int ivtv_i2c_register(struct ivtv *itv, unsigned idx);
>  struct v4l2_subdev *ivtv_find_hw(struct ivtv *itv, u32 hw);
>  
> 


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

* Re: [RFC PATCH 10/12] media: pci: cx18: convert to i2c_new_scanned_device
  2019-11-06  9:50 ` [RFC PATCH 10/12] media: pci: cx18: " Wolfram Sang
@ 2019-11-06 11:23   ` Hans Verkuil
  0 siblings, 0 replies; 15+ messages in thread
From: Hans Verkuil @ 2019-11-06 11:23 UTC (permalink / raw)
  To: Wolfram Sang, linux-i2c
  Cc: Andy Walls, Mauro Carvalho Chehab, linux-media, linux-kernel

On 11/6/19 10:50 AM, Wolfram Sang wrote:
> Move from the deprecated i2c_new_probed_device() to the new
> i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.
> 
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Regards,

	Hans

> ---
> 
> Build tested only. RFC, please comment and/or ack, but don't apply yet.
> 
>  drivers/media/pci/cx18/cx18-i2c.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/pci/cx18/cx18-i2c.c b/drivers/media/pci/cx18/cx18-i2c.c
> index 1ef7ccf4a722..a83435245251 100644
> --- a/drivers/media/pci/cx18/cx18-i2c.c
> +++ b/drivers/media/pci/cx18/cx18-i2c.c
> @@ -88,7 +88,7 @@ static int cx18_i2c_new_ir(struct cx18 *cx, struct i2c_adapter *adap, u32 hw,
>  		break;
>  	}
>  
> -	return i2c_new_probed_device(adap, &info, addr_list, NULL) == NULL ?
> +	return IS_ERR(i2c_new_scanned_device(adap, &info, addr_list, NULL)) ?
>  	       -1 : 0;
>  }
>  
> 


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

* Re: [RFC PATCH 12/12] media: v4l2-core: convert to i2c_new_scanned_device
  2019-11-06  9:50 ` [RFC PATCH 12/12] media: v4l2-core: " Wolfram Sang
@ 2019-11-06 11:24   ` Hans Verkuil
  0 siblings, 0 replies; 15+ messages in thread
From: Hans Verkuil @ 2019-11-06 11:24 UTC (permalink / raw)
  To: Wolfram Sang, linux-i2c; +Cc: Mauro Carvalho Chehab, linux-media, linux-kernel

On 11/6/19 10:50 AM, Wolfram Sang wrote:
> Move from the deprecated i2c_new_probed_device() to the new
> i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.
> 
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Regards,

	Hans

> ---
> 
> Build tested only. RFC, please comment and/or ack, but don't apply yet.
> 
>  drivers/media/v4l2-core/v4l2-i2c.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-i2c.c b/drivers/media/v4l2-core/v4l2-i2c.c
> index 5bf99e7c0c09..25ddda3b7ce6 100644
> --- a/drivers/media/v4l2-core/v4l2-i2c.c
> +++ b/drivers/media/v4l2-core/v4l2-i2c.c
> @@ -74,10 +74,10 @@ struct v4l2_subdev
>  
>  	/* Create the i2c client */
>  	if (info->addr == 0 && probe_addrs)
> -		client = i2c_new_probed_device(adapter, info, probe_addrs,
> -					       NULL);
> +		client = i2c_new_scanned_device(adapter, info, probe_addrs,
> +					        NULL);
>  	else
> -		client = i2c_new_device(adapter, info);
> +		client = i2c_new_client_device(adapter, info);
>  
>  	/*
>  	 * Note: by loading the module first we are certain that c->driver
> @@ -88,7 +88,7 @@ struct v4l2_subdev
>  	 * want to use the i2c device, so explicitly loading the module
>  	 * is the best alternative.
>  	 */
> -	if (!client || !client->dev.driver)
> +	if (IS_ERR(client) || !client->dev.driver)
>  		goto error;
>  
>  	/* Lock the module so we can safely get the v4l2_subdev pointer */
> @@ -110,7 +110,7 @@ struct v4l2_subdev
>  	 * If we have a client but no subdev, then something went wrong and
>  	 * we must unregister the client.
>  	 */
> -	if (client && !sd)
> +	if (!IS_ERR(client) && !sd)
>  		i2c_unregister_device(client);
>  	return sd;
>  }
> 


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

* Re: [RFC PATCH 08/12] media: pci: cx88: convert to i2c_new_scanned_device
  2019-11-06 11:18   ` Hans Verkuil
@ 2019-11-06 14:49     ` Wolfram Sang
  0 siblings, 0 replies; 15+ messages in thread
From: Wolfram Sang @ 2019-11-06 14:49 UTC (permalink / raw)
  To: Hans Verkuil
  Cc: Wolfram Sang, linux-i2c, Mauro Carvalho Chehab, linux-media,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 394 bytes --]

On Wed, Nov 06, 2019 at 12:18:28PM +0100, Hans Verkuil wrote:
> On 11/6/19 10:50 AM, Wolfram Sang wrote:
> > Move from the deprecated i2c_new_probed_device() to the new
> > i2c_new_scanned_device(). Make use of the new ERRPTR if suitable.
> 
> This commit text is a bit out-of-sync with the actual patch.

Ha, true :) Thanks for pointing out (and the other reviews, too, of
course!)


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

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

end of thread, other threads:[~2019-11-06 14:49 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-06  9:50 [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Wolfram Sang
2019-11-06  9:50 ` [RFC PATCH 07/12] media: pci: cx23885: convert to i2c_new_scanned_device Wolfram Sang
2019-11-06 11:18   ` Hans Verkuil
2019-11-06  9:50 ` [RFC PATCH 08/12] media: pci: cx88: " Wolfram Sang
2019-11-06 11:18   ` Hans Verkuil
2019-11-06 14:49     ` Wolfram Sang
2019-11-06  9:50 ` [RFC PATCH 09/12] media: pci: bt8xx: " Wolfram Sang
2019-11-06 11:19   ` Hans Verkuil
2019-11-06  9:50 ` [RFC PATCH 10/12] media: pci: cx18: " Wolfram Sang
2019-11-06 11:23   ` Hans Verkuil
2019-11-06  9:50 ` [RFC PATCH 11/12] media: pci: ivtv: " Wolfram Sang
2019-11-06 11:21   ` Hans Verkuil
2019-11-06  9:50 ` [RFC PATCH 12/12] media: v4l2-core: " Wolfram Sang
2019-11-06 11:24   ` Hans Verkuil
2019-11-06 10:06 ` [RFC PATCH 00/12] i2c: replace i2c_new_probed_device with an ERR_PTR variant Sean Young

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