Hi,
On Sat, Jul 25, 2009 at 02:53:36, Andrew Morton wrote:
> On Wed, 22 Jul 2009 00:47:00 -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/.
> >
> > Signed-off-by: Sudhakar Rajashekhara <[email protected]>
> > Signed-off-by: Pavel Kiryukhin <[email protected]>
> > Signed-off-by: Steve Chen <[email protected]>
> > Acked-by: Krzysztof Helt <[email protected]>
> > ---
> > This patch applies to Linus's Kernel tree.
> >
> > Since the previous version, return values in ioctl()
> > function have been modified.
>
> That wasn't the only change in version 4:
>
I missed documenting all the modifications. I'll take care of it.
> ---
> a/drivers/video/da8xx-fb.c~davinci-fb-frame-buffer-driver-for-ti-da8xx-omap-l1xx-v4
> +++ a/drivers/video/da8xx-fb.c
> @@ -201,14 +201,13 @@ static int lcd_disable_raster(struct da8
> 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)
> + ret = -ETIMEDOUT;
> }
>
> - if (ret < 0)
> - return ret;
> - if (ret == 0)
> - return -ETIMEDOUT;
> -
> - return 0;
> + return ret;
> }
>
> static void lcd_blit(int load_mode, struct da8xx_fb_par *par)
> @@ -634,11 +633,11 @@ static int fb_ioctl(struct fb_info *info
> case FBIPUT_BRIGHTNESS:
> case FBIGET_COLOR:
> case FBIPUT_COLOR:
> - return -EINVAL;
> + return -ENOTTY;
> case FBIPUT_HSYNC:
> if (copy_from_user(&sync_arg, (char *)arg,
> sizeof(struct lcd_sync_arg)))
> - return -EINVAL;
> + return -EFAULT;
> lcd_cfg_horizontal_sync(sync_arg.back_porch,
> sync_arg.pulse_width,
> sync_arg.front_porch);
> @@ -646,7 +645,7 @@ static int fb_ioctl(struct fb_info *info
> case FBIPUT_VSYNC:
> if (copy_from_user(&sync_arg, (char *)arg,
> sizeof(struct lcd_sync_arg)))
> - return -EINVAL;
> + return -EFAULT;
> lcd_cfg_vertical_sync(sync_arg.back_porch,
> sync_arg.pulse_width,
> sync_arg.front_porch);
> _
>
>
> Was that intentional?
>
Yes. As per your review comment last time I have changed the
return value in case of error from "copy_from_user" to -EFAULT.
Changing the return value of non-implemented ioctls to -ENOTTY
seems more appropriate as per the man page of ioctl.
>
> The change to lcd_disable_raster() is a bit odd:
>
> 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)
> ret = -ETIMEDOUT;
> }
>
> return ret;
> }
>
>
> We can do this, yes?
>
Right. I'll submit an updated version of this patch with all
these changes.
> ---
> a/drivers/video/da8xx-fb.c~davinci-fb-frame-buffer-driver-for-ti-da8xx-omap-l1xx-v4-cleanup
> +++ a/drivers/video/da8xx-fb.c
> @@ -201,8 +201,6 @@ static int lcd_disable_raster(struct da8
> 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)
> ret = -ETIMEDOUT;
> }
> _
>
Thanks,
Sudhakar
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source