diff mbox series

[6/7] drm: adv7511: Add link_config feature bit to struct adv7511_chip_info

Message ID 20230813180512.307418-7-biju.das.jz@bp.renesas.com (mailing list archive)
State Superseded
Delegated to: Kieran Bingham
Headers show
Series ADV7511 driver enhancements | expand

Commit Message

Biju Das Aug. 13, 2023, 6:05 p.m. UTC
The ADV7511 needs link configuration whereas ADV75{33,35} does not need
it. Add a feature bit link_config to struct adv7511_chip_info to handle
this difference.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
 drivers/gpu/drm/bridge/adv7511/adv7511.h     | 1 +
 drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 7 ++++---
 2 files changed, 5 insertions(+), 3 deletions(-)

Comments

Laurent Pinchart Aug. 29, 2023, 7:34 a.m. UTC | #1
Hi Biju,

Thank you for the patch.

On Sun, Aug 13, 2023 at 07:05:11PM +0100, Biju Das wrote:
> The ADV7511 needs link configuration whereas ADV75{33,35} does not need
> it. Add a feature bit link_config to struct adv7511_chip_info to handle
> this difference.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
>  drivers/gpu/drm/bridge/adv7511/adv7511.h     | 1 +
>  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 7 ++++---
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511.h b/drivers/gpu/drm/bridge/adv7511/adv7511.h
> index 2a017bb31a14..627531f48f84 100644
> --- a/drivers/gpu/drm/bridge/adv7511/adv7511.h
> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511.h
> @@ -340,6 +340,7 @@ struct adv7511_chip_info {
>  	const char * const *supply_names;
>  	unsigned int num_supplies;
>  	unsigned has_dsi:1;
> +	unsigned link_config:1;

I would use a bool here too.

I'm not entirely sure about this particular patch, it seems that testing
the chip type would be better. I'm not totally against it though, so

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

>  };
>  
>  struct adv7511 {
> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> index 66b3f8fcf67d..6974c267b1d5 100644
> --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> @@ -1208,7 +1208,7 @@ static int adv7511_probe(struct i2c_client *i2c)
>  
>  	memset(&link_config, 0, sizeof(link_config));
>  
> -	if (adv7511->info->type == ADV7511)
> +	if (info->link_config)
>  		ret = adv7511_parse_dt(dev->of_node, &link_config);
>  	else
>  		ret = adv7533_parse_dt(dev->of_node, adv7511);
> @@ -1297,7 +1297,7 @@ static int adv7511_probe(struct i2c_client *i2c)
>  
>  	i2c_set_clientdata(i2c, adv7511);
>  
> -	if (info->type == ADV7511)
> +	if (info->link_config)
>  		adv7511_set_link_config(adv7511, &link_config);
>  
>  	ret = adv7511_cec_init(dev, adv7511);
> @@ -1362,7 +1362,8 @@ static void adv7511_remove(struct i2c_client *i2c)
>  static const struct adv7511_chip_info adv7511_chip_info = {
>  	.type = ADV7511,
>  	.supply_names = adv7511_supply_names,
> -	.num_supplies = ARRAY_SIZE(adv7511_supply_names)
> +	.num_supplies = ARRAY_SIZE(adv7511_supply_names),
> +	.link_config = 1
>  };
>  
>  static const struct adv7511_chip_info adv7533_chip_info = {
Biju Das Aug. 29, 2023, 2:20 p.m. UTC | #2
Hi Laurent,

Thanks for the feedback.

> Subject: Re: [PATCH 6/7] drm: adv7511: Add link_config feature bit to
> struct adv7511_chip_info
> 
> Hi Biju,
> 
> Thank you for the patch.
> 
> On Sun, Aug 13, 2023 at 07:05:11PM +0100, Biju Das wrote:
> > The ADV7511 needs link configuration whereas ADV75{33,35} does not
> > need it. Add a feature bit link_config to struct adv7511_chip_info to
> > handle this difference.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> >  drivers/gpu/drm/bridge/adv7511/adv7511.h     | 1 +
> >  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 7 ++++---
> >  2 files changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511.h
> > b/drivers/gpu/drm/bridge/adv7511/adv7511.h
> > index 2a017bb31a14..627531f48f84 100644
> > --- a/drivers/gpu/drm/bridge/adv7511/adv7511.h
> > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511.h
> > @@ -340,6 +340,7 @@ struct adv7511_chip_info {
> >  	const char * const *supply_names;
> >  	unsigned int num_supplies;
> >  	unsigned has_dsi:1;
> > +	unsigned link_config:1;
> 
> I would use a bool here too.

OK, will use Boolean.

Cheers,
Biju

> 
> I'm not entirely sure about this particular patch, it seems that testing
> the chip type would be better. I'm not totally against it though, so
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> 
> >  };
> >
> >  struct adv7511 {
> > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> > b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> > index 66b3f8fcf67d..6974c267b1d5 100644
> > --- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> > +++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
> > @@ -1208,7 +1208,7 @@ static int adv7511_probe(struct i2c_client *i2c)
> >
> >  	memset(&link_config, 0, sizeof(link_config));
> >
> > -	if (adv7511->info->type == ADV7511)
> > +	if (info->link_config)
> >  		ret = adv7511_parse_dt(dev->of_node, &link_config);
> >  	else
> >  		ret = adv7533_parse_dt(dev->of_node, adv7511); @@ -1297,7
> +1297,7
> > @@ static int adv7511_probe(struct i2c_client *i2c)
> >
> >  	i2c_set_clientdata(i2c, adv7511);
> >
> > -	if (info->type == ADV7511)
> > +	if (info->link_config)
> >  		adv7511_set_link_config(adv7511, &link_config);
> >
> >  	ret = adv7511_cec_init(dev, adv7511); @@ -1362,7 +1362,8 @@ static
> > void adv7511_remove(struct i2c_client *i2c)  static const struct
> > adv7511_chip_info adv7511_chip_info = {
> >  	.type = ADV7511,
> >  	.supply_names = adv7511_supply_names,
> > -	.num_supplies = ARRAY_SIZE(adv7511_supply_names)
> > +	.num_supplies = ARRAY_SIZE(adv7511_supply_names),
> > +	.link_config = 1
> >  };
> >
> >  static const struct adv7511_chip_info adv7533_chip_info = {
> 
> --
> Regards,
> 
> Laurent Pinchart
diff mbox series

Patch

diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511.h b/drivers/gpu/drm/bridge/adv7511/adv7511.h
index 2a017bb31a14..627531f48f84 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7511.h
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511.h
@@ -340,6 +340,7 @@  struct adv7511_chip_info {
 	const char * const *supply_names;
 	unsigned int num_supplies;
 	unsigned has_dsi:1;
+	unsigned link_config:1;
 };
 
 struct adv7511 {
diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
index 66b3f8fcf67d..6974c267b1d5 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
@@ -1208,7 +1208,7 @@  static int adv7511_probe(struct i2c_client *i2c)
 
 	memset(&link_config, 0, sizeof(link_config));
 
-	if (adv7511->info->type == ADV7511)
+	if (info->link_config)
 		ret = adv7511_parse_dt(dev->of_node, &link_config);
 	else
 		ret = adv7533_parse_dt(dev->of_node, adv7511);
@@ -1297,7 +1297,7 @@  static int adv7511_probe(struct i2c_client *i2c)
 
 	i2c_set_clientdata(i2c, adv7511);
 
-	if (info->type == ADV7511)
+	if (info->link_config)
 		adv7511_set_link_config(adv7511, &link_config);
 
 	ret = adv7511_cec_init(dev, adv7511);
@@ -1362,7 +1362,8 @@  static void adv7511_remove(struct i2c_client *i2c)
 static const struct adv7511_chip_info adv7511_chip_info = {
 	.type = ADV7511,
 	.supply_names = adv7511_supply_names,
-	.num_supplies = ARRAY_SIZE(adv7511_supply_names)
+	.num_supplies = ARRAY_SIZE(adv7511_supply_names),
+	.link_config = 1
 };
 
 static const struct adv7511_chip_info adv7533_chip_info = {