Hi Sebastian,
On Wed, Feb 26, 2020 at 12:01:24AM +0100, Sebastian Reichel wrote:
On Tue, Feb 25, 2020 at 07:42:37AM -0800, Tony Lindgren wrote:
- Sebastian Reichel sre@kernel.org [200225 02:29]:
On Mon, Feb 24, 2020 at 04:10:11PM -0800, Tony Lindgren wrote:
BTW, I think there's also some refcount issue in general where the omapdrm related modules cannot be unloaded any longer?
I wouldn't be too surprised. The dependencies are quite interesting at the moment with omapdss registering omapdrm and then omapdrm registers the drm_device, which references the encoders from omapdss. I think this is something to look at once Laurent's and my branch have been merged to avoid increasing the complexity. Technically it should be possible to link everything into one module.
Well the DSS is really DOSSI for Display Output SubSystem Interconnect :) The devices on the interconnect are mostly independent and ideally the toplevel dss driver would just provide Linux generic resources to dispc and various output drivers. So probably not a good idea to try to build it all into a single module.
All the output drivers and dispc are already in a single module: omapdss.ko. There is omapdss-base.ko, omapdss.ko and omapdrm.ko module. omapdss-base.ko contains a few helpers, omapdss.ko contains dispc and all output encoders, omapdrm has the tiler code and wraps some of the custom DSS APIs to DRM APIs. I think the best way forward is to eliminate the custom API and use common DRM APIs directly. Then merge all 3 modules into one module.
In theory one could add modules for each encoder, but practically this only increases complexity. DRM cannnot hotplug encoders, so removing any module results in complete loss of DRM. Also during probe we need to load all modules, since something might be connected. So having extra modules is not really useful?
This was considered previously, but blocked (IIRC) because it introduced circular dependencies with the omapdrm-specific display drivers in drivers/gpu/drm/omapdrm/displays/. Once panel-dsi-cm goes away, I think we can give it another try.