Merge tag 'fbdev-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 19 Oct 2014 01:03:02 +0000 (18:03 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 19 Oct 2014 01:03:02 +0000 (18:03 -0700)
Pull fbdev updates from Tomi Valkeinen:
 - new 6x10 font
 - various small fixes and cleanups

* tag 'fbdev-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (30 commits)
  fonts: Add 6x10 font
  videomode: provide dummy inline functions for !CONFIG_OF
  video/atmel_lcdfb: Introduce regulator support
  fbdev: sh_mobile_hdmi: Re-init regs before irq re-enable on resume
  framebuffer: fix screen corruption when copying
  framebuffer: fix border color
  arm, fbdev, omap2, LLVMLinux: Remove nested function from omapfb
  arm, fbdev, omap2, LLVMLinux: Remove nested function from omap2 dss
  video: fbdev: valkyriefb.c: use container_of to resolve fb_info_valkyrie from fb_info
  video: fbdev: pxafb.c: use container_of to resolve pxafb_info/layer from fb_info
  video: fbdev: cyber2000fb.c: use container_of to resolve cfb_info from fb_info
  video: fbdev: controlfb.c: use container_of to resolve fb_info_control from fb_info
  video: fbdev: sa1100fb.c: use container_of to resolve sa1100fb_info from fb_info
  video: fbdev: stifb.c: use container_of to resolve stifb_info from fb_info
  video: fbdev: sis: sis_main.c: Cleaning up missing null-terminate in conjunction with strncpy
  video: valkyriefb: Fix unused variable warning in set_valkyrie_clock()
  video: fbdev: use %*ph specifier to dump small buffers
  video: mx3fb: always enable BACKLIGHT_LCD_SUPPORT
  video: fbdev: au1200fb: delete double assignment
  video: fbdev: sis: delete double assignment
  ...

39 files changed:
Documentation/devicetree/bindings/video/atmel,lcdc.txt
drivers/video/console/bitblit.c
drivers/video/console/fbcon_ccw.c
drivers/video/console/fbcon_cw.c
drivers/video/console/fbcon_ud.c
drivers/video/fbdev/Kconfig
drivers/video/fbdev/atmel_lcdfb.c
drivers/video/fbdev/aty/aty128fb.c
drivers/video/fbdev/au1200fb.c
drivers/video/fbdev/controlfb.c
drivers/video/fbdev/core/cfbcopyarea.c
drivers/video/fbdev/core/fbsysfs.c
drivers/video/fbdev/cyber2000fb.c
drivers/video/fbdev/intelfb/intelfbhw.c
drivers/video/fbdev/matrox/matroxfb_base.c
drivers/video/fbdev/matrox/matroxfb_maven.c
drivers/video/fbdev/msm/msm_fb.c
drivers/video/fbdev/mx3fb.c
drivers/video/fbdev/omap2/dss/dispc-compat.c
drivers/video/fbdev/omap2/dss/dsi.c
drivers/video/fbdev/omap2/dss/manager-sysfs.c
drivers/video/fbdev/omap2/omapfb/omapfb-main.c
drivers/video/fbdev/pxafb.c
drivers/video/fbdev/riva/riva_hw.c
drivers/video/fbdev/sa1100fb.c
drivers/video/fbdev/sh_mobile_hdmi.c
drivers/video/fbdev/sis/init301.c
drivers/video/fbdev/sis/sis_main.c
drivers/video/fbdev/stifb.c
drivers/video/fbdev/udlfb.c
drivers/video/fbdev/valkyriefb.c
drivers/video/fbdev/vermilion/vermilion.c
drivers/video/of_display_timing.c
include/linux/font.h
include/video/of_display_timing.h
lib/fonts/Kconfig
lib/fonts/Makefile
lib/fonts/font_6x10.c [new file with mode: 0644]
lib/fonts/fonts.c

index 7d0c4a1ab81181c300bb746ba4611a6d173364be..f059dd0b3d286c3adc1e2b42571a2d48de4b641b 100644 (file)
@@ -20,6 +20,9 @@ Required nodes:
 - default-mode: a videomode within the display with timing parameters
        as specified below.
 
+Optional properties:
+- lcd-supply: Regulator for LCD supply voltage.
+
 Example:
 
        fb0: fb@0x00500000 {
index 61b182bf32a22962492cc79a3b1e60f3f49ef388..dbfe4eecf12e56d328478dff9a84064c591bfe85 100644 (file)
@@ -205,7 +205,6 @@ static void bit_putcs(struct vc_data *vc, struct fb_info *info,
 static void bit_clear_margins(struct vc_data *vc, struct fb_info *info,
                              int bottom_only)
 {
-       int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
        unsigned int cw = vc->vc_font.width;
        unsigned int ch = vc->vc_font.height;
        unsigned int rw = info->var.xres - (vc->vc_cols*cw);
@@ -214,7 +213,7 @@ static void bit_clear_margins(struct vc_data *vc, struct fb_info *info,
        unsigned int bs = info->var.yres - bh;
        struct fb_fillrect region;
 
-       region.color = attr_bgcol_ec(bgshift, vc, info);
+       region.color = 0;
        region.rop = ROP_COPY;
 
        if (rw && !bottom_only) {
index 41b32ae23dacb9f3dac50a52066ef5f276729d2c..5a3cbf6dff4d944ff5a0ac3fb1fd62c2fba3106a 100644 (file)
@@ -197,9 +197,8 @@ static void ccw_clear_margins(struct vc_data *vc, struct fb_info *info,
        unsigned int bh = info->var.xres - (vc->vc_rows*ch);
        unsigned int bs = vc->vc_rows*ch;
        struct fb_fillrect region;
-       int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
 
-       region.color = attr_bgcol_ec(bgshift,vc,info);
+       region.color = 0;
        region.rop = ROP_COPY;
 
        if (rw && !bottom_only) {
index a93670ef7f89ea03fa1bd59ec64636d4b755f4a8..e7ee44db4e98b1318cf8e9f679843354e6b84862 100644 (file)
@@ -180,9 +180,8 @@ static void cw_clear_margins(struct vc_data *vc, struct fb_info *info,
        unsigned int bh = info->var.xres - (vc->vc_rows*ch);
        unsigned int rs = info->var.yres - rw;
        struct fb_fillrect region;
-       int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
 
-       region.color = attr_bgcol_ec(bgshift,vc,info);
+       region.color = 0;
        region.rop = ROP_COPY;
 
        if (rw && !bottom_only) {
index ff0872c0498bd6e32bdb22b6a91f55f40796e7ef..19e3714abfe8fb765eaaea2ebeb9a21c5c2725de 100644 (file)
@@ -227,9 +227,8 @@ static void ud_clear_margins(struct vc_data *vc, struct fb_info *info,
        unsigned int rw = info->var.xres - (vc->vc_cols*cw);
        unsigned int bh = info->var.yres - (vc->vc_rows*ch);
        struct fb_fillrect region;
-       int bgshift = (vc->vc_hi_font_mask) ? 13 : 12;
 
-       region.color = attr_bgcol_ec(bgshift,vc,info);
+       region.color = 0;
        region.rop = ROP_COPY;
 
        if (rw && !bottom_only) {
index ccbe2ae22ac5318b2bf3e5bfa227f1295c5d7982..c7bf606a87064491525563ae16a3a36c8092431b 100644 (file)
@@ -2356,10 +2356,11 @@ config FB_MSM
 config FB_MX3
        tristate "MX3 Framebuffer support"
        depends on FB && MX3_IPU
+       select BACKLIGHT_CLASS_DEVICE
+       select BACKLIGHT_LCD_SUPPORT
        select FB_CFB_FILLRECT
        select FB_CFB_COPYAREA
        select FB_CFB_IMAGEBLIT
-       select BACKLIGHT_CLASS_DEVICE
        default y
        help
          This is a framebuffer device for the i.MX31 LCD Controller. So
index 1d8bdb92939b2c034dbd6b7e15f3b076146a6c6a..3bf403150a2d6fbfcf9814df777e1ab51853c72b 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/of_device.h>
 #include <linux/of_gpio.h>
 #include <video/of_display_timing.h>
+#include <linux/regulator/consumer.h>
 #include <video/videomode.h>
 
 #include <mach/cpu.h>
@@ -60,6 +61,7 @@ struct atmel_lcdfb_info {
        struct atmel_lcdfb_pdata pdata;
 
        struct atmel_lcdfb_config *config;
+       struct regulator        *reg_lcd;
 };
 
 struct atmel_lcdfb_power_ctrl_gpio {
@@ -302,10 +304,24 @@ static void init_contrast(struct atmel_lcdfb_info *sinfo)
 
 static inline void atmel_lcdfb_power_control(struct atmel_lcdfb_info *sinfo, int on)
 {
+       int ret;
        struct atmel_lcdfb_pdata *pdata = &sinfo->pdata;
 
        if (pdata->atmel_lcdfb_power_control)
                pdata->atmel_lcdfb_power_control(pdata, on);
+       else if (sinfo->reg_lcd) {
+               if (on) {
+                       ret = regulator_enable(sinfo->reg_lcd);
+                       if (ret)
+                               dev_err(&sinfo->pdev->dev,
+                                       "lcd regulator enable failed:   %d\n", ret);
+               } else {
+                       ret = regulator_disable(sinfo->reg_lcd);
+                       if (ret)
+                               dev_err(&sinfo->pdev->dev,
+                                       "lcd regulator disable failed: %d\n", ret);
+               }
+       }
 }
 
 static struct fb_fix_screeninfo atmel_lcdfb_fix __initdata = {
@@ -1195,6 +1211,10 @@ static int __init atmel_lcdfb_probe(struct platform_device *pdev)
        if (!sinfo->config)
                goto free_info;
 
+       sinfo->reg_lcd = devm_regulator_get(&pdev->dev, "lcd");
+       if (IS_ERR(sinfo->reg_lcd))
+               sinfo->reg_lcd = NULL;
+
        info->flags = ATMEL_LCDFB_FBINFO_DEFAULT;
        info->pseudo_palette = sinfo->pseudo_palette;
        info->fbops = &atmel_lcdfb_ops;
index ff6070170d018721349b2b604113bf019653ee7f..aedf2fbf9bf61f1e652f1e1353a1f54535a983a2 100644 (file)
@@ -324,14 +324,61 @@ struct aty128_meminfo {
 };
 
 /* various memory configurations */
-static const struct aty128_meminfo sdr_128   =
-       { 4, 4, 3, 3, 1, 3, 1, 16, 30, 16, "128-bit SDR SGRAM (1:1)" };
-static const struct aty128_meminfo sdr_64    =
-       { 4, 8, 3, 3, 1, 3, 1, 17, 46, 17, "64-bit SDR SGRAM (1:1)" };
-static const struct aty128_meminfo sdr_sgram =
-       { 4, 4, 1, 2, 1, 2, 1, 16, 24, 16, "64-bit SDR SGRAM (2:1)" };
-static const struct aty128_meminfo ddr_sgram =
-       { 4, 4, 3, 3, 2, 3, 1, 16, 31, 16, "64-bit DDR SGRAM" };
+static const struct aty128_meminfo sdr_128 = {
+       .ML = 4,
+       .MB = 4,
+       .Trcd = 3,
+       .Trp = 3,
+       .Twr = 1,
+       .CL = 3,
+       .Tr2w = 1,
+       .LoopLatency = 16,
+       .DspOn = 30,
+       .Rloop = 16,
+       .name = "128-bit SDR SGRAM (1:1)",
+};
+
+static const struct aty128_meminfo sdr_64 = {
+       .ML = 4,
+       .MB = 8,
+       .Trcd = 3,
+       .Trp = 3,
+       .Twr = 1,
+       .CL = 3,
+       .Tr2w = 1,
+       .LoopLatency = 17,
+       .DspOn = 46,
+       .Rloop = 17,
+       .name = "64-bit SDR SGRAM (1:1)",
+};
+
+static const struct aty128_meminfo sdr_sgram = {
+       .ML = 4,
+       .MB = 4,
+       .Trcd = 1,
+       .Trp = 2,
+       .Twr = 1,
+       .CL = 2,
+       .Tr2w = 1,
+       .LoopLatency = 16,
+       .DspOn = 24,
+       .Rloop = 16,
+       .name = "64-bit SDR SGRAM (2:1)",
+};
+
+static const struct aty128_meminfo ddr_sgram = {
+       .ML = 4,
+       .MB = 4,
+       .Trcd = 3,
+       .Trp = 3,
+       .Twr = 2,
+       .CL = 3,
+       .Tr2w = 1,
+       .LoopLatency = 16,
+       .DspOn = 31,
+       .Rloop = 16,
+       .name = "64-bit DDR SGRAM",
+};
 
 static struct fb_fix_screeninfo aty128fb_fix = {
        .id             = "ATY Rage128",
index 40494dbdf519da721649ff66e368ad6e2a169125..18600d4e1b3fdd314a24289449dabef50c1ee917 100644 (file)
@@ -1254,7 +1254,6 @@ static void set_global(u_int cmd, struct au1200_lcd_global_regs_t *pdata)
                        pdata->brightness = 30;
                }
                divider = (lcd->pwmdiv & 0x3FFFF) + 1;
-               hi1 = (lcd->pwmhi >> 16) + 1;
                hi1 = (((pdata->brightness & 0xFF)+1) * divider >> 8);
                lcd->pwmhi &= 0xFFFF;
                lcd->pwmhi |= (hi1 << 16);
index fdadef979238f06c6a6e9bcf77bf0f15f5ee3043..080fdd2a70f3956c9ea4b37b1b35ca0d14f4aa4b 100644 (file)
@@ -218,7 +218,8 @@ static int controlfb_check_var (struct fb_var_screeninfo *var, struct fb_info *i
  */
 static int controlfb_set_par (struct fb_info *info)
 {
-       struct fb_info_control *p = (struct fb_info_control *) info;
+       struct fb_info_control *p =
+               container_of(info, struct fb_info_control, info);
        struct fb_par_control par;
        int err;
 
@@ -258,7 +259,8 @@ static int controlfb_pan_display(struct fb_var_screeninfo *var,
                                 struct fb_info *info)
 {
        unsigned int xoffset, hstep;
-       struct fb_info_control *p = (struct fb_info_control *)info;
+       struct fb_info_control *p =
+               container_of(info, struct fb_info_control, info);
        struct fb_par_control *par = &p->par;
 
        /*
@@ -309,7 +311,8 @@ static int controlfb_mmap(struct fb_info *info,
 
 static int controlfb_blank(int blank_mode, struct fb_info *info)
 {
-       struct fb_info_control *p = (struct fb_info_control *) info;
+       struct fb_info_control *p =
+               container_of(info, struct fb_info_control, info);
        unsigned ctrl;
 
        ctrl = ld_le32(CNTRL_REG(p,ctrl));
@@ -342,7 +345,8 @@ static int controlfb_blank(int blank_mode, struct fb_info *info)
 static int controlfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
                             u_int transp, struct fb_info *info)
 {
-       struct fb_info_control *p = (struct fb_info_control *) info;
+       struct fb_info_control *p =
+               container_of(info, struct fb_info_control, info);
        __u8 r, g, b;
 
        if (regno > 255)
@@ -833,7 +837,8 @@ static int control_var_to_par(struct fb_var_screeninfo *var,
        unsigned hperiod, hssync, hsblank, hesync, heblank, piped, heq, hlfln,
                 hserr, vperiod, vssync, vesync, veblank, vsblank, vswin, vewin;
        unsigned long pixclock;
-       struct fb_info_control *p = (struct fb_info_control *) fb_info;
+       struct fb_info_control *p =
+               container_of(fb_info, struct fb_info_control, info);
        struct control_regvals *r = &par->regvals;
 
        switch (var->bits_per_pixel) {
index bcb57235fcc70c8b389f9bf1134e59a6f9a2adb3..6d4bfeecee35088f86d257d871c40ad934f79737 100644 (file)
@@ -55,8 +55,8 @@ bitcpy(struct fb_info *p, unsigned long __iomem *dst, unsigned dst_idx,
         * If you suspect bug in this function, compare it with this simple
         * memmove implementation.
         */
-       fb_memmove((char *)dst + ((dst_idx & (bits - 1))) / 8,
-                  (char *)src + ((src_idx & (bits - 1))) / 8, n / 8);
+       memmove((char *)dst + ((dst_idx & (bits - 1))) / 8,
+               (char *)src + ((src_idx & (bits - 1))) / 8, n / 8);
        return;
 #endif
 
@@ -221,8 +221,8 @@ bitcpy_rev(struct fb_info *p, unsigned long __iomem *dst, unsigned dst_idx,
         * If you suspect bug in this function, compare it with this simple
         * memmove implementation.
         */
-       fb_memmove((char *)dst + ((dst_idx & (bits - 1))) / 8,
-                  (char *)src + ((src_idx & (bits - 1))) / 8, n / 8);
+       memmove((char *)dst + ((dst_idx & (bits - 1))) / 8,
+               (char *)src + ((src_idx & (bits - 1))) / 8, n / 8);
        return;
 #endif
 
@@ -324,7 +324,10 @@ bitcpy_rev(struct fb_info *p, unsigned long __iomem *dst, unsigned dst_idx,
                                d0 = d0 << left | d1 >> right;
                        }
                        d0 = fb_rev_pixels_in_long(d0, bswapmask);
-                       FB_WRITEL(comp(d0, FB_READL(dst), first), dst);
+                       if (!first)
+                               FB_WRITEL(d0, dst);
+                       else
+                               FB_WRITEL(comp(d0, FB_READL(dst), first), dst);
                        d0 = d1;
                        dst--;
                        n -= dst_idx+1;
index 53444ac19fe05a320852b89d05aa6b58a9da64ae..60c3f0a1634111c41f346b0d2af5d32f1955bd28 100644 (file)
@@ -485,16 +485,8 @@ static ssize_t show_bl_curve(struct device *device,
 
        mutex_lock(&fb_info->bl_curve_mutex);
        for (i = 0; i < FB_BACKLIGHT_LEVELS; i += 8)
-               len += snprintf(&buf[len], PAGE_SIZE,
-                               "%02x %02x %02x %02x %02x %02x %02x %02x\n",
-                               fb_info->bl_curve[i + 0],
-                               fb_info->bl_curve[i + 1],
-                               fb_info->bl_curve[i + 2],
-                               fb_info->bl_curve[i + 3],
-                               fb_info->bl_curve[i + 4],
-                               fb_info->bl_curve[i + 5],
-                               fb_info->bl_curve[i + 6],
-                               fb_info->bl_curve[i + 7]);
+               len += snprintf(&buf[len], PAGE_SIZE, "%8ph\n",
+                               fb_info->bl_curve + i);
        mutex_unlock(&fb_info->bl_curve_mutex);
 
        return len;
index b0a950f369703ff4ca002aabdecc55f638ea6189..99acf538a8b812a98ada497fb6430c6ae0f02f25 100644 (file)
@@ -159,7 +159,7 @@ cyber2000_seqw(unsigned int reg, unsigned int val, struct cfb_info *cfb)
 static void
 cyber2000fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
 {
-       struct cfb_info *cfb = (struct cfb_info *)info;
+       struct cfb_info *cfb = container_of(info, struct cfb_info, fb);
        unsigned long dst, col;
 
        if (!(cfb->fb.var.accel_flags & FB_ACCELF_TEXT)) {
@@ -191,7 +191,7 @@ cyber2000fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
 static void
 cyber2000fb_copyarea(struct fb_info *info, const struct fb_copyarea *region)
 {
-       struct cfb_info *cfb = (struct cfb_info *)info;
+       struct cfb_info *cfb = container_of(info, struct cfb_info, fb);
        unsigned int cmd = CO_CMD_L_PATTERN_FGCOL;
        unsigned long src, dst;
 
@@ -241,7 +241,7 @@ cyber2000fb_imageblit(struct fb_info *info, const struct fb_image *image)
 
 static int cyber2000fb_sync(struct fb_info *info)
 {
-       struct cfb_info *cfb = (struct cfb_info *)info;
+       struct cfb_info *cfb = container_of(info, struct cfb_info, fb);
        int count = 100000;
 
        if (!(cfb->fb.var.accel_flags & FB_ACCELF_TEXT))
@@ -276,7 +276,7 @@ static int
 cyber2000fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
                      u_int transp, struct fb_info *info)
 {
-       struct cfb_info *cfb = (struct cfb_info *)info;
+       struct cfb_info *cfb = container_of(info, struct cfb_info, fb);
        struct fb_var_screeninfo *var = &cfb->fb.var;
        u32 pseudo_val;
        int ret = 1;
@@ -758,7 +758,7 @@ cyber2000fb_decode_clock(struct par_info *hw, struct cfb_info *cfb,
 static int
 cyber2000fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 {
-       struct cfb_info *cfb = (struct cfb_info *)info;
+       struct cfb_info *cfb = container_of(info, struct cfb_info, fb);
        struct par_info hw;
        unsigned int mem;
        int err;
@@ -861,7 +861,7 @@ cyber2000fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 
 static int cyber2000fb_set_par(struct fb_info *info)
 {
-       struct cfb_info *cfb = (struct cfb_info *)info;
+       struct cfb_info *cfb = container_of(info, struct cfb_info, fb);
        struct fb_var_screeninfo *var = &cfb->fb.var;
        struct par_info hw;
        unsigned int mem;
@@ -971,7 +971,7 @@ static int cyber2000fb_set_par(struct fb_info *info)
 static int
 cyber2000fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
 {
-       struct cfb_info *cfb = (struct cfb_info *)info;
+       struct cfb_info *cfb = container_of(info, struct cfb_info, fb);
 
        if (cyber2000fb_update_start(cfb, var))
                return -EINVAL;
@@ -1007,7 +1007,7 @@ cyber2000fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
  */
 static int cyber2000fb_blank(int blank, struct fb_info *info)
 {
-       struct cfb_info *cfb = (struct cfb_info *)info;
+       struct cfb_info *cfb = container_of(info, struct cfb_info, fb);
        unsigned int sync = 0;
        int i;
 
index fbad61da359f796b579ae74b1dc01a78d888d4a9..d31ed4e2c46f1020ab84e8899337c3bd82fabd18 100644 (file)
@@ -1191,7 +1191,6 @@ int intelfbhw_mode_to_hw(struct intelfb_info *dinfo,
        vsync_end = vsync_start + var->vsync_len;
        vtotal = vsync_end + var->upper_margin;
        vblank_start = vactive;
-       vblank_end = vtotal;
        vblank_end = vsync_end + 1;
 
        DBG_MSG("V: act %d, ss %d, se %d, tot %d bs %d, be %d\n",
@@ -1859,7 +1858,7 @@ void intelfbhw_cursor_init(struct intelfb_info *dinfo)
                tmp = INREG(CURSOR_CONTROL);
                tmp &= ~(CURSOR_FORMAT_MASK | CURSOR_GAMMA_ENABLE |
                         CURSOR_ENABLE | CURSOR_STRIDE_MASK);
-               tmp = CURSOR_FORMAT_3C;
+               tmp |= CURSOR_FORMAT_3C;
                OUTREG(CURSOR_CONTROL, tmp);
                OUTREG(CURSOR_A_BASEADDR, dinfo->cursor.offset << 12);
                tmp = (64 << CURSOR_SIZE_H_SHIFT) |
index 7116c5309c7da829116215998f86769eebfe8580..62539ca1cfa909e1ffc3e74b4e9b74a60e26be1f 100644 (file)
@@ -1341,19 +1341,57 @@ struct video_board {
        struct matrox_switch* lowlevel;
                 };
 #ifdef CONFIG_FB_MATROX_MILLENIUM
-static struct video_board vbMillennium         = {0x0800000, 0x0800000, FB_ACCEL_MATROX_MGA2064W,      &matrox_millennium};
-static struct video_board vbMillennium2                = {0x1000000, 0x0800000, FB_ACCEL_MATROX_MGA2164W,      &matrox_millennium};
-static struct video_board vbMillennium2A       = {0x1000000, 0x0800000, FB_ACCEL_MATROX_MGA2164W_AGP,  &matrox_millennium};
+static struct video_board vbMillennium = {
+       .maxvram = 0x0800000,
+       .maxdisplayable = 0x0800000,
+       .accelID = FB_ACCEL_MATROX_MGA2064W,
+       .lowlevel = &matrox_millennium
+};
+
+static struct video_board vbMillennium2 = {
+       .maxvram = 0x1000000,
+       .maxdisplayable = 0x0800000,
+       .accelID = FB_ACCEL_MATROX_MGA2164W,
+       .lowlevel = &matrox_millennium
+};
+
+static struct video_board vbMillennium2A = {
+       .maxvram = 0x1000000,
+       .maxdisplayable = 0x0800000,
+       .accelID = FB_ACCEL_MATROX_MGA2164W_AGP,
+       .lowlevel = &matrox_millennium
+};
 #endif /* CONFIG_FB_MATROX_MILLENIUM */
 #ifdef CONFIG_FB_MATROX_MYSTIQUE
-static struct video_board vbMystique           = {0x0800000, 0x0800000, FB_ACCEL_MATROX_MGA1064SG,     &matrox_mystique};
+static struct video_board vbMystique = {
+       .maxvram = 0x0800000,
+       .maxdisplayable = 0x0800000,
+       .accelID = FB_ACCEL_MATROX_MGA1064SG,
+       .lowlevel = &matrox_mystique
+};
 #endif /* CONFIG_FB_MATROX_MYSTIQUE */
 #ifdef CONFIG_FB_MATROX_G
-static struct video_board vbG100               = {0x0800000, 0x0800000, FB_ACCEL_MATROX_MGAG100,       &matrox_G100};
-static struct video_board vbG200               = {0x1000000, 0x1000000, FB_ACCEL_MATROX_MGAG200,       &matrox_G100};
+static struct video_board vbG100 = {
+       .maxvram = 0x0800000,
+       .maxdisplayable = 0x0800000,
+       .accelID = FB_ACCEL_MATROX_MGAG100,
+       .lowlevel = &matrox_G100
+};
+
+static struct video_board vbG200 = {
+       .maxvram = 0x1000000,
+       .maxdisplayable = 0x1000000,
+       .accelID = FB_ACCEL_MATROX_MGAG200,
+       .lowlevel = &matrox_G100
+};
 /* from doc it looks like that accelerator can draw only to low 16MB :-( Direct accesses & displaying are OK for
    whole 32MB */
-static struct video_board vbG400               = {0x2000000, 0x1000000, FB_ACCEL_MATROX_MGAG400,       &matrox_G100};
+static struct video_board vbG400 = {
+       .maxvram = 0x2000000,
+       .maxdisplayable = 0x1000000,
+       .accelID = FB_ACCEL_MATROX_MGAG400,
+       .lowlevel = &matrox_G100
+};
 #endif
 
 #define DEVF_VIDEO64BIT                0x0001
index ee41a0f276b2eae5fb65b530581438a711963a52..bf5ce04f9aea55733bf513bc237f42c489666d26 100644 (file)
@@ -201,21 +201,23 @@ struct matrox_pll_ctl {
 };
 
 static const struct matrox_pll_features2 maven1000_pll = {
-        50000000,
-       300000000,
-        5, 128,
-        3,  32,
-        3
+       .vco_freq_min = 50000000,
+       .vco_freq_max = 300000000,
+       .feed_div_min = 5,
+       .feed_div_max = 128,
+       .in_div_min = 3,
+       .in_div_max = 32,
+       .post_shift_max = 3
 };
 
 static const struct matrox_pll_ctl maven_PAL = {
-       540000,
-           50
+       .ref_freq = 540000,
+       .den = 50
 };
 
 static const struct matrox_pll_ctl maven_NTSC = {
-       450450, /* 27027000/60 == 27000000/59.94005994 */
-           60
+       .ref_freq = 450450,     /* 27027000/60 == 27000000/59.94005994 */
+       .den = 60
 };
 
 static int matroxfb_PLL_mavenclock(const struct matrox_pll_features2* pll,
index 1374803fbcd975ba4f302be93e51d28ade9ed3ac..2979d7e7212663b349af9592d9e22fcae2d01646 100644 (file)
@@ -569,8 +569,13 @@ static int msmfb_probe(struct platform_device *pdev)
        mutex_init(&msmfb->panel_init_lock);
        init_waitqueue_head(&msmfb->frame_wq);
        INIT_WORK(&msmfb->resume_work, power_on_panel);
-       msmfb->black = kzalloc(msmfb->fb->var.bits_per_pixel*msmfb->xres,
-                              GFP_KERNEL);
+       msmfb->black = devm_kzalloc(&pdev->dev,
+                                   msmfb->fb->var.bits_per_pixel*msmfb->xres,
+                                   GFP_KERNEL);
+       if (!msmfb->black) {
+               ret = -ENOMEM;
+               goto error_register_framebuffer;
+       }
 
        printk(KERN_INFO "msmfb_probe() installing %d x %d panel\n",
               msmfb->xres, msmfb->yres);
@@ -589,6 +594,8 @@ static int msmfb_probe(struct platform_device *pdev)
 
        msmfb->sleeping = WAKING;
 
+       platform_set_drvdata(pdev, msmfb);
+
        return 0;
 
 error_register_framebuffer:
@@ -598,9 +605,23 @@ error_setup_fbmem:
        return ret;
 }
 
+static int msmfb_remove(struct platform_device *pdev)
+{
+       struct msmfb_info *msmfb;
+
+       msmfb = platform_get_drvdata(pdev);
+
+       unregister_framebuffer(msmfb->fb);
+       iounmap(msmfb->fb->screen_base);
+       framebuffer_release(msmfb->fb);
+
+       return 0;
+}
+
 static struct platform_driver msm_panel_driver = {
        /* need to write remove */
        .probe = msmfb_probe,
+       .remove = msmfb_remove,
        .driver = {.name = "msm_panel"},
 };
 
index c645a0a0c3419c1cf231f03f74ee2009e9db9752..5e97baf92721bf2c8a59bf3471487ed4867c00a1 100644 (file)
@@ -1179,7 +1179,7 @@ static int mx3fb_pan_display(struct fb_var_screeninfo *var,
 
        /*
         * We enable the End of Frame interrupt, which will free a tx-descriptor,
-        * which we will need for the next device_prep_slave_sg(). The
+        * which we will need for the next dmaengine_prep_slave_sg(). The
         * IRQ-handler will disable the IRQ again.
         */
        init_completion(&mx3_fbi->flip_cmpl);
index 83779c2b292ad466311a235402a4c7564f9f0a14..633c461fbc6eb52323f124faa7846393c175641d 100644 (file)
@@ -634,13 +634,14 @@ void dispc_mgr_disable_sync(enum omap_channel channel)
                WARN_ON(1);
 }
 
+static inline void dispc_irq_wait_handler(void *data, u32 mask)
+{
+       complete((struct completion *)data);
+}
+
 int omap_dispc_wait_for_irq_interruptible_timeout(u32 irqmask,
                unsigned long timeout)
 {
-       void dispc_irq_wait_handler(void *data, u32 mask)
-       {
-               complete((struct completion *)data);
-       }
 
        int r;
        DECLARE_COMPLETION_ONSTACK(completion);
index 56b92444c54f6e42a946b2b4538d8a9df1b634d0..b6f6ae1d4664e9c8045f5556af19fa6479d0b0d9 100644 (file)
@@ -2571,7 +2571,10 @@ static int dsi_sync_vc_vp(struct platform_device *dsidev, int channel)
 {
        struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
        DECLARE_COMPLETION_ONSTACK(completion);
-       struct dsi_packet_sent_handler_data vp_data = { dsidev, &completion };
+       struct dsi_packet_sent_handler_data vp_data = {
+               .dsidev = dsidev,
+               .completion = &completion
+       };
        int r = 0;
        u8 bit;
 
@@ -2617,7 +2620,10 @@ static void dsi_packet_sent_handler_l4(void *data, u32 mask)
 static int dsi_sync_vc_l4(struct platform_device *dsidev, int channel)
 {
        DECLARE_COMPLETION_ONSTACK(completion);
-       struct dsi_packet_sent_handler_data l4_data = { dsidev, &completion };
+       struct dsi_packet_sent_handler_data l4_data = {
+               .dsidev = dsidev,
+               .completion = &completion
+       };
        int r = 0;
 
        r = dsi_register_isr_vc(dsidev, channel, dsi_packet_sent_handler_l4,
index 37b59fe28dc8ad77dc49daa2fa63127b3fc7450f..a7414fb12830260df190985a438161ef3c0e5b20 100644 (file)
@@ -44,6 +44,13 @@ static ssize_t manager_display_show(struct omap_overlay_manager *mgr, char *buf)
                        dssdev->name : "<none>");
 }
 
+static int manager_display_match(struct omap_dss_device *dssdev, void *data)
+{
+       const char *str = data;
+
+       return sysfs_streq(dssdev->name, str);
+}
+
 static ssize_t manager_display_store(struct omap_overlay_manager *mgr,
                const char *buf, size_t size)
 {
@@ -52,17 +59,12 @@ static ssize_t manager_display_store(struct omap_overlay_manager *mgr,
        struct omap_dss_device *dssdev = NULL;
        struct omap_dss_device *old_dssdev;
 
-       int match(struct omap_dss_device *dssdev, void *data)
-       {
-               const char *str = data;
-               return sysfs_streq(dssdev->name, str);
-       }
-
        if (buf[size-1] == '\n')
                --len;
 
        if (len > 0)
-               dssdev = omap_dss_find_device((void *)buf, match);
+               dssdev = omap_dss_find_device((void *)buf,
+                       manager_display_match);
 
        if (len > 0 && dssdev == NULL)
                return -EINVAL;
index ec2d132c782d20b2ffa0d08e842131b56511cbda..15872433e0c6a9ae00a209efe181dc3a1bea3a8c 100644 (file)
@@ -273,16 +273,16 @@ static struct omapfb_colormode omapfb_colormodes[] = {
        },
 };
 
+static bool cmp_component(struct fb_bitfield *f1, struct fb_bitfield *f2)
+{
+       return f1->length == f2->length &&
+               f1->offset == f2->offset &&
+               f1->msb_right == f2->msb_right;
+}
+
 static bool cmp_var_to_colormode(struct fb_var_screeninfo *var,
                struct omapfb_colormode *color)
 {
-       bool cmp_component(struct fb_bitfield *f1, struct fb_bitfield *f2)
-       {
-               return f1->length == f2->length &&
-                       f1->offset == f2->offset &&
-                       f1->msb_right == f2->msb_right;
-       }
-
        if (var->bits_per_pixel == 0 ||
                        var->red.length == 0 ||
                        var->blue.length == 0 ||
index 1ecd9cec292195f80495dfe0e148ca15170b4c9e..a5acca88fa63c8d2efcf8ae6766234dc14e32736 100644 (file)
@@ -138,7 +138,7 @@ static int
 pxafb_setpalettereg(u_int regno, u_int red, u_int green, u_int blue,
                       u_int trans, struct fb_info *info)
 {
-       struct pxafb_info *fbi = (struct pxafb_info *)info;
+       struct pxafb_info *fbi = container_of(info, struct pxafb_info, fb);
        u_int val;
 
        if (regno >= fbi->palette_size)
@@ -183,7 +183,7 @@ static int
 pxafb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
                   u_int trans, struct fb_info *info)
 {
-       struct pxafb_info *fbi = (struct pxafb_info *)info;
+       struct pxafb_info *fbi = container_of(info, struct pxafb_info, fb);
        unsigned int val;
        int ret = 1;
 
@@ -456,7 +456,7 @@ static int pxafb_adjust_timing(struct pxafb_info *fbi,
  */
 static int pxafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 {
-       struct pxafb_info *fbi = (struct pxafb_info *)info;
+       struct pxafb_info *fbi = container_of(info, struct pxafb_info, fb);
        struct pxafb_mach_info *inf = dev_get_platdata(fbi->dev);
        int err;
 
@@ -494,7 +494,7 @@ static int pxafb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
  */
 static int pxafb_set_par(struct fb_info *info)
 {
-       struct pxafb_info *fbi = (struct pxafb_info *)info;
+       struct pxafb_info *fbi = container_of(info, struct pxafb_info, fb);
        struct fb_var_screeninfo *var = &info->var;
 
        if (var->bits_per_pixel >= 16)
@@ -533,7 +533,7 @@ static int pxafb_set_par(struct fb_info *info)
 static int pxafb_pan_display(struct fb_var_screeninfo *var,
                             struct fb_info *info)
 {
-       struct pxafb_info *fbi = (struct pxafb_info *)info;
+       struct pxafb_info *fbi = container_of(info, struct pxafb_info, fb);
        struct fb_var_screeninfo newvar;
        int dma = DMA_MAX + DMA_BASE;
 
@@ -566,7 +566,7 @@ static int pxafb_pan_display(struct fb_var_screeninfo *var,
  */
 static int pxafb_blank(int blank, struct fb_info *info)
 {
-       struct pxafb_info *fbi = (struct pxafb_info *)info;
+       struct pxafb_info *fbi = container_of(info, struct pxafb_info, fb);
        int i;
 
        switch (blank) {
@@ -725,7 +725,7 @@ static struct pxafb_layer_ops ofb_ops[] = {
 
 static int overlayfb_open(struct fb_info *info, int user)
 {
-       struct pxafb_layer *ofb = (struct pxafb_layer *)info;
+       struct pxafb_layer *ofb = container_of(info, struct pxafb_layer, fb);
 
        /* no support for framebuffer console on overlay */
        if (user == 0)
@@ -743,7 +743,7 @@ static int overlayfb_open(struct fb_info *info, int user)
 
 static int overlayfb_release(struct fb_info *info, int user)
 {
-       struct pxafb_layer *ofb = (struct pxafb_layer*) info;
+       struct pxafb_layer *ofb = container_of(info, struct pxafb_layer, fb);
 
        if (ofb->usage == 1) {
                ofb->ops->disable(ofb);
@@ -760,7 +760,7 @@ static int overlayfb_release(struct fb_info *info, int user)
 static int overlayfb_check_var(struct fb_var_screeninfo *var,
                               struct fb_info *info)
 {
-       struct pxafb_layer *ofb = (struct pxafb_layer *)info;
+       struct pxafb_layer *ofb = container_of(info, struct pxafb_layer, fb);
        struct fb_var_screeninfo *base_var = &ofb->fbi->fb.var;
        int xpos, ypos, pfor, bpp;
 
@@ -836,7 +836,7 @@ static int overlayfb_check_video_memory(struct pxafb_layer *ofb)
 
 static int overlayfb_set_par(struct fb_info *info)
 {
-       struct pxafb_layer *ofb = (struct pxafb_layer *)info;
+       struct pxafb_layer *ofb = container_of(info, struct pxafb_layer, fb);
        struct fb_var_screeninfo *var = &info->var;
        int xpos, ypos, pfor, bpp, ret;
 
index 78fdbf5178d7824d181f3edcbb6e157e5e887e83..8bdf37f3013b22529d135ca1424b0b5831f5ed5f 100644 (file)
@@ -430,7 +430,6 @@ static char nv3_arb(nv3_fifo_info * res_info, nv3_sim_state * state,  nv3_arb_in
     int mmisses, gmisses, vmisses, eburst_size, mburst_size;
     int refresh_cycle;
 
-    refresh_cycle = 0;
     refresh_cycle = 2*(state->mclk_khz/state->pclk_khz) + 5;
     mmisses = 2;
     if (state->mem_aligned) gmisses = 2;
index 580c444ec301d3c3c58b6ca4ebba2dbb2e608b62..9690216d38ff3e1c0c66a617c02656081e844911 100644 (file)
@@ -268,7 +268,8 @@ static int
 sa1100fb_setpalettereg(u_int regno, u_int red, u_int green, u_int blue,
                       u_int trans, struct fb_info *info)
 {
-       struct sa1100fb_info *fbi = (struct sa1100fb_info *)info;
+       struct sa1100fb_info *fbi =
+               container_of(info, struct sa1100fb_info, fb);
        u_int val, ret = 1;
 
        if (regno < fbi->palette_size) {
@@ -289,7 +290,8 @@ static int
 sa1100fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
                   u_int trans, struct fb_info *info)
 {
-       struct sa1100fb_info *fbi = (struct sa1100fb_info *)info;
+       struct sa1100fb_info *fbi =
+               container_of(info, struct sa1100fb_info, fb);
        unsigned int val;
        int ret = 1;
 
@@ -366,7 +368,8 @@ static inline unsigned int sa1100fb_display_dma_period(struct fb_var_screeninfo
 static int
 sa1100fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 {
-       struct sa1100fb_info *fbi = (struct sa1100fb_info *)info;
+       struct sa1100fb_info *fbi =
+               container_of(info, struct sa1100fb_info, fb);
        int rgbidx;
 
        if (var->xres < MIN_XRES)
@@ -433,7 +436,8 @@ static void sa1100fb_set_visual(struct sa1100fb_info *fbi, u32 visual)
  */
 static int sa1100fb_set_par(struct fb_info *info)
 {
-       struct sa1100fb_info *fbi = (struct sa1100fb_info *)info;
+       struct sa1100fb_info *fbi =
+               container_of(info, struct sa1100fb_info, fb);
        struct fb_var_screeninfo *var = &info->var;
        unsigned long palette_mem_size;
 
@@ -526,7 +530,8 @@ sa1100fb_set_cmap(struct fb_cmap *cmap, int kspc, int con,
  */
 static int sa1100fb_blank(int blank, struct fb_info *info)
 {
-       struct sa1100fb_info *fbi = (struct sa1100fb_info *)info;
+       struct sa1100fb_info *fbi =
+               container_of(info, struct sa1100fb_info, fb);
        int i;
 
        dev_dbg(fbi->dev, "sa1100fb_blank: blank=%d\n", blank);
@@ -555,7 +560,8 @@ static int sa1100fb_blank(int blank, struct fb_info *info)
 static int sa1100fb_mmap(struct fb_info *info,
                         struct vm_area_struct *vma)
 {
-       struct sa1100fb_info *fbi = (struct sa1100fb_info *)info;
+       struct sa1100fb_info *fbi =
+               container_of(info, struct sa1100fb_info, fb);
        unsigned long off = vma->vm_pgoff << PAGE_SHIFT;
 
        if (off < info->fix.smem_len) {
index 9a33ee0413fb584decdf9238fe380c2a466d61e4..7c72a3f02056445d07e94f1ba1466b2a6f3a905e 100644 (file)
@@ -281,6 +281,7 @@ struct sh_hdmi {
        u8 edid_block_addr;
        u8 edid_segment_nr;
        u8 edid_blocks;
+       int irq;
        struct clk *hdmi_clk;
        struct device *dev;
        struct delayed_work edid_work;
@@ -1299,6 +1300,7 @@ static int __init sh_hdmi_probe(struct platform_device *pdev)
        hdmi->dev = &pdev->dev;
        hdmi->entity.owner = THIS_MODULE;
        hdmi->entity.ops = &sh_hdmi_ops;
+       hdmi->irq = irq;
 
        hdmi->hdmi_clk = clk_get(&pdev->dev, "ick");
        if (IS_ERR(hdmi->hdmi_clk)) {
@@ -1415,12 +1417,11 @@ static int __exit sh_hdmi_remove(struct platform_device *pdev)
 {
        struct sh_hdmi *hdmi = entity_to_sh_hdmi(platform_get_drvdata(pdev));
        struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       int irq = platform_get_irq(pdev, 0);
 
        snd_soc_unregister_codec(&pdev->dev);
 
        /* No new work will be scheduled, wait for running ISR */
-       free_irq(irq, hdmi);
+       free_irq(hdmi->irq, hdmi);
        /* Wait for already scheduled work */
        cancel_delayed_work_sync(&hdmi->edid_work);
        pm_runtime_put(&pdev->dev);
@@ -1435,10 +1436,49 @@ static int __exit sh_hdmi_remove(struct platform_device *pdev)
        return 0;
 }
 
+static int sh_hdmi_suspend(struct device *dev)
+{
+       struct platform_device *pdev = to_platform_device(dev);
+       struct sh_hdmi *hdmi = entity_to_sh_hdmi(platform_get_drvdata(pdev));
+
+       disable_irq(hdmi->irq);
+       /* Wait for already scheduled work */
+       cancel_delayed_work_sync(&hdmi->edid_work);
+       return 0;
+}
+
+static int sh_hdmi_resume(struct device *dev)
+{
+       struct platform_device *pdev = to_platform_device(dev);
+       struct sh_mobile_hdmi_info *pdata = dev_get_platdata(dev);
+       struct sh_hdmi *hdmi = entity_to_sh_hdmi(platform_get_drvdata(pdev));
+
+       /* Re-init interrupt polarity */
+       if (pdata->flags & HDMI_OUTPUT_PUSH_PULL)
+               hdmi_bit_set(hdmi, 0x02, 0x02, HDMI_SYSTEM_CTRL);
+
+       if (pdata->flags & HDMI_OUTPUT_POLARITY_HI)
+               hdmi_bit_set(hdmi, 0x01, 0x01, HDMI_SYSTEM_CTRL);
+
+       /* Re-init htop1 */
+       if (hdmi->htop1)
+               sh_hdmi_htop1_init(hdmi);
+
+       /* Now it's safe to enable interrupts again */
+       enable_irq(hdmi->irq);
+       return 0;
+}
+
+static const struct dev_pm_ops sh_hdmi_pm_ops = {
+       .suspend        = sh_hdmi_suspend,
+       .resume         = sh_hdmi_resume,
+};
+
 static struct platform_driver sh_hdmi_driver = {
        .remove         = __exit_p(sh_hdmi_remove),
        .driver = {
                .name   = "sh-mobile-hdmi",
+               .pm     = &sh_hdmi_pm_ops,
        },
 };
 
index a89e3cafd5adbfd6c2d8a1622b97c47a339aef81..295e0dedaf1feb14908145c1bab54451c2fbf86f 100644 (file)
@@ -1714,7 +1714,7 @@ SiS_GetLCDResInfo(struct SiS_Private *SiS_Pr, unsigned short ModeNo, unsigned sh
                               SiS_Pr->PanelVCLKIdx315 = VCLK81_315; /* ? */
                            } else {
                               SiS_Pr->PanelHT   = 1688; SiS_Pr->PanelVT   =  802;
-                              SiS_Pr->PanelHRS  =   48; SiS_Pr->PanelHRS  =  112;
+                              SiS_Pr->PanelHRS  =   48; SiS_Pr->PanelHRE  =  112;
                               SiS_Pr->PanelVRS  =    3; SiS_Pr->PanelVRE  =    6;
                               SiS_Pr->PanelVCLKIdx300 = VCLK81_300;
                               SiS_Pr->PanelVCLKIdx315 = VCLK81_315;
index 4f5cf035ac3c9aa524686b67a7d6c57eb62a7456..e5d11b1892e8be74166ef63a3d3585ef98c463cc 100644 (file)
@@ -5830,7 +5830,7 @@ static int sisfb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                        ivideo->cardnumber++;
        }
 
-       strncpy(ivideo->myid, chipinfo->chip_name, 30);
+       strlcpy(ivideo->myid, chipinfo->chip_name, sizeof(ivideo->myid));
 
        ivideo->warncount = 0;
        ivideo->chip_id = pdev->device;
index cfe8a2f905c588a39419093b22fa8cb04b060e1e..86621fabbb8b3105a9b8e404e6c18b2f3830347d 100644 (file)
@@ -918,7 +918,7 @@ static int
 stifb_setcolreg(u_int regno, u_int red, u_int green,
              u_int blue, u_int transp, struct fb_info *info)
 {
-       struct stifb_info *fb = (struct stifb_info *) info;
+       struct stifb_info *fb = container_of(info, struct stifb_info, info);
        u32 color;
 
        if (regno >= NR_PALETTE)
@@ -978,7 +978,7 @@ stifb_setcolreg(u_int regno, u_int red, u_int green,
 static int
 stifb_blank(int blank_mode, struct fb_info *info)
 {
-       struct stifb_info *fb = (struct stifb_info *) info;
+       struct stifb_info *fb = container_of(info, struct stifb_info, info);
        int enable = (blank_mode == 0) ? ENABLE : DISABLE;
 
        switch (fb->id) {
index 77b890e4d296602e4a9ec93b1251b147c7daa39e..046d51d83d7475c9eabe58db3dc779db028cc440 100644 (file)
@@ -1528,11 +1528,8 @@ static int dlfb_parse_vendor_descriptor(struct dlfb_data *dev,
        }
 
        if (total_len > 5) {
-               pr_info("vendor descriptor length:%x data:%02x %02x %02x %02x" \
-                       "%02x %02x %02x %02x %02x %02x %02x\n",
-                       total_len, desc[0],
-                       desc[1], desc[2], desc[3], desc[4], desc[5], desc[6],
-                       desc[7], desc[8], desc[9], desc[10]);
+               pr_info("vendor descriptor length:%x data:%11ph\n", total_len,
+                       desc);
 
                if ((desc[0] != total_len) || /* descriptor length */
                    (desc[1] != 0x5f) ||   /* vendor descriptor type */
index 97cb9bd1d1ddb75f48abe8546c555f6160b7a0b1..275fb98236d3164cdb1eac0a87ff480a5cf47284 100644 (file)
@@ -136,7 +136,8 @@ static struct fb_ops valkyriefb_ops = {
 /* Sets the video mode according to info->var */
 static int valkyriefb_set_par(struct fb_info *info)
 {
-       struct fb_info_valkyrie *p = (struct fb_info_valkyrie *) info;
+       struct fb_info_valkyrie *p =
+               container_of(info, struct fb_info_valkyrie, info);
        volatile struct valkyrie_regs __iomem *valkyrie_regs = p->valkyrie_regs;
        struct fb_par_valkyrie *par = info->par;
        struct valkyrie_regvals *init;
@@ -194,7 +195,8 @@ valkyriefb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
  */
 static int valkyriefb_blank(int blank_mode, struct fb_info *info)
 {
-       struct fb_info_valkyrie *p = (struct fb_info_valkyrie *) info;
+       struct fb_info_valkyrie *p =
+               container_of(info, struct fb_info_valkyrie, info);
        struct fb_par_valkyrie *par = info->par;
        struct valkyrie_regvals *init = par->init;
 
@@ -226,7 +228,8 @@ static int valkyriefb_blank(int blank_mode, struct fb_info *info)
 static int valkyriefb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
                             u_int transp, struct fb_info *info)
 {
-       struct fb_info_valkyrie *p = (struct fb_info_valkyrie *) info;
+       struct fb_info_valkyrie *p =
+               container_of(info, struct fb_info_valkyrie, info);
        volatile struct cmap_regs __iomem *cmap_regs = p->cmap_regs;
        struct fb_par_valkyrie *par = info->par;
 
@@ -263,10 +266,10 @@ static inline int valkyrie_vram_reqd(int video_mode, int color_mode)
 
 static void set_valkyrie_clock(unsigned char *params)
 {
+#ifdef CONFIG_ADB_CUDA
        struct adb_request req;
        int i;
 
-#ifdef CONFIG_ADB_CUDA
        for (i = 0; i < 3; ++i) {
                cuda_request(&req, NULL, 5, CUDA_PACKET, CUDA_GET_SET_IIC,
                             0x50, i + 1, params[i]);
@@ -465,7 +468,8 @@ static int valkyrie_var_to_par(struct fb_var_screeninfo *var,
 {
        int vmode, cmode;
        struct valkyrie_regvals *init;
-       struct fb_info_valkyrie *p = (struct fb_info_valkyrie *) fb_info;
+       struct fb_info_valkyrie *p =
+               container_of(fb_info, struct fb_info_valkyrie, info);
 
        if (mac_var_to_vmode(var, &vmode, &cmode) != 0) {
                printk(KERN_ERR "valkyriefb: can't do %dx%dx%d.\n",
index 048a66640b039e27fcece56a53d0091e06405ae9..5f930aeccf1fc0619abb519acf9185a645e13d89 100644 (file)
@@ -481,7 +481,6 @@ static int vml_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
        default:
                err = -ENODEV;
                goto out_err_1;
-               break;
        }
 
        info = &vinfo->info;
index 5c098d5b40432ef2cec004ce420ef9660ef81599..32d8275e4c88485b2b522f56733e90ba614fc7b2 100644 (file)
@@ -233,8 +233,7 @@ struct display_timings *of_get_display_timings(struct device_node *np)
        return disp;
 
 timingfail:
-       if (native_mode)
-               of_node_put(native_mode);
+       of_node_put(native_mode);
        display_timings_release(disp);
        disp = NULL;
 entryfail:
index 40a24ab41b36b883eaea6abfcecb82db66de31e2..d6821769dd1e1433901314eea114d5d58189b59b 100644 (file)
@@ -31,6 +31,7 @@ struct font_desc {
 #define SUN12x22_IDX   7
 #define ACORN8x8_IDX   8
 #define        MINI4x6_IDX     9
+#define FONT6x10_IDX   10
 
 extern const struct font_desc  font_vga_8x8,
                        font_vga_8x16,
@@ -41,7 +42,8 @@ extern const struct font_desc font_vga_8x8,
                        font_sun_8x16,
                        font_sun_12x22,
                        font_acorn_8x8,
-                       font_mini_4x6;
+                       font_mini_4x6,
+                       font_6x10;
 
 /* Find a font with a specific name */
 
index 79e6697af6cff177712d619e0c4ac7102bff009b..ea755b5616d8050c5bed447b0d7386c4105dfe14 100644 (file)
@@ -15,9 +15,25 @@ struct display_timings;
 
 #define OF_USE_NATIVE_MODE -1
 
+#ifdef CONFIG_OF
 int of_get_display_timing(struct device_node *np, const char *name,
                struct display_timing *dt);
 struct display_timings *of_get_display_timings(struct device_node *np);
 int of_display_timings_exist(struct device_node *np);
+#else
+static inline int of_get_display_timing(struct device_node *np, const char *name,
+               struct display_timing *dt)
+{
+       return -ENOSYS;
+}
+static inline struct display_timings *of_get_display_timings(struct device_node *np)
+{
+       return NULL;
+}
+static inline int of_display_timings_exist(struct device_node *np)
+{
+       return -ENOSYS;
+}
+#endif
 
 #endif
index 34fd931b54b53ac10c64d1320b2f54c299679ff1..e77dfe00de363cd31d258a34855e88bb1c2a2fde 100644 (file)
@@ -79,6 +79,14 @@ config FONT_MINI_4x6
        bool "Mini 4x6 font"
        depends on !SPARC && FONTS
 
+config FONT_6x10
+       bool "Medium-size 6x10 font"
+       depends on !SPARC && FONTS
+       help
+         Medium-size console font. Suitable for framebuffer consoles on
+         embedded devices with a 320x240 screen, to get a reasonable number
+         of characters (53x24) that are still at a readable size.
+
 config FONT_SUN8x16
        bool "Sparc console 8x16 font"
        depends on FRAMEBUFFER_CONSOLE && (!SPARC && FONTS || SPARC)
@@ -109,6 +117,7 @@ config FONT_AUTOSELECT
        depends on !FONT_PEARL_8x8
        depends on !FONT_ACORN_8x8
        depends on !FONT_MINI_4x6
+       depends on !FONT_6x10
        depends on !FONT_SUN8x16
        depends on !FONT_SUN12x22
        depends on !FONT_10x18
index 2761560f3f15351a1f5d6c87bbd7ca12e3377cd9..e04d010cfbf59c4df0fbad4e39305a32504e5f5a 100644 (file)
@@ -12,6 +12,7 @@ font-objs-$(CONFIG_FONT_10x18)     += font_10x18.o
 font-objs-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
 font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
 font-objs-$(CONFIG_FONT_MINI_4x6)  += font_mini_4x6.o
+font-objs-$(CONFIG_FONT_6x10)      += font_6x10.o
 
 font-objs += $(font-objs-y)
 
diff --git a/lib/fonts/font_6x10.c b/lib/fonts/font_6x10.c
new file mode 100644 (file)
index 0000000..b206209
--- /dev/null
@@ -0,0 +1,3086 @@
+#include <linux/font.h>
+
+static const unsigned char fontdata_6x10[] = {
+
+       /* 0 0x00 '^@' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 1 0x01 '^A' */
+       0x00, /* 00000000 */
+       0x78, /* 01111000 */
+       0x84, /* 10000100 */
+       0xCC, /* 11001100 */
+       0x84, /* 10000100 */
+       0xCC, /* 11001100 */
+       0xB4, /* 10110100 */
+       0x78, /* 01111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 2 0x02 '^B' */
+       0x00, /* 00000000 */
+       0x78, /* 01111000 */
+       0xFC, /* 11111100 */
+       0xB4, /* 10110100 */
+       0xFC, /* 11111100 */
+       0xB4, /* 10110100 */
+       0xCC, /* 11001100 */
+       0x78, /* 01111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 3 0x03 '^C' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x28, /* 00101000 */
+       0x7C, /* 01111100 */
+       0x7C, /* 01111100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 4 0x04 '^D' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x7C, /* 01111100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 5 0x05 '^E' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x38, /* 00111000 */
+       0x6C, /* 01101100 */
+       0x6C, /* 01101100 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 6 0x06 '^F' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x7C, /* 01111100 */
+       0x7C, /* 01111100 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 7 0x07 '^G' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x78, /* 01111000 */
+       0x30, /* 00110000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 8 0x08 '^H' */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xCC, /* 11001100 */
+       0x84, /* 10000100 */
+       0xCC, /* 11001100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+
+       /* 9 0x09 '^I' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x48, /* 01001000 */
+       0x84, /* 10000100 */
+       0x48, /* 01001000 */
+       0x30, /* 00110000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 10 0x0A '^J' */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xCC, /* 11001100 */
+       0xB4, /* 10110100 */
+       0x78, /* 01111000 */
+       0xB4, /* 10110100 */
+       0xCC, /* 11001100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+
+       /* 11 0x0B '^K' */
+       0x00, /* 00000000 */
+       0x3C, /* 00111100 */
+       0x14, /* 00010100 */
+       0x20, /* 00100000 */
+       0x78, /* 01111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 12 0x0C '^L' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 13 0x0D '^M' */
+       0x00, /* 00000000 */
+       0x18, /* 00011000 */
+       0x14, /* 00010100 */
+       0x14, /* 00010100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x70, /* 01110000 */
+       0x60, /* 01100000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 14 0x0E '^N' */
+       0x00, /* 00000000 */
+       0x3C, /* 00111100 */
+       0x24, /* 00100100 */
+       0x3C, /* 00111100 */
+       0x24, /* 00100100 */
+       0x24, /* 00100100 */
+       0x6C, /* 01101100 */
+       0x6C, /* 01101100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 15 0x0F '^O' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x54, /* 01010100 */
+       0x38, /* 00111000 */
+       0x6C, /* 01101100 */
+       0x38, /* 00111000 */
+       0x54, /* 01010100 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 16 0x10 '^P' */
+       0x00, /* 00000000 */
+       0x40, /* 01000000 */
+       0x60, /* 01100000 */
+       0x70, /* 01110000 */
+       0x78, /* 01111000 */
+       0x70, /* 01110000 */
+       0x60, /* 01100000 */
+       0x40, /* 01000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 17 0x11 '^Q' */
+       0x00, /* 00000000 */
+       0x04, /* 00000100 */
+       0x0C, /* 00001100 */
+       0x1C, /* 00011100 */
+       0x3C, /* 00111100 */
+       0x1C, /* 00011100 */
+       0x0C, /* 00001100 */
+       0x04, /* 00000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 18 0x12 '^R' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x54, /* 01010100 */
+       0x10, /* 00010000 */
+       0x54, /* 01010100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 19 0x13 '^S' */
+       0x00, /* 00000000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x00, /* 00000000 */
+       0x48, /* 01001000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 20 0x14 '^T' */
+       0x3C, /* 00111100 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x3C, /* 00111100 */
+       0x14, /* 00010100 */
+       0x14, /* 00010100 */
+       0x14, /* 00010100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 21 0x15 '^U' */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x20, /* 00100000 */
+       0x50, /* 01010000 */
+       0x48, /* 01001000 */
+       0x24, /* 00100100 */
+       0x14, /* 00010100 */
+       0x08, /* 00001000 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+
+       /* 22 0x16 '^V' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xF8, /* 11111000 */
+       0xF8, /* 11111000 */
+       0xF8, /* 11111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 23 0x17 '^W' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x54, /* 01010100 */
+       0x10, /* 00010000 */
+       0x54, /* 01010100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+
+       /* 24 0x18 '^X' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x54, /* 01010100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 25 0x19 '^Y' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x54, /* 01010100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 26 0x1A '^Z' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x7C, /* 01111100 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 27 0x1B '^[' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x7C, /* 01111100 */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 28 0x1C '^\' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x78, /* 01111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 29 0x1D '^]' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x48, /* 01001000 */
+       0x84, /* 10000100 */
+       0xFC, /* 11111100 */
+       0x84, /* 10000100 */
+       0x48, /* 01001000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 30 0x1E '^^' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x38, /* 00111000 */
+       0x7C, /* 01111100 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 31 0x1F '^_' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x7C, /* 01111100 */
+       0x38, /* 00111000 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 32 0x20 ' ' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 33 0x21 '!' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 34 0x22 '"' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 35 0x23 '#' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x28, /* 00101000 */
+       0x7C, /* 01111100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x7C, /* 01111100 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 36 0x24 '$' */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x54, /* 01010100 */
+       0x50, /* 01010000 */
+       0x38, /* 00111000 */
+       0x14, /* 00010100 */
+       0x54, /* 01010100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+
+       /* 37 0x25 '%' */
+       0x00, /* 00000000 */
+       0x64, /* 01100100 */
+       0x64, /* 01100100 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x4C, /* 01001100 */
+       0x4C, /* 01001100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 38 0x26 '&' */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x48, /* 01001000 */
+       0x50, /* 01010000 */
+       0x20, /* 00100000 */
+       0x54, /* 01010100 */
+       0x48, /* 01001000 */
+       0x34, /* 00110100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 39 0x27 ''' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 40 0x28 '(' */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x20, /* 00100000 */
+       0x20, /* 00100000 */
+       0x20, /* 00100000 */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x00, /* 00000000 */
+
+       /* 41 0x29 ')' */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x00, /* 00000000 */
+
+       /* 42 0x2A '*' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x54, /* 01010100 */
+       0x38, /* 00111000 */
+       0x54, /* 01010100 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 43 0x2B '+' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x7C, /* 01111100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 44 0x2C ',' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+
+       /* 45 0x2D '-' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 46 0x2E '.' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x18, /* 00011000 */
+       0x18, /* 00011000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 47 0x2F '/' */
+       0x04, /* 00000100 */
+       0x04, /* 00000100 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x20, /* 00100000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+
+       /* 48 0x30 '0' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x4C, /* 01001100 */
+       0x54, /* 01010100 */
+       0x64, /* 01100100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 49 0x31 '1' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x30, /* 00110000 */
+       0x50, /* 01010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 50 0x32 '2' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x04, /* 00000100 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 51 0x33 '3' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x04, /* 00000100 */
+       0x18, /* 00011000 */
+       0x04, /* 00000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 52 0x34 '4' */
+       0x00, /* 00000000 */
+       0x08, /* 00001000 */
+       0x18, /* 00011000 */
+       0x28, /* 00101000 */
+       0x48, /* 01001000 */
+       0x7C, /* 01111100 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 53 0x35 '5' */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x78, /* 01111000 */
+       0x04, /* 00000100 */
+       0x04, /* 00000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 54 0x36 '6' */
+       0x00, /* 00000000 */
+       0x18, /* 00011000 */
+       0x20, /* 00100000 */
+       0x40, /* 01000000 */
+       0x78, /* 01111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 55 0x37 '7' */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x04, /* 00000100 */
+       0x04, /* 00000100 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 56 0x38 '8' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 57 0x39 '9' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x04, /* 00000100 */
+       0x08, /* 00001000 */
+       0x30, /* 00110000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 58 0x3A ':' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x18, /* 00011000 */
+       0x18, /* 00011000 */
+       0x00, /* 00000000 */
+       0x18, /* 00011000 */
+       0x18, /* 00011000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 59 0x3B ';' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x30, /* 00110000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+
+       /* 60 0x3C '<' */
+       0x00, /* 00000000 */
+       0x04, /* 00000100 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x04, /* 00000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 61 0x3D '=' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 62 0x3E '>' */
+       0x00, /* 00000000 */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x04, /* 00000100 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 63 0x3F '?' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x04, /* 00000100 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 64 0x40 '@' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x5C, /* 01011100 */
+       0x54, /* 01010100 */
+       0x5C, /* 01011100 */
+       0x40, /* 01000000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 65 0x41 'A' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 66 0x42 'B' */
+       0x00, /* 00000000 */
+       0x78, /* 01111000 */
+       0x24, /* 00100100 */
+       0x24, /* 00100100 */
+       0x38, /* 00111000 */
+       0x24, /* 00100100 */
+       0x24, /* 00100100 */
+       0x78, /* 01111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 67 0x43 'C' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 68 0x44 'D' */
+       0x00, /* 00000000 */
+       0x78, /* 01111000 */
+       0x24, /* 00100100 */
+       0x24, /* 00100100 */
+       0x24, /* 00100100 */
+       0x24, /* 00100100 */
+       0x24, /* 00100100 */
+       0x78, /* 01111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 69 0x45 'E' */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x78, /* 01111000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 70 0x46 'F' */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x78, /* 01111000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 71 0x47 'G' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x40, /* 01000000 */
+       0x5C, /* 01011100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 72 0x48 'H' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 73 0x49 'I' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 74 0x4A 'J' */
+       0x00, /* 00000000 */
+       0x1C, /* 00011100 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x30, /* 00110000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 75 0x4B 'K' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x48, /* 01001000 */
+       0x50, /* 01010000 */
+       0x60, /* 01100000 */
+       0x50, /* 01010000 */
+       0x48, /* 01001000 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 76 0x4C 'L' */
+       0x00, /* 00000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 77 0x4D 'M' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x6C, /* 01101100 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 78 0x4E 'N' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x64, /* 01100100 */
+       0x54, /* 01010100 */
+       0x4C, /* 01001100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 79 0x4F 'O' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 80 0x50 'P' */
+       0x00, /* 00000000 */
+       0x78, /* 01111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x78, /* 01111000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 81 0x51 'Q' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x54, /* 01010100 */
+       0x48, /* 01001000 */
+       0x34, /* 00110100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 82 0x52 'R' */
+       0x00, /* 00000000 */
+       0x78, /* 01111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x78, /* 01111000 */
+       0x50, /* 01010000 */
+       0x48, /* 01001000 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 83 0x53 'S' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x40, /* 01000000 */
+       0x38, /* 00111000 */
+       0x04, /* 00000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 84 0x54 'T' */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 85 0x55 'U' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 86 0x56 'V' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x28, /* 00101000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 87 0x57 'W' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x6C, /* 01101100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 88 0x58 'X' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x28, /* 00101000 */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 89 0x59 'Y' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x28, /* 00101000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 90 0x5A 'Z' */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x04, /* 00000100 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x40, /* 01000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 91 0x5B '[' */
+       0x18, /* 00011000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x18, /* 00011000 */
+       0x00, /* 00000000 */
+
+       /* 92 0x5C '\' */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x20, /* 00100000 */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x04, /* 00000100 */
+       0x04, /* 00000100 */
+
+       /* 93 0x5D ']' */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x30, /* 00110000 */
+       0x00, /* 00000000 */
+
+       /* 94 0x5E '^' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 95 0x5F '_' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+
+       /* 96 0x60 '`' */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 97 0x61 'a' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x04, /* 00000100 */
+       0x3C, /* 00111100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 98 0x62 'b' */
+       0x00, /* 00000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x58, /* 01011000 */
+       0x64, /* 01100100 */
+       0x44, /* 01000100 */
+       0x64, /* 01100100 */
+       0x58, /* 01011000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 99 0x63 'c' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x40, /* 01000000 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 100 0x64 'd' */
+       0x00, /* 00000000 */
+       0x04, /* 00000100 */
+       0x04, /* 00000100 */
+       0x34, /* 00110100 */
+       0x4C, /* 01001100 */
+       0x44, /* 01000100 */
+       0x4C, /* 01001100 */
+       0x34, /* 00110100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 101 0x65 'e' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 102 0x66 'f' */
+       0x00, /* 00000000 */
+       0x0C, /* 00001100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 103 0x67 'g' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x34, /* 00110100 */
+       0x4C, /* 01001100 */
+       0x44, /* 01000100 */
+       0x4C, /* 01001100 */
+       0x34, /* 00110100 */
+       0x04, /* 00000100 */
+       0x38, /* 00111000 */
+
+       /* 104 0x68 'h' */
+       0x00, /* 00000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x78, /* 01111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 105 0x69 'i' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 106 0x6A 'j' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x60, /* 01100000 */
+
+       /* 107 0x6B 'k' */
+       0x00, /* 00000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x48, /* 01001000 */
+       0x50, /* 01010000 */
+       0x70, /* 01110000 */
+       0x48, /* 01001000 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 108 0x6C 'l' */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 109 0x6D 'm' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x68, /* 01101000 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 110 0x6E 'n' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x58, /* 01011000 */
+       0x64, /* 01100100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 111 0x6F 'o' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 112 0x70 'p' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x58, /* 01011000 */
+       0x64, /* 01100100 */
+       0x44, /* 01000100 */
+       0x64, /* 01100100 */
+       0x58, /* 01011000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+
+       /* 113 0x71 'q' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x34, /* 00110100 */
+       0x4C, /* 01001100 */
+       0x44, /* 01000100 */
+       0x4C, /* 01001100 */
+       0x34, /* 00110100 */
+       0x04, /* 00000100 */
+       0x04, /* 00000100 */
+
+       /* 114 0x72 'r' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x58, /* 01011000 */
+       0x64, /* 01100100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 115 0x73 's' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x3C, /* 00111100 */
+       0x40, /* 01000000 */
+       0x38, /* 00111000 */
+       0x04, /* 00000100 */
+       0x78, /* 01111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 116 0x74 't' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x0C, /* 00001100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 117 0x75 'u' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x4C, /* 01001100 */
+       0x34, /* 00110100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 118 0x76 'v' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x28, /* 00101000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 119 0x77 'w' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 120 0x78 'x' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x28, /* 00101000 */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 121 0x79 'y' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x04, /* 00000100 */
+       0x38, /* 00111000 */
+
+       /* 122 0x7A 'z' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 123 0x7B '{' */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x00, /* 00000000 */
+
+       /* 124 0x7C '|' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+
+       /* 125 0x7D '}' */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x00, /* 00000000 */
+
+       /* 126 0x7E '~' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x20, /* 00100000 */
+       0x54, /* 01010100 */
+       0x08, /* 00001000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 127 0x7F '\7f' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 128 0x80 '\200' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+
+       /* 129 0x81 '\201' */
+       0x00, /* 00000000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x4C, /* 01001100 */
+       0x34, /* 00110100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 130 0x82 '\202' */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 131 0x83 '\203' */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x04, /* 00000100 */
+       0x3C, /* 00111100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 132 0x84 '\204' */
+       0x00, /* 00000000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x04, /* 00000100 */
+       0x3C, /* 00111100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 133 0x85 '\205' */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x04, /* 00000100 */
+       0x3C, /* 00111100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 134 0x86 '\206' */
+       0x18, /* 00011000 */
+       0x24, /* 00100100 */
+       0x18, /* 00011000 */
+       0x38, /* 00111000 */
+       0x04, /* 00000100 */
+       0x3C, /* 00111100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 135 0x87 '\207' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x40, /* 01000000 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+
+       /* 136 0x88 '\210' */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 137 0x89 '\211' */
+       0x00, /* 00000000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 138 0x8A '\212' */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 139 0x8B '\213' */
+       0x00, /* 00000000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 140 0x8C '\214' */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 141 0x8D '\215' */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 142 0x8E '\216' */
+       0x44, /* 01000100 */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 143 0x8F '\217' */
+       0x30, /* 00110000 */
+       0x48, /* 01001000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 144 0x90 '\220' */
+       0x10, /* 00010000 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x78, /* 01111000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 145 0x91 '\221' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x78, /* 01111000 */
+       0x14, /* 00010100 */
+       0x7C, /* 01111100 */
+       0x50, /* 01010000 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 146 0x92 '\222' */
+       0x00, /* 00000000 */
+       0x3C, /* 00111100 */
+       0x50, /* 01010000 */
+       0x50, /* 01010000 */
+       0x78, /* 01111000 */
+       0x50, /* 01010000 */
+       0x50, /* 01010000 */
+       0x5C, /* 01011100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 147 0x93 '\223' */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 148 0x94 '\224' */
+       0x00, /* 00000000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 149 0x95 '\225' */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 150 0x96 '\226' */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x4C, /* 01001100 */
+       0x34, /* 00110100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 151 0x97 '\227' */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x4C, /* 01001100 */
+       0x34, /* 00110100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 152 0x98 '\230' */
+       0x00, /* 00000000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x04, /* 00000100 */
+       0x38, /* 00111000 */
+
+       /* 153 0x99 '\231' */
+       0x84, /* 10000100 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 154 0x9A '\232' */
+       0x88, /* 10001000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 155 0x9B '\233' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x54, /* 01010100 */
+       0x50, /* 01010000 */
+       0x54, /* 01010100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+
+       /* 156 0x9C '\234' */
+       0x30, /* 00110000 */
+       0x48, /* 01001000 */
+       0x40, /* 01000000 */
+       0x70, /* 01110000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x44, /* 01000100 */
+       0x78, /* 01111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 157 0x9D '\235' */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x28, /* 00101000 */
+       0x7C, /* 01111100 */
+       0x10, /* 00010000 */
+       0x7C, /* 01111100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 158 0x9E '\236' */
+       0x00, /* 00000000 */
+       0x70, /* 01110000 */
+       0x48, /* 01001000 */
+       0x70, /* 01110000 */
+       0x48, /* 01001000 */
+       0x5C, /* 01011100 */
+       0x48, /* 01001000 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 159 0x9F '\237' */
+       0x00, /* 00000000 */
+       0x0C, /* 00001100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x60, /* 01100000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 160 0xA0 '\240' */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x04, /* 00000100 */
+       0x3C, /* 00111100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 161 0xA1 '\241' */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x30, /* 00110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 162 0xA2 '\242' */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 163 0xA3 '\243' */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x4C, /* 01001100 */
+       0x34, /* 00110100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 164 0xA4 '\244' */
+       0x34, /* 00110100 */
+       0x58, /* 01011000 */
+       0x00, /* 00000000 */
+       0x58, /* 01011000 */
+       0x64, /* 01100100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 165 0xA5 '\245' */
+       0x58, /* 01011000 */
+       0x44, /* 01000100 */
+       0x64, /* 01100100 */
+       0x54, /* 01010100 */
+       0x4C, /* 01001100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 166 0xA6 '\246' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x04, /* 00000100 */
+       0x3C, /* 00111100 */
+       0x44, /* 01000100 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 167 0xA7 '\247' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 168 0xA8 '\250' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x40, /* 01000000 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 169 0xA9 '\251' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 170 0xAA '\252' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x04, /* 00000100 */
+       0x04, /* 00000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 171 0xAB '\253' */
+       0x20, /* 00100000 */
+       0x60, /* 01100000 */
+       0x24, /* 00100100 */
+       0x28, /* 00101000 */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x44, /* 01000100 */
+       0x08, /* 00001000 */
+       0x1C, /* 00011100 */
+       0x00, /* 00000000 */
+
+       /* 172 0xAC '\254' */
+       0x20, /* 00100000 */
+       0x60, /* 01100000 */
+       0x24, /* 00100100 */
+       0x28, /* 00101000 */
+       0x10, /* 00010000 */
+       0x28, /* 00101000 */
+       0x58, /* 01011000 */
+       0x3C, /* 00111100 */
+       0x08, /* 00001000 */
+       0x00, /* 00000000 */
+
+       /* 173 0xAD '\255' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 174 0xAE '\256' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x24, /* 00100100 */
+       0x48, /* 01001000 */
+       0x90, /* 10010000 */
+       0x48, /* 01001000 */
+       0x24, /* 00100100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 175 0xAF '\257' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x90, /* 10010000 */
+       0x48, /* 01001000 */
+       0x24, /* 00100100 */
+       0x48, /* 01001000 */
+       0x90, /* 10010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 176 0xB0 '\260' */
+       0x10, /* 00010000 */
+       0x44, /* 01000100 */
+       0x10, /* 00010000 */
+       0x44, /* 01000100 */
+       0x10, /* 00010000 */
+       0x44, /* 01000100 */
+       0x10, /* 00010000 */
+       0x44, /* 01000100 */
+       0x10, /* 00010000 */
+       0x44, /* 01000100 */
+
+       /* 177 0xB1 '\261' */
+       0xA8, /* 10101000 */
+       0x54, /* 01010100 */
+       0xA8, /* 10101000 */
+       0x54, /* 01010100 */
+       0xA8, /* 10101000 */
+       0x54, /* 01010100 */
+       0xA8, /* 10101000 */
+       0x54, /* 01010100 */
+       0xA8, /* 10101000 */
+       0x54, /* 01010100 */
+
+       /* 178 0xB2 '\262' */
+       0xDC, /* 11011100 */
+       0x74, /* 01110100 */
+       0xDC, /* 11011100 */
+       0x74, /* 01110100 */
+       0xDC, /* 11011100 */
+       0x74, /* 01110100 */
+       0xDC, /* 11011100 */
+       0x74, /* 01110100 */
+       0xDC, /* 11011100 */
+       0x74, /* 01110100 */
+
+       /* 179 0xB3 '\263' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 180 0xB4 '\264' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0xF0, /* 11110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 181 0xB5 '\265' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0xF0, /* 11110000 */
+       0x10, /* 00010000 */
+       0xF0, /* 11110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 182 0xB6 '\266' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0xE8, /* 11101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 183 0xB7 '\267' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xF8, /* 11111000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 184 0xB8 '\270' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xF0, /* 11110000 */
+       0x10, /* 00010000 */
+       0xF0, /* 11110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 185 0xB9 '\271' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0xE8, /* 11101000 */
+       0x08, /* 00001000 */
+       0xE8, /* 11101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 186 0xBA '\272' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 187 0xBB '\273' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xF8, /* 11111000 */
+       0x08, /* 00001000 */
+       0xE8, /* 11101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 188 0xBC '\274' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0xE8, /* 11101000 */
+       0x08, /* 00001000 */
+       0xF8, /* 11111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 189 0xBD '\275' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0xF8, /* 11111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 190 0xBE '\276' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0xF0, /* 11110000 */
+       0x10, /* 00010000 */
+       0xF0, /* 11110000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 191 0xBF '\277' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xF0, /* 11110000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 192 0xC0 '\300' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x1C, /* 00011100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 193 0xC1 '\301' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 194 0xC2 '\302' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 195 0xC3 '\303' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x1C, /* 00011100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 196 0xC4 '\304' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 197 0xC5 '\305' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0xFC, /* 11111100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 198 0xC6 '\306' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x1C, /* 00011100 */
+       0x10, /* 00010000 */
+       0x1C, /* 00011100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 199 0xC7 '\307' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x2C, /* 00101100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 200 0xC8 '\310' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x2C, /* 00101100 */
+       0x20, /* 00100000 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 201 0xC9 '\311' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x3C, /* 00111100 */
+       0x20, /* 00100000 */
+       0x2C, /* 00101100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 202 0xCA '\312' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0xEC, /* 11101100 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 203 0xCB '\313' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0xEC, /* 11101100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 204 0xCC '\314' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x2C, /* 00101100 */
+       0x20, /* 00100000 */
+       0x2C, /* 00101100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 205 0xCD '\315' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 206 0xCE '\316' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0xEC, /* 11101100 */
+       0x00, /* 00000000 */
+       0xEC, /* 11101100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 207 0xCF '\317' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 208 0xD0 '\320' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 209 0xD1 '\321' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 210 0xD2 '\322' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 211 0xD3 '\323' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 212 0xD4 '\324' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x1C, /* 00011100 */
+       0x10, /* 00010000 */
+       0x1C, /* 00011100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 213 0xD5 '\325' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x1C, /* 00011100 */
+       0x10, /* 00010000 */
+       0x1C, /* 00011100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 214 0xD6 '\326' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x3C, /* 00111100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 215 0xD7 '\327' */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0xFC, /* 11111100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+
+       /* 216 0xD8 '\330' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0xFC, /* 11111100 */
+       0x10, /* 00010000 */
+       0xFC, /* 11111100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 217 0xD9 '\331' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0xF0, /* 11110000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 218 0xDA '\332' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x1C, /* 00011100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 219 0xDB '\333' */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+
+       /* 220 0xDC '\334' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+
+       /* 221 0xDD '\335' */
+       0xE0, /* 11100000 */
+       0xE0, /* 11100000 */
+       0xE0, /* 11100000 */
+       0xE0, /* 11100000 */
+       0xE0, /* 11100000 */
+       0xE0, /* 11100000 */
+       0xE0, /* 11100000 */
+       0xE0, /* 11100000 */
+       0xE0, /* 11100000 */
+       0xE0, /* 11100000 */
+
+       /* 222 0xDE '\336' */
+       0x1C, /* 00011100 */
+       0x1C, /* 00011100 */
+       0x1C, /* 00011100 */
+       0x1C, /* 00011100 */
+       0x1C, /* 00011100 */
+       0x1C, /* 00011100 */
+       0x1C, /* 00011100 */
+       0x1C, /* 00011100 */
+       0x1C, /* 00011100 */
+       0x1C, /* 00011100 */
+
+       /* 223 0xDF '\337' */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 224 0xE0 '\340' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x34, /* 00110100 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x34, /* 00110100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 225 0xE1 '\341' */
+       0x18, /* 00011000 */
+       0x24, /* 00100100 */
+       0x44, /* 01000100 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x58, /* 01011000 */
+       0x40, /* 01000000 */
+       0x00, /* 00000000 */
+
+       /* 226 0xE2 '\342' */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 227 0xE3 '\343' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x28, /* 00101000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 228 0xE4 '\344' */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x24, /* 00100100 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x24, /* 00100100 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 229 0xE5 '\345' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x3C, /* 00111100 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x30, /* 00110000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 230 0xE6 '\346' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x74, /* 01110100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+
+       /* 231 0xE7 '\347' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x0C, /* 00001100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 232 0xE8 '\350' */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 233 0xE9 '\351' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x7C, /* 01111100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 234 0xEA '\352' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x28, /* 00101000 */
+       0x6C, /* 01101100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 235 0xEB '\353' */
+       0x00, /* 00000000 */
+       0x18, /* 00011000 */
+       0x20, /* 00100000 */
+       0x18, /* 00011000 */
+       0x24, /* 00100100 */
+       0x24, /* 00100100 */
+       0x24, /* 00100100 */
+       0x18, /* 00011000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 236 0xEC '\354' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 237 0xED '\355' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x04, /* 00000100 */
+       0x38, /* 00111000 */
+       0x54, /* 01010100 */
+       0x54, /* 01010100 */
+       0x38, /* 00111000 */
+       0x40, /* 01000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 238 0xEE '\356' */
+       0x00, /* 00000000 */
+       0x3C, /* 00111100 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x38, /* 00111000 */
+       0x40, /* 01000000 */
+       0x40, /* 01000000 */
+       0x3C, /* 00111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 239 0xEF '\357' */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x44, /* 01000100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 240 0xF0 '\360' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0xFC, /* 11111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 241 0xF1 '\361' */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x7C, /* 01111100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 242 0xF2 '\362' */
+       0x00, /* 00000000 */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 243 0xF3 '\363' */
+       0x00, /* 00000000 */
+       0x08, /* 00001000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x10, /* 00010000 */
+       0x08, /* 00001000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 244 0xF4 '\364' */
+       0x00, /* 00000000 */
+       0x0C, /* 00001100 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+
+       /* 245 0xF5 '\365' */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x10, /* 00010000 */
+       0x60, /* 01100000 */
+       0x00, /* 00000000 */
+
+       /* 246 0xF6 '\366' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x7C, /* 01111100 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 247 0xF7 '\367' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x20, /* 00100000 */
+       0x54, /* 01010100 */
+       0x08, /* 00001000 */
+       0x20, /* 00100000 */
+       0x54, /* 01010100 */
+       0x08, /* 00001000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 248 0xF8 '\370' */
+       0x30, /* 00110000 */
+       0x48, /* 01001000 */
+       0x48, /* 01001000 */
+       0x30, /* 00110000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 249 0xF9 '\371' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x38, /* 00111000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 250 0xFA '\372' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x10, /* 00010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 251 0xFB '\373' */
+       0x00, /* 00000000 */
+       0x04, /* 00000100 */
+       0x08, /* 00001000 */
+       0x08, /* 00001000 */
+       0x50, /* 01010000 */
+       0x50, /* 01010000 */
+       0x20, /* 00100000 */
+       0x20, /* 00100000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 252 0xFC '\374' */
+       0x60, /* 01100000 */
+       0x50, /* 01010000 */
+       0x50, /* 01010000 */
+       0x50, /* 01010000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 253 0xFD '\375' */
+       0x60, /* 01100000 */
+       0x10, /* 00010000 */
+       0x20, /* 00100000 */
+       0x70, /* 01110000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 254 0xFE '\376' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x38, /* 00111000 */
+       0x38, /* 00111000 */
+       0x38, /* 00111000 */
+       0x38, /* 00111000 */
+       0x38, /* 00111000 */
+       0x38, /* 00111000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+       /* 255 0xFF '\377' */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+       0x00, /* 00000000 */
+
+};
+
+const struct font_desc font_6x10 = {
+       .idx    = FONT6x10_IDX,
+       .name   = "6x10",
+       .width  = 6,
+       .height = 10,
+       .data   = fontdata_6x10,
+       .pref   = 0,
+};
index f947189efe6d4b961c940b7f0fa2876a6b6938e6..823376ca0a8b2a7655a51b51c39d5dd944373e61 100644 (file)
@@ -63,6 +63,10 @@ static const struct font_desc *fonts[] = {
 #undef NO_FONTS
     &font_mini_4x6,
 #endif
+#ifdef CONFIG_FONT_6x10
+#undef NO_FONTS
+    &font_6x10,
+#endif
 };
 
 #define num_fonts ARRAY_SIZE(fonts)