Commit 7a0987bf authored by Jani Nikula's avatar Jani Nikula Committed by Tomi Valkeinen

OMAP: DSS2: Add method for querying display dimensions from DSS drivers

Add get_dimensions() to struct omap_dss_driver. Use the call, if supported
by the driver, in OMAPFB.
Signed-off-by: default avatarJani Nikula <ext-jani.1.nikula@nokia.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent b4de838e
...@@ -895,8 +895,16 @@ int omapfb_ioctl(struct fb_info *fbi, unsigned int cmd, unsigned long arg) ...@@ -895,8 +895,16 @@ int omapfb_ioctl(struct fb_info *fbi, unsigned int cmd, unsigned long arg)
p.display_info.xres = xres; p.display_info.xres = xres;
p.display_info.yres = yres; p.display_info.yres = yres;
p.display_info.width = 0;
p.display_info.height = 0; if (display->driver->get_dimensions) {
u32 w, h;
display->driver->get_dimensions(display, &w, &h);
p.display_info.width = w;
p.display_info.height = h;
} else {
p.display_info.width = 0;
p.display_info.height = 0;
}
if (copy_to_user((void __user *)arg, &p.display_info, if (copy_to_user((void __user *)arg, &p.display_info,
sizeof(p.display_info))) sizeof(p.display_info)))
......
...@@ -702,8 +702,16 @@ int check_fb_var(struct fb_info *fbi, struct fb_var_screeninfo *var) ...@@ -702,8 +702,16 @@ int check_fb_var(struct fb_info *fbi, struct fb_var_screeninfo *var)
var->xres, var->yres, var->xres, var->yres,
var->xres_virtual, var->yres_virtual); var->xres_virtual, var->yres_virtual);
var->height = -1; if (display && display->driver->get_dimensions) {
var->width = -1; u32 w, h;
display->driver->get_dimensions(display, &w, &h);
var->width = DIV_ROUND_CLOSEST(w, 1000);
var->height = DIV_ROUND_CLOSEST(h, 1000);
} else {
var->height = -1;
var->width = -1;
}
var->grayscale = 0; var->grayscale = 0;
if (display && display->driver->get_timings) { if (display && display->driver->get_timings) {
......
...@@ -505,6 +505,8 @@ struct omap_dss_driver { ...@@ -505,6 +505,8 @@ struct omap_dss_driver {
void (*get_resolution)(struct omap_dss_device *dssdev, void (*get_resolution)(struct omap_dss_device *dssdev,
u16 *xres, u16 *yres); u16 *xres, u16 *yres);
void (*get_dimensions)(struct omap_dss_device *dssdev,
u32 *width, u32 *height);
int (*get_recommended_bpp)(struct omap_dss_device *dssdev); int (*get_recommended_bpp)(struct omap_dss_device *dssdev);
int (*check_timings)(struct omap_dss_device *dssdev, int (*check_timings)(struct omap_dss_device *dssdev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment