diff options
author | Arnd Bergmann <arnd@arndb.de> | 2014-04-24 08:28:20 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2014-05-09 05:55:46 -0400 |
commit | 81c44c2b2ce358b1c5fe0065dc5d2e2010f39f1b (patch) | |
tree | 960c104c334e18d628d7ee13c41ed348e861ccde /drivers/video/fbdev/omap | |
parent | f7200b6834700abf1cb2686ea1d1d6ef2cd66a2f (diff) |
video/omap: fix modular build
The framebuffer layer can be a loadable module, which forces
omapfb to be a module as well. However, this breaks the lcd
drivers, which are linked into the omapfb driver but each
have their own module_init() function. To solve this,
we split out the lcd drivers into separate modules and
export omapfb_register_panel, which is the only interface
required between the main omapfb driver and the lcd panel
drivers.
We also have to introduce a new Kconfig symbol for H3, since
that lcd driver has a dependency on TPS65010, which we can
express better in Kconfig than Makefile syntax.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: linux-fbdev@vger.kernel.org
Cc: linux-omap@vger.kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/fbdev/omap')
-rw-r--r-- | drivers/video/fbdev/omap/Kconfig | 9 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/Makefile | 23 | ||||
-rw-r--r-- | drivers/video/fbdev/omap/omapfb_main.c | 1 |
3 files changed, 22 insertions, 11 deletions
diff --git a/drivers/video/fbdev/omap/Kconfig b/drivers/video/fbdev/omap/Kconfig index 0bc3a936ce2b..18c4cb0d5690 100644 --- a/drivers/video/fbdev/omap/Kconfig +++ b/drivers/video/fbdev/omap/Kconfig | |||
@@ -39,6 +39,15 @@ config FB_OMAP_LCD_MIPID | |||
39 | the Mobile Industry Processor Interface DBI-C/DCS | 39 | the Mobile Industry Processor Interface DBI-C/DCS |
40 | specification. (Supported LCDs: Philips LPH8923, Sharp LS041Y3) | 40 | specification. (Supported LCDs: Philips LPH8923, Sharp LS041Y3) |
41 | 41 | ||
42 | config FB_OMAP_LCD_H3 | ||
43 | bool "TPS65010 LCD controller on OMAP-H3" | ||
44 | depends on MACH_OMAP_H3 | ||
45 | depends on TPS65010 | ||
46 | default y | ||
47 | help | ||
48 | Say Y here if you want to have support for the LCD on the | ||
49 | H3 board. | ||
50 | |||
42 | config FB_OMAP_DMA_TUNE | 51 | config FB_OMAP_DMA_TUNE |
43 | bool "Set DMA SDRAM access priority high" | 52 | bool "Set DMA SDRAM access priority high" |
44 | depends on FB_OMAP | 53 | depends on FB_OMAP |
diff --git a/drivers/video/fbdev/omap/Makefile b/drivers/video/fbdev/omap/Makefile index 1927faffb5bc..732e0718be53 100644 --- a/drivers/video/fbdev/omap/Makefile +++ b/drivers/video/fbdev/omap/Makefile | |||
@@ -10,17 +10,18 @@ objs-y$(CONFIG_FB_OMAP_LCDC_EXTERNAL) += sossi.o | |||
10 | 10 | ||
11 | objs-y$(CONFIG_FB_OMAP_LCDC_HWA742) += hwa742.o | 11 | objs-y$(CONFIG_FB_OMAP_LCDC_HWA742) += hwa742.o |
12 | 12 | ||
13 | objs-y$(CONFIG_MACH_AMS_DELTA) += lcd_ams_delta.o | 13 | lcds-y$(CONFIG_MACH_AMS_DELTA) += lcd_ams_delta.o |
14 | objs-y$(CONFIG_MACH_OMAP_H3) += lcd_h3.o | 14 | lcds-y$(CONFIG_FB_OMAP_LCD_H3) += lcd_h3.o |
15 | objs-y$(CONFIG_MACH_OMAP_PALMTE) += lcd_palmte.o | 15 | lcds-y$(CONFIG_MACH_OMAP_PALMTE) += lcd_palmte.o |
16 | objs-y$(CONFIG_MACH_OMAP_PALMTT) += lcd_palmtt.o | 16 | lcds-y$(CONFIG_MACH_OMAP_PALMTT) += lcd_palmtt.o |
17 | objs-y$(CONFIG_MACH_OMAP_PALMZ71) += lcd_palmz71.o | 17 | lcds-y$(CONFIG_MACH_OMAP_PALMZ71) += lcd_palmz71.o |
18 | objs-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o | 18 | lcds-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o |
19 | objs-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o | 19 | lcds-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o |
20 | objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o | 20 | lcds-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o |
21 | 21 | ||
22 | objs-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o | 22 | lcds-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o |
23 | objs-y$(CONFIG_MACH_HERALD) += lcd_htcherald.o | 23 | lcds-y$(CONFIG_MACH_HERALD) += lcd_htcherald.o |
24 | 24 | ||
25 | omapfb-objs := $(objs-yy) | 25 | omapfb-objs := $(objs-yy) |
26 | 26 | ||
27 | obj-$(CONFIG_FB_OMAP) += $(lcds-yy) | ||
diff --git a/drivers/video/fbdev/omap/omapfb_main.c b/drivers/video/fbdev/omap/omapfb_main.c index e4fc6d9b5371..d8d028d98711 100644 --- a/drivers/video/fbdev/omap/omapfb_main.c +++ b/drivers/video/fbdev/omap/omapfb_main.c | |||
@@ -1823,6 +1823,7 @@ void omapfb_register_panel(struct lcd_panel *panel) | |||
1823 | if (fbdev_pdev != NULL) | 1823 | if (fbdev_pdev != NULL) |
1824 | omapfb_do_probe(fbdev_pdev, fbdev_panel); | 1824 | omapfb_do_probe(fbdev_pdev, fbdev_panel); |
1825 | } | 1825 | } |
1826 | EXPORT_SYMBOL_GPL(omapfb_register_panel); | ||
1826 | 1827 | ||
1827 | /* Called when the device is being detached from the driver */ | 1828 | /* Called when the device is being detached from the driver */ |
1828 | static int omapfb_remove(struct platform_device *pdev) | 1829 | static int omapfb_remove(struct platform_device *pdev) |