Check the pixel clock for the mode in atomic_check and ensure that
it is within the range supported by the bridge.

Signed-off-by: Jayesh Choudhary <[email protected]>
---
 drivers/gpu/drm/bridge/sii902x.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/bridge/sii902x.c b/drivers/gpu/drm/bridge/sii902x.c
index ef7c3ab3386c..a5b7ee1e3bbe 100644
--- a/drivers/gpu/drm/bridge/sii902x.c
+++ b/drivers/gpu/drm/bridge/sii902x.c
@@ -517,11 +517,16 @@ static int sii902x_bridge_atomic_check(struct drm_bridge 
*bridge,
                                       struct drm_crtc_state *crtc_state,
                                       struct drm_connector_state *conn_state)
 {
+       if (crtc_state->mode.clock < SII902X_MIN_PIXEL_CLOCK_KHZ)
+               return MODE_CLOCK_LOW;
+
+       if (crtc_state->mode.clock > SII902X_MAX_PIXEL_CLOCK_KHZ)
+               return MODE_CLOCK_HIGH;
+
        /*
         * There might be flags negotiation supported in future but
         * set the bus flags in atomic_check statically for now.
         */
-
        bridge_state->input_bus_cfg.flags = bridge->timings->input_bus_flags;
 
        return 0;
-- 
2.25.1

Reply via email to