Message ID | 1348553863-5020-1-git-send-email-airlied@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Tue, Sep 25, 2012 at 2:17 AM, Dave Airlie <airlied@gmail.com> wrote: > From: Dave Airlie <airlied@redhat.com> > > 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 > Signed-off-by: Dave Airlie <airlied@redhat.com> I'm not familiar with the hw, but looks reasonable. Reviewed-by: Alex Deucher <alexander.deucher@gmail.com> > --- > drivers/gpu/drm/udl/udl_connector.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > 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; > } > > -- > 1.7.12 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel
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; }