* [GIT PULL FOR renesas-drivers] Fix suspend/resume and race on M2M pipelines
@ 2016-12-13 18:38 Kieran Bingham
2016-12-27 11:18 ` Geert Uytterhoeven
2017-03-07 15:54 ` Geert Uytterhoeven
0 siblings, 2 replies; 4+ messages in thread
From: Kieran Bingham @ 2016-12-13 18:38 UTC (permalink / raw)
To: Geert Uytterhoeven, linux-renesas-soc; +Cc: Kieran Bingham
From: Kieran Bingham <kieran.bingham@ideasonboard.com>
The following changes since commit 69973b830859bc6529a7a0468ba0d80ee5117826:
Linux 4.9 (2016-12-11 11:17:54 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kbingham/rcar.git vsp1/suspend-resume-race
for you to fetch changes up to a952e0103f86d818a444923adeef50fdcb3f70b9:
media: Catch null pipes on pipeline stop (2016-12-13 16:25:13 +0000)
----------------------------------------------------------------
Kieran Bingham (4):
v4l: vsp1: Move vsp1_video_setup_pipeline()
v4l: vsp1: Refactor video pipeline configuration
v4l: vsp1: Use local display lists and remove global pipe->dl
media: Catch null pipes on pipeline stop
drivers/media/media-entity.c | 2 +
drivers/media/platform/vsp1/vsp1_drm.c | 20 ++---
drivers/media/platform/vsp1/vsp1_drv.c | 4 +
drivers/media/platform/vsp1/vsp1_pipe.c | 1 +
drivers/media/platform/vsp1/vsp1_pipe.h | 4 +-
drivers/media/platform/vsp1/vsp1_video.c | 127 +++++++++++++++----------------
6 files changed, 79 insertions(+), 79 deletions(-)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL FOR renesas-drivers] Fix suspend/resume and race on M2M pipelines
2016-12-13 18:38 [GIT PULL FOR renesas-drivers] Fix suspend/resume and race on M2M pipelines Kieran Bingham
@ 2016-12-27 11:18 ` Geert Uytterhoeven
2016-12-27 11:26 ` Geert Uytterhoeven
2017-03-07 15:54 ` Geert Uytterhoeven
1 sibling, 1 reply; 4+ messages in thread
From: Geert Uytterhoeven @ 2016-12-27 11:18 UTC (permalink / raw)
To: Kieran Bingham; +Cc: Linux-Renesas, Kieran Bingham
Hi Kieran,
On Tue, Dec 13, 2016 at 7:38 PM, Kieran Bingham
<kieran.bingham+renesas@ideasonboard.com> wrote:
> From: Kieran Bingham <kieran.bingham@ideasonboard.com>
>
> The following changes since commit 69973b830859bc6529a7a0468ba0d80ee5117826:
>
> Linux 4.9 (2016-12-11 11:17:54 -0800)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/kbingham/rcar.git vsp1/suspend-resume-race
>
> for you to fetch changes up to a952e0103f86d818a444923adeef50fdcb3f70b9:
>
> media: Catch null pipes on pipeline stop (2016-12-13 16:25:13 +0000)
>
> ----------------------------------------------------------------
> Kieran Bingham (4):
> v4l: vsp1: Move vsp1_video_setup_pipeline()
> v4l: vsp1: Refactor video pipeline configuration
> v4l: vsp1: Use local display lists and remove global pipe->dl
> media: Catch null pipes on pipeline stop
>
> drivers/media/media-entity.c | 2 +
> drivers/media/platform/vsp1/vsp1_drm.c | 20 ++---
> drivers/media/platform/vsp1/vsp1_drv.c | 4 +
> drivers/media/platform/vsp1/vsp1_pipe.c | 1 +
> drivers/media/platform/vsp1/vsp1_pipe.h | 4 +-
> drivers/media/platform/vsp1/vsp1_video.c | 127 +++++++++++++++----------------
> 6 files changed, 79 insertions(+), 79 deletions(-)
This conflicts with your own commit f94c16126bec2da4 ("v4l: vsp1:
Remove redundant context variables"),
in topic/vsp1-pa-improvements-v1-rebased1.
I fixed it up like this:
diff --cc drivers/media/platform/vsp1/vsp1_drm.c
index 9bb7c1a04157223c,bf735e85b59774c3..5227c3404ec0985c
--- a/drivers/media/platform/vsp1/vsp1_drm.c
+++ b/drivers/media/platform/vsp1/vsp1_drm.c
@@@ -500,14 -491,14 +501,14 @@@ void vsp1_du_atomic_flush(struct devic
}
}
- vsp1_entity_route_setup(entity, pipe, pipe->dl);
- vsp1_entity_route_setup(entity, dl);
++ vsp1_entity_route_setup(entity, pipe, 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);
}
}
diff --cc drivers/media/platform/vsp1/vsp1_pipe.h
index 9e108ddcceb6f977,98980c85081fdc60..d2903c14a211419d
--- a/drivers/media/platform/vsp1/vsp1_pipe.h
+++ b/drivers/media/platform/vsp1/vsp1_pipe.h
@@@ -113,11 -108,10 +115,9 @@@ struct vsp1_pipeline
struct list_head entities;
- struct vsp1_dl_list *dl;
-
- unsigned int div_size;
unsigned int partitions;
struct v4l2_rect partition;
- unsigned int current_partition;
+ struct v4l2_rect part_table[VSP1_PIPE_MAX_PARTITIONS];
};
void vsp1_pipeline_reset(struct vsp1_pipeline *pipe);
diff --cc drivers/media/platform/vsp1/vsp1_video.c
index 9c798a72d47a618c,d0c84508d7f459ae..1df65edbebfa8d1b
--- a/drivers/media/platform/vsp1/vsp1_video.c
+++ b/drivers/media/platform/vsp1/vsp1_video.c
@@@ -350,9 -355,47 +350,48 @@@ static void vsp1_video_frame_end(struc
pipe->buffers_ready |= 1 << video->pipe_index;
}
+ static int vsp1_video_setup_pipeline(struct vsp1_pipeline *pipe,
+ struct vsp1_dl_list *dl)
+ {
+ struct vsp1_entity *entity;
+
+ /* Determine this pipelines sizes for image partitioning support. */
+ vsp1_video_pipeline_setup_partitions(pipe);
+
+ if (pipe->uds) {
+ struct vsp1_uds *uds = to_uds(&pipe->uds->subdev);
+
+ /* If a BRU is present in the pipeline before the UDS, the alpha
+ * component doesn't need to be scaled as the BRU output alpha
+ * value is fixed to 255. Otherwise we need to scale the alpha
+ * component only when available at the input RPF.
+ */
+ if (pipe->uds_input->type == VSP1_ENTITY_BRU) {
+ uds->scale_alpha = false;
+ } else {
+ struct vsp1_rwpf *rpf =
+ to_rwpf(&pipe->uds_input->subdev);
+
+ uds->scale_alpha = rpf->fmtinfo->alpha;
+ }
+ }
+
+ list_for_each_entry(entity, &pipe->entities, list_pipe) {
- vsp1_entity_route_setup(entity, dl);
++ vsp1_entity_route_setup(entity, pipe, pipe->dl);
+
+ if (entity->ops->configure)
+ entity->ops->configure(entity, pipe, dl,
+ VSP1_ENTITY_PARAMS_INIT);
+ }
+
+ pipe->configured = true;
+
+ return 0;
+ }
+
static void vsp1_video_pipeline_run_partition(struct vsp1_pipeline *pipe,
- struct vsp1_dl_list *dl)
+ struct vsp1_dl_list *dl,
+ unsigned int partition_number)
{
struct vsp1_entity *entity;
@@@ -369,10 -413,16 +408,17 @@@ static void vsp1_video_pipeline_run(str
{
struct vsp1_device *vsp1 = pipe->output->entity.vsp1;
struct vsp1_entity *entity;
+ unsigned int current_partition = 0;
+ struct vsp1_dl_list *dl;
+
+ dl = vsp1_dl_list_get(pipe->output->dlm);
+ if (!dl) {
+ dev_err(vsp1->dev, "Failed to obtain a dl list\n");
+ return;
+ }
- if (!pipe->dl)
- pipe->dl = vsp1_dl_list_get(pipe->output->dlm);
+ if (!pipe->configured)
+ vsp1_video_setup_pipeline(pipe, dl);
/*
* Start with the runtime parameters as the configure operation can
@@@ -386,13 -436,14 +432,13 @@@
}
/* Run the first partition */
- vsp1_video_pipeline_run_partition(pipe, pipe->dl, current_partition);
- pipe->current_partition = 0;
- vsp1_video_pipeline_run_partition(pipe, dl);
++ vsp1_video_pipeline_run_partition(pipe, dl, current_partition);
/* Process consecutive partitions as necessary */
- for (pipe->current_partition = 1;
- pipe->current_partition < pipe->partitions;
- pipe->current_partition++) {
+ for (current_partition = 1;
+ current_partition < pipe->partitions;
+ current_partition++) {
- struct vsp1_dl_list *dl;
+ struct vsp1_dl_list *child;
/*
* Partition configuration operations will utilise
@@@ -411,8 -462,8 +457,9 @@@
break;
}
- vsp1_video_pipeline_run_partition(pipe, dl, current_partition);
- vsp1_dl_list_add_chain(pipe->dl, dl);
- vsp1_video_pipeline_run_partition(pipe, child);
++ vsp1_video_pipeline_run_partition(pipe, child,
++ current_partition);
+ vsp1_dl_list_add_chain(dl, child);
}
/* Complete, and commit the head display list. */
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL FOR renesas-drivers] Fix suspend/resume and race on M2M pipelines
2016-12-27 11:18 ` Geert Uytterhoeven
@ 2016-12-27 11:26 ` Geert Uytterhoeven
0 siblings, 0 replies; 4+ messages in thread
From: Geert Uytterhoeven @ 2016-12-27 11:26 UTC (permalink / raw)
To: Kieran Bingham; +Cc: Linux-Renesas, Kieran Bingham
On Tue, Dec 27, 2016 at 12:18 PM, Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
> On Tue, Dec 13, 2016 at 7:38 PM, Kieran Bingham
> <kieran.bingham+renesas@ideasonboard.com> wrote:
>> From: Kieran Bingham <kieran.bingham@ideasonboard.com>
>>
>> The following changes since commit 69973b830859bc6529a7a0468ba0d80ee5117826:
>>
>> Linux 4.9 (2016-12-11 11:17:54 -0800)
>>
>> are available in the git repository at:
>>
>> git://git.kernel.org/pub/scm/linux/kernel/git/kbingham/rcar.git vsp1/suspend-resume-race
>>
>> for you to fetch changes up to a952e0103f86d818a444923adeef50fdcb3f70b9:
>>
>> media: Catch null pipes on pipeline stop (2016-12-13 16:25:13 +0000)
>>
>> ----------------------------------------------------------------
>> Kieran Bingham (4):
>> v4l: vsp1: Move vsp1_video_setup_pipeline()
>> v4l: vsp1: Refactor video pipeline configuration
>> v4l: vsp1: Use local display lists and remove global pipe->dl
>> media: Catch null pipes on pipeline stop
>>
>> drivers/media/media-entity.c | 2 +
>> drivers/media/platform/vsp1/vsp1_drm.c | 20 ++---
>> drivers/media/platform/vsp1/vsp1_drv.c | 4 +
>> drivers/media/platform/vsp1/vsp1_pipe.c | 1 +
>> drivers/media/platform/vsp1/vsp1_pipe.h | 4 +-
>> drivers/media/platform/vsp1/vsp1_video.c | 127 +++++++++++++++----------------
>> 6 files changed, 79 insertions(+), 79 deletions(-)
>
> This conflicts with your own commit f94c16126bec2da4 ("v4l: vsp1:
> Remove redundant context variables"),
> in topic/vsp1-pa-improvements-v1-rebased1.
>
> I fixed it up like this:
> --- a/drivers/media/platform/vsp1/vsp1_video.c
> +++ b/drivers/media/platform/vsp1/vsp1_video.c
> @@@ -350,9 -355,47 +350,48 @@@ static void vsp1_video_frame_end(struc
> pipe->buffers_ready |= 1 << video->pipe_index;
> }
>
> + static int vsp1_video_setup_pipeline(struct vsp1_pipeline *pipe,
> + struct vsp1_dl_list *dl)
> + list_for_each_entry(entity, &pipe->entities, list_pipe) {
> - vsp1_entity_route_setup(entity, dl);
> ++ vsp1_entity_route_setup(entity, pipe, pipe->dl);
That should of course have been
vsp1_entity_route_setup(entity, pipe, dl);
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL FOR renesas-drivers] Fix suspend/resume and race on M2M pipelines
2016-12-13 18:38 [GIT PULL FOR renesas-drivers] Fix suspend/resume and race on M2M pipelines Kieran Bingham
2016-12-27 11:18 ` Geert Uytterhoeven
@ 2017-03-07 15:54 ` Geert Uytterhoeven
1 sibling, 0 replies; 4+ messages in thread
From: Geert Uytterhoeven @ 2017-03-07 15:54 UTC (permalink / raw)
To: Kieran Bingham; +Cc: Linux-Renesas, Kieran Bingham, Laurent Pinchart
On Tue, Dec 13, 2016 at 7:38 PM, Kieran Bingham
<kieran.bingham+renesas@ideasonboard.com> wrote:
> The following changes since commit 69973b830859bc6529a7a0468ba0d80ee5117826:
>
> Linux 4.9 (2016-12-11 11:17:54 -0800)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/kbingham/rcar.git vsp1/suspend-resume-race
>
> for you to fetch changes up to a952e0103f86d818a444923adeef50fdcb3f70b9:
>
> media: Catch null pipes on pipeline stop (2016-12-13 16:25:13 +0000)
I've dropped this branch from today's renesas-drivers-2017-03-07-v4.11-rc1,
because it conflicted badly with Laurent's vsp1/histogram, and your branch
hadn't been updated in a while.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-03-07 16:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-13 18:38 [GIT PULL FOR renesas-drivers] Fix suspend/resume and race on M2M pipelines Kieran Bingham
2016-12-27 11:18 ` Geert Uytterhoeven
2016-12-27 11:26 ` Geert Uytterhoeven
2017-03-07 15:54 ` Geert Uytterhoeven
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.