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>
This commit is contained in:
parent
f7200b6834
commit
81c44c2b2c
@ -39,6 +39,15 @@ config FB_OMAP_LCD_MIPID
|
|||||||
the Mobile Industry Processor Interface DBI-C/DCS
|
the Mobile Industry Processor Interface DBI-C/DCS
|
||||||
specification. (Supported LCDs: Philips LPH8923, Sharp LS041Y3)
|
specification. (Supported LCDs: Philips LPH8923, Sharp LS041Y3)
|
||||||
|
|
||||||
|
config FB_OMAP_LCD_H3
|
||||||
|
bool "TPS65010 LCD controller on OMAP-H3"
|
||||||
|
depends on MACH_OMAP_H3
|
||||||
|
depends on TPS65010
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Say Y here if you want to have support for the LCD on the
|
||||||
|
H3 board.
|
||||||
|
|
||||||
config FB_OMAP_DMA_TUNE
|
config FB_OMAP_DMA_TUNE
|
||||||
bool "Set DMA SDRAM access priority high"
|
bool "Set DMA SDRAM access priority high"
|
||||||
depends on FB_OMAP
|
depends on FB_OMAP
|
||||||
|
@ -10,17 +10,18 @@ objs-y$(CONFIG_FB_OMAP_LCDC_EXTERNAL) += sossi.o
|
|||||||
|
|
||||||
objs-y$(CONFIG_FB_OMAP_LCDC_HWA742) += hwa742.o
|
objs-y$(CONFIG_FB_OMAP_LCDC_HWA742) += hwa742.o
|
||||||
|
|
||||||
objs-y$(CONFIG_MACH_AMS_DELTA) += lcd_ams_delta.o
|
lcds-y$(CONFIG_MACH_AMS_DELTA) += lcd_ams_delta.o
|
||||||
objs-y$(CONFIG_MACH_OMAP_H3) += lcd_h3.o
|
lcds-y$(CONFIG_FB_OMAP_LCD_H3) += lcd_h3.o
|
||||||
objs-y$(CONFIG_MACH_OMAP_PALMTE) += lcd_palmte.o
|
lcds-y$(CONFIG_MACH_OMAP_PALMTE) += lcd_palmte.o
|
||||||
objs-y$(CONFIG_MACH_OMAP_PALMTT) += lcd_palmtt.o
|
lcds-y$(CONFIG_MACH_OMAP_PALMTT) += lcd_palmtt.o
|
||||||
objs-y$(CONFIG_MACH_OMAP_PALMZ71) += lcd_palmz71.o
|
lcds-y$(CONFIG_MACH_OMAP_PALMZ71) += lcd_palmz71.o
|
||||||
objs-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o
|
lcds-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o
|
||||||
objs-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o
|
lcds-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o
|
||||||
objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o
|
lcds-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o
|
||||||
|
|
||||||
objs-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o
|
lcds-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o
|
||||||
objs-y$(CONFIG_MACH_HERALD) += lcd_htcherald.o
|
lcds-y$(CONFIG_MACH_HERALD) += lcd_htcherald.o
|
||||||
|
|
||||||
omapfb-objs := $(objs-yy)
|
omapfb-objs := $(objs-yy)
|
||||||
|
|
||||||
|
obj-$(CONFIG_FB_OMAP) += $(lcds-yy)
|
||||||
|
@ -1823,6 +1823,7 @@ void omapfb_register_panel(struct lcd_panel *panel)
|
|||||||
if (fbdev_pdev != NULL)
|
if (fbdev_pdev != NULL)
|
||||||
omapfb_do_probe(fbdev_pdev, fbdev_panel);
|
omapfb_do_probe(fbdev_pdev, fbdev_panel);
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(omapfb_register_panel);
|
||||||
|
|
||||||
/* Called when the device is being detached from the driver */
|
/* Called when the device is being detached from the driver */
|
||||||
static int omapfb_remove(struct platform_device *pdev)
|
static int omapfb_remove(struct platform_device *pdev)
|
||||||
|
@ -393,7 +393,7 @@ extern int omap_modify_dma_chain_params(int chain_id,
|
|||||||
extern int omap_dma_chain_status(int chain_id);
|
extern int omap_dma_chain_status(int chain_id);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_ARCH_OMAP1) && defined(CONFIG_FB_OMAP)
|
#if defined(CONFIG_ARCH_OMAP1) && IS_ENABLED(CONFIG_FB_OMAP)
|
||||||
#include <mach/lcd_dma.h>
|
#include <mach/lcd_dma.h>
|
||||||
#else
|
#else
|
||||||
static inline int omap_lcd_dma_running(void)
|
static inline int omap_lcd_dma_running(void)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user