On Mon, 25 Oct 2021 at 16:29, Maxime Ripard <maxime@xxxxxxxxxx> wrote: > > vc4_crtc_config_pv() retrieves the encoder again, even though its only > caller, vc4_crtc_atomic_enable(), already did. > > Pass the encoder pointer as an argument instead of going through all the > connectors to retrieve it again. > > Signed-off-by: Maxime Ripard <maxime@xxxxxxxxxx> Reviewed-by: Dave Stevenson <dave.stevenson@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/vc4/vc4_crtc.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/vc4/vc4_crtc.c b/drivers/gpu/drm/vc4/vc4_crtc.c > index 7cfd4a097847..e5c2e29a6f01 100644 > --- a/drivers/gpu/drm/vc4/vc4_crtc.c > +++ b/drivers/gpu/drm/vc4/vc4_crtc.c > @@ -315,12 +315,11 @@ static void vc4_crtc_pixelvalve_reset(struct drm_crtc *crtc) > CRTC_WRITE(PV_CONTROL, CRTC_READ(PV_CONTROL) | PV_CONTROL_FIFO_CLR); > } > > -static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_atomic_state *state) > +static void vc4_crtc_config_pv(struct drm_crtc *crtc, struct drm_encoder *encoder, > + struct drm_atomic_state *state) > { > struct drm_device *dev = crtc->dev; > struct vc4_dev *vc4 = to_vc4_dev(dev); > - struct drm_encoder *encoder = vc4_get_crtc_encoder(crtc, state, > - drm_atomic_get_new_connector_state); > struct vc4_encoder *vc4_encoder = to_vc4_encoder(encoder); > struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); > const struct vc4_pv_data *pv_data = vc4_crtc_to_vc4_pv_data(vc4_crtc); > @@ -597,7 +596,7 @@ static void vc4_crtc_atomic_enable(struct drm_crtc *crtc, > if (vc4_encoder->pre_crtc_configure) > vc4_encoder->pre_crtc_configure(encoder, state); > > - vc4_crtc_config_pv(crtc, state); > + vc4_crtc_config_pv(crtc, encoder, state); > > CRTC_WRITE(PV_CONTROL, CRTC_READ(PV_CONTROL) | PV_CONTROL_EN); > > -- > 2.31.1 >