console/font: Refactor font support code selection logic
authorGeert Uytterhoeven <geert@linux-m68k.org>
Wed, 15 May 2013 11:26:20 +0000 (13:26 +0200)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Sun, 23 Jun 2013 13:55:16 +0000 (15:55 +0200)
The current Makefile rules to build font support are messy and buggy.
Replace them by Kconfig rules:
  - Introduce CONFIG_FONT_SUPPORT, which controls the building of all font
    code,
  - Select CONFIG_FONT_SUPPORT for all drivers that use fonts,
  - Select CONFIG_FONT_8x16 for all drivers that default to the VGA8x16
    font,
  - Drop the bogus console dependency for CONFIG_VIDEO_VIVI,
  - Always process drivers/video/console/Makefile, as some drivers need
    fonts even if CONFIG_VT is not set.

This fixes (if CONFIG_SOLO6X10=y and there are no built-in console
drivers):

drivers/built-in.o: In function `solo_osd_print':
drivers/staging/media/solo6x10/solo6x10-enc.c:144: undefined reference to `.find_font'

This fixes (if CONFIG_VT=n):

drivers/built-in.o: In function `vivi_init':
vivi.c:(.init.text+0x1a3da): undefined reference to `find_font'

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com> [original part]
Acked-by: Randy Dunlap <rdunlap@infradead.org> [drivers/video/Makefile]
drivers/media/platform/Kconfig
drivers/staging/media/solo6x10/Kconfig
drivers/usb/misc/sisusbvga/Kconfig
drivers/video/Makefile
drivers/video/console/Kconfig
drivers/video/console/Makefile

index 0494d2769fd77ef71110e63dc19a9ead0fece110..9f795b583480ccff6c55249c13bc97089fea7635 100644 (file)
@@ -220,7 +220,7 @@ if V4L_TEST_DRIVERS
 config VIDEO_VIVI
        tristate "Virtual Video Driver"
        depends on VIDEO_DEV && VIDEO_V4L2 && !SPARC32 && !SPARC64
-       depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
+       select FONT_SUPPORT
        select FONT_8x16
        select VIDEOBUF2_VMALLOC
        default n
index ec32776ff5475310c37074c8ed2e5cf5cabd3d06..b34bb6c1cafe0b82e25ef6e76ace7c52cbf68ca6 100644 (file)
@@ -1,6 +1,8 @@
 config SOLO6X10
        tristate "Softlogic 6x10 MPEG codec cards"
        depends on PCI && VIDEO_DEV && SND && I2C
+       select FONT_SUPPORT
+       select FONT_8x16
        select VIDEOBUF2_DMA_SG
        select VIDEOBUF2_DMA_CONTIG
        select SND_PCM
index 0d03a52004822417c4daba49b5afc814af0314d2..36bc28c884ad75afd2c5dbe4dcca4543236aa909 100644 (file)
@@ -2,6 +2,7 @@
 config USB_SISUSBVGA
        tristate "USB 2.0 SVGA dongle support (Net2280/SiS315)"
        depends on (USB_MUSB_HDRC || USB_EHCI_HCD)
+       select FONT_SUPPORT if USB_SISUSBVGA_CON
         ---help---
          Say Y here if you intend to attach a USB2VGA dongle based on a
          Net2280 and a SiS315 chip.
index e8bae8dd4804d4bf797f444f239d5005a689390e..8c8be7e15f9c5c051fe60509f156ff6ea75eb015 100644 (file)
@@ -12,7 +12,7 @@ fb-y                              := fbmem.o fbmon.o fbcmap.o fbsysfs.o \
                                      modedb.o fbcvt.o
 fb-objs                           := $(fb-y)
 
-obj-$(CONFIG_VT)                 += console/
+obj-y                            += console/
 obj-$(CONFIG_LOGO)               += logo/
 obj-y                            += backlight/
 
