Hi Niklas,

On Mon, Jun 19, 2017 at 09:51:15PM +0200, Niklas Söderlund wrote:
> Hi Jacopo,
>
> On 2017-06-19 19:04:46 +0200, Jacopo Mondi wrote:
> > Install async notifier for digital input on Gen3 when no other CSI-2
> > input has been found connected.
> >
> > Signed-off-by: Jacopo Mondi <jacopo+rene...@jmondi.org>
> > ---
> >  drivers/media/platform/rcar-vin/rcar-core.c | 23 +++++++++++++++++------
> >  1 file changed, 17 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/media/platform/rcar-vin/rcar-core.c 
> > b/drivers/media/platform/rcar-vin/rcar-core.c
> > index 78ca232..6e5d84a 100644
> > --- a/drivers/media/platform/rcar-vin/rcar-core.c
> > +++ b/drivers/media/platform/rcar-vin/rcar-core.c
> > @@ -866,17 +866,28 @@ static int rvin_group_graph_init(struct rvin_dev *vin)
> >     }
> >
> >     i = 0;
> > -   for_each_set_bit(bit, &bitmap, RVIN_CSI_MAX) {
> > -           subdevs[i++] = &vin->group->csi[bit].asd;
> > +   for_each_set_bit(bit, &bitmap, RVIN_INPUT_MAX) {
> > +           if (bit < RVIN_CSI_MAX)
> > +                   subdevs[i++] = &vin->group->csi[bit].asd;
> > +           else if (bit == RVIN_PARALLEL_IN) {
> > +                   subdevs[0] = &vin->digital.asd;
> > +                   vin->notifier.num_subdevs = 1;
> > +           }
> >     }
> >
> >     vin_dbg(vin, "Claimed %d subdevices for group\n", count);
> >
> > -   vin->notifier.num_subdevs = count;
> >     vin->notifier.subdevs = subdevs;
> > -   vin->notifier.bound = rvin_group_notify_bound;
> > -   vin->notifier.unbind = rvin_group_notify_unbind;
> > -   vin->notifier.complete = rvin_group_notify_complete;
> > +   if (!vin->notifier.num_subdevs) {
> > +           vin->notifier.num_subdevs = count;
> > +           vin->notifier.bound = rvin_group_notify_bound;
> > +           vin->notifier.unbind = rvin_group_notify_unbind;
> > +           vin->notifier.complete = rvin_group_notify_complete;
> > +   } else {
> > +           vin->notifier.bound = rvin_digital_notify_bound;
> > +           vin->notifier.unbind = rvin_digital_notify_unbind;
> > +           vin->notifier.complete = rvin_digital_notify_complete;
> > +   }
>
> Hum, if there is a digital subdevice you ignore to look for CSI-2
> devices? This feels wrong, it probably works (for now) since all CSI-2
> subdevs are found by VIN0 since it's probed first and the digital input
> is only valid for VIN4 and VIN5 right? I hope to remedy this before the
> VIN Gen3 code is ready for upstream and the goal is that each VIN should
> look for the subdevices that effects it self. With that change this will
> break :-(

This is something I probably did not get: I thought parallel input and
CSI-2 input where mutually exclusive. In particular, looking at chsel
tables (from Table 26.14 on), where routing between CSI inputs and VIN
channel is described, I did not get how parallel input fit in that
picture. My best assumption now is that when a channel is NC it means
it can be used for digital input?

>
> >
> >     mutex_unlock(&vin->group->lock);
> >
> > --
> > 2.7.4
> >
>
> --
> Regards,
> Niklas Söderlund

Reply via email to