Am 13.11.20 um 16:29 schrieb Maxime Ripard: > 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. > > Signed-off-by: Maxime Ripard Reviewed-by: Thomas Zimmermann > --- > drivers/gpu/drm/vc4/vc4_kms.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c > index 3d0065df10f9..3034a5a6637e 100644 > --- a/drivers/gpu/drm/vc4/vc4_kms.c > +++ b/drivers/gpu/drm/vc4/vc4_kms.c > @@ -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) || > @@ -837,14 +838,12 @@ static int vc4_pv_muxing_atomic_check(struct drm_device *dev, > * but it works so far. > */ > matching_channels = hvs_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_state->unassigned_channels &= ~BIT(channel); > - } else { > + if (!matching_channels) > return -EINVAL; > - } > + > + channel = ffs(matching_channels) - 1; > + new_vc4_crtc_state->assigned_channel = channel; > + hvs_state->unassigned_channels &= ~BIT(channel); > } > > return 0; > -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Felix Imendörffer