@@ -33,18 +33,6 @@
#include <plat/drm.h>
#if defined(CONFIG_DRM_OMAP) || (CONFIG_DRM_OMAP_MODULE)
-
-static struct omap_drm_platform_data omapdrm_platdata;
-
-static struct platform_device omap_drm_device = {
- .dev = {
- .coherent_dma_mask = DMA_BIT_MASK(32),
- .platform_data = &omapdrm_platdata,
- },
- .name = "omapdrm",
- .id = 0,
-};
-
static int __init omap_init_drm(void)
{
struct omap_hwmod *oh = NULL;
@@ -60,8 +48,16 @@ static int __init omap_init_drm(void)
oh->name);
}
- return platform_device_register(&omap_drm_device);
+ /* lookup and populate DSS information: */
+ oh = omap_hwmod_lookup("dss_dispc");
+ pdev = omap_device_build("omapdrm", -1, oh, NULL, 0, NULL, 0,
+ false);
+ WARN(IS_ERR(pdev), "Could not build omap_device for omapdrm\n");
+ if (!pdev)
+ return -EINVAL;
+
+ return 0;
}
arch_initcall(omap_init_drm);
@@ -69,12 +65,14 @@ arch_initcall(omap_init_drm);
void __init omapdrm_reserve_vram(void)
{
#ifdef CONFIG_CMA
+#if 0 /* TODO add this back for omap3 */
/*
* Create private 32MiB contiguous memory area for omapdrm.0 device
* TODO revisit size.. if uc/wc buffers are allocated from CMA pages
* then the amount of memory we need goes up..
*/
dma_declare_contiguous(&omap_drm_device.dev, 32 * SZ_1M, 0, 0);
+#endif
#else
# warning "CMA is not enabled, there may be limitations about scanout buffer allocations on OMAP3 and earlier"
#endif