drm: Add support for a panel-orientation connector property, v6
authorHans de Goede <j.w.r.degoede@gmail.com>
Sat, 25 Nov 2017 19:35:49 +0000 (20:35 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 4 Dec 2017 22:03:21 +0000 (23:03 +0100)
commit8d70f395e6cbece665b12b4bf6dbc48d12623014
tree0a925210e334f21ad952d2f4441883a37f629abb
parent404d1a3edc3873b339198ec3f3d6a09be2ddda4f
drm: Add support for a panel-orientation connector property, v6

On some devices the LCD panel is mounted in the casing in such a way that
the up/top side of the panel does not match with the top side of the
device (e.g. it is mounted upside-down).

This commit adds the necessary infra for lcd-panel drm_connector-s to
have a "panel orientation" property to communicate how the panel is
orientated vs the casing.

Userspace can use this property to check for non-normal orientation and
then adjust the displayed image accordingly by rotating it to compensate.

Changes in v2:
-Store panel_orientation in drm_display_info, so that drm_fb_helper.c can
 access it easily
-Have a single drm_connector_init_panel_orientation_property rather then
 create and attach functions. The caller is expected to set
 drm_display_info.panel_orientation before calling this, then this will
 check for platform specific quirks overriding the panel_orientation and if
 the panel_orientation is set after this then it will attach the property.

Changes in v6:
-Use an enum (with kerneldoc) rather then #defines for
 DRM_MODE_PANEL_ORIENTATION_*

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20171125193553.23986-4-hdegoede@redhat.com
drivers/gpu/drm/Kconfig
drivers/gpu/drm/drm_connector.c
include/drm/drm_connector.h
include/drm/drm_mode_config.h