drm/vc4: Simplify a bit the global atomic_check
authorMaxime Ripard <maxime@cerno.tech>
Fri, 4 Dec 2020 15:11:34 +0000 (16:11 +0100)
committerMaxime Ripard <maxime@cerno.tech>
Tue, 15 Dec 2020 10:33:29 +0000 (11:33 +0100)
When we can't allocate a new channel, we can simply return instead of
having to handle both cases, and that simplifies a bit the code.

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20201204151138.1739736-4-maxime@cerno.tech
drivers/gpu/drm/vc4/vc4_kms.c

index ba310c0..8937eb0 100644 (file)
@@ -794,6 +794,7 @@ static int vc4_pv_muxing_atomic_check(struct drm_device *dev,
                        to_vc4_crtc_state(new_crtc_state);
                struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
                unsigned int matching_channels;
+               unsigned int channel;
 
                /* Nothing to do here, let's skip it */
                if (old_crtc_state->enable == new_crtc_state->enable)
@@ -834,14 +835,12 @@ static int vc4_pv_muxing_atomic_check(struct drm_device *dev,
                 * but it works so far.
                 */
                matching_channels = hvs_new_state->unassigned_channels & vc4_crtc->data->hvs_available_channels;
-               if (matching_channels) {
-                       unsigned int channel = ffs(matching_channels) - 1;
-
-                       new_vc4_crtc_state->assigned_channel = channel;
-                       hvs_new_state->unassigned_channels &= ~BIT(channel);
-               } else {
+               if (!matching_channels)
                        return -EINVAL;
-               }
+
+               channel = ffs(matching_channels) - 1;
+               new_vc4_crtc_state->assigned_channel = channel;
+               hvs_new_state->unassigned_channels &= ~BIT(channel);
        }
 
        return 0;