[Intel-gfx] [PATCH 2/2] drm/i915/dp: Use BDB_GENERAL_FEATURES VBT block info for builtin panel-orientation

Hans de Goede hdegoede at redhat.com
Mon Dec 16 18:54:30 UTC 2019


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 at 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
> 



More information about the Intel-gfx mailing list