Hi Kieran, Thank you for the patch. On Friday 06 Jan 2017 12:15:31 Kieran Bingham wrote: > The pipe->dl is used only inside vsp1_du_atomic_flush(), and can be > obtained and stored locally to simplify the code. > > Signed-off-by: Kieran Bingham <kieran.bingham+renesas@xxxxxxxxxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> As I still have issues with patch 3/4, I propose moving this one earlier in the series. > --- > drivers/media/platform/vsp1/vsp1_drm.c | 20 ++++++++++---------- > drivers/media/platform/vsp1/vsp1_pipe.h | 2 -- > 2 files changed, 10 insertions(+), 12 deletions(-) > > diff --git a/drivers/media/platform/vsp1/vsp1_drm.c > b/drivers/media/platform/vsp1/vsp1_drm.c index b4b583f7137a..d7ec980300dd > 100644 > --- a/drivers/media/platform/vsp1/vsp1_drm.c > +++ b/drivers/media/platform/vsp1/vsp1_drm.c > @@ -220,9 +220,6 @@ void vsp1_du_atomic_begin(struct device *dev) > struct vsp1_pipeline *pipe = &vsp1->drm->pipe; > > vsp1->drm->num_inputs = pipe->num_inputs; > - > - /* Prepare the display list. */ > - pipe->dl = vsp1_dl_list_get(pipe->output->dlm); > } > EXPORT_SYMBOL_GPL(vsp1_du_atomic_begin); > > @@ -426,10 +423,14 @@ void vsp1_du_atomic_flush(struct device *dev) > struct vsp1_pipeline *pipe = &vsp1->drm->pipe; > struct vsp1_rwpf *inputs[VSP1_MAX_RPF] = { NULL, }; > struct vsp1_entity *entity; > + struct vsp1_dl_list *dl; > unsigned long flags; > unsigned int i; > int ret; > > + /* Prepare the display list. */ > + dl = vsp1_dl_list_get(pipe->output->dlm); > + > /* Count the number of enabled inputs and sort them by Z-order. */ > pipe->num_inputs = 0; > > @@ -484,26 +485,25 @@ void vsp1_du_atomic_flush(struct device *dev) > struct vsp1_rwpf *rpf = to_rwpf(&entity->subdev); > > if (!pipe->inputs[rpf->entity.index]) { > - vsp1_dl_list_write(pipe->dl, entity->route- >reg, > + vsp1_dl_list_write(dl, entity->route->reg, > VI6_DPR_NODE_UNUSED); > continue; > } > } > > - vsp1_entity_route_setup(entity, pipe->dl); > + vsp1_entity_route_setup(entity, dl); > > if (entity->ops->configure) { > - entity->ops->configure(entity, pipe, pipe->dl, > + entity->ops->configure(entity, pipe, dl, > VSP1_ENTITY_PARAMS_INIT); > - entity->ops->configure(entity, pipe, pipe->dl, > + entity->ops->configure(entity, pipe, dl, > VSP1_ENTITY_PARAMS_RUNTIME); > - entity->ops->configure(entity, pipe, pipe->dl, > + entity->ops->configure(entity, pipe, dl, > VSP1_ENTITY_PARAMS_PARTITION); > } > } > > - vsp1_dl_list_commit(pipe->dl); > - pipe->dl = NULL; > + vsp1_dl_list_commit(dl); > > /* Start or stop the pipeline if needed. */ > if (!vsp1->drm->num_inputs && pipe->num_inputs) { > diff --git a/drivers/media/platform/vsp1/vsp1_pipe.h > b/drivers/media/platform/vsp1/vsp1_pipe.h index fff122b4874d..e59bef2653f6 > 100644 > --- a/drivers/media/platform/vsp1/vsp1_pipe.h > +++ b/drivers/media/platform/vsp1/vsp1_pipe.h > @@ -108,8 +108,6 @@ struct vsp1_pipeline { > > struct list_head entities; > > - struct vsp1_dl_list *dl; > - > unsigned int div_size; > unsigned int partitions; > struct v4l2_rect partition; -- Regards, Laurent Pinchart