Hi,

On Thursday 04 November 2010 04:44:02 Laurent Pinchart wrote:
> On Thursday 28 October 2010 11:57:34 Tao, Jing wrote:
> > Thanks a lot for your kind remind, Greg. I repaired the problem using the
> > checkpatch.pl, please have a look:
> > 
> > This is the patch for the LED Flash Driver, the follow new functions are
> > added: --LED Mode Selection
> > --Flash Time Adjust
> > --Flash Current Adjust
> > --Torch Current Adjust
> > --Indicator Current Adjust
> > --OSPM
> > --Run-time PM
> > 
> >         According to Arjan's comment:
> >         --dev_dbg is removed from set_reg function
> >         --some unnecessary prototypes were cleaned up
> >         
> >         According to Alan's comment:
> >         --Check return value of i2c_read/i2c_write
> 
> Thanks for the patch.
> 
> [snip]
> 
> > diff --git a/drivers/staging/mfld_ledflash/lm3555.h
> > b/drivers/staging/mfld_ledflash/lm3555.h new file mode 100644
> > index 0000000..0fc290d
> > --- /dev/null
> > +++ b/drivers/staging/mfld_ledflash/lm3555.h
> 
> [snip]
> 
> > +/* Field for ioctl */
> > +/* Flash strobe control */
> > +#define    V4L2_CID_FLASH_STROBE           _IOW('v', 1, int)
> > +/* Flash timeout setting */
> > +#define    V4L2_CID_FLASH_TIMEOUT          _IOW('v', 2, int)
> > +/* Flash intensity setting */
> > +#define    V4L2_CID_FLASH_INTENSITY        _IOW('v', 3, int)
> > +/* Torch intensity setting */
> > +#define    V4L2_CID_TORCH_INTENSITY        _IOW('v', 4, int)
> > +/* Indicator intensity setting */
> > +#define    V4L2_CID_INDICATOR_INTENSITY    _IOW('v', 5, int)
> 
> You're defining ioctl values, why are they named like V4L2 controls ?
> 
> [snip]
> 
> > diff --git a/drivers/staging/mfld_ledflash/mfld_ledflash.c
> > b/drivers/staging/mfld_ledflash/mfld_ledflash.c index 624b8b1..3ba6bc1
> > 100644
> > --- a/drivers/staging/mfld_ledflash/mfld_ledflash.c
> > +++ b/drivers/staging/mfld_ledflash/mfld_ledflash.c
> 
> [snip]
> 
> > +static int mfld_ledflash_command(struct i2c_client *client,
> > +                            unsigned int cmd, void *arg)
> > +{
> > +   char *input = arg;
> > +   int ret = 0;
> > +
> > +   switch (cmd) {
> > +   case V4L2_CID_FLASH_STROBE:
> > +           ret = mfld_ledflash_set_extstrobe(client, *input);
> > +           break;
> > +   case V4L2_CID_FLASH_TIMEOUT:
> > +           ret = mfld_ledflash_set_flashtime(client, *input);
> > +           break;
> > +   case V4L2_CID_FLASH_INTENSITY:
> > +           ret = mfld_ledflash_set_flashcurrent(client, *input);
> > +           break;
> > +   case V4L2_CID_TORCH_INTENSITY:
> > +           ret = mfld_ledflash_set_assistlightcurrent(client, *input);
> > +           break;
> > +   case V4L2_CID_INDICATOR_INTENSITY:
> > +           ret = mfld_ledflash_set_ic(client, *input);
> > +           break;
> > +   default:
> > +           ret = EINVAL;
> > +           break;
> > +   }
> 
> The right way to implement this is to make the flash driver a V4L2
> sub-device and use V4L2 subdev control operations.
> 
> See drivers/media/video/adp1653.c in http://gitorious.org/maemo-
> multimedia/omap3isp-rx51 for a flash driver example.

Any update on this ?

-- 
Regards,

Laurent Pinchart
_______________________________________________
MeeGo-kernel mailing list
[email protected]
http://lists.meego.com/listinfo/meego-kernel

Reply via email to