forked from luck/tmp_suning_uos_patched
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/init.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/dma-mapping.h>
|
#include <linux/dma-mapping.h>
|
||||||
|
#include <linux/platform_data/omap_drm.h>
|
||||||
|
|
||||||
#include <plat/omap_device.h>
|
#include <plat/omap_device.h>
|
||||||
#include <plat/omap_hwmod.h>
|
#include <plat/omap_hwmod.h>
|
||||||
|
#include <plat/cpu.h>
|
||||||
|
|
||||||
#if defined(CONFIG_DRM_OMAP) || (CONFIG_DRM_OMAP_MODULE)
|
#if defined(CONFIG_DRM_OMAP) || (CONFIG_DRM_OMAP_MODULE)
|
||||||
|
|
||||||
|
static struct omap_drm_platform_data platform_data;
|
||||||
|
|
||||||
static struct platform_device omap_drm_device = {
|
static struct platform_device omap_drm_device = {
|
||||||
.dev = {
|
.dev = {
|
||||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
.coherent_dma_mask = DMA_BIT_MASK(32),
|
||||||
|
.platform_data = &platform_data,
|
||||||
},
|
},
|
||||||
.name = "omapdrm",
|
.name = "omapdrm",
|
||||||
.id = 0,
|
.id = 0,
|
||||||
@ -52,6 +57,8 @@ static int __init omap_init_drm(void)
|
|||||||
oh->name);
|
oh->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
platform_data.omaprev = GET_OMAP_REVISION();
|
||||||
|
|
||||||
return platform_device_register(&omap_drm_device);
|
return platform_device_register(&omap_drm_device);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
config DRM_OMAP
|
config DRM_OMAP
|
||||||
tristate "OMAP DRM"
|
tristate "OMAP DRM"
|
||||||
depends on DRM && !CONFIG_FB_OMAP2
|
depends on DRM && !CONFIG_FB_OMAP2
|
||||||
depends on ARCH_OMAP2PLUS
|
depends on ARCH_OMAP2PLUS || ARCH_MULTIPLATFORM
|
||||||
select DRM_KMS_HELPER
|
select DRM_KMS_HELPER
|
||||||
select OMAP2_DSS
|
select OMAP2_DSS
|
||||||
select FB_SYS_FILLRECT
|
select FB_SYS_FILLRECT
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
#ifndef OMAP_DMM_TILER_H
|
#ifndef OMAP_DMM_TILER_H
|
||||||
#define OMAP_DMM_TILER_H
|
#define OMAP_DMM_TILER_H
|
||||||
|
|
||||||
#include <plat/cpu.h>
|
|
||||||
#include "omap_drv.h"
|
#include "omap_drv.h"
|
||||||
#include "tcm.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,
|
static int ioctl_get_param(struct drm_device *dev, void *data,
|
||||||
struct drm_file *file_priv)
|
struct drm_file *file_priv)
|
||||||
{
|
{
|
||||||
|
struct omap_drm_private *priv = dev->dev_private;
|
||||||
struct drm_omap_param *args = data;
|
struct drm_omap_param *args = data;
|
||||||
|
|
||||||
DBG("%p: param=%llu", dev, args->param);
|
DBG("%p: param=%llu", dev, args->param);
|
||||||
|
|
||||||
switch (args->param) {
|
switch (args->param) {
|
||||||
case OMAP_PARAM_CHIPSET_ID:
|
case OMAP_PARAM_CHIPSET_ID:
|
||||||
args->value = GET_OMAP_TYPE;
|
args->value = priv->omaprev;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
DBG("unknown parameter %lld", args->param);
|
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)
|
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;
|
struct omap_drm_private *priv;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -566,6 +568,8 @@ static int dev_load(struct drm_device *dev, unsigned long flags)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
priv->omaprev = pdata->omaprev;
|
||||||
|
|
||||||
dev->dev_private = priv;
|
dev->dev_private = priv;
|
||||||
|
|
||||||
priv->wq = alloc_ordered_workqueue("omapdrm", 0);
|
priv->wq = alloc_ordered_workqueue("omapdrm", 0);
|
||||||
|
@ -40,6 +40,8 @@
|
|||||||
#define MAX_MAPPERS 2
|
#define MAX_MAPPERS 2
|
||||||
|
|
||||||
struct omap_drm_private {
|
struct omap_drm_private {
|
||||||
|
uint32_t omaprev;
|
||||||
|
|
||||||
unsigned int num_crtcs;
|
unsigned int num_crtcs;
|
||||||
struct drm_crtc *crtcs[8];
|
struct drm_crtc *crtcs[8];
|
||||||
|
|
||||||
|
@ -46,6 +46,7 @@ struct omap_kms_platform_data {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct omap_drm_platform_data {
|
struct omap_drm_platform_data {
|
||||||
|
uint32_t omaprev;
|
||||||
struct omap_kms_platform_data *kms_pdata;
|
struct omap_kms_platform_data *kms_pdata;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user