[PATCH 3/3] drm/amdgpu:Limit the resolution for virtual_display

Deng, Emily Emily.Deng at amd.com
Wed Jan 6 10:40:51 UTC 2021


[AMD Official Use Only - Internal Distribution Only]

>-----Original Message-----
>From: Alex Deucher <alexdeucher at gmail.com>
>Sent: Wednesday, January 6, 2021 1:23 AM
>To: Deng, Emily <Emily.Deng at amd.com>
>Cc: amd-gfx list <amd-gfx at lists.freedesktop.org>
>Subject: Re: [PATCH 3/3] drm/amdgpu:Limit the resolution for virtual_display
>
>On Tue, Jan 5, 2021 at 3:37 AM Emily.Deng <Emily.Deng at amd.com> wrote:
>>
>> Limit the resolution not bigger than 16384, which means
>> dev->mode_info.num_crtc * common_modes[i].w not bigger than 16384.
>>
>> Signed-off-by: Emily.Deng <Emily.Deng at amd.com>
>> ---
>>  drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 7 +++++--
>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
>> b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
>> index 2b16c8faca34..c23d37b02fd7 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
>> @@ -319,6 +319,7 @@ dce_virtual_encoder(struct drm_connector
>> *connector)  static int dce_virtual_get_modes(struct drm_connector
>> *connector)  {
>>         struct drm_device *dev = connector->dev;
>> +       struct amdgpu_device *adev = dev->dev_private;
>>         struct drm_display_mode *mode = NULL;
>>         unsigned i;
>>         static const struct mode_size { @@ -350,8 +351,10 @@ static
>> int dce_virtual_get_modes(struct drm_connector *connector)
>>         };
>>
>>         for (i = 0; i < ARRAY_SIZE(common_modes); i++) {
>> -               mode = drm_cvt_mode(dev, common_modes[i].w,
>common_modes[i].h, 60, false, false, false);
>> -               drm_mode_probed_add(connector, mode);
>> +               if (adev->mode_info.num_crtc <= 4 ||
>> + common_modes[i].w <= 2560) {
>
>You are also limiting the number of crtcs here.  Intended?  Won't this break 5
>or 6 crtc configs?
>
>Alex
Yes, it is intended,  for num_crtc bigger then 4, don't support resolution bigger then 2560, because of the max supported width is 16384 for xcb protocol.
>
>> +                       mode = drm_cvt_mode(dev, common_modes[i].w,
>common_modes[i].h, 60, false, false, false);
>> +                       drm_mode_probed_add(connector, mode);
>> +               }
>>         }
>>
>>         return 0;
>> --
>> 2.25.1
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
>> s.freedesktop.org%2Fmailman%2Flistinfo%2Famd-
>gfx&data=04%7C01%7CEm
>>
>ily.Deng%40amd.com%7Ce17ab0515ecf483eff6a08d8b19ea565%7C3dd8961f
>e4884e
>>
>608e11a82d994e183d%7C0%7C0%7C637454642229402978%7CUnknown%7
>CTWFpbGZsb3
>>
>d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%
>3D%7
>>
>C1000&sdata=YEVtCVJZ8JSe3kjyAGmjltHN1O4i4yvjvXjDZhWhZSY%3D&a
>mp;res
>> erved=0


More information about the amd-gfx mailing list