[PATCH] drm/bridge: adv7533: make array clock_div_by_lanes static const

Colin Ian King posted 1 patch 4 years, 5 months ago
drivers/gpu/drm/bridge/adv7511/adv7533.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] drm/bridge: adv7533: make array clock_div_by_lanes static const
Posted by Colin Ian King 4 years, 5 months ago
Don't populate the read-only array clock_div_by_lanes on the stack but
instead it static const. Also makes the object code a little smaller.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
 drivers/gpu/drm/bridge/adv7511/adv7533.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c b/drivers/gpu/drm/bridge/adv7511/adv7533.c
index eb7579dec40a..ef6270806d1d 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7533.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c
@@ -29,7 +29,7 @@ static void adv7511_dsi_config_timing_gen(struct adv7511 *adv)
 	struct mipi_dsi_device *dsi = adv->dsi;
 	struct drm_display_mode *mode = &adv->curr_mode;
 	unsigned int hsw, hfp, hbp, vsw, vfp, vbp;
-	u8 clock_div_by_lanes[] = { 6, 4, 3 };	/* 2, 3, 4 lanes */
+	static const u8 clock_div_by_lanes[] = { 6, 4, 3 };	/* 2, 3, 4 lanes */
 
 	hsw = mode->hsync_end - mode->hsync_start;
 	hfp = mode->hsync_start - mode->hdisplay;
-- 
2.32.0

Re: [PATCH] drm/bridge: adv7533: make array clock_div_by_lanes static const
Posted by Laurent Pinchart 4 years, 5 months ago
Hi Colin,

Thank you for the patch.

On Sun, Jan 09, 2022 at 08:41:05PM +0000, Colin Ian King wrote:
> Don't populate the read-only array clock_div_by_lanes on the stack but
> instead it static const. Also makes the object code a little smaller.
> 
> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> ---
>  drivers/gpu/drm/bridge/adv7511/adv7533.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> index eb7579dec40a..ef6270806d1d 100644
> --- a/drivers/gpu/drm/bridge/adv7511/adv7533.c
> +++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> @@ -29,7 +29,7 @@ static void adv7511_dsi_config_timing_gen(struct adv7511 *adv)
>  	struct mipi_dsi_device *dsi = adv->dsi;
>  	struct drm_display_mode *mode = &adv->curr_mode;
>  	unsigned int hsw, hfp, hbp, vsw, vfp, vbp;
> -	u8 clock_div_by_lanes[] = { 6, 4, 3 };	/* 2, 3, 4 lanes */
> +	static const u8 clock_div_by_lanes[] = { 6, 4, 3 };	/* 2, 3, 4 lanes */

It's not mandatory, but I have a tendency to declare static const
variable first before all mutable variables.

>  
>  	hsw = mode->hsync_end - mode->hsync_start;
>  	hfp = mode->hsync_start - mode->hdisplay;

I wonder if

	/* set pixel clock divider mode */
	regmap_write(adv->regmap_cec, 0x16, (12 / dsi->lanes) << 3);

would be even better, or if it would be too much black magic. Either
way,

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

-- 
Regards,

Laurent Pinchart
Re: [PATCH] drm/bridge: adv7533: make array clock_div_by_lanes static const
Posted by Robert Foss 4 years, 5 months ago
On Sun, 9 Jan 2022 at 23:58, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hi Colin,
>
> Thank you for the patch.
>
> On Sun, Jan 09, 2022 at 08:41:05PM +0000, Colin Ian King wrote:
> > Don't populate the read-only array clock_div_by_lanes on the stack but
> > instead it static const. Also makes the object code a little smaller.
> >
> > Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> > ---
> >  drivers/gpu/drm/bridge/adv7511/adv7533.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> > index eb7579dec40a..ef6270806d1d 100644
> > --- a/drivers/gpu/drm/bridge/adv7511/adv7533.c
> > +++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c
> > @@ -29,7 +29,7 @@ static void adv7511_dsi_config_timing_gen(struct adv7511 *adv)
> >       struct mipi_dsi_device *dsi = adv->dsi;
> >       struct drm_display_mode *mode = &adv->curr_mode;
> >       unsigned int hsw, hfp, hbp, vsw, vfp, vbp;
> > -     u8 clock_div_by_lanes[] = { 6, 4, 3 };  /* 2, 3, 4 lanes */
> > +     static const u8 clock_div_by_lanes[] = { 6, 4, 3 };     /* 2, 3, 4 lanes */
>
> It's not mandatory, but I have a tendency to declare static const
> variable first before all mutable variables.
>
> >
> >       hsw = mode->hsync_end - mode->hsync_start;
> >       hfp = mode->hsync_start - mode->hdisplay;
>
> I wonder if
>
>         /* set pixel clock divider mode */
>         regmap_write(adv->regmap_cec, 0x16, (12 / dsi->lanes) << 3);
>
> would be even better, or if it would be too much black magic. Either
> way,
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Applied to drm-misc-next.