drm: arcpgu: Use crtc->mode_valid() callback
[sfrench/cifs-2.6.git] / drivers / gpu / drm / arc / arcpgu_crtc.c
index ad9a95916f1f8c06ced45d4a45634042cd697316..99fbdaecf10020e2f14f97becb1f833e3598a9ca 100644 (file)
@@ -64,6 +64,19 @@ static const struct drm_crtc_funcs arc_pgu_crtc_funcs = {
        .atomic_destroy_state = drm_atomic_helper_crtc_destroy_state,
 };
 
+enum drm_mode_status arc_pgu_crtc_mode_valid(struct drm_crtc *crtc,
+                                            const struct drm_display_mode *mode)
+{
+       struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc);
+       long rate, clk_rate = mode->clock * 1000;
+
+       rate = clk_round_rate(arcpgu->clk, clk_rate);
+       if (rate != clk_rate)
+               return MODE_NOCLOCK;
+
+       return MODE_OK;
+}
+
 static void arc_pgu_crtc_mode_set_nofb(struct drm_crtc *crtc)
 {
        struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc);
@@ -129,20 +142,6 @@ static void arc_pgu_crtc_disable(struct drm_crtc *crtc)
                              ~ARCPGU_CTRL_ENABLE_MASK);
 }
 
-static int arc_pgu_crtc_atomic_check(struct drm_crtc *crtc,
-                                    struct drm_crtc_state *state)
-{
-       struct arcpgu_drm_private *arcpgu = crtc_to_arcpgu_priv(crtc);
-       struct drm_display_mode *mode = &state->adjusted_mode;
-       long rate, clk_rate = mode->clock * 1000;
-
-       rate = clk_round_rate(arcpgu->clk, clk_rate);
-       if (rate != clk_rate)
-               return -EINVAL;
-
-       return 0;
-}
-
 static void arc_pgu_crtc_atomic_begin(struct drm_crtc *crtc,
                                      struct drm_crtc_state *state)
 {
@@ -158,6 +157,7 @@ static void arc_pgu_crtc_atomic_begin(struct drm_crtc *crtc,
 }
 
 static const struct drm_crtc_helper_funcs arc_pgu_crtc_helper_funcs = {
+       .mode_valid     = arc_pgu_crtc_mode_valid,
        .mode_set       = drm_helper_crtc_mode_set,
        .mode_set_base  = drm_helper_crtc_mode_set_base,
        .mode_set_nofb  = arc_pgu_crtc_mode_set_nofb,
@@ -165,7 +165,6 @@ static const struct drm_crtc_helper_funcs arc_pgu_crtc_helper_funcs = {
        .disable        = arc_pgu_crtc_disable,
        .prepare        = arc_pgu_crtc_disable,
        .commit         = arc_pgu_crtc_enable,
-       .atomic_check   = arc_pgu_crtc_atomic_check,
        .atomic_begin   = arc_pgu_crtc_atomic_begin,
 };