drm/sti: do not check hw scaling if mode is not set
authorFabien DESSENNE <fabien.dessenne@st.com>
Thu, 12 Jan 2017 16:27:37 +0000 (17:27 +0100)
committerVincent Abriou <vincent.abriou@st.com>
Fri, 10 Feb 2017 08:34:39 +0000 (09:34 +0100)
Fix a division by 0 case : in some cases, when the HQVDP plane is being
disabled atomic_check() is called with "mode->clock = 0".
In that case, do not check for scaling capabilities.

Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
Acked-by: Vincent Abriou <vincent.abriou@st.com>
drivers/gpu/drm/sti/sti_hqvdp.c

index 4376fd8a8e529b17ecddffecb21fb6ce9ccf01f0..66f843148ef7f5cd25e515fcc49ef4bfc4acba2f 100644 (file)
@@ -1037,9 +1037,9 @@ static int sti_hqvdp_atomic_check(struct drm_plane *drm_plane,
        src_w = state->src_w >> 16;
        src_h = state->src_h >> 16;
 
-       if (!sti_hqvdp_check_hw_scaling(hqvdp, mode,
-                                       src_w, src_h,
-                                       dst_w, dst_h)) {
+       if (mode->clock && !sti_hqvdp_check_hw_scaling(hqvdp, mode,
+                                                      src_w, src_h,
+                                                      dst_w, dst_h)) {
                DRM_ERROR("Scaling beyond HW capabilities\n");
                return -EINVAL;
        }