diff options
Diffstat (limited to 'drivers/video/omap2/displays/panel-minnow.c')
| -rw-r--r-- | drivers/video/omap2/displays/panel-minnow.c | 20 | 
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/video/omap2/displays/panel-minnow.c b/drivers/video/omap2/displays/panel-minnow.c index 7f7efce3898..254a5e1e008 100644 --- a/drivers/video/omap2/displays/panel-minnow.c +++ b/drivers/video/omap2/displays/panel-minnow.c @@ -302,6 +302,8 @@ struct minnow_panel_data {  	int id_panel;  	int x_offset;  	int y_offset; +	int xres_um; +	int yres_um;  	int reset_ms;  	int release_ms; @@ -1420,6 +1422,14 @@ static void minnow_panel_get_resolution(struct omap_dss_device *dssdev,  	*yres = dssdev->panel.timings.y_res;  } +static void minnow_panel_get_dimensions(struct omap_dss_device *dssdev, +		u32 *xres, u32 *yres) +{ +	struct minnow_panel_data *mpd = dev_get_drvdata(&dssdev->dev); +	*xres = mpd->xres_um; +	*yres = mpd->yres_um; +} +  static ssize_t minnow_panel_errors_show(struct device *dev,  	struct device_attribute *attr, char *buf)  { @@ -2456,6 +2466,15 @@ static int minnow_panel_dt_init(struct minnow_panel_data *mpd)  			mpd->dsi_config.lp_clk_max);  	} +	mpd->xres_um = 0; +	mpd->yres_um = 0; +	if (!of_property_read_u32_array(dt_node, "panel_size_um", range, 2)) { +		mpd->xres_um = range[0]; +		mpd->yres_um = range[1]; +		DTINFO("physical panel width = %d um, height = %d um\n", +			mpd->xres_um, mpd->yres_um); +	} +  	return 0;  } @@ -3773,6 +3792,7 @@ static struct omap_dss_driver minnow_panel_driver = {  	.sync		= minnow_panel_sync,  	.get_resolution	= minnow_panel_get_resolution, +	.get_dimensions	= minnow_panel_get_dimensions,  	.get_recommended_bpp = omapdss_default_get_recommended_bpp,  	.enable_te	= minnow_panel_enable_te,  |