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@ideasonboard.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Tested-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
struct dss_lcd_mgr_config mgr_config;
struct dss_lcd_mgr_config mgr_config;
+ unsigned long pixelclock;
int data_lines;
struct omap_dss_device output;
int data_lines;
struct omap_dss_device output;
static int dpi_set_mode(struct dpi_data *dpi)
{
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,
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);
- 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;
&lck_div, &pck_div);
if (r)
return r;
- drm_display_mode_to_videomode(mode, &dpi->vm);
+ dpi->pixelclock = mode->clock * 1000;
mutex_unlock(&dpi->lock);
}
mutex_unlock(&dpi->lock);
}
struct regulator *vdds_sdi_reg;
struct dss_lcd_mgr_config mgr_config;
struct regulator *vdds_sdi_reg;
struct dss_lcd_mgr_config mgr_config;
+ unsigned long pixelclock;
int datapairs;
struct omap_dss_device output;
int datapairs;
struct omap_dss_device output;
if (r)
goto err_get_dispc;
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;
if (r)
goto err_calc_clock_div;
{
struct sdi_device *sdi = dssdev_to_sdi(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,
}
static int sdi_check_timings(struct omap_dss_device *dssdev,