Commit a213bc09 authored by Laurent Pinchart's avatar Laurent Pinchart

media: renesas: vsp1: Store RPF partition configuration per RPF instance

The vsp1_partition structure stores the RPF partition configuration in a
single field for all RPF instances, while each RPF can have its own
configuration. Fix it by storing the configuration separately for each
RPF instance.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Fixes: ab45e858 ("media: v4l: vsp1: Allow entities to participate in the partition algorithm")
Reviewed-by: default avatarJacopo Mondi <jacopo.mondi+renesas@ideasonboard.com>
parent a143156c
...@@ -73,7 +73,7 @@ struct vsp1_partition_window { ...@@ -73,7 +73,7 @@ struct vsp1_partition_window {
* @wpf: The WPF partition window configuration * @wpf: The WPF partition window configuration
*/ */
struct vsp1_partition { struct vsp1_partition {
struct vsp1_partition_window rpf; struct vsp1_partition_window rpf[VSP1_MAX_RPF];
struct vsp1_partition_window uds_sink; struct vsp1_partition_window uds_sink;
struct vsp1_partition_window uds_source; struct vsp1_partition_window uds_source;
struct vsp1_partition_window sru; struct vsp1_partition_window sru;
......
...@@ -311,8 +311,8 @@ static void rpf_configure_partition(struct vsp1_entity *entity, ...@@ -311,8 +311,8 @@ static void rpf_configure_partition(struct vsp1_entity *entity,
* 'width' need to be adjusted. * 'width' need to be adjusted.
*/ */
if (pipe->partitions > 1) { if (pipe->partitions > 1) {
crop.width = pipe->partition->rpf.width; crop.width = pipe->partition->rpf[rpf->entity.index].width;
crop.left += pipe->partition->rpf.left; crop.left += pipe->partition->rpf[rpf->entity.index].left;
} }
if (pipe->interlaced) { if (pipe->interlaced) {
...@@ -367,7 +367,9 @@ static void rpf_partition(struct vsp1_entity *entity, ...@@ -367,7 +367,9 @@ static void rpf_partition(struct vsp1_entity *entity,
unsigned int partition_idx, unsigned int partition_idx,
struct vsp1_partition_window *window) struct vsp1_partition_window *window)
{ {
partition->rpf = *window; struct vsp1_rwpf *rpf = to_rwpf(&entity->subdev);
partition->rpf[rpf->entity.index] = *window;
} }
static const struct vsp1_entity_operations rpf_entity_ops = { static const struct vsp1_entity_operations rpf_entity_ops = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment