On 02/03/2014 11:13 AM, Antti Palosaari wrote:
> On 03.02.2014 11:08, Hans Verkuil wrote:
>> Hi Antti,
>>
>> On 02/01/2014 03:24 PM, Antti Palosaari wrote:
>>> Modern silicon RF tuners has one or more adjustable filters on
>>> signal path, in order to filter noise from desired radio channel.
>>>
>>> Add channel bandwidth control to tell the driver which is radio
>>> channel width we want receive. Filters could be then adjusted by
>>> the driver or hardware, using RF frequency and channel bandwidth
>>> as a base of filter calculations.
>>>
>>> On automatic mode (normal mode), bandwidth is calculated from sampling
>>> rate or tuning info got from userspace. That new control gives
>>> possibility to set manual mode and let user have more control for
>>> filters.
>>>
>>> Cc: Hans Verkuil <[email protected]>
>>> Signed-off-by: Antti Palosaari <[email protected]>
>>> ---
>>>   drivers/media/v4l2-core/v4l2-ctrls.c | 4 ++++
>>>   include/uapi/linux/v4l2-controls.h   | 2 ++
>>>   2 files changed, 6 insertions(+)
>>>
>>> diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c 
>>> b/drivers/media/v4l2-core/v4l2-ctrls.c
>>> index d201f61..e44722b 100644
>>> --- a/drivers/media/v4l2-core/v4l2-ctrls.c
>>> +++ b/drivers/media/v4l2-core/v4l2-ctrls.c
>>> @@ -865,6 +865,8 @@ const char *v4l2_ctrl_get_name(u32 id)
>>>       case V4L2_CID_MIXER_GAIN:        return "Mixer Gain";
>>>       case V4L2_CID_IF_GAIN_AUTO:        return "IF Gain, Auto";
>>>       case V4L2_CID_IF_GAIN:            return "IF Gain";
>>> +    case V4L2_CID_BANDWIDTH_AUTO:        return "Channel Bandwidth, Auto";
>>> +    case V4L2_CID_BANDWIDTH:        return "Channel Bandwidth";
>>>       default:
>>>           return NULL;
>>>       }
>>> @@ -917,6 +919,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum 
>>> v4l2_ctrl_type *type,
>>>       case V4L2_CID_LNA_GAIN_AUTO:
>>>       case V4L2_CID_MIXER_GAIN_AUTO:
>>>       case V4L2_CID_IF_GAIN_AUTO:
>>> +    case V4L2_CID_BANDWIDTH_AUTO:
>>>           *type = V4L2_CTRL_TYPE_BOOLEAN;
>>>           *min = 0;
>>>           *max = *step = 1;
>>> @@ -1078,6 +1081,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum 
>>> v4l2_ctrl_type *type,
>>>       case V4L2_CID_LNA_GAIN:
>>>       case V4L2_CID_MIXER_GAIN:
>>>       case V4L2_CID_IF_GAIN:
>>> +    case V4L2_CID_BANDWIDTH:
>>
>> Booleans never have the slider flag set (they are represented as a checkbox, 
>> so a slider
>> makes no sense).
>>
>>>           *flags |= V4L2_CTRL_FLAG_SLIDER;
> 
> These are two different controls, as it is controls groups with auto mode 
> (boolean) and value (slider).

Oops, my fault. I misread.

        Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to