drm/vc4: Simplify a bit the global atomic_check
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
This commit is contained in:
parent
27125e86b7
commit
d62a8ed767
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user