drm/omap: Make fixed resolution panels work
authorArchit Taneja <archit@ti.com>
Tue, 26 Mar 2013 13:45:20 +0000 (19:15 +0530)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Thu, 11 Apr 2013 10:25:52 +0000 (13:25 +0300)
commitbddabbe174cfb6f944baaf13ed5b93c6ee89ec3d
tree99ebe6a65bd2a22973bcbf34069c70f5f1bbb635
parent581382e31090aa2459e8046e0bafb0f1daa2ecd8
drm/omap: Make fixed resolution panels work

The omapdrm driver requires omapdss panel drivers to expose ops like detect,
set_timings and check_timings. These can be NULL for fixed panel DPI, DBI, DSI
and SDI drivers. At some places, there are no checks to see if the panel driver
has these ops or not, and that leads to a crash.

The following things are done to make fixed panels work:

- The omap_connector's detect function is modified such that it considers panel
  types which are generally fixed panels as always connected(provided the panel
  driver doesn't have a detect op). Hence, the connector corresponding to these
  panels is always in a 'connected' state.

- If a panel driver doesn't have a check_timings op, assume that it supports the
  mode passed to omap_connector_mode_valid(the 'mode_valid' drm helper function)

- The function omap_encoder_update shouldn't really do anything for fixed
  resolution panels, make sure that it calls set_timings only if the panel
  driver has one.

Signed-off-by: Archit Taneja <archit@ti.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/omap_connector.c
drivers/gpu/drm/omapdrm/omap_encoder.c