On Tue, Jan 5, 2021 at 3:37 AM Emily.Deng <Emily.Deng@xxxxxxx> 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@xxxxxxx> > --- > 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 > + 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@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx