diff options
author | Dave Airlie <airlied@redhat.com> | 2012-09-25 06:17:43 (GMT) |
---|---|---|
committer | Dave Airlie <airlied@gmail.com> | 2012-09-26 08:40:21 (GMT) |
commit | 3a75885848996baab5276ff37ebf7295c3c753f0 (patch) | |
tree | 8248846623aed1de88c5347fe48724df57dbffd9 /drivers/gpu/drm/udl | |
parent | 68c4fce737c4b963e336435f225621dc21138397 (diff) | |
download | linux-3a75885848996baab5276ff37ebf7295c3c753f0.tar.xz |
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/drm/udl')
-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 ba055e9..8d9dc44 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; } |