diff options
author | Pekka Paalanen <pq@iki.fi> | 2009-07-14 23:40:35 +0300 |
---|---|---|
committer | Pekka Paalanen <pq@iki.fi> | 2009-07-15 00:04:27 +0300 |
commit | 4df79d74cf77cad4c27348b3299fb6e046883105 (patch) | |
tree | 6fa41d415363053cd594af243f6b45e142680879 | |
parent | 76e368b6080dfe704c894f533ae29213b6d62c98 (diff) |
drm/nouveau: make backlight support configurable
nouveau.ko was silently and unconditionally depending on
CONFIG_BACKLIGHT_CLASS_DEVICE features, failing to load due to
missing symbols, if the kernel did not have backlight class support.
Fix it by adopting the backlight support configuration convention from
the legacy framebuffer drivers.
Signed-off-by: Pekka Paalanen <pq@iki.fi>
-rw-r--r-- | drivers/gpu/drm/Kconfig | 9 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/Makefile | 5 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_drv.h | 9 |
3 files changed, 21 insertions, 2 deletions
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index a25b93b66c75..5ea10e59c2bd 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig @@ -153,6 +153,7 @@ config DRM_NOUVEAU select FB_CFB_IMAGEBLIT select FB select FRAMEBUFFER_CONSOLE if !EMBEDDED + select FB_BACKLIGHT if DRM_NOUVEAU_BACKLIGHT help Choose this option for open-source nVidia support. @@ -164,3 +165,11 @@ config DRM_NOUVEAU_KMS and you have a new enough userspace to support this. Running old userspaces with this enabled will cause pain. +config DRM_NOUVEAU_BACKLIGHT + bool "Support for backlight control" + depends on DRM_NOUVEAU + default y + help + Say Y here if you want to control the backlight of your display + (e.g. a laptop panel). + diff --git a/drivers/gpu/drm/nouveau/Makefile b/drivers/gpu/drm/nouveau/Makefile index f5d93b50b4cd..67a9582a5d49 100644 --- a/drivers/gpu/drm/nouveau/Makefile +++ b/drivers/gpu/drm/nouveau/Makefile @@ -8,7 +8,7 @@ nouveau-y := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \ nouveau_sgdma.o nouveau_dma.o \ nouveau_bo.o nouveau_fence.o nouveau_gem.o nouveau_ttm.o \ nouveau_hw.o nouveau_calc.o nouveau_bios.o nouveau_i2c.o \ - nouveau_display.o nouveau_fbcon.o nouveau_backlight.o \ + nouveau_display.o nouveau_fbcon.o \ nv04_timer.o \ nv04_mc.o nv40_mc.o nv50_mc.o \ nv04_fb.o nv10_fb.o nv40_fb.o \ @@ -19,8 +19,9 @@ nouveau-y := nouveau_drv.o nouveau_state.o nouveau_fifo.o nouveau_mem.o \ nv50_crtc.o nv50_dac.o nv50_sor.o nv50_connector.o \ nv50_cursor.o nv50_display.o nv50_fbcon.o \ nv04_display.o nv04_output.o nv04_crtc.o nv04_cursor.o \ - nv04_fbcon.o + nv04_fbcon.o nouveau-$(CONFIG_COMPAT) += nouveau_ioc32.o +nouveau-$(CONFIG_DRM_NOUVEAU_BACKLIGHT) += nouveau_backlight.o obj-$(CONFIG_DRM_NOUVEAU)+= nouveau.o diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index 00fc073ba134..71930a4234c4 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -708,8 +708,17 @@ extern int nouveau_dma_init(struct nouveau_channel *); extern int nouveau_dma_wait(struct nouveau_channel *, int size); /* nouveau_backlight.c */ +#ifdef CONFIG_DRM_NOUVEAU_BACKLIGHT extern int nouveau_backlight_init(struct drm_device *); extern void nouveau_backlight_exit(struct drm_device *); +#else +static inline int nouveau_backlight_init(struct drm_device *dev) +{ + return 0; +} + +static inline void nouveau_backlight_exit(struct drm_device *dev) { } +#endif /* nouveau_bios.c */ extern int nouveau_parse_bios(struct drm_device *); |