Re: [RFC,3/3] drm/komeda: Allow non-component drm_bridge only endpoints

From: james qian wang (Arm Technology China)
Date: Fri Oct 18 2019 - 02:39:27 EST


On Thu, Oct 17, 2019 at 10:48:12AM +0000, Brian Starkey wrote:
> On Thu, Oct 17, 2019 at 10:21:03AM +0000, james qian wang (Arm Technology China) wrote:
> > On Thu, Oct 17, 2019 at 08:20:56AM +0000, Brian Starkey wrote:
> > > On Thu, Oct 17, 2019 at 03:07:59AM +0000, james qian wang (Arm Technology China) wrote:
> > > > On Wed, Oct 16, 2019 at 04:22:07PM +0000, Brian Starkey wrote:
> > > > >
> > > > > If James is strongly against merging this, maybe we just swap
> > > > > wholesale to bridge? But for me, the pragmatic approach would be this
> > > > > stop-gap.
> > > > >
> > > >
> > > > This is a good idea, and I vote +ULONG_MAX :)
> > > >
> > > > and I also checked tda998x driver, it supports bridge. so swap the
> > > > wholesale to brige is perfect. :)
> > > >
> > >
> > > Well, as Mihail wrote, it's definitely not perfect.
> > >
> > > Today, if you rmmod tda998x with the DPU driver still loaded,
> > > everything will be unbound gracefully.
> > >
> > > If we swap to bridge, then rmmod'ing tda998x (or any other bridge
> > > driver the DPU is using) with the DPU driver still loaded will result
> > > in a crash.
> >
> > I haven't read the bridge code, but seems this is a bug of drm_bridge,
> > since if the bridge is still in using by others, the rmmod should fail
> >
>
> Correct, but there's no fix for that today. You can also take a look
> at the thread linked from Mihail's cover letter.
>
> > And personally opinion, if the bridge doesn't handle the dependence.
> > for us:
> >
> > - add such support to bridge
>
> That would certainly be helpful. I don't know if there's consensus on
> how to do that.
>
> > or
> > - just do the insmod/rmmod in correct order.
> >
> > > So, there really are proper benefits to sticking with the component
> > > code for tda998x, which is why I'd like to understand why you're so
> > > against this patch?
> > >
> >
> > This change handles two different connectors in komeda internally, compare
> > with one interface, it increases the complexity, more risk of bug and more
> > cost of maintainance.
> >
>
> Well, it's only about how to bind the drivers - two different methods
> of binding, not two different connectors. I would argue that carrying
> our out-of-tree patches to support both platforms is a larger
> maintenance burden.
>
> Honestly this looks like a win-win to me. We get the superior approach
> when its supported, and still get to support bridges which are more
> common.
>

My consideration is: if we support both link methods, we may suffering

- 1. bridge reference cnt problem
- 2. maintance two link methods.

the 1) seems unavoidable, so swap all to bridage at least can avoid
the pain of 2). that's why I thought your idea "swap all to bridage"
is good.

Thanks
James.

> As/when improvements are made to the bridge code we can remove the
> component bits and not lose anything.
>
> > So my suggestion is keeping on one single interface in komeda, no
> > matter it is bridge or component, but I'd like it only one, but not
> > them both in komeda.
>
> If we can put the effort into fixing bridges then I guess that's the
> best approach for everyone :-) Might not be easy though!
>
> -Brian
>
> >
> > Thanks
> > James
> >
> > > Thanks,
> > > -Brian