Message ID | 20191215213307.689830-2-hdegoede@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] drm/i915/dsi: Remove readback of panel orientation on BYT / CHT | expand |
On Sun, Dec 15, 2019 at 10:33:07PM +0100, Hans de Goede wrote: > Some devices with a builtin panel have the panel mounted upside down, > this is indicated by the rotate_180 bit in the BDB_GENERAL_FEATURES VBT > block. > > We store this info in dev_priv->vbt.orientation, use this to set the > connector's orientation property so that fbcon and userspace will show > the image the right way up on devices with an upside-down mounted panel. > > This fixes the image being upside-down on a Teclast X89 tablet. > > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > drivers/gpu/drm/i915/display/intel_dp.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > index b05b2191b919..d31c04a22976 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp.c > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > @@ -7350,9 +7350,12 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, > intel_connector->panel.backlight.power = intel_edp_backlight_power; > intel_panel_setup_backlight(connector, pipe); > > - if (fixed_mode) > + if (fixed_mode) { > + connector->display_info.panel_orientation = > + dev_priv->vbt.orientation; Do we want to set this to UNKNOWN when the VBT didn't supply the information? IIRC the DSI code sets it to NORMAL in that case. > drm_connector_init_panel_orientation_property( > connector, fixed_mode->hdisplay, fixed_mode->vdisplay); > + } > > return true; > > -- > 2.23.0
Hi, On 16-12-2019 14:39, Ville Syrjälä wrote: > On Sun, Dec 15, 2019 at 10:33:07PM +0100, Hans de Goede wrote: >> Some devices with a builtin panel have the panel mounted upside down, >> this is indicated by the rotate_180 bit in the BDB_GENERAL_FEATURES VBT >> block. >> >> We store this info in dev_priv->vbt.orientation, use this to set the >> connector's orientation property so that fbcon and userspace will show >> the image the right way up on devices with an upside-down mounted panel. >> >> This fixes the image being upside-down on a Teclast X89 tablet. >> >> Signed-off-by: Hans de Goede <hdegoede@redhat.com> >> --- >> drivers/gpu/drm/i915/display/intel_dp.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c >> index b05b2191b919..d31c04a22976 100644 >> --- a/drivers/gpu/drm/i915/display/intel_dp.c >> +++ b/drivers/gpu/drm/i915/display/intel_dp.c >> @@ -7350,9 +7350,12 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, >> intel_connector->panel.backlight.power = intel_edp_backlight_power; >> intel_panel_setup_backlight(connector, pipe); >> >> - if (fixed_mode) >> + if (fixed_mode) { >> + connector->display_info.panel_orientation = >> + dev_priv->vbt.orientation; > > Do we want to set this to UNKNOWN when the VBT didn't supply the > information? IIRC the DSI code sets it to NORMAL in that case. It is true that the DSI code sets it to normal where-as the code filling dev_priv->vbt.orientation will set it to unknown if the info is missing from the VBT. Note that drm_connector_init_panel_orientation_property() will simply omit the property if the value is unknown (and userspace treats the property no being there as "normal"). Omitting the property when we do not know is what we have been doing sofar for eDP panels and that does feel like the right thing to do, I would prefer to continue doing that, as that seems the most correct behavior, if we do not know, do not advertise any specific orientation. Regards, Hans > >> drm_connector_init_panel_orientation_property( >> connector, fixed_mode->hdisplay, fixed_mode->vdisplay); >> + } >> >> return true; >> >> -- >> 2.23.0 >
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c index b05b2191b919..d31c04a22976 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -7350,9 +7350,12 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp, intel_connector->panel.backlight.power = intel_edp_backlight_power; intel_panel_setup_backlight(connector, pipe); - if (fixed_mode) + if (fixed_mode) { + connector->display_info.panel_orientation = + dev_priv->vbt.orientation; drm_connector_init_panel_orientation_property( connector, fixed_mode->hdisplay, fixed_mode->vdisplay); + } return true;
Some devices with a builtin panel have the panel mounted upside down, this is indicated by the rotate_180 bit in the BDB_GENERAL_FEATURES VBT block. We store this info in dev_priv->vbt.orientation, use this to set the connector's orientation property so that fbcon and userspace will show the image the right way up on devices with an upside-down mounted panel. This fixes the image being upside-down on a Teclast X89 tablet. Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- drivers/gpu/drm/i915/display/intel_dp.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)