|  | /* | 
|  | * DRM/KMS device registration for TI OMAP platforms | 
|  | * | 
|  | * Copyright (C) 2012 Texas Instruments | 
|  | * Author: Rob Clark <rob.clark@linaro.org> | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or modify it | 
|  | * under the terms of the GNU General Public License version 2 as published by | 
|  | * the Free Software Foundation. | 
|  | * | 
|  | * This program is distributed in the hope that it will be useful, but WITHOUT | 
|  | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
|  | * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for | 
|  | * more details. | 
|  | * | 
|  | * You should have received a copy of the GNU General Public License along with | 
|  | * this program.  If not, see <http://www.gnu.org/licenses/>. | 
|  | */ | 
|  |  | 
|  | #include <linux/module.h> | 
|  | #include <linux/kernel.h> | 
|  | #include <linux/mm.h> | 
|  | #include <linux/init.h> | 
|  | #include <linux/platform_device.h> | 
|  | #include <linux/dma-mapping.h> | 
|  | #include <linux/platform_data/omap_drm.h> | 
|  |  | 
|  | #include "soc.h" | 
|  | #include "omap_device.h" | 
|  | #include "omap_hwmod.h" | 
|  |  | 
|  | #if defined(CONFIG_DRM_OMAP) || (CONFIG_DRM_OMAP_MODULE) | 
|  |  | 
|  | static struct omap_drm_platform_data platform_data; | 
|  |  | 
|  | static struct platform_device omap_drm_device = { | 
|  | .dev = { | 
|  | .coherent_dma_mask = DMA_BIT_MASK(32), | 
|  | .platform_data = &platform_data, | 
|  | }, | 
|  | .name = "omapdrm", | 
|  | .id = 0, | 
|  | }; | 
|  |  | 
|  | 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 (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); | 
|  | } | 
|  |  | 
|  | platform_data.omaprev = GET_OMAP_TYPE; | 
|  |  | 
|  | return platform_device_register(&omap_drm_device); | 
|  |  | 
|  | } | 
|  |  | 
|  | omap_arch_initcall(omap_init_drm); | 
|  |  | 
|  | #endif |