@@ -24,6 +24,7 @@
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <linux/platform_data/omap_drm.h>
+#include <linux/of.h>
#include "soc.h"
#include "omap_device.h"
@@ -47,13 +48,18 @@ static int __init omap_init_drm(void)
struct omap_hwmod *oh = NULL;
struct platform_device *pdev;
- /* lookup and populate the DMM information, if present - OMAP4+ */
- oh = omap_hwmod_lookup("dmm");
+ if (!of_have_populated_dt() ||
+ !of_find_compatible_node(NULL, NULL, "ti,dmm")) {
- if (oh) {
- pdev = omap_device_build(oh->name, -1, oh, NULL, 0);
- WARN(IS_ERR(pdev), "Could not build omap_device for %s\n",
- oh->name);
+ /* resort to hwmod lookup - LEGACY */
+ /* lookup and populate the DMM information, OMAP4+ only */
+ oh = omap_hwmod_lookup("dmm");
+
+ if (oh) {
+ pdev = omap_device_build(oh->name, -1, oh, NULL, 0);
+ WARN(IS_ERR(pdev), "Could not build device for %s\n",
+ oh->name);
+ }
}
platform_data.omaprev = GET_OMAP_TYPE;
Added code to conditionally skip over creating a DMM device from the hwmod information if there is a DMM node present in the DT. Signed-off-by: Andy Gross <andy.gross@ti.com> --- arch/arm/mach-omap2/drm.c | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-)