staging: drm/omap: add support for ARCH_MULTIPLATFORM

Remove usage of plat/cpu.h and get information from platform data
instead.  This enables omapdrm to be built with ARCH_MULTIPLATFORM.

Signed-off-by: Rob Clark <rob@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Rob Clark 2012-10-29 09:31:12 +01:00 committed by Greg Kroah-Hartman
parent f68f5f2067
commit 5e3b087499
6 changed files with 16 additions and 3 deletions

View file

@ -23,15 +23,20 @@
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <linux/platform_data/omap_drm.h>
#include <plat/omap_device.h>
#include <plat/omap_hwmod.h>
#include <plat/cpu.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,
@ -52,6 +57,8 @@ static int __init omap_init_drm(void)
oh->name);
}
platform_data.omaprev = GET_OMAP_REVISION();
return platform_device_register(&omap_drm_device);
}

View file

@ -2,7 +2,7 @@
config DRM_OMAP
tristate "OMAP DRM"
depends on DRM && !CONFIG_FB_OMAP2
depends on ARCH_OMAP2PLUS
depends on ARCH_OMAP2PLUS || ARCH_MULTIPLATFORM
select DRM_KMS_HELPER
select OMAP2_DSS
select FB_SYS_FILLRECT

View file

@ -16,7 +16,6 @@
#ifndef OMAP_DMM_TILER_H
#define OMAP_DMM_TILER_H
#include <plat/cpu.h>
#include "omap_drv.h"
#include "tcm.h"

View file

@ -417,13 +417,14 @@ static void omap_modeset_free(struct drm_device *dev)
static int ioctl_get_param(struct drm_device *dev, void *data,
struct drm_file *file_priv)
{
struct omap_drm_private *priv = dev->dev_private;
struct drm_omap_param *args = data;
DBG("%p: param=%llu", dev, args->param);
switch (args->param) {
case OMAP_PARAM_CHIPSET_ID:
args->value = GET_OMAP_TYPE;
args->value = priv->omaprev;
break;
default:
DBG("unknown parameter %lld", args->param);
@ -555,6 +556,7 @@ struct drm_ioctl_desc ioctls[DRM_COMMAND_END - DRM_COMMAND_BASE] = {
*/
static int dev_load(struct drm_device *dev, unsigned long flags)
{
struct omap_drm_platform_data *pdata = dev->dev->platform_data;
struct omap_drm_private *priv;
int ret;
@ -566,6 +568,8 @@ static int dev_load(struct drm_device *dev, unsigned long flags)
return -ENOMEM;
}
priv->omaprev = pdata->omaprev;
dev->dev_private = priv;
priv->wq = alloc_ordered_workqueue("omapdrm", 0);

View file

@ -40,6 +40,8 @@
#define MAX_MAPPERS 2
struct omap_drm_private {
uint32_t omaprev;
unsigned int num_crtcs;
struct drm_crtc *crtcs[8];

View file

@ -46,6 +46,7 @@ struct omap_kms_platform_data {
};
struct omap_drm_platform_data {
uint32_t omaprev;
struct omap_kms_platform_data *kms_pdata;
};