• Hans de Goede's avatar
    drm: Add support for a panel-orientation connector property, v6 · 8d70f395
    Hans de Goede authored
    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: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171125193553.23986-4-hdegoede@redhat.com
    8d70f395
drm_connector.c 50.1 KB