index 84f04d9461a9dce6757cc47da9d0d8cb6c11d50e..8af6ad3f132366556620e2a4e38bbf822cfc7f81 100644 (file)
@@ -64,6 +64,7 @@ config MDA_CONSOLE
 config SGI_NEWPORT_CONSOLE
         tristate "SGI Newport Console support"
         depends on SGI_IP22 
+        select FONT_SUPPORT
         help
           Say Y here if you want the console on the Newport aka XL graphics
           card of your Indy.  Most people say Y here.
@@ -93,6 +94,7 @@ config FRAMEBUFFER_CONSOLE
        tristate "Framebuffer Console support"
        depends on FB
        select CRC32
+       select FONT_SUPPORT
        help
          Low-level framebuffer-based console driver.
 
@@ -125,12 +127,18 @@ config FRAMEBUFFER_CONSOLE_ROTATION
 config STI_CONSOLE
         bool "STI text console"
         depends on PARISC
+        select FONT_SUPPORT
         default y
         help
           The STI console is the builtin display/keyboard on HP-PARISC
           machines.  Say Y here to build support for it into your kernel.
           The alternative is to use your primary serial port as a console.
 
+config FONT_SUPPORT
+       tristate
+
+if FONT_SUPPORT
+
 config FONTS
        bool "Select compiled-in fonts"
        depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE
@@ -160,7 +168,6 @@ config FONT_8x8
 
 config FONT_8x16
        bool "VGA 8x16 font" if FONTS
-       depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE || STI_CONSOLE || USB_SISUSBVGA_CON
        default y if !SPARC && !FONTS
        help
          This is the "high resolution" font for the VGA frame buffer (the one
@@ -228,7 +235,6 @@ config FONT_10x18
 
 config FONT_AUTOSELECT
        def_bool y
-       depends on FRAMEBUFFER_CONSOLE || SGI_NEWPORT_CONSOLE || STI_CONSOLE || USB_SISUSBVGA_CON
        depends on !FONT_8x8
        depends on !FONT_6x11
        depends on !FONT_7x14
@@ -240,5 +246,7 @@ config FONT_AUTOSELECT
        depends on !FONT_10x18
        select FONT_8x16
 
+endif # FONT_SUPPORT
+
 endmenu
 
index a862e9173ebed67d67cac954a98eb70a9f94c346..3a11b635b4da7c249b79fa69f3fda59e1de7f4ed 100644 (file)
@@ -18,14 +18,14 @@ font-objs-$(CONFIG_FONT_MINI_4x6)  += font_mini_4x6.o
 
 font-objs += $(font-objs-y)
 
-# Each configuration option enables a list of files.
+obj-$(CONFIG_FONT_SUPPORT)         += font.o
 
 obj-$(CONFIG_DUMMY_CONSOLE)       += dummycon.o
-obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o font.o
-obj-$(CONFIG_STI_CONSOLE)         += sticon.o sticore.o font.o
+obj-$(CONFIG_SGI_NEWPORT_CONSOLE) += newport_con.o
+obj-$(CONFIG_STI_CONSOLE)         += sticon.o sticore.o
 obj-$(CONFIG_VGA_CONSOLE)         += vgacon.o
 obj-$(CONFIG_MDA_CONSOLE)         += mdacon.o
-obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o font.o softcursor.o
+obj-$(CONFIG_FRAMEBUFFER_CONSOLE) += fbcon.o bitblit.o softcursor.o
 ifeq ($(CONFIG_FB_TILEBLITTING),y)
 obj-$(CONFIG_FRAMEBUFFER_CONSOLE)     += tileblit.o
 endif
@@ -34,8 +34,4 @@ obj-$(CONFIG_FRAMEBUFFER_CONSOLE)     += fbcon_rotate.o fbcon_cw.o fbcon_ud.o \
                                          fbcon_ccw.o
 endif
 
-obj-$(CONFIG_FB_STI)              += sticore.o font.o
-
-ifeq ($(CONFIG_USB_SISUSBVGA_CON),y)
-obj-$(CONFIG_USB_SISUSBVGA)           += font.o
-endif
+obj-$(CONFIG_FB_STI)              += sticore.o