The struct i2c_client pointer is used only to get driver data,
associated with a struct device or print messages on behalf.
Moreover, the very same pointer to a struct device is already
assigned by a regmap and can be retrieved from there.
No need to keep a duplicative pointer.
Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/media/i2c/ov2740.c | 39 +++++++++++++++-----------------------
1 file changed, 15 insertions(+), 24 deletions(-)
diff --git a/drivers/media/i2c/ov2740.c b/drivers/media/i2c/ov2740.c
index d5f0eabf20c6..c975db1bbe8c 100644
--- a/drivers/media/i2c/ov2740.c
+++ b/drivers/media/i2c/ov2740.c
@@ -77,7 +77,6 @@
#define OV2740_REG_OTP_CUSTOMER 0x7010
struct nvm_data {
- struct i2c_client *client;
struct nvmem_device *nvmem;
struct regmap *regmap;
char *nvm_buffer;
@@ -649,34 +648,28 @@ static void ov2740_update_pad_format(const struct ov2740_mode *mode,
static int ov2740_load_otp_data(struct nvm_data *nvm)
{
- struct i2c_client *client;
- struct ov2740 *ov2740;
+ struct device *dev = regmap_get_device(nvm->regmap);
+ struct ov2740 *ov2740 = to_ov2740(dev_get_drvdata(dev));
u32 isp_ctrl00 = 0;
u32 isp_ctrl01 = 0;
int ret;
- if (!nvm)
- return -EINVAL;
-
if (nvm->nvm_buffer)
return 0;
- client = nvm->client;
- ov2740 = to_ov2740(i2c_get_clientdata(client));
-
nvm->nvm_buffer = kzalloc(CUSTOMER_USE_OTP_SIZE, GFP_KERNEL);
if (!nvm->nvm_buffer)
return -ENOMEM;
ret = ov2740_read_reg(ov2740, OV2740_REG_ISP_CTRL00, 1, &isp_ctrl00);
if (ret) {
- dev_err(&client->dev, "failed to read ISP CTRL00\n");
+ dev_err(dev, "failed to read ISP CTRL00\n");
goto err;
}
ret = ov2740_read_reg(ov2740, OV2740_REG_ISP_CTRL01, 1, &isp_ctrl01);
if (ret) {
- dev_err(&client->dev, "failed to read ISP CTRL01\n");
+ dev_err(dev, "failed to read ISP CTRL01\n");
goto err;
}
@@ -684,7 +677,7 @@ static int ov2740_load_otp_data(struct nvm_data *nvm)
ret = ov2740_write_reg(ov2740, OV2740_REG_ISP_CTRL00, 1,
isp_ctrl00 & ~BIT(5));
if (ret) {
- dev_err(&client->dev, "failed to set ISP CTRL00\n");
+ dev_err(dev, "failed to set ISP CTRL00\n");
goto err;
}
@@ -692,14 +685,14 @@ static int ov2740_load_otp_data(struct nvm_data *nvm)
ret = ov2740_write_reg(ov2740, OV2740_REG_ISP_CTRL01, 1,
isp_ctrl01 & ~BIT(7));
if (ret) {
- dev_err(&client->dev, "failed to set ISP CTRL01\n");
+ dev_err(dev, "failed to set ISP CTRL01\n");
goto err;
}
ret = ov2740_write_reg(ov2740, OV2740_REG_MODE_SELECT, 1,
OV2740_MODE_STREAMING);
if (ret) {
- dev_err(&client->dev, "failed to set streaming mode\n");
+ dev_err(dev, "failed to set streaming mode\n");
goto err;
}
@@ -712,26 +705,26 @@ static int ov2740_load_otp_data(struct nvm_data *nvm)
ret = regmap_bulk_read(nvm->regmap, OV2740_REG_OTP_CUSTOMER,
nvm->nvm_buffer, CUSTOMER_USE_OTP_SIZE);
if (ret) {
- dev_err(&client->dev, "failed to read OTP data, ret %d\n", ret);
+ dev_err(dev, "failed to read OTP data, ret %d\n", ret);
goto err;
}
ret = ov2740_write_reg(ov2740, OV2740_REG_MODE_SELECT, 1,
OV2740_MODE_STANDBY);
if (ret) {
- dev_err(&client->dev, "failed to set streaming mode\n");
+ dev_err(dev, "failed to set streaming mode\n");
goto err;
}
ret = ov2740_write_reg(ov2740, OV2740_REG_ISP_CTRL01, 1, isp_ctrl01);
if (ret) {
- dev_err(&client->dev, "failed to set ISP CTRL01\n");
+ dev_err(dev, "failed to set ISP CTRL01\n");
goto err;
}
ret = ov2740_write_reg(ov2740, OV2740_REG_ISP_CTRL00, 1, isp_ctrl00);
if (ret) {
- dev_err(&client->dev, "failed to set ISP CTRL00\n");
+ dev_err(dev, "failed to set ISP CTRL00\n");
goto err;
}
@@ -746,7 +739,6 @@ static int ov2740_load_otp_data(struct nvm_data *nvm)
static int ov2740_start_streaming(struct ov2740 *ov2740)
{
struct i2c_client *client = v4l2_get_subdevdata(&ov2740->sd);
- struct nvm_data *nvm = ov2740->nvm;
const struct ov2740_reg_list *reg_list;
int link_freq_index;
int ret = 0;
@@ -755,7 +747,8 @@ static int ov2740_start_streaming(struct ov2740 *ov2740)
if (ret)
return ret;
- ov2740_load_otp_data(nvm);
+ if (ov2740->nvm)
+ ov2740_load_otp_data(ov2740->nvm);
link_freq_index = ov2740->cur_mode->link_freq_index;
reg_list = &link_freq_configs[link_freq_index].reg_list;
@@ -1071,9 +1064,8 @@ static int ov2740_nvmem_read(void *priv, unsigned int off, void *val,
size_t count)
{
struct nvm_data *nvm = priv;
- struct v4l2_subdev *sd = i2c_get_clientdata(nvm->client);
- struct device *dev = &nvm->client->dev;
- struct ov2740 *ov2740 = to_ov2740(sd);
+ struct device *dev = regmap_get_device(nvm->regmap);
+ struct ov2740 *ov2740 = to_ov2740(dev_get_drvdata(dev));
int ret = 0;
mutex_lock(&ov2740->mutex);
@@ -1120,7 +1112,6 @@ static int ov2740_register_nvmem(struct i2c_client *client,
return PTR_ERR(regmap);
nvm->regmap = regmap;
- nvm->client = client;
nvmem_config.name = dev_name(dev);
nvmem_config.dev = dev;
--
2.35.1
Add missed \n to the end of the messages.
Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/media/i2c/ov2740.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/media/i2c/ov2740.c b/drivers/media/i2c/ov2740.c
index 7271e3d011c9..c4c511f90257 100644
--- a/drivers/media/i2c/ov2740.c
+++ b/drivers/media/i2c/ov2740.c
@@ -451,7 +451,7 @@ static int ov2740_write_reg_list(struct ov2740 *ov2740,
r_list->regs[i].val);
if (ret) {
dev_err_ratelimited(&client->dev,
- "write reg 0x%4.4x return err = %d",
+ "write reg 0x%4.4x return err = %d\n",
r_list->regs[i].address, ret);
return ret;
}
@@ -474,7 +474,7 @@ static int ov2740_identify_module(struct ov2740 *ov2740)
return ret;
if (val != OV2740_CHIP_ID) {
- dev_err(&client->dev, "chip id mismatch: %x!=%x",
+ dev_err(&client->dev, "chip id mismatch: %x != %x\n",
OV2740_CHIP_ID, val);
return -ENXIO;
}
@@ -772,14 +772,14 @@ static int ov2740_start_streaming(struct ov2740 *ov2740)
reg_list = &link_freq_configs[link_freq_index].reg_list;
ret = ov2740_write_reg_list(ov2740, reg_list);
if (ret) {
- dev_err(&client->dev, "failed to set plls");
+ dev_err(&client->dev, "failed to set plls\n");
return ret;
}
reg_list = &ov2740->cur_mode->reg_list;
ret = ov2740_write_reg_list(ov2740, reg_list);
if (ret) {
- dev_err(&client->dev, "failed to set mode");
+ dev_err(&client->dev, "failed to set mode\n");
return ret;
}
@@ -790,7 +790,7 @@ static int ov2740_start_streaming(struct ov2740 *ov2740)
ret = ov2740_write_reg(ov2740, OV2740_REG_MODE_SELECT, 1,
OV2740_MODE_STREAMING);
if (ret)
- dev_err(&client->dev, "failed to start streaming");
+ dev_err(&client->dev, "failed to start streaming\n");
return ret;
}
@@ -801,7 +801,7 @@ static void ov2740_stop_streaming(struct ov2740 *ov2740)
if (ov2740_write_reg(ov2740, OV2740_REG_MODE_SELECT, 1,
OV2740_MODE_STANDBY))
- dev_err(&client->dev, "failed to stop streaming");
+ dev_err(&client->dev, "failed to stop streaming\n");
}
static int ov2740_set_stream(struct v4l2_subdev *sd, int enable)
--
2.35.1
fwnode API does proper checks and returns correct codes, no need
to repeat it in the caller.
Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/media/i2c/ov2740.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/media/i2c/ov2740.c b/drivers/media/i2c/ov2740.c
index 9420258c6073..07fe8fda274e 100644
--- a/drivers/media/i2c/ov2740.c
+++ b/drivers/media/i2c/ov2740.c
@@ -1009,9 +1009,6 @@ static int ov2740_check_hwcfg(struct device *dev)
int ret;
unsigned int i, j;
- if (!fwnode)
- return -ENXIO;
-
ret = fwnode_property_read_u32(fwnode, "clock-frequency", &mclk);
if (ret)
return ret;
--
2.35.1
Instead of 'if (!ret)' switch to "check for the error first" rule.
Signed-off-by: Andy Shevchenko <[email protected]>
---
drivers/media/i2c/ov2740.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/media/i2c/ov2740.c b/drivers/media/i2c/ov2740.c
index c4c511f90257..afd591be6526 100644
--- a/drivers/media/i2c/ov2740.c
+++ b/drivers/media/i2c/ov2740.c
@@ -1112,7 +1112,6 @@ static int ov2740_register_nvmem(struct i2c_client *client,
struct nvmem_config nvmem_config = { };
struct regmap *regmap;
struct device *dev = &client->dev;
- int ret;
nvm = devm_kzalloc(dev, sizeof(*nvm), GFP_KERNEL);
if (!nvm)
@@ -1142,12 +1141,11 @@ static int ov2740_register_nvmem(struct i2c_client *client,
nvmem_config.size = CUSTOMER_USE_OTP_SIZE;
nvm->nvmem = devm_nvmem_register(dev, &nvmem_config);
+ if (IS_ERR(nvm->nvmem))
+ return PTR_ERR(nvm->nvmem);
- ret = PTR_ERR_OR_ZERO(nvm->nvmem);
- if (!ret)
- ov2740->nvm = nvm;
-
- return ret;
+ ov2740->nvm = nvm;
+ return 0;
}
static int ov2740_probe(struct i2c_client *client)
--
2.35.1
Hi, Andy
Thanks for your patch.
Reviewed-by: Bingbu Cao <[email protected]>
________________________
BRs,
Bingbu Cao
> -----Original Message-----
> From: Andy Shevchenko <[email protected]>
> Sent: Tuesday, July 26, 2022 8:06 PM
> To: Andy Shevchenko <[email protected]>; linux-
> [email protected]; [email protected]
> Cc: Qiu, Tian Shu <[email protected]>; Tu, ShawnX
> <[email protected]>; Cao, Bingbu <[email protected]>; Mauro Carvalho
> Chehab <[email protected]>
> Subject: [PATCH v1 4/8] media: ov2740: Remove duplicate check for NULL
> fwnode
>
> fwnode API does proper checks and returns correct codes, no need to repeat
> it in the caller.
>
> Signed-off-by: Andy Shevchenko <[email protected]>
> ---
> drivers/media/i2c/ov2740.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/media/i2c/ov2740.c b/drivers/media/i2c/ov2740.c index
> 9420258c6073..07fe8fda274e 100644
> --- a/drivers/media/i2c/ov2740.c
> +++ b/drivers/media/i2c/ov2740.c
> @@ -1009,9 +1009,6 @@ static int ov2740_check_hwcfg(struct device *dev)
> int ret;
> unsigned int i, j;
>
> - if (!fwnode)
> - return -ENXIO;
> -
> ret = fwnode_property_read_u32(fwnode, "clock-frequency", &mclk);
> if (ret)
> return ret;
> --
> 2.35.1
Reviewed-by: Bingbu Cao <[email protected]>
________________________
BRs,
Bingbu Cao
> -----Original Message-----
> From: Andy Shevchenko <[email protected]>
> Sent: Tuesday, July 26, 2022 8:06 PM
> To: Andy Shevchenko <[email protected]>; linux-
> [email protected]; [email protected]
> Cc: Qiu, Tian Shu <[email protected]>; Tu, ShawnX
> <[email protected]>; Cao, Bingbu <[email protected]>; Mauro Carvalho
> Chehab <[email protected]>
> Subject: [PATCH v1 7/8] media: ov2740: Add missed \n to the end of the
> messages
>
> Add missed \n to the end of the messages.
>
> Signed-off-by: Andy Shevchenko <[email protected]>
> ---
> drivers/media/i2c/ov2740.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/i2c/ov2740.c b/drivers/media/i2c/ov2740.c index
> 7271e3d011c9..c4c511f90257 100644
> --- a/drivers/media/i2c/ov2740.c
> +++ b/drivers/media/i2c/ov2740.c
> @@ -451,7 +451,7 @@ static int ov2740_write_reg_list(struct ov2740 *ov2740,
> r_list->regs[i].val);
> if (ret) {
> dev_err_ratelimited(&client->dev,
> - "write reg 0x%4.4x return err = %d",
> + "write reg 0x%4.4x return err = %d\n",
> r_list->regs[i].address, ret);
> return ret;
> }
> @@ -474,7 +474,7 @@ static int ov2740_identify_module(struct ov2740
> *ov2740)
> return ret;
>
> if (val != OV2740_CHIP_ID) {
> - dev_err(&client->dev, "chip id mismatch: %x!=%x",
> + dev_err(&client->dev, "chip id mismatch: %x != %x\n",
> OV2740_CHIP_ID, val);
> return -ENXIO;
> }
> @@ -772,14 +772,14 @@ static int ov2740_start_streaming(struct ov2740
> *ov2740)
> reg_list = &link_freq_configs[link_freq_index].reg_list;
> ret = ov2740_write_reg_list(ov2740, reg_list);
> if (ret) {
> - dev_err(&client->dev, "failed to set plls");
> + dev_err(&client->dev, "failed to set plls\n");
> return ret;
> }
>
> reg_list = &ov2740->cur_mode->reg_list;
> ret = ov2740_write_reg_list(ov2740, reg_list);
> if (ret) {
> - dev_err(&client->dev, "failed to set mode");
> + dev_err(&client->dev, "failed to set mode\n");
> return ret;
> }
>
> @@ -790,7 +790,7 @@ static int ov2740_start_streaming(struct ov2740
> *ov2740)
> ret = ov2740_write_reg(ov2740, OV2740_REG_MODE_SELECT, 1,
> OV2740_MODE_STREAMING);
> if (ret)
> - dev_err(&client->dev, "failed to start streaming");
> + dev_err(&client->dev, "failed to start streaming\n");
>
> return ret;
> }
> @@ -801,7 +801,7 @@ static void ov2740_stop_streaming(struct ov2740
> *ov2740)
>
> if (ov2740_write_reg(ov2740, OV2740_REG_MODE_SELECT, 1,
> OV2740_MODE_STANDBY))
> - dev_err(&client->dev, "failed to stop streaming");
> + dev_err(&client->dev, "failed to stop streaming\n");
> }
>
> static int ov2740_set_stream(struct v4l2_subdev *sd, int enable)
> --
> 2.35.1
Reviewed-by: Bingbu Cao <[email protected]>
________________________
BRs,
Bingbu Cao
> -----Original Message-----
> From: Andy Shevchenko <[email protected]>
> Sent: Tuesday, July 26, 2022 8:06 PM
> To: Andy Shevchenko <[email protected]>; linux-
> [email protected]; [email protected]
> Cc: Qiu, Tian Shu <[email protected]>; Tu, ShawnX
> <[email protected]>; Cao, Bingbu <[email protected]>; Mauro Carvalho
> Chehab <[email protected]>
> Subject: [PATCH v1 4/8] media: ov2740: Remove duplicate check for NULL
> fwnode
>
> fwnode API does proper checks and returns correct codes, no need to repeat
> it in the caller.
>
> Signed-off-by: Andy Shevchenko <[email protected]>
> ---
> drivers/media/i2c/ov2740.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/drivers/media/i2c/ov2740.c b/drivers/media/i2c/ov2740.c index
> 9420258c6073..07fe8fda274e 100644
> --- a/drivers/media/i2c/ov2740.c
> +++ b/drivers/media/i2c/ov2740.c
> @@ -1009,9 +1009,6 @@ static int ov2740_check_hwcfg(struct device *dev)
> int ret;
> unsigned int i, j;
>
> - if (!fwnode)
> - return -ENXIO;
> -
> ret = fwnode_property_read_u32(fwnode, "clock-frequency", &mclk);
> if (ret)
> return ret;
> --
> 2.35.1
On Tue, Jul 26, 2022 at 03:05:49PM +0300, Andy Shevchenko wrote:
> The struct i2c_client pointer is used only to get driver data,
> associated with a struct device or print messages on behalf.
> Moreover, the very same pointer to a struct device is already
> assigned by a regmap and can be retrieved from there.
> No need to keep a duplicative pointer.
Thanks, Bungbu, for the review. Can it be now applied?
--
With Best Regards,
Andy Shevchenko
On Fri, Nov 11, 2022 at 02:05:37PM +0200, Andy Shevchenko wrote:
> On Tue, Aug 23, 2022 at 05:10:35PM +0300, Andy Shevchenko wrote:
> > On Tue, Jul 26, 2022 at 03:05:49PM +0300, Andy Shevchenko wrote:
> > > The struct i2c_client pointer is used only to get driver data,
> > > associated with a struct device or print messages on behalf.
> > > Moreover, the very same pointer to a struct device is already
> > > assigned by a regmap and can be retrieved from there.
> > > No need to keep a duplicative pointer.
> >
> > Thanks, Bungbu, for the review. Can it be now applied?
>
> Don't see this being applied or commented why not...
>
> Mauro? Or who is taking care of this driver nowadays?
Okay, found a private response by Mauro where he tells that Sakari can take
care of this. Sakari, should I resend this to you with all tags applied?
Or you can use `b4` tool that allows to avoid unneeded resend.
--
With Best Regards,
Andy Shevchenko
On Tue, Aug 23, 2022 at 05:10:35PM +0300, Andy Shevchenko wrote:
> On Tue, Jul 26, 2022 at 03:05:49PM +0300, Andy Shevchenko wrote:
> > The struct i2c_client pointer is used only to get driver data,
> > associated with a struct device or print messages on behalf.
> > Moreover, the very same pointer to a struct device is already
> > assigned by a regmap and can be retrieved from there.
> > No need to keep a duplicative pointer.
>
> Thanks, Bungbu, for the review. Can it be now applied?
Don't see this being applied or commented why not...
Mauro? Or who is taking care of this driver nowadays?
--
With Best Regards,
Andy Shevchenko
On Fri, Nov 11, 2022 at 02:08:48PM +0200, Andy Shevchenko wrote:
> On Fri, Nov 11, 2022 at 02:05:37PM +0200, Andy Shevchenko wrote:
> > On Tue, Aug 23, 2022 at 05:10:35PM +0300, Andy Shevchenko wrote:
> > > On Tue, Jul 26, 2022 at 03:05:49PM +0300, Andy Shevchenko wrote:
> > > > The struct i2c_client pointer is used only to get driver data,
> > > > associated with a struct device or print messages on behalf.
> > > > Moreover, the very same pointer to a struct device is already
> > > > assigned by a regmap and can be retrieved from there.
> > > > No need to keep a duplicative pointer.
> > >
> > > Thanks, Bungbu, for the review. Can it be now applied?
> >
> > Don't see this being applied or commented why not...
> >
> > Mauro? Or who is taking care of this driver nowadays?
>
> Okay, found a private response by Mauro where he tells that Sakari can take
> care of this. Sakari, should I resend this to you with all tags applied?
> Or you can use `b4` tool that allows to avoid unneeded resend.
No need to. But please cc me on the next time. I'll take a look now...
--
Sakari Ailus
On Fri, Nov 11, 2022 at 02:58:45PM +0000, Sakari Ailus wrote:
> On Fri, Nov 11, 2022 at 02:08:48PM +0200, Andy Shevchenko wrote:
> > On Fri, Nov 11, 2022 at 02:05:37PM +0200, Andy Shevchenko wrote:
> > > On Tue, Aug 23, 2022 at 05:10:35PM +0300, Andy Shevchenko wrote:
> > > > On Tue, Jul 26, 2022 at 03:05:49PM +0300, Andy Shevchenko wrote:
> > > > > The struct i2c_client pointer is used only to get driver data,
> > > > > associated with a struct device or print messages on behalf.
> > > > > Moreover, the very same pointer to a struct device is already
> > > > > assigned by a regmap and can be retrieved from there.
> > > > > No need to keep a duplicative pointer.
> > > >
> > > > Thanks, Bungbu, for the review. Can it be now applied?
> > >
> > > Don't see this being applied or commented why not...
> > >
> > > Mauro? Or who is taking care of this driver nowadays?
> >
> > Okay, found a private response by Mauro where he tells that Sakari can take
> > care of this. Sakari, should I resend this to you with all tags applied?
> > Or you can use `b4` tool that allows to avoid unneeded resend.
>
> No need to. But please cc me on the next time. I'll take a look now...
How should I know whom to Cc? Can we update MAINTAINERS accordingly, please?
--
With Best Regards,
Andy Shevchenko
Hi Andy,
On Fri, Nov 11, 2022 at 05:29:16PM +0200, Andy Shevchenko wrote:
> On Fri, Nov 11, 2022 at 02:58:45PM +0000, Sakari Ailus wrote:
> > On Fri, Nov 11, 2022 at 02:08:48PM +0200, Andy Shevchenko wrote:
> > > On Fri, Nov 11, 2022 at 02:05:37PM +0200, Andy Shevchenko wrote:
> > > > On Tue, Aug 23, 2022 at 05:10:35PM +0300, Andy Shevchenko wrote:
> > > > > On Tue, Jul 26, 2022 at 03:05:49PM +0300, Andy Shevchenko wrote:
> > > > > > The struct i2c_client pointer is used only to get driver data,
> > > > > > associated with a struct device or print messages on behalf.
> > > > > > Moreover, the very same pointer to a struct device is already
> > > > > > assigned by a regmap and can be retrieved from there.
> > > > > > No need to keep a duplicative pointer.
> > > > >
> > > > > Thanks, Bungbu, for the review. Can it be now applied?
> > > >
> > > > Don't see this being applied or commented why not...
> > > >
> > > > Mauro? Or who is taking care of this driver nowadays?
> > >
> > > Okay, found a private response by Mauro where he tells that Sakari can take
> > > care of this. Sakari, should I resend this to you with all tags applied?
> > > Or you can use `b4` tool that allows to avoid unneeded resend.
> >
> > No need to. But please cc me on the next time. I'll take a look now...
>
> How should I know whom to Cc? Can we update MAINTAINERS accordingly, please?
Good question. In media tree we've listed the maintainers in wiki, as
the information would be hard to keep up-to-date file-wise:
<URL:https://www.linuxtv.org/wiki/index.php/Media_Maintainers>
So it helps if you cc me to camera sensor driver patches, but they're
neither ignored if you don't. It usually takes a little bit more time
but not nearly as much as this time.
Cc Hans.
--
Kind regards,
Sakari Ailus
On Fri, Nov 11, 2022 at 07:41:28PM +0000, Sakari Ailus wrote:
> On Fri, Nov 11, 2022 at 05:29:16PM +0200, Andy Shevchenko wrote:
> > On Fri, Nov 11, 2022 at 02:58:45PM +0000, Sakari Ailus wrote:
> > > On Fri, Nov 11, 2022 at 02:08:48PM +0200, Andy Shevchenko wrote:
> > > > On Fri, Nov 11, 2022 at 02:05:37PM +0200, Andy Shevchenko wrote:
> > > > > On Tue, Aug 23, 2022 at 05:10:35PM +0300, Andy Shevchenko wrote:
> > > > > > On Tue, Jul 26, 2022 at 03:05:49PM +0300, Andy Shevchenko wrote:
> > > > > > > The struct i2c_client pointer is used only to get driver data,
> > > > > > > associated with a struct device or print messages on behalf.
> > > > > > > Moreover, the very same pointer to a struct device is already
> > > > > > > assigned by a regmap and can be retrieved from there.
> > > > > > > No need to keep a duplicative pointer.
> > > > > >
> > > > > > Thanks, Bungbu, for the review. Can it be now applied?
> > > > >
> > > > > Don't see this being applied or commented why not...
> > > > >
> > > > > Mauro? Or who is taking care of this driver nowadays?
> > > >
> > > > Okay, found a private response by Mauro where he tells that Sakari can take
> > > > care of this. Sakari, should I resend this to you with all tags applied?
> > > > Or you can use `b4` tool that allows to avoid unneeded resend.
> > >
> > > No need to. But please cc me on the next time. I'll take a look now...
> >
> > How should I know whom to Cc? Can we update MAINTAINERS accordingly, please?
>
> Good question. In media tree we've listed the maintainers in wiki, as
> the information would be hard to keep up-to-date file-wise:
>
> <URL:https://www.linuxtv.org/wiki/index.php/Media_Maintainers>
Unfortunately get_maintainer.pl doesn't know about this.
> So it helps if you cc me to camera sensor driver patches, but they're
> neither ignored if you don't. It usually takes a little bit more time
> but not nearly as much as this time.
>
> Cc Hans.
--
With Best Regards,
Andy Shevchenko