[PATCH 1/2] Add support for Samsung S3C24x0 framebuffer.
Juergen Beisert
jbe at pengutronix.de
Wed May 18 04:12:36 EDT 2011
Sascha Hauer wrote:
> Hi Alex,
>
> On Tue, May 17, 2011 at 10:44:00PM +0600, Alex Galakhov wrote:
> > Heavily based on original Juergen Beisert's code.
> >
> > Signed-off-by: Alex Galakhov <agalakhov at gmail.com>
> > ---
> > arch/arm/mach-s3c24xx/include/mach/fb.h | 59 ++++
> > drivers/video/Kconfig | 13 +
> > drivers/video/Makefile | 1 +
> > drivers/video/s3c.c | 451
> > +++++++++++++++++++++++++++++++ 4 files changed, 524 insertions(+), 0
> > deletions(-)
> > create mode 100644 arch/arm/mach-s3c24xx/include/mach/fb.h
> > create mode 100644 drivers/video/s3c.c
>
> The patch looks mostly fine, only small nitpicks follow.
>
> > diff --git a/arch/arm/mach-s3c24xx/include/mach/fb.h
> > b/arch/arm/mach-s3c24xx/include/mach/fb.h new file mode 100644
> > index 0000000..05e013a
> > --- /dev/null
> > +++ b/arch/arm/mach-s3c24xx/include/mach/fb.h
> > +
> > +/**
> > + * @param fb_info Framebuffer information
> > + */
> > +static void s3cfb_enable_controller(struct fb_info *fb_info)
> > +{
> > + struct s3cfb_info *fbi = fb_info->priv;
> > + uint32_t con1;
> > +
> > + con1 = readl(fbi->base + LCDCON1);
> > +
> > + con1 |= ENVID;
> > +
> > + writel(con1, fbi->base + LCDCON1);
> > +
> > + if (fbi->enable)
> > + (fbi->enable)(1);
>
> unneeded brackets.
Seem my old code.
> > +}
> > +
> > +/**
> > + * @param fb_info Framebuffer information
> > + */
> > +static void s3cfb_disable_controller(struct fb_info *fb_info)
> > +{
> > + struct s3cfb_info *fbi = fb_info->priv;
> > + uint32_t con1;
> > +
> > + if (fbi->enable)
> > + (fbi->enable)(0);
>
> ditto
>
> > +
> > + con1 = readl(fbi->base + LCDCON1);
> > +
> > + con1 &= ~ENVID;
> > +
> > + writel(con1, fbi->base + LCDCON1);
> > +}
> > +
> > +/**
> > + * Prepare the video hardware for a specified video mode
> > + * @param fb_info Framebuffer information
> > + * @param mode The video mode description to initialize
> > + * @return 0 on success
> > + */
> > +static int s3cfb_activate_var(struct fb_info *fb_info)
> > +{
> > + struct s3cfb_info *fbi = fb_info->priv;
> > + struct fb_videomode *mode = fb_info->mode;
> > + unsigned size, hclk, div;
> > + uint32_t con1, con2, con3, con4, con5 = 0;
> > +
> > + if (fbi->passive_display != 0) {
> > + pr_err("Passive displays are currently not supported\n");
>
> dev_err please (some more follow).
>
> > +
> > + switch (fb_info->bits_per_pixel) {
> > +#if 0
> > + /* TODO add CLUT based modes */
> > + case 1:
> > + con1 |= BPPMODE(8);
> > + break;
> > + case 2:
> > + con1 |= BPPMODE(9);
> > + break;
> > + case 4:
> > + con1 |= BPPMODE(10);
> > + break;
> > + case 8:
> > + con1 |= BPPMODE(11);
> > + break;
> > +#endif
>
> I think we can remove this dead code. I see no reason to add clut
> support. If someone needs it, I think this missing snippet is the least
> of his problems.
>
> > +
> > +/**
> > + * The S3C244x LCD controller supports passive (CSTN/STN) and active
> > (TFT) LC displays + *
> > + * The driver itself currently supports only active TFT LC displays in
> > the follwing manner: + *
> > + * * Palletized colours
> > + * - 1 bpp
> > + * - 2 bpp
> > + * - 4 bpp
> > + * - 8 bpp
>
> This doesn't seem to be true, right?
>
> > + * * True colours
> > + * - 16 bpp
> > + * - 24 bpp
> > + */
Its unfinished out of date. Alex should update or remove it.
jbe
--
Pengutronix e.K. | Juergen Beisert |
Linux Solutions for Science and Industry | Phone: +49-5121-206917-5128 |
Vertretung Sued/Muenchen, Germany | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de/ |
More information about the barebox
mailing list