Re: [PATCH v5 2/3] drm/arm: Add support for Mali Display Processors

Daniel Vetter
2016-06-15T20:30:36Z

On Wed, Jun 15, 2016 at 10:05 PM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> On Wed, Jun 15, 2016 at 09:29:38PM +0200, Daniel Vetter wrote:
>> On Wed, Jun 15, 2016 at 7:21 PM, Liviu Dudau <Liviu.Dudau@arm.com> wrote:
>> > Could be the tda998x_drv fault, but I'm getting this splat:
>>
>> Yeah, tda9998x needs to be fixed to _not_ register it's connector
>> before the overall (componentized) driver is ready. We need to make
>> sure first ofc that all users of that driver do register connectors,
>> but Chris' patch series will take care of that. But tda9998x needs to
>> be fixed either way.
>
> Componentised drivers only get one bind callback, they don't get a
> two-stage initialisation at bind time.

We don't need two-stage init in the component framework. There's
patches in-flight to simplify this a lot (and provide callbacks to
register additional connector interfaces like backlight). But in
general components should not call drm_connector_register, instead the
master should call drm_connector_register_all at the very end. Yes
this is a change from how all the original kms drivers have done it,
but that way was also racy (since it exposed interfaces to userspace
before they're fully set up). We're gradually switching each driver
over, but for shared bits like tda9998x it's a bit more complicated -
all the drivers using it need to switch at the same time.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch