fbcon: Convert struct font_desc to use ISO C initializers
Subsystems (3)
PATCH 3/20 fbcon: Convert struct font_desc to use ISO C initializers
From: Ralf Baechle <[email protected]>
Akpm's patch "newport_con warning fix" got me to look at the console drivers again and one thing that I noticed was that none of the fonts was using ISO initializers for it's fonts.
---
drivers/video/backlight/cr_bllcd.c | 146 ++++++++++++++++++++++++++++++-- drivers/video/console/font_10x18.c | 14 ++- drivers/video/console/font_6x11.c | 13 ++- drivers/video/console/font_7x14.c | 12 +-- drivers/video/console/font_8x16.c | 12 +-- drivers/video/console/font_8x8.c | 12 +-- drivers/video/console/font_acorn_8x8.c | 14 ++- drivers/video/console/font_mini_4x6.c | 12 +-- drivers/video/console/font_pearl_8x8.c | 12 +-- drivers/video/console/font_sun12x22.c | 14 ++- drivers/video/console/font_sun8x16.c | 14 ++- 11 files changed, 201 insertions(+), 74 deletions(-)
drivers/video/backlight/cr_bllcd.c +136 -10
@@ -25,6 +25,7 @@* Authors: * Thomas Hellstrom <thomas-at-tungstengraphics-dot-com> * Alan Hourihane <alanh-at-tungstengraphics-dot-com> +* Michel Dänzer <michel-at-tungstengraphics-dot-com> */ #include <linux/module.h>
@@ -38,6 +39,8 @@ #include <linux/lcd.h>#include <linux/pci.h> #include <asm/uaccess.h> +#define MODULE_NAME "cr_bllcd" +/* The LVDS- and panel power controls sits on the * GPIO port of the ISA bridge. */
@@ -51,19 +54,25 @@ #define CRVML_LVDS_ON 0x00000001#define CRVML_PANEL_ON 0x00000002#define CRVML_BACKLIGHT_OFF 0x00000004 -/* The PLL Clock register sits on Host bridge */ -#define CRVML_DEVICE_MCH 0x5001 -#define CRVML_REG_MCHBAR 0x44 -#define CRVML_REG_MCHEN 0x54 -#define CRVML_MCHEN_BIT (1 << 28) -#define CRVML_MCHMAP_SIZE 4096 -#define CRVML_REG_CLOCK 0xc3c -#define CRVML_CLOCK_SHIFT 8 -#define CRVML_CLOCK_MASK 0x00000f00 -static struct pci_dev *lpc_dev;static u32 gpio_bar; +#ifdef CONFIG_PM + +#define NUM_LPC_EXTRA_CONFIG_SPACE 45 +static int lpc_saved_config_space[NUM_LPC_EXTRA_CONFIG_SPACE ]; + +#define CRVML_REG_RCBABAR 0xF0 +#define CRVML_RCBAEN_BIT (1 << 0) +#define CRVML_RCBAMAP_SIZE 16384 +static u32 rcba_bar; +static void __iomem *rcba_regs_base; + +#define REGSAVE_SIZE (CRVML_RCBAMAP_SIZE + 4) +static u32 *regsave; + +#endif /* CONFIG_PM */ +struct cr_panel {struct backlight_device *cr_backlight_device;struct lcd_device *cr_lcd_device;
@@ -169,6 +178,94 @@ static struct lcd_ops cr_lcd_ops = { .set_power = cr_lcd_set_power, }; +#ifdef CONFIG_PM + +static int cr_backlight_suspend (struct platform_device *pdev, +pm_message_t state) +{ +int i; +int reg; +int saveidx =0 ; + + printk(KERN_DEBUG MODULE_NAME ": suspending to state: %d\n", + state.event); + + regsave =kmalloc (REGSAVE_SIZE ,GFP_ATOMIC ); + +if (!regsave) { + printk(KERN_ERR MODULE_NAME +": Could not allocate %d bytes for saving registers\n" , + REGSAVE_SIZE); +return -ENOMEM ; + } + +/* Save registers and config space */ + + regsave[saveidx++] =inl (gpio_bar +CRVML_PANEL_PORT ); + +for (reg =0 ; reg <CRVML_RCBAMAP_SIZE ; reg +=4 ) + regsave[saveidx++] =ioread32 (rcba_regs_base + reg); + +pci_save_state (lpc_dev); +for (i =0 ; i <NUM_LPC_EXTRA_CONFIG_SPACE ; i++) +pci_read_config_dword (lpc_dev, (i +16 ) *4 , + &lpc_saved_config_space[i]); +pci_disable_device (lpc_dev); +pci_set_power_state (lpc_dev,pci_choose_state (lpc_dev, state)); + + pdev->dev.power.power_state = state; + +return 0 ; +} + +static int cr_backlight_resume (struct platform_device *pdev) +{ +int i; +int reg; +int val; +int restoreidx =0 ; + +if (pdev->dev.power.power_state.event ==PM_EVENT_ON ) +return 0 ; + +pci_set_power_state (lpc_dev,PCI_D0 ); +pci_restore_state (lpc_dev); +for (i =0 ; i <NUM_LPC_EXTRA_CONFIG_SPACE ; i++) { +if (i ==0x70 /4 ) +continue ; + +pci_read_config_dword (lpc_dev, (i +16 ) *4 , &val); +if (val != lpc_saved_config_space[i]) { + printk(KERN_DEBUG MODULE_NAME ": Writing back config " +"space on device %s at offset %x (was %x, " +"writing %x)\n" ,pci_name (lpc_dev), (i +16 ), + val, lpc_saved_config_space[i]); +pci_write_config_dword (lpc_dev, (i +16 ) *4 , + lpc_saved_config_space[i]); + } + } +if (pci_enable_device (lpc_dev)) +return -1 ; + +outl (regsave[restoreidx++], gpio_bar +CRVML_PANEL_PORT ); + +for (reg =0 ; reg <CRVML_RCBAMAP_SIZE ; reg +=4 ) +iowrite32 (regsave[restoreidx++], rcba_regs_base + reg); + +/* Flush posted writes */ +ioread32 (rcba_regs_base); + +kfree (regsave); + + pdev->dev.power.power_state =PMSG_ON ; + + printk(KERN_DEBUG MODULE_NAME ": resumed\n"); + +return 0 ; +} + +#endif /* CONFIG_PM */ +static int cr_backlight_probe (struct platform_device *pdev) {struct backlight_device *bdp;
@@ -228,6 +325,26 @@ static int cr_backlight_probe(struct plaplatform_set_drvdata (pdev, crp); +#ifdef CONFIG_PM +pci_read_config_dword (lpc_dev,CRVML_REG_RCBABAR , &rcba_bar); + +if (!(rcba_bar &CRVML_RCBAEN_BIT )) { + printk(KERN_ERR MODULE_NAME + ": Carillo Ranch LPC device RCBA BAR was not enabled\n"); +pci_dev_put (lpc_dev); +return -ENODEV ; + } + + rcba_regs_base = +ioremap_nocache (rcba_bar,CRVML_RCBAMAP_SIZE ); +if (!rcba_regs_base) { + printk(KERN_ERR MODULE_NAME + ": Could not map Carillo Ranch RCBA BAR\n"); +pci_dev_put (lpc_dev); +return -ENODEV ; + } +#endif /* CONFIG_PM */ +return 0 ; }
@@ -241,6 +358,11 @@ static int cr_backlight_remove(struct plcr_lcd_set_power (crp->cr_lcd_device,FB_BLANK_POWERDOWN );backlight_device_unregister (crp->cr_backlight_device);lcd_device_unregister (crp->cr_lcd_device); +platform_set_drvdata (pdev,NULL ); +#ifdef CONFIG_PM +iounmap (rcba_regs_base); +#endif +kfree (crp);pci_dev_put (lpc_dev);return 0 ;
@@ -252,6 +374,10 @@ static struct platform_driver cr_backlig .driver = { .name = "cr_backlight", }, +#ifdef CONFIG_PM + .suspend = cr_backlight_suspend, + .resume = cr_backlight_resume, +#endif };static struct platform_device *crp;
drivers/video/console/font_10x18.c +7 -7
@@ -5133,14 +5133,14 @@ static const unsigned char fontdata_10x1const struct font_desc font_10x18 = { - FONT10x18_IDX, -"10x18" , -10 , -18 , - fontdata_10x18, + .idx = FONT10x18_IDX, + .name ="10x18" , + .width =10 , + .height =18 , + .data = fontdata_10x18, #ifdef __sparc__ - 5 + .pref =5 , #else --1 + .pref =-1 , #endif };
drivers/video/console/font_6x11.c +7 -6
@@ -3342,10 +3342,11 @@ static const unsigned char fontdata_6x11const struct font_desc font_vga_6x11 = { - VGA6x11_IDX, -"ProFont6x11" , -6 , -11 , - fontdata_6x11, --2000 /* Try avoiding this font if possible unless on MAC */ + .idx = VGA6x11_IDX, + .name ="ProFont6x11" , + .width =6 , + .height =11 , + .data = fontdata_6x11, +/* Try avoiding this font if possible unless on MAC */ + .pref =-2000 , };
drivers/video/console/font_7x14.c +6 -6
@@ -4109,10 +4109,10 @@ static const unsigned char fontdata_7x14const struct font_desc font_7x14 = { - FONT7x14_IDX, -"7x14" , -7 , -14 , - fontdata_7x14, -0 + .idx = FONT7x14_IDX, + .name ="7x14" , + .width =7 , + .height =14 , + .data = fontdata_7x14, + .pref =0 , };
drivers/video/console/font_8x16.c +6 -6
@@ -4622,10 +4622,10 @@ static const unsigned char fontdata_8x16const struct font_desc font_vga_8x16 = { - VGA8x16_IDX, -"VGA8x16" , -8 , -16 , - fontdata_8x16, -0 + .idx = VGA8x16_IDX, + .name ="VGA8x16" , + .width =8 , + .height =16 , + .data = fontdata_8x16, + .pref =0 , };
drivers/video/console/font_8x8.c +6 -6
@@ -2574,10 +2574,10 @@ static const unsigned char fontdata_8x8[const struct font_desc font_vga_8x8 = { - VGA8x8_IDX, -"VGA8x8" , -8 , -8 , - fontdata_8x8, -0 + .idx = VGA8x8_IDX, + .name ="VGA8x8" , + .width =8 , + .height =8 , + .data = fontdata_8x8, + .pref =0 , };
drivers/video/console/font_acorn_8x8.c +7 -7
@@ -262,14 +262,14 @@ static const unsigned char acorndata_8x8 };const struct font_desc font_acorn_8x8 = { - ACORN8x8_IDX, -"Acorn8x8" , -8 , -8 , - acorndata_8x8, + .idx = ACORN8x8_IDX, + .name ="Acorn8x8" , + .width =8 , + .height =8 , + .data = acorndata_8x8, #ifdef CONFIG_ARCH_ACORN - 20 + .pref =20 , #else -0 + .pref =0 , #endif };
drivers/video/console/font_mini_4x6.c +6 -6
@@ -2148,11 +2148,11 @@ static const unsigned char fontdata_mini };const struct font_desc font_mini_4x6 = { - MINI4x6_IDX, -"MINI4x6" , -4 , -6 , - fontdata_mini_4x6, -3 + .idx = MINI4x6_IDX, + .name ="MINI4x6" , + .width =4 , + .height =6 , + .data = fontdata_mini_4x6, + .pref =3 , };
drivers/video/console/font_pearl_8x8.c +6 -6
@@ -2578,10 +2578,10 @@ static const unsigned char fontdata_pear };const struct font_desc font_pearl_8x8 = { - PEARL8x8_IDX, -"PEARL8x8" , -8 , -8 , - fontdata_pearl8x8, -2 + .idx = PEARL8x8_IDX, + .name ="PEARL8x8" , + .width =8 , + .height =8 , + .data = fontdata_pearl8x8, + .pref =2 , };
drivers/video/console/font_sun12x22.c +7 -7
@@ -6152,14 +6152,14 @@ static const unsigned char fontdata_sun1const struct font_desc font_sun_12x22 = { - SUN12x22_IDX, -"SUN12x22" , -12 , -22 , - fontdata_sun12x22, + .idx = SUN12x22_IDX, + .name ="SUN12x22" , + .width =12 , + .height =22 , + .data = fontdata_sun12x22, #ifdef __sparc__ - 5 + .pref =5 , #else --1 + .pref =-1 , #endif };
drivers/video/console/font_sun8x16.c +7 -7
@@ -262,14 +262,14 @@ static const unsigned char fontdata_sun8 };const struct font_desc font_sun_8x16 = { - SUN8x16_IDX, -"SUN8x16" , -8 , -16 , - fontdata_sun8x16, + .idx = SUN8x16_IDX, + .name ="SUN8x16" , + .width =8 , + .height =16 , + .data = fontdata_sun8x16, #ifdef __sparc__ - 10 + .pref =10 , #else --1 + .pref =-1 , #endif };
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
Quoted 56 lines · Antonino A. Daplas
From: Ralf Baechle <[email protected]>
Akpm's patch "
newport_conwarning fix" got me to look at the console drivers again and one thing that I noticed was that none of the fonts was using ISO initializers for it's fonts.Signed-off-by Ralf Baechle <[email protected]>Signed-off-by Antonino Daplas <[email protected]>drivers/video/backlight/cr_bllcd.c +12
-10@@ -25,6 +25,7 @@* Authors: * Thomas Hellstrom <thomas-at-tungstengraphics-dot-com> * Alan Hourihane <alanh-at-tungstengraphics-dot-com> +* Michel D�nzer <michel-at-tungstengraphics-dot-com> */ #include <linux/module.h> @@ -38,6 +39,8 @@ #include <linux/lcd.h>#include <linux/pci.h> #include <asm/uaccess.h> +#define MODULE_NAME "cr_bllcd" +/* The LVDS- and panel power controls sits on the * GPIO port of the ISA bridge. */ @@ -51,19 +54,25 @@ #define CRVML_LVDS_ON 0x00000001#define CRVML_PANEL_ON 0x00000002#define CRVML_BACKLIGHT_OFF 0x00000004 -/* The PLL Clock register sits on Host bridge */ -#define CRVML_DEVICE_MCH 0x5001 -#define CRVML_REG_MCHBAR 0x44 -#define CRVML_REG_MCHEN 0x54 -#define CRVML_MCHEN_BIT (1 << 28) -#define CRVML_MCHMAP_SIZE 4096 -#define CRVML_REG_CLOCK 0xc3c -#define CRVML_CLOCK_SHIFT 8 -#define CRVML_CLOCK_MASK 0x00000f00 -static struct pci_dev *lpc_dev;static u32 gpio_bar; +#ifdef CONFIG_PM + +#define NUM_LPC_EXTRA_CONFIG_SPACE 45 +static int lpc_saved_config_space[NUM_LPC_EXTRA_CONFIG_SPACE ]; + +#define CRVML_REG_RCBABAR 0xF0 +#define CRVML_RCBAEN_BIT (1 << 0) +#define CRVML_RCBAMAP_SIZE 16384 +static u32 rcba_bar;
drivers/video/backlight/cr_bllcd.c #define CRVML_LVDS_ON 0x00000001 · line 78
Quoted 10 lines
drivers/video/backlight/cr_bllcd.c +7
-0+static void __iomem *rcba_regs_base; + +#define REGSAVE_SIZE (CRVML_RCBAMAP_SIZE + 4) +static u32 *regsave; + +#endif /* CONFIG_PM */ +struct cr_panel {struct backlight_device *cr_backlight_device;struct lcd_device *cr_lcd_device;
Doesn't look like C99 initializer conversions...
Quoted 16 lines
drivers/video/console/font_10x18.c +3
-5@@ -5133,14 +5133,14 @@ static const unsigned char fontdata_10x1const struct font_desc font_10x18 = { - FONT10x18_IDX, -"10x18" , -10 , -18 , - fontdata_10x18, + .idx = FONT10x18_IDX, + .name ="10x18" , + .width =10 ,
drivers/video/console/font_10x18.c static const unsigned char fontdata_10x1 · line 5146
Quoted 10 lines
drivers/video/console/font_10x18.c +4
-2+ .height = 18, + .data = fontdata_10x18, #ifdef __sparc__ - 5 + .pref = 5, #else - -1 + .pref = -1,#endif };
This does.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Linux-fbdev-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel