[PATCH 27/29] drm/omap: Store pixel clock instead of full mode in DPI and SDI encoders

Sebastian Reichel sebastian.reichel at collabora.com
Sun Dec 9 22:27:21 UTC 2018


Hi,

On Wed, Dec 05, 2018 at 05:00:20PM +0200, Laurent Pinchart wrote:
> The DPI and SDI encoders store the full videomode upon mode set, to only
> use the value of the pixel clock when enabling the encoder. This wastes
> memory. Store the pixel clock value only.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---

Reviewed-by: Sebastian Reichel <sebastian.reichel at collabora.com>

-- Sebastian

>  drivers/gpu/drm/omapdrm/dss/dpi.c | 9 ++++-----
>  drivers/gpu/drm/omapdrm/dss/sdi.c | 6 +++---
>  2 files changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/dpi.c b/drivers/gpu/drm/omapdrm/dss/dpi.c
> index 0cb3cb72f15f..295bc3eeea80 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dpi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dpi.c
> @@ -47,8 +47,8 @@ struct dpi_data {
>  
>  	struct mutex lock;
>  
> -	struct videomode vm;
>  	struct dss_lcd_mgr_config mgr_config;
> +	unsigned long pixelclock;
>  	int data_lines;
>  
>  	struct omap_dss_device output;
> @@ -347,16 +347,15 @@ static int dpi_set_dispc_clk(struct dpi_data *dpi, unsigned long pck_req,
>  
>  static int dpi_set_mode(struct dpi_data *dpi)
>  {
> -	const struct videomode *vm = &dpi->vm;
>  	int lck_div = 0, pck_div = 0;
>  	unsigned long fck = 0;
>  	int r = 0;
>  
>  	if (dpi->pll)
>  		r = dpi_set_pll_clk(dpi, dpi->output.dispc_channel,
> -				    vm->pixelclock, &fck, &lck_div, &pck_div);
> +				    dpi->pixelclock, &fck, &lck_div, &pck_div);
>  	else
> -		r = dpi_set_dispc_clk(dpi, vm->pixelclock, &fck,
> +		r = dpi_set_dispc_clk(dpi, dpi->pixelclock, &fck,
>  				&lck_div, &pck_div);
>  	if (r)
>  		return r;
> @@ -467,7 +466,7 @@ static void dpi_set_timings(struct omap_dss_device *dssdev,
>  
>  	mutex_lock(&dpi->lock);
>  
> -	drm_display_mode_to_videomode(mode, &dpi->vm);
> +	dpi->pixelclock = mode->clock * 1000;
>  
>  	mutex_unlock(&dpi->lock);
>  }
> diff --git a/drivers/gpu/drm/omapdrm/dss/sdi.c b/drivers/gpu/drm/omapdrm/dss/sdi.c
> index f096a7f77e5f..38b0bf19538d 100644
> --- a/drivers/gpu/drm/omapdrm/dss/sdi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/sdi.c
> @@ -37,7 +37,7 @@ struct sdi_device {
>  	struct regulator *vdds_sdi_reg;
>  
>  	struct dss_lcd_mgr_config mgr_config;
> -	struct videomode vm;
> +	unsigned long pixelclock;
>  	int datapairs;
>  
>  	struct omap_dss_device output;
> @@ -144,7 +144,7 @@ static void sdi_display_enable(struct omap_dss_device *dssdev)
>  	if (r)
>  		goto err_get_dispc;
>  
> -	r = sdi_calc_clock_div(sdi, sdi->vm.pixelclock, &fck, &dispc_cinfo);
> +	r = sdi_calc_clock_div(sdi, sdi->pixelclock, &fck, &dispc_cinfo);
>  	if (r)
>  		goto err_calc_clock_div;
>  
> @@ -210,7 +210,7 @@ static void sdi_set_timings(struct omap_dss_device *dssdev,
>  {
>  	struct sdi_device *sdi = dssdev_to_sdi(dssdev);
>  
> -	drm_display_mode_to_videomode(mode, &sdi->vm);
> +	sdi->pixelclock = mode->clock * 1000;
>  }
>  
>  static int sdi_check_timings(struct omap_dss_device *dssdev,
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20181209/d2a94ff2/attachment.sig>


More information about the dri-devel mailing list