Thanks for your comments...
On Thu, Jul 16, 2009 at 02:30:12, Andrew Morton wrote:
> On Wed, 15 Jul 2009 03:57:34 -0400
> Sudhakar Rajashekhara <[email protected]> wrote:
>
> > Adds LCD controller (LCDC) driver for TI's DA8xx/OMAP-L1xx
> > architecture. LCDC specifications can be found at
> > http://www.ti.com/litv/pdf/sprufm0a.
> >
> > LCDC on DA8xx consists of two independent controllers, the
> > Raster Controller and the LCD Interface Display Driver (LIDD)
> > controller. LIDD further supports character and graphic displays.
> >
> > This patch adds support for the graphic display (Sharp LQ035Q3DG01)
> > found on the DA830 based EVM. The EVM details can be found at:
> > http://support.spectrumdigital.com/boards/dskda830/revc/.
> >
> >
> > ...
> >
> > --- a/drivers/video/Kconfig
> > +++ b/drivers/video/Kconfig
> > @@ -2038,6 +2038,17 @@ config FB_SH7760
> > and 8, 15 or 16 bpp color; 90 degrees clockwise display rotation for
> > panels <= 320 pixel horizontal resolution.
> >
> > +config FB_DA8XX
> > + tristate "DA8xx/OMAP-L1xx Framebuffer support"
> > + depends on FB && ARCH_DAVINCI_DA8XX
> > + select FB_CFB_FILLRECT
> > + select FB_CFB_COPYAREA
> > + select FB_CFB_IMAGEBLIT
> > + ---help---
> > + This is the frame buffer device driver for the TI LCD controller
> > + found on DA8xx/OMAP-L1xx SoCs.
> > + If unsure, say N.
>
> Leading whitespace is all mucked up there - I fixed it.
>
Thanks. I'll take care of it in future.
> > config FB_VIRTUAL
> > tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)"
> > depends on FB
> >
> > ...
> >
> > +/* Disable the Raster Engine of the LCD Controller */
> > +static int lcd_disable_raster(struct da8xx_fb_par *par)
> > +{
> > + int ret = 0;
> > + u32 reg;
> > +
> > + reg = lcdc_read(LCD_RASTER_CTRL_REG);
> > + if (reg & LCD_RASTER_ENABLE) {
> > + lcdc_write(reg & ~LCD_RASTER_ENABLE, LCD_RASTER_CTRL_REG);
> > + ret = wait_event_interruptible_timeout(par->da8xx_wq,
> > + !lcdc_read(LCD_STAT_REG) &
> > + LCD_END_OF_FRAME0, WSI_TIMEOUT);
> > + }
> > +
> > + if (ret < 0)
> > + return ret;
> > + if (ret == 0)
> > + return -ETIMEDOUT;
> > +
> > + return 0;
> > +}
>
> This looks wrongish. If LCD_RASTER_ENABLE is not set, it will return
> -ETIMEDOUT without ever having waited for anything.
>
I'll correct this.
> >
> > ...
> >
> > +static int fb_ioctl(struct fb_info *info, unsigned int cmd,
> > + unsigned long arg)
> > +{
> > + struct lcd_sync_arg sync_arg;
> > +
> > + switch (cmd) {
> > + case FBIOGET_CONTRAST:
> > + case FBIOPUT_CONTRAST:
> > + case FBIGET_BRIGHTNESS:
> > + case FBIPUT_BRIGHTNESS:
> > + case FBIGET_COLOR:
> > + case FBIPUT_COLOR:
> > + return -EINVAL;
As per the man page of ioctl, I think the above should be -ENOTTY.
I'll change it to -ENOTTY.
> > + case FBIPUT_HSYNC:
> > + if (copy_from_user(&sync_arg, (char *)arg,
> > + sizeof(struct lcd_sync_arg)))
> > + return -EINVAL;
>
> -EFAULT?
>
Agree, I'll change it.
> > + lcd_cfg_horizontal_sync(sync_arg.back_porch,
> > + sync_arg.pulse_width,
> > + sync_arg.front_porch);
> > + break;
> > + case FBIPUT_VSYNC:
> > + if (copy_from_user(&sync_arg, (char *)arg,
> > + sizeof(struct lcd_sync_arg)))
> > + return -EINVAL;
>
> -EFAULT?
>
I'll change it here as well.
> > + lcd_cfg_vertical_sync(sync_arg.back_porch,
> > + sync_arg.pulse_width,
> > + sync_arg.front_porch);
> > + break;
> > + default:
> > + return -EINVAL;
>
> -ENOTTY? (Maybe not - I forget)
>
I think -EINVAL is the proper return value here. I'll retain it.
I'll submit an updated version of this patch with these changes.
Regards, Sudhakar
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source