diff options
author | Dave Airlie <airlied@redhat.com> | 2012-09-25 02:17:43 -0400 |
---|---|---|
committer | Dave Airlie <airlied@gmail.com> | 2012-09-26 04:40:21 -0400 |
commit | 3a75885848996baab5276ff37ebf7295c3c753f0 (patch) | |
tree | 8248846623aed1de88c5347fe48724df57dbffd9 /drivers/gpu | |
parent | 68c4fce737c4b963e336435f225621dc21138397 (diff) |
drm/udl: limit modes to the sku pixel limits.
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.
Cc: stable@vger.kernel.org
Reviewed-by: Alex Deucher <alexander.deucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
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 ba055e9ca007..8d9dc44f1f94 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) | |||
69 | static int udl_mode_valid(struct drm_connector *connector, | 69 | static int udl_mode_valid(struct drm_connector *connector, |
70 | struct drm_display_mode *mode) | 70 | struct drm_display_mode *mode) |
71 | { | 71 | { |
72 | struct udl_device *udl = connector->dev->dev_private; | ||
73 | if (!udl->sku_pixel_limit) | ||
74 | return 0; | ||
75 | |||
76 | if (mode->vdisplay * mode->hdisplay > udl->sku_pixel_limit) | ||
77 | return MODE_VIRTUAL_Y; | ||
78 | |||
72 | return 0; | 79 | return 0; |
73 | } | 80 | } |
74 | 81 | ||