diff options
author | Dave Airlie <airlied@redhat.com> | 2012-09-25 16:17:43 +1000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-10-02 10:30:48 -0700 |
commit | bd1d3d8331af11cc1abf5e907a9a963037530281 (patch) | |
tree | 071bbf0ed91fd036837f77afe240646108d6a0d5 /drivers/gpu | |
parent | 66801463734e49416a9b013d3eb8f9eb8cd851e0 (diff) | |
download | linux-3.10-bd1d3d8331af11cc1abf5e907a9a963037530281.tar.gz linux-3.10-bd1d3d8331af11cc1abf5e907a9a963037530281.tar.bz2 linux-3.10-bd1d3d8331af11cc1abf5e907a9a963037530281.zip |
drm/udl: limit modes to the sku pixel limits.
commit 3a75885848996baab5276ff37ebf7295c3c753f0 upstream.
Otherwise when X starts we commonly get a black screen scanning
out nothing, its wierd dpms on/off from userspace brings it back,
With this on F18, multi-seat works again with my 1920x1200 monitor
which is above the sku limit for the device I have.
Reviewed-by: Alex Deucher <alexander.deucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/udl/udl_connector.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/udl/udl_connector.c b/drivers/gpu/drm/udl/udl_connector.c index ba055e9ca00..8d9dc44f1f9 100644 --- a/drivers/gpu/drm/udl/udl_connector.c +++ b/drivers/gpu/drm/udl/udl_connector.c @@ -69,6 +69,13 @@ static int udl_get_modes(struct drm_connector *connector) static int udl_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { + struct udl_device *udl = connector->dev->dev_private; + if (!udl->sku_pixel_limit) + return 0; + + if (mode->vdisplay * mode->hdisplay > udl->sku_pixel_limit) + return MODE_VIRTUAL_Y; + return 0; } |