mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
drm/omap: fix display SYNC/DE flags
At the moment VSYNC/HSYNC/DE high/low flags set by the panel/encoder drivers get lost when the videotimings are translated to DRM's videomode, as DRM's mode does not have corresponding flags. DRM has bus-flags for this purpose, and while it lacks a few flags at the moment, it should be used here. However, until we rewrite omapdrm's device model, using bus-flags is rather difficult. As a short term fix, this patch makes sure that every time the videomode is set in omap_crtc_mode_set_nofb(), the driver asks for the SYNC/DE flags from the panel/encoder drivers, and thus we get the correct flags into use. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
956d4f9308
commit
50fa9f0bb8
2 changed files with 43 additions and 5 deletions
|
@ -146,8 +146,6 @@ static int omap_connector_mode_valid(struct drm_connector *connector,
|
|||
int r, ret = MODE_BAD;
|
||||
|
||||
drm_display_mode_to_videomode(mode, &vm);
|
||||
vm.flags |= DISPLAY_FLAGS_DE_HIGH | DISPLAY_FLAGS_PIXDATA_POSEDGE |
|
||||
DISPLAY_FLAGS_SYNC_NEGEDGE;
|
||||
mode->vrefresh = drm_mode_vrefresh(mode);
|
||||
|
||||
/*
|
||||
|
@ -162,6 +160,12 @@ static int omap_connector_mode_valid(struct drm_connector *connector,
|
|||
|
||||
dssdrv->get_timings(dssdev, &t);
|
||||
|
||||
/*
|
||||
* Ignore the flags, as we don't get them from
|
||||
* drm_display_mode_to_videomode.
|
||||
*/
|
||||
t.flags = 0;
|
||||
|
||||
if (memcmp(&vm, &t, sizeof(vm)))
|
||||
r = -EINVAL;
|
||||
else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue