|
@@ -21,9 +21,11 @@
|
|
|
|
|
|
static void msm_fb_output_poll_changed(struct drm_device *dev)
|
|
|
{
|
|
|
+#ifdef CONFIG_DRM_MSM_FBDEV
|
|
|
struct msm_drm_private *priv = dev->dev_private;
|
|
|
if (priv->fbdev)
|
|
|
drm_fb_helper_hotplug_event(priv->fbdev);
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
static const struct drm_mode_config_funcs mode_config_funcs = {
|
|
@@ -94,7 +96,7 @@ void __iomem *msm_ioremap(struct platform_device *pdev, const char *name,
|
|
|
}
|
|
|
|
|
|
if (reglog)
|
|
|
- printk(KERN_DEBUG "IO:region %s %08x %08lx\n", dbgname, (u32)ptr, size);
|
|
|
+ printk(KERN_DEBUG "IO:region %s %p %08lx\n", dbgname, ptr, size);
|
|
|
|
|
|
return ptr;
|
|
|
}
|
|
@@ -102,7 +104,7 @@ void __iomem *msm_ioremap(struct platform_device *pdev, const char *name,
|
|
|
void msm_writel(u32 data, void __iomem *addr)
|
|
|
{
|
|
|
if (reglog)
|
|
|
- printk(KERN_DEBUG "IO:W %08x %08x\n", (u32)addr, data);
|
|
|
+ printk(KERN_DEBUG "IO:W %p %08x\n", addr, data);
|
|
|
writel(data, addr);
|
|
|
}
|
|
|
|
|
@@ -110,7 +112,7 @@ u32 msm_readl(const void __iomem *addr)
|
|
|
{
|
|
|
u32 val = readl(addr);
|
|
|
if (reglog)
|
|
|
- printk(KERN_ERR "IO:R %08x %08x\n", (u32)addr, val);
|
|
|
+ printk(KERN_ERR "IO:R %p %08x\n", addr, val);
|
|
|
return val;
|
|
|
}
|
|
|
|
|
@@ -143,8 +145,8 @@ static int msm_unload(struct drm_device *dev)
|
|
|
if (gpu) {
|
|
|
mutex_lock(&dev->struct_mutex);
|
|
|
gpu->funcs->pm_suspend(gpu);
|
|
|
- gpu->funcs->destroy(gpu);
|
|
|
mutex_unlock(&dev->struct_mutex);
|
|
|
+ gpu->funcs->destroy(gpu);
|
|
|
}
|
|
|
|
|
|
if (priv->vram.paddr) {
|
|
@@ -177,7 +179,7 @@ static int get_mdp_ver(struct platform_device *pdev)
|
|
|
const struct of_device_id *match;
|
|
|
match = of_match_node(match_types, dev->of_node);
|
|
|
if (match)
|
|
|
- return (int)match->data;
|
|
|
+ return (int)(unsigned long)match->data;
|
|
|
#endif
|
|
|
return 4;
|
|
|
}
|
|
@@ -216,7 +218,7 @@ static int msm_init_vram(struct drm_device *dev)
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
size = r.end - r.start;
|
|
|
- DRM_INFO("using VRAM carveout: %lx@%08x\n", size, r.start);
|
|
|
+ DRM_INFO("using VRAM carveout: %lx@%pa\n", size, &r.start);
|
|
|
} else
|
|
|
#endif
|
|
|
|
|
@@ -283,10 +285,6 @@ static int msm_load(struct drm_device *dev, unsigned long flags)
|
|
|
|
|
|
drm_mode_config_init(dev);
|
|
|
|
|
|
- ret = msm_init_vram(dev);
|
|
|
- if (ret)
|
|
|
- goto fail;
|
|
|
-
|
|
|
platform_set_drvdata(pdev, dev);
|
|
|
|
|
|
/* Bind all our sub-components: */
|
|
@@ -294,6 +292,10 @@ static int msm_load(struct drm_device *dev, unsigned long flags)
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
+ ret = msm_init_vram(dev);
|
|
|
+ if (ret)
|
|
|
+ goto fail;
|
|
|
+
|
|
|
switch (get_mdp_ver(pdev)) {
|
|
|
case 4:
|
|
|
kms = mdp4_kms_init(dev);
|
|
@@ -419,9 +421,11 @@ static void msm_preclose(struct drm_device *dev, struct drm_file *file)
|
|
|
|
|
|
static void msm_lastclose(struct drm_device *dev)
|
|
|
{
|
|
|
+#ifdef CONFIG_DRM_MSM_FBDEV
|
|
|
struct msm_drm_private *priv = dev->dev_private;
|
|
|
if (priv->fbdev)
|
|
|
drm_fb_helper_restore_fbdev_mode_unlocked(priv->fbdev);
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
static irqreturn_t msm_irq(int irq, void *arg)
|