2022-01-09 20:41:11

by Colin Ian King

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

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 <[email protected]>
---
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



2022-01-09 22:58:32

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] drm/bridge: adv7533: make array clock_div_by_lanes static const

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 <[email protected]>
> ---
> 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 <[email protected]>

--
Regards,

Laurent Pinchart

2022-01-12 10:09:22

by Robert Foss

[permalink] [raw]
Subject: Re: [PATCH] drm/bridge: adv7533: make array clock_div_by_lanes static const

On Sun, 9 Jan 2022 at 23:58, Laurent Pinchart
<[email protected]> 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 <[email protected]>
> > ---
> > 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 <[email protected]>

Applied to drm-misc-next.