This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt luisbg@osg.samsung.com --- drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c index 7841970..ecbc9e5 100644 --- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c +++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c @@ -1014,6 +1014,7 @@ static const struct of_device_id dmm_of_match[] = { }, {}, }; +MODULE_DEVICE_TABLE(of, dmm_of_match); #endif
struct platform_driver omap_dmm_driver = {
On 17/09/15 17:21, Luis de Bethencourt wrote:
This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt luisbg@osg.samsung.com
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c index 7841970..ecbc9e5 100644 --- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c +++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c @@ -1014,6 +1014,7 @@ static const struct of_device_id dmm_of_match[] = { }, {}, }; +MODULE_DEVICE_TABLE(of, dmm_of_match); #endif
struct platform_driver omap_dmm_driver = {
I think this one is not needed.
Tiler cannot be compiled as a module. Or, to be more exact, the tiler driver is included in the omapdrm module, along with the main omapdrm driver, which can be a module.
The autoloading should happen via omapdrm, and when that happens, tiler driver comes along.
Tomi
On Thu, Sep 24, 2015 at 01:41:56PM +0300, Tomi Valkeinen wrote:
On 17/09/15 17:21, Luis de Bethencourt wrote:
This platform driver has a OF device ID table but the OF module alias information is not created so module autoloading won't work.
Signed-off-by: Luis de Bethencourt luisbg@osg.samsung.com
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c index 7841970..ecbc9e5 100644 --- a/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c +++ b/drivers/gpu/drm/omapdrm/omap_dmm_tiler.c @@ -1014,6 +1014,7 @@ static const struct of_device_id dmm_of_match[] = { }, {}, }; +MODULE_DEVICE_TABLE(of, dmm_of_match); #endif
struct platform_driver omap_dmm_driver = {
I think this one is not needed.
Tiler cannot be compiled as a module. Or, to be more exact, the tiler driver is included in the omapdrm module, along with the main omapdrm driver, which can be a module.
The autoloading should happen via omapdrm, and when that happens, tiler driver comes along.
Tomi
Hi Tomi,
I am a bit confused.
So how the OMAP DRM auto loading is supposed to work when using Device Trees? As far as I can tell, the main omap drm driver does not have a OF device ID table and a .of_match it only has a MODULE_ALIAS("platform:" DRIVER_NAME), but the tiler driver (that is built-in the omap drm driver) does have a a OF device ID table and I see in DTS that are device nodes using those compatible strings
$ git grep omap4-dmm arch/arm/boot/dts/omap* arch/arm/boot/dts/omap4.dtsi: compatible = "ti,omap4-dmm";
Does that mean there is no need for MODULE_ALIAS("platform:" DMM_DRIVER_NAME)?
Because right now omapdrm.ko is exporting the alias for legacy / platform device registration but not for OF.
Thanks, Luis
On 24/09/15 18:36, Luis de Bethencourt wrote:
I am a bit confused.
Yes, it's an interesting mess due to legacy reasons. Maybe we manage to fix it some day...
So how the OMAP DRM auto loading is supposed to work when using Device Trees?
omapdrm isn't a real HW device driver at the moment. There's another driver, omapdss, which is the HW driver, and omapdrm uses omapdss. omapdrm platform device is created by omap platform code at boot time, the same way for both DT and non-DT boots.
As far as I can tell, the main omap drm driver does not have a OF device ID table and a .of_match it only has a MODULE_ALIAS("platform:" DRIVER_NAME), but the tiler driver (that is built-in the omap drm driver) does have a a OF device ID table and I see in DTS that are device nodes using those compatible strings
$ git grep omap4-dmm arch/arm/boot/dts/omap* arch/arm/boot/dts/omap4.dtsi: compatible = "ti,omap4-dmm";
Does that mean there is no need for MODULE_ALIAS("platform:" DMM_DRIVER_NAME)?
No, I think that's the thing that makes omapdrm load.
Tomi
On Thu, Sep 24, 2015 at 06:43:33PM +0300, Tomi Valkeinen wrote:
On 24/09/15 18:36, Luis de Bethencourt wrote:
I am a bit confused.
Yes, it's an interesting mess due to legacy reasons. Maybe we manage to fix it some day...
So how the OMAP DRM auto loading is supposed to work when using Device Trees?
omapdrm isn't a real HW device driver at the moment. There's another driver, omapdss, which is the HW driver, and omapdrm uses omapdss. omapdrm platform device is created by omap platform code at boot time, the same way for both DT and non-DT boots.
As far as I can tell, the main omap drm driver does not have a OF device ID table and a .of_match it only has a MODULE_ALIAS("platform:" DRIVER_NAME), but the tiler driver (that is built-in the omap drm driver) does have a a OF device ID table and I see in DTS that are device nodes using those compatible strings
$ git grep omap4-dmm arch/arm/boot/dts/omap* arch/arm/boot/dts/omap4.dtsi: compatible = "ti,omap4-dmm";
Does that mean there is no need for MODULE_ALIAS("platform:" DMM_DRIVER_NAME)?
No, I think that's the thing that makes omapdrm load.
Tomi
Makes sense. Thank you for the explanation.
I didn't know that a omapdrm platform device was registered explictly by platform code.
Please notice that I wrote MODULE_ALIAS("platform:" DMM_DRIVER_NAME) not MODULE_ALIAS("platform:" DRIVER_NAME) In other words, I meant if alias: platform:dmm is needed besides alias: platform:omapdrm?
Thanks, Luis
On 24/09/15 19:06, Luis de Bethencourt wrote:
Please notice that I wrote MODULE_ALIAS("platform:" DMM_DRIVER_NAME) not MODULE_ALIAS("platform:" DRIVER_NAME) In other words, I meant if alias: platform:dmm is needed besides alias: platform:omapdrm?
Ah, sorry, I misread. Yes, I think there's no need for module alias for DMM at the moment.
Tomi
dri-devel@lists.freedesktop.org