drm: omapdrm: Make fbdev emulation optional
Don't compile the fbdev emulation code when fbdev emulation support is disabled. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
f8ef29ee45
commit
e1c1174f8d
@ -12,10 +12,11 @@ omapdrm-y := omap_drv.o \
|
||||
omap_encoder.o \
|
||||
omap_connector.o \
|
||||
omap_fb.o \
|
||||
omap_fbdev.o \
|
||||
omap_gem.o \
|
||||
omap_gem_dmabuf.o \
|
||||
omap_dmm_tiler.o \
|
||||
tcm-sita.o
|
||||
|
||||
omapdrm-$(CONFIG_DRM_FBDEV_EMULATION) += omap_fbdev.o
|
||||
|
||||
obj-$(CONFIG_DRM_OMAP) += omapdrm.o
|
||||
|
@ -51,6 +51,7 @@ static int mm_show(struct seq_file *m, void *arg)
|
||||
return drm_mm_dump_table(m, &dev->vma_offset_manager->vm_addr_space_mm);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
||||
static int fb_show(struct seq_file *m, void *arg)
|
||||
{
|
||||
struct drm_info_node *node = (struct drm_info_node *) m->private;
|
||||
@ -73,12 +74,15 @@ static int fb_show(struct seq_file *m, void *arg)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* list of debufs files that are applicable to all devices */
|
||||
static struct drm_info_list omap_debugfs_list[] = {
|
||||
{"gem", gem_show, 0},
|
||||
{"mm", mm_show, 0},
|
||||
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
||||
{"fb", fb_show, 0},
|
||||
#endif
|
||||
};
|
||||
|
||||
/* list of debugfs files that are specific to devices with dmm/tiler */
|
||||
|
@ -692,10 +692,6 @@ static int dev_load(struct drm_device *dev, unsigned long flags)
|
||||
drm_crtc_vblank_off(priv->crtcs[i]);
|
||||
|
||||
priv->fbdev = omap_fbdev_init(dev);
|
||||
if (!priv->fbdev) {
|
||||
dev_warn(dev->dev, "omap_fbdev_init failed\n");
|
||||
/* well, limp along without an fbdev.. maybe X11 will work? */
|
||||
}
|
||||
|
||||
/* store off drm_device for use in pm ops */
|
||||
dev_set_drvdata(dev->dev, dev);
|
||||
|
@ -138,8 +138,18 @@ void omap_irq_unregister(struct drm_device *dev, struct omap_drm_irq *irq);
|
||||
void omap_drm_irq_uninstall(struct drm_device *dev);
|
||||
int omap_drm_irq_install(struct drm_device *dev);
|
||||
|
||||
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
||||
struct drm_fb_helper *omap_fbdev_init(struct drm_device *dev);
|
||||
void omap_fbdev_free(struct drm_device *dev);
|
||||
#else
|
||||
static inline struct drm_fb_helper *omap_fbdev_init(struct drm_device *dev)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
static inline void omap_fbdev_free(struct drm_device *dev)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
struct omap_video_timings *omap_crtc_timings(struct drm_crtc *crtc);
|
||||
enum omap_channel omap_crtc_channel(struct drm_crtc *crtc);
|
||||
|
@ -295,6 +295,10 @@ fini:
|
||||
drm_fb_helper_fini(helper);
|
||||
fail:
|
||||
kfree(fbdev);
|
||||
|
||||
dev_warn(dev->dev, "omap_fbdev_init failed\n");
|
||||
/* well, limp along without an fbdev.. maybe X11 will work? */
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -653,6 +653,7 @@ fail:
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
||||
/* Set scrolling position. This allows us to implement fast scrolling
|
||||
* for console.
|
||||
*
|
||||
@ -689,6 +690,7 @@ fail:
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Sync the buffer for CPU access.. note pages should already be
|
||||
* attached, ie. omap_gem_get_pages()
|
||||
@ -924,6 +926,7 @@ int omap_gem_put_pages(struct drm_gem_object *obj)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DRM_FBDEV_EMULATION
|
||||
/* Get kernel virtual address for CPU access.. this more or less only
|
||||
* exists for omap_fbdev. This should be called with struct_mutex
|
||||
* held.
|
||||
@ -942,6 +945,7 @@ void *omap_gem_vaddr(struct drm_gem_object *obj)
|
||||
}
|
||||
return omap_obj->vaddr;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
/* re-pin objects in DMM in resume path: */
|
||||
|
Loading…
Reference in New Issue
Block a user