Hi Tomi,
On Thursday, 28 September 2017 11:03:32 EEST Tomi Valkeinen wrote:
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki On 11/08/17 16:49, Laurent Pinchart wrote:
The omapdrm platform device is a virtual device created for the sole purpose of handling the omapdss/omapdrm driver split. It should eventually be removed. As a first step to ease refactoring move its registration from platform code to driver code.
The omapdrm driver name must be changed internally to avoid probing both the device registered in platform code and the device registered in the omapdss driver, as that would otherwise break bisection.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com Reviewed-by: Tomi Valkeinen tomi.valkeinen@ti.com
Changes since v1:
- Drop the CONFIG_DRM_OMAP conditional compilation
- Unregister the platform device at exit time
drivers/gpu/drm/omapdrm/dss/core.c | 15 +++++++++++++++ drivers/gpu/drm/omapdrm/omap_drv.c | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/omapdrm/dss/core.c b/drivers/gpu/drm/omapdrm/dss/core.c index 4dabe32c7098..8678d8b4efce 100644 --- a/drivers/gpu/drm/omapdrm/dss/core.c +++ b/drivers/gpu/drm/omapdrm/dss/core.c @@ -22,6 +22,7 @@
#define DSS_SUBSYS_NAME "CORE"
+#include <linux/dma-mapping.h>
#include <linux/kernel.h> #include <linux/module.h> #include <linux/clk.h>
@@ -103,6 +104,14 @@ static void (*dss_output_drv_unreg_funcs[])(void) = {
dss_uninit_platform_driver,
};
+static struct platform_device omap_drm_device = {
- .dev = {
.coherent_dma_mask = DMA_BIT_MASK(32),
- },
- .name = "omapdrm_",
- .id = 0,
+};
static int __init omap_dss_init(void) {
int r;
@@ -118,6 +127,10 @@ static int __init omap_dss_init(void)
goto err_reg;
}
- r = platform_device_register(&omap_drm_device);
- if (r)
goto err_reg;
Was there a reason to create the omapdrm device in omap_dss_init (i.e. module_init), instead of omapdss's probe? Now the omapdrm device is always created even if there's no DSS device on the SoC.
Not really, no.
Do you think this requires a quick -stable fix ? I'm working on a patch series that will remove the omapdrm device completely.