[PATCH] drm/amd/display: Create plane rotation property

Harry Wentland hwentlan at amd.com
Thu Sep 12 17:22:33 UTC 2019


On 2019-09-12 1:01 p.m., Kazlauskas, Nicholas wrote:
> On 2019-09-12 12:44 p.m., Pierre-Loup A. Griffais wrote:
>> It's otherwise properly supported, just needs exposing to userspace.
>>
>> Signed-off-by: Pierre-Loup A. Griffais <pgriffais at valvesoftware.com>
> I know IGT has some tests for plane rotation, do you happen to know what 
> tests pass or fail when exposing this?
> 
> I think DCN1 (Raven) should work as expected but I'd be concerned about 
> DCE or DCN2. I think we have had some cursor bugs in the past with 
> cursor rotation but they might only be exposed when used in conjunction 
> with overlay planes.
> 

Windows guys had a fix (in DC) for cursor with HW rotation on DCN a few
weeks ago. That might have fixed these issues.

We should still make sure we can pass IGT tests that do rotation.

How did you test? Weston?

Harry

> I'd just like to make sure there's suitable testing at least if we're 
> going to expose this to userspace.
> 
> Nicholas Kazlauskas
> 
>> ---
>>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index 45be7a2132bb..3772763c6449 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -4680,6 +4680,7 @@ static int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
>>   	uint32_t formats[32];
>>   	int num_formats;
>>   	int res = -EPERM;
>> +	unsigned int supported_rotations;
>>   
>>   	num_formats = get_plane_formats(plane, plane_cap, formats,
>>   					ARRAY_SIZE(formats));
>> @@ -4711,6 +4712,13 @@ static int amdgpu_dm_plane_init(struct amdgpu_display_manager *dm,
>>   			DRM_COLOR_YCBCR_BT709, DRM_COLOR_YCBCR_LIMITED_RANGE);
>>   	}
>>   
>> +	supported_rotations =
>> +		DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 |
>> +		DRM_MODE_ROTATE_180 | DRM_MODE_ROTATE_270;
>> +
>> +	drm_plane_create_rotation_property(plane, DRM_MODE_ROTATE_0,
>> +					   supported_rotations);
>> +
>>   	drm_plane_helper_add(plane, &dm_plane_helper_funcs);
>>   
>>   	/* Create (reset) the plane state */
>>
> 


More information about the amd-gfx mailing list