These media drivers create a new I2C client device with the deprecated i2c_new_device() and check afterwards if the client exists and if a driver is bound to it. This series changes the drivers to use the now suggested i2c_new_client_device() call and a new helper to check if the driver is bound. This helper supports (for now) the old and the new API and is also more readable. The drivers were converted with the following coccinelle script: @@ expression client; statement S; @@ client = - i2c_new_device + i2c_new_client_device (...); ... when != client if ( - \( !client \| client == NULL \) || \( !client->dev.driver \| client->dev.driver == NULL \) + !i2c_client_has_driver(client) ) { S } The helper has been tested on a Renesas Salvator-XS board (R-Car M3-N). The rest was build tested by me and buildbot. This series is based on v5.5-rc2 where the new helper was added. A branch can be found here: git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/i2c/new_device_with_driver This series is largely the same as the last one sent out in November. It was rebased to v5.5-rc2 and one Rev-tag added. The patch for v4l2-core has been extended to use more new API. This series can be applied as is. I think it should go via the media-tree. Looking forward to comments. Thanks and happy hacking, Wolfram Wolfram Sang (16): media: dvb-core: dvbdev: convert to use i2c_new_client_device() media: dvb-frontends: cxd2820r_core: convert to use i2c_new_client_device() media: dvb-frontends: lgdt330x: convert to use i2c_new_client_device() media: dvb-frontends: m88ds3103: convert to use i2c_new_client_device() media: dvb-frontends: ts2020: convert to use i2c_new_client_device() media: pci: cx23885: cx23885-dvb: convert to use i2c_new_client_device() media: pci: saa7164: saa7164-dvb: convert to use i2c_new_client_device() media: pci: smipcie: smipcie-main: convert to use i2c_new_client_device() media: platform: sti: c8sectpfe: c8sectpfe-dvb: convert to use i2c_new_client_device() media: usb: dvb-usb-v2: af9035: convert to use i2c_new_client_device() media: usb: dvb-usb-v2: anysee: convert to use i2c_new_client_device() media: usb: dvb-usb-v2: rtl28xxu: convert to use i2c_new_client_device() media: usb: dvb-usb-v2: zd1301: convert to use i2c_new_client_device() media: usb: dvb-usb: dib0700_devices: convert to use i2c_new_client_device() media: usb: dvb-usb: dw2102: convert to use i2c_new_client_device() media: v4l2-core: v4l2-i2c: convert to new API with ERRPTR drivers/media/dvb-core/dvbdev.c | 4 +- drivers/media/dvb-frontends/cxd2820r_core.c | 4 +- drivers/media/dvb-frontends/lgdt330x.c | 4 +- drivers/media/dvb-frontends/m88ds3103.c | 4 +- drivers/media/dvb-frontends/ts2020.c | 4 +- drivers/media/pci/cx23885/cx23885-dvb.c | 114 +++++++++--------- drivers/media/pci/saa7164/saa7164-dvb.c | 20 +-- drivers/media/pci/smipcie/smipcie-main.c | 4 +- .../platform/sti/c8sectpfe/c8sectpfe-dvb.c | 4 +- drivers/media/usb/dvb-usb-v2/af9035.c | 4 +- drivers/media/usb/dvb-usb-v2/anysee.c | 4 +- drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 36 +++--- drivers/media/usb/dvb-usb-v2/zd1301.c | 4 +- drivers/media/usb/dvb-usb/dib0700_devices.c | 8 +- drivers/media/usb/dvb-usb/dw2102.c | 8 +- drivers/media/v4l2-core/v4l2-i2c.c | 10 +- 16 files changed, 115 insertions(+), 121 deletions(-) -- 2.20.1