drm/i2c: tda998x: add some basic mode validation
authorRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 7 Feb 2014 19:52:33 +0000 (19:52 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 26 Jun 2014 10:03:25 +0000 (11:03 +0100)
The TDA998x can't handle modes with clocks above 150MHz, or resolutions
larger than 8192x2048.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/gpu/drm/i2c/tda998x_drv.c

index 3ff7d07..5a738ad 100644 (file)
@@ -810,6 +810,12 @@ static int
 tda998x_encoder_mode_valid(struct drm_encoder *encoder,
                          struct drm_display_mode *mode)
 {
+       if (mode->clock > 150000)
+               return MODE_CLOCK_HIGH;
+       if (mode->htotal >= BIT(13))
+               return MODE_BAD_HVALUE;
+       if (mode->vtotal >= BIT(11))
+               return MODE_BAD_VVALUE;
        return MODE_OK;
 }