Hi Niklas, Thank you for the patch. On Wed, Mar 18, 2020 at 10:30:51PM +0100, Niklas Söderlund wrote: > If the v4l2-async notifier have once been complete and the video > device(s) have been register, do not unregister them if one subdevice is > unbound. Depending on which subdevice is unbound other parts of the > pipeline could still be functional. For example if one of multiple > sensors connected to a CSI-2 transmitter is unbound other sensors in > that pipeline are still useable. > > This problem is extra critical for R-Car VIN which registers two > independent CSI-2 receivers in the same media graph as they can both be > used by the same dma-engines. If one of the CSI-2 receivers are unbound > the other CSI-2 receiver pipeline is still fully functional. I like this, but shouldn't you also move registration of the video nodes to probe time then ? > Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx> > --- > drivers/media/platform/rcar-vin/rcar-core.c | 5 ----- > 1 file changed, 5 deletions(-) > > diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c > index 21ce3de8168c3224..d51ffe75c34c97c5 100644 > --- a/drivers/media/platform/rcar-vin/rcar-core.c > +++ b/drivers/media/platform/rcar-vin/rcar-core.c > @@ -533,7 +533,6 @@ static int rvin_parallel_subdevice_attach(struct rvin_dev *vin, > > static void rvin_parallel_subdevice_detach(struct rvin_dev *vin) > { > - rvin_v4l2_unregister(vin); > vin->parallel->subdev = NULL; > > if (!vin->info->use_mc) { > @@ -758,10 +757,6 @@ static void rvin_group_notify_unbind(struct v4l2_async_notifier *notifier, > struct rvin_dev *vin = v4l2_dev_to_vin(notifier->v4l2_dev); > unsigned int i; > > - for (i = 0; i < RCAR_VIN_NUM; i++) > - if (vin->group->vin[i]) > - rvin_v4l2_unregister(vin->group->vin[i]); > - > mutex_lock(&vin->group->lock); > > for (i = 0; i < RVIN_CSI_MAX; i++) { -- Regards, Laurent Pinchart