commit b5dc0d108cd3c0b50ddcb6f6c54be1bea4c39e01 breaks imx-drm support

Daniel Vetter daniel.vetter at ffwll.ch
Tue Aug 27 01:41:20 PDT 2013


On Tue, Aug 27, 2013 at 10:26 AM, Lucas Stach <l.stach at pengutronix.de> wrote:
>> If I understand stuff correctly you have a main driver plus a bunch of
>> encoder/crtc modules and you expect that everything gets loaded and then
>> only when the kms driver is first opened. The current drm core just
>> doesn't support hotplugging of encoder/crtc objects after driver init has
>> completed. If you try to do that it'll go down in flames due to all the
>> races involved.
>>
> You know the logic you broke here was just a moderately sane approach to
> get around the monolithic DRM driver nonsense, while not having to use
> real hotplug in DRM.
>
> The thing is we don't know if we will ever have all submodules loaded,
> as this driver is mostly used on embedded devices where people randomly
> decide to exclude things from their kernel config, because they don't
> use the feature on their board. The current logic is under the premise
> that there are no early DRM clients in something like Plymouth, which is
> a bit flaky, but worked very well for the targeted use-cases.

Imo the imxdrm->references logic is broken already and simply removing
those checks would be the right course of action - pretending to have
fixed races but not actually having fixed much is imo much worse than
openly admitting that the code is racy and needs work.

Wrt embedded guys shaving off a few kb by not loading a bunch of
modules I think you should simply make that compile-time options
instead of modules. More hassle but at least it should work.

And if we ever see the need to hotplug crtcs I think the right way is
to hotplug an entire drm driver. Connector/encoder hotplugging might
eventually be required for real to support stuff like multi-stream DP,
but until that happens I really don't see a need for funny games,
especially on SoC boards where everything is soldered on and can't
possibly be hotplugged.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list