mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 00:34:20 +08:00
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:
parent
f68f5f2067
commit
5e3b087499
@ -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);
|
||||
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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);
|
||||
|
@ -40,6 +40,8 @@
|
||||
#define MAX_MAPPERS 2
|
||||
|
||||
struct omap_drm_private {
|
||||
uint32_t omaprev;
|
||||
|
||||
unsigned int num_crtcs;
|
||||
struct drm_crtc *crtcs[8];
|
||||
|
||||
|
@ -46,6 +46,7 @@ struct omap_kms_platform_data {
|
||||
};
|
||||
|
||||
struct omap_drm_platform_data {
|
||||
uint32_t omaprev;
|
||||
struct omap_kms_platform_data *kms_pdata;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user