aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/fbdev/omap
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2014-04-24 08:28:20 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2014-05-09 05:55:46 -0400
commit81c44c2b2ce358b1c5fe0065dc5d2e2010f39f1b (patch)
tree960c104c334e18d628d7ee13c41ed348e861ccde /drivers/video/fbdev/omap
parentf7200b6834700abf1cb2686ea1d1d6ef2cd66a2f (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/Kconfig9
-rw-r--r--drivers/video/fbdev/omap/Makefile23
-rw-r--r--drivers/video/fbdev/omap/omapfb_main.c1
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
42config 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
42config FB_OMAP_DMA_TUNE 51config 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
11objs-y$(CONFIG_FB_OMAP_LCDC_HWA742) += hwa742.o 11objs-y$(CONFIG_FB_OMAP_LCDC_HWA742) += hwa742.o
12 12
13objs-y$(CONFIG_MACH_AMS_DELTA) += lcd_ams_delta.o 13lcds-y$(CONFIG_MACH_AMS_DELTA) += lcd_ams_delta.o
14objs-y$(CONFIG_MACH_OMAP_H3) += lcd_h3.o 14lcds-y$(CONFIG_FB_OMAP_LCD_H3) += lcd_h3.o
15objs-y$(CONFIG_MACH_OMAP_PALMTE) += lcd_palmte.o 15lcds-y$(CONFIG_MACH_OMAP_PALMTE) += lcd_palmte.o
16objs-y$(CONFIG_MACH_OMAP_PALMTT) += lcd_palmtt.o 16lcds-y$(CONFIG_MACH_OMAP_PALMTT) += lcd_palmtt.o
17objs-y$(CONFIG_MACH_OMAP_PALMZ71) += lcd_palmz71.o 17lcds-y$(CONFIG_MACH_OMAP_PALMZ71) += lcd_palmz71.o
18objs-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o 18lcds-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o
19objs-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o 19lcds-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o
20objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o 20lcds-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o
21 21
22objs-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o 22lcds-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o
23objs-y$(CONFIG_MACH_HERALD) += lcd_htcherald.o 23lcds-y$(CONFIG_MACH_HERALD) += lcd_htcherald.o
24 24
25omapfb-objs := $(objs-yy) 25omapfb-objs := $(objs-yy)
26 26
27obj-$(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}
1826EXPORT_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 */
1828static int omapfb_remove(struct platform_device *pdev) 1829static int omapfb_remove(struct platform_device *pdev)