Hi Niklas, Thank you for the patch. On Friday, 8 December 2017 03:08:31 EET Niklas Söderlund wrote: > On Gen3 a media controller API needs to be used to allow userspace to > configure the subdevices in the pipeline instead of directly controlling > a single source subdevice, which is and will continue to be the mode of > operation on Gen2. > > Prepare for these two modes of operation by adding a flag to struct > rvin_info which will control which mode to use. > > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx> > Reviewed-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/media/platform/rcar-vin/rcar-core.c | 6 +++++- > drivers/media/platform/rcar-vin/rcar-vin.h | 2 ++ > 2 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/platform/rcar-vin/rcar-core.c > b/drivers/media/platform/rcar-vin/rcar-core.c index > 7d49904cab9cb2d9..61f48ecc1ab815ec 100644 > --- a/drivers/media/platform/rcar-vin/rcar-core.c > +++ b/drivers/media/platform/rcar-vin/rcar-core.c > @@ -232,18 +232,21 @@ static int rvin_digital_graph_init(struct rvin_dev > *vin) > > static const struct rvin_info rcar_info_h1 = { > .chip = RCAR_H1, > + .use_mc = false, > .max_width = 2048, > .max_height = 2048, > }; > > static const struct rvin_info rcar_info_m1 = { > .chip = RCAR_M1, > + .use_mc = false, > .max_width = 2048, > .max_height = 2048, > }; > > static const struct rvin_info rcar_info_gen2 = { > .chip = RCAR_GEN2, > + .use_mc = false, > .max_width = 2048, > .max_height = 2048, > }; > @@ -338,7 +341,8 @@ static int rcar_vin_remove(struct platform_device *pdev) > v4l2_async_notifier_unregister(&vin->notifier); > v4l2_async_notifier_cleanup(&vin->notifier); > > - v4l2_ctrl_handler_free(&vin->ctrl_handler); > + if (!vin->info->use_mc) > + v4l2_ctrl_handler_free(&vin->ctrl_handler); > > rvin_dma_unregister(vin); > > diff --git a/drivers/media/platform/rcar-vin/rcar-vin.h > b/drivers/media/platform/rcar-vin/rcar-vin.h index > 7819c760c2c13422..0747873c2b9cb74c 100644 > --- a/drivers/media/platform/rcar-vin/rcar-vin.h > +++ b/drivers/media/platform/rcar-vin/rcar-vin.h > @@ -77,12 +77,14 @@ struct rvin_graph_entity { > /** > * struct rvin_info - Information about the particular VIN implementation > * @chip: type of VIN chip > + * @use_mc: use media controller instead of controlling subdevice > * > * max_width: max input width the VIN supports > * max_height: max input height the VIN supports > */ > struct rvin_info { > enum chip_id chip; > + bool use_mc; > > unsigned int max_width; > unsigned int max_height; -- Regards, Laurent Pinchart