Commit 510c74c5 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen

drm: omapdrm: Register omapdrm platform device in omapdss driver

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: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 863f9cde
...@@ -103,6 +103,8 @@ static void (*dss_output_drv_unreg_funcs[])(void) = { ...@@ -103,6 +103,8 @@ static void (*dss_output_drv_unreg_funcs[])(void) = {
dss_uninit_platform_driver, dss_uninit_platform_driver,
}; };
static struct platform_device *omap_drm_device;
static int __init omap_dss_init(void) static int __init omap_dss_init(void)
{ {
int r; int r;
...@@ -118,6 +120,12 @@ static int __init omap_dss_init(void) ...@@ -118,6 +120,12 @@ static int __init omap_dss_init(void)
goto err_reg; goto err_reg;
} }
omap_drm_device = platform_device_register_simple("omapdrm_", 0, NULL, 0);
if (IS_ERR(omap_drm_device)) {
r = PTR_ERR(omap_drm_device);
goto err_reg;
}
return 0; return 0;
err_reg: err_reg:
...@@ -135,6 +143,8 @@ static void __exit omap_dss_exit(void) ...@@ -135,6 +143,8 @@ static void __exit omap_dss_exit(void)
{ {
int i; int i;
platform_device_unregister(omap_drm_device);
for (i = 0; i < ARRAY_SIZE(dss_output_drv_unreg_funcs); ++i) for (i = 0; i < ARRAY_SIZE(dss_output_drv_unreg_funcs); ++i)
dss_output_drv_unreg_funcs[i](); dss_output_drv_unreg_funcs[i]();
......
...@@ -575,6 +575,12 @@ static int pdev_probe(struct platform_device *pdev) ...@@ -575,6 +575,12 @@ static int pdev_probe(struct platform_device *pdev)
if (omapdss_is_initialized() == false) if (omapdss_is_initialized() == false)
return -EPROBE_DEFER; return -EPROBE_DEFER;
ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32));
if (ret) {
dev_err(&pdev->dev, "Failed to set the DMA mask\n");
return ret;
}
omap_crtc_pre_init(); omap_crtc_pre_init();
ret = omap_connect_dssdevs(); ret = omap_connect_dssdevs();
...@@ -762,7 +768,7 @@ static SIMPLE_DEV_PM_OPS(omapdrm_pm_ops, omap_drm_suspend, omap_drm_resume); ...@@ -762,7 +768,7 @@ static SIMPLE_DEV_PM_OPS(omapdrm_pm_ops, omap_drm_suspend, omap_drm_resume);
static struct platform_driver pdev = { static struct platform_driver pdev = {
.driver = { .driver = {
.name = DRIVER_NAME, .name = "omapdrm_",
.pm = &omapdrm_pm_ops, .pm = &omapdrm_pm_ops,
}, },
.probe = pdev_probe, .probe = pdev_probe,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment