Re: [PATCH] mt9v032: Correct the logic for the auto-exposure setting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Tue, May 8, 2012 at 7:12 AM, Laurent Pinchart
<laurent.pinchart@xxxxxxxxxxxxxxxx> wrote:
> Hi Kartik,
>
> Thank you for the patch.
>
> On Wednesday 02 May 2012 18:19:08 Kartik Mohta wrote:
>> The driver uses the ctrl value passed in as a bool to determine whether
>> to enable auto-exposure, but the auto-exposure setting is defined as an
>> enum where AUTO has a value of 0 and MANUAL has a value of 1. This leads
>> to a reversed logic where if you send in AUTO, it actually sets manual
>> exposure and vice-versa.
>>
>> Signed-off-by: Kartik Mohta <kartikmohta@xxxxxxxxx>
>> ---
>>  drivers/media/video/mt9v032.c |    8 +++++++-
>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/video/mt9v032.c b/drivers/media/video/mt9v032.c
>> index 75e253a..8ea8737 100644
>> --- a/drivers/media/video/mt9v032.c
>> +++ b/drivers/media/video/mt9v032.c
>> @@ -470,6 +470,7 @@ static int mt9v032_s_ctrl(struct v4l2_ctrl *ctrl)
>>                       container_of(ctrl->handler, struct mt9v032, ctrls);
>>       struct i2c_client *client = v4l2_get_subdevdata(&mt9v032->subdev);
>>       u16 data;
>> +     int aec_value;
>>
>>       switch (ctrl->id) {
>>       case V4L2_CID_AUTOGAIN:
>> @@ -480,8 +481,13 @@ static int mt9v032_s_ctrl(struct v4l2_ctrl *ctrl)
>>               return mt9v032_write(client, MT9V032_ANALOG_GAIN, ctrl->val);
>>
>>       case V4L2_CID_EXPOSURE_AUTO:
>> +             if(ctrl->val == V4L2_EXPOSURE_MANUAL)
>> +                     aec_value = 0;
>> +             else
>> +                     aec_value = 1;
>> +
>>               return mt9v032_update_aec_agc(mt9v032, MT9V032_AEC_ENABLE,
>> -                                           ctrl->val);
>> +                                           aec_value);
>
> What about just
>
>                return mt9v032_update_aec_agc(mt9v032, MT9V032_AEC_ENABLE,
>                                              !ctrl->val);
>
> If you're fine with that change I'll modify the patch accordingly, there's no
> need to resubmit (I'll of course keep the patch attribution).
>

That should work since the only supported exposure modes are auto and
manual with enum values 0 and 1 respectively, but then aren't you
depending on the values of the enum to not change in the future? Also
the change gives an impression that the value is a bool which it is
not. If that is fine, you can change it.

-- 
Kartik
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux