Matthias Weisser wrote: > Signed-off-by: Matthias Weisser <matthias.weis...@graf-syteco.de> > --- > drivers/video/Makefile | 1 + > drivers/video/cfb_console.c | 2 +- > drivers/video/jadegdc.c | 193 > +++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 195 insertions(+), 1 deletions(-) > create mode 100644 drivers/video/jadegdc.c > > diff --git a/drivers/video/Makefile b/drivers/video/Makefile > index bb6b5a0..aadc149 100644 > --- a/drivers/video/Makefile > +++ b/drivers/video/Makefile > @@ -30,6 +30,7 @@ COBJS-$(CONFIG_ATMEL_LCD) += atmel_lcdfb.o > COBJS-$(CONFIG_CFB_CONSOLE) += cfb_console.o > COBJS-$(CONFIG_S6E63D6) += s6e63d6.o > COBJS-$(CONFIG_VIDEO_CT69000) += ct69000.o > +COBJS-$(CONFIG_VIDEO_JADEGDC) += jadegdc.o > COBJS-$(CONFIG_VIDEO_MB862xx) += mb862xx.o > COBJS-$(CONFIG_VIDEO_MX3) += mx3fb.o > COBJS-$(CONFIG_VIDEO_SED13806) += sed13806.o > diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c > index c07a26e..506337b 100644 > --- a/drivers/video/cfb_console.c > +++ b/drivers/video/cfb_console.c > @@ -321,7 +321,7 @@ void console_cursor (int state); > #else > #define SWAP16(x) (x) > #define SWAP32(x) (x) > -#if defined(VIDEO_FB_16BPP_WORD_SWAP) > +#if defined(VIDEO_FB_16BPP_WORD_SWAP) || defined(CONFIG_VIDEO_JADEGDC)
Instead of adding CONFIG_VIDEO_JADEGDC, define VIDEO_FB_16BPP_WORD_SWAP in your board config file or a more appropriate file. > #define SHORTSWAP32(x) ( ((x) >> 16) | ((x) << 16) ) > #else > #define SHORTSWAP32(x) (x) > diff --git a/drivers/video/jadegdc.c b/drivers/video/jadegdc.c <snip> > + * 4MB (at the end of system RAM) > + */ > +#define VIDEO_MEM_SIZE 0x400000 > + > +/* > + * Graphic Device > + */ > +GraphicDevice jadegdc; It does not look like this global is accessed output of this function It should be declared static. > + > +void *video_hw_init(void) > +{ > + GraphicDevice *pGD = &jadegdc; > + struct ctfb_res_modes var_mode[2]; > + unsigned long *vid; > + unsigned long div; > + unsigned long dspBase[2]; > + char *penv; > + int bpp; > + int i, j; > + > + memset(pGD, 0, sizeof(GraphicDevice)); > + > + dspBase[0] = JADE_GDC_DISP0_PHYS_BASE; > + dspBase[1] = JADE_GDC_DISP1_PHYS_BASE; > + > + pGD->gdfIndex = GDF_15BIT_555RGB; > + pGD->gdfBytesPP = 2; > + > + pGD->memSize = VIDEO_MEM_SIZE; > + pGD->frameAdrs = PHYS_SDRAM + PHYS_SDRAM_SIZE - VIDEO_MEM_SIZE; > + vid = (unsigned long *)pGD->frameAdrs; > + > + for (i = 0; i < 2; i++) { > + char varName[32]; > + u32 dcm1, dcm2, dcm3; > + u16 htp, hdp, hdb, hsp, vtr, vsp, vdp; > + u8 hsw, vsw; > + u32 l2m, l2em, l2oa0, l2da0, l2oa1, l2da1; > + u16 l2dx, l2dy, l2wx, l2wy, l2ww, l2wh; > + > + sprintf(varName, "gs_dsp_%d_param", i); > + > + penv = getenv(varName); > + if (penv == NULL) { > + penv = getenv("videomode"); > + if ((i == 1) || (penv == NULL)) > + continue; This check for (i == 1) should be moved before the getenv > + } > + > + bpp = 0; <snip> > + } > + > + return pGD; > +} > + > +/* > + * Set a RGB color in the LUT > + */ > +void video_set_lut(unsigned int index, unsigned char r, > + unsigned char g, unsigned char b) > +{ If leaving this a noop is intentional, add a comment. Tom _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot