Message ID | 920ab93c049e3887510ee030082dc81e64bd760c.1483704413.git-series.kieran.bingham+renesas@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> 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;
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;
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@ideasonboard.com> --- drivers/media/platform/vsp1/vsp1_drm.c | 20 ++++++++++---------- drivers/media/platform/vsp1/vsp1_pipe.h | 2 -- 2 files changed, 10 insertions(+), 12 deletions(-)