• Hans de Goede's avatar
    drm/i915: Add "panel orientation" property to the panel connector, v6. · 82daca29
    Hans de Goede authored
    Ideally we could use the VBT for this, that would be simple, in
    intel_dsi_init() check dev_priv->vbt.dsi.config->rotation, set
    connector->display_info.panel_orientation accordingly and call
    drm_connector_init_panel_orientation_property(), done.
    
    Unfortunately vbt.dsi.config->rotation is always 0 even on tablets
    with an upside down LCD and where the GOP is properly rotating the
    EFI fb in hardware.
    
    So instead we end up reading the rotation from the primary plane.
    
    This commit only implements the panel orientation property for DSI
    panels on BYT / CHT hardware, as all known non normal oriented panels
    sofar are only found on this hardware.
    
    Changes in v2:
    -Read back the rotation applied by the GOP from the primary plane
     instead of relying on dev_priv->vbt.dsi.config->rotation, because it
     seems that the VBT rotation filed is always 0 even on devices where the
     GOP does apply a rotation
    
    Changes in v3:
    -Rewrite the code to read back the orientation from the primary
     plane to contain all of this in intel_dsi.c instead of poking a bunch
     of holes between all the different layers
    
    Changes in v6:
    -Move hardware readout to intel_dsi_init()
    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-6-hdegoede@redhat.com
    82daca29
intel_dsi.c 55.6 KB