All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil@xs4all.nl>
To: "edubezval@gmail.com" <edubezval@gmail.com>
Cc: Dinesh Ram <dinram@cisco.com>,
	Linux-Media <linux-media@vger.kernel.org>,
	dinesh.ram@cern.ch
Subject: Re: [PATCH 3/6] si4713 : Bug fix for si4713_tx_tune_power() method in the i2c driver
Date: Sun, 01 Sep 2013 13:04:28 +0200	[thread overview]
Message-ID: <52231F3C.9000208@xs4all.nl> (raw)
In-Reply-To: <CAC-25o_Fk3fva7xdna=-fUv53vp2DjRt99+sEGwTwvgQn=cgkg@mail.gmail.com>

On 08/31/2013 01:49 PM, edubezval@gmail.com wrote:
> Hi Dinesh,
> 
> On Fri, Aug 30, 2013 at 7:28 AM, Dinesh Ram <dinram@cisco.com> wrote:
>> In the si4713_tx_tune_power() method, the args array element 'power' can take values between
>> SI4713_MIN_POWER and SI4713_MAX_POWER. power = 0 is also valid.
>> All the values (0 > power < SI4713_MIN_POWER) are illegal and hence
>> are all mapped to SI4713_MIN_POWER.
> 
> While do we need to assume min power in these cases?

It makes no sense to map 0 < powers < MIN_POWER to 0 (i.e. power off). I would never
expect that selecting a power > 0 would actually turn off power, so just map to the
lowest possible power value.

> 
>>
>> Signed-off-by: Dinesh Ram <dinram@cisco.com>
>> ---
>>  drivers/media/radio/si4713/si4713.c | 16 ++++++++--------
>>  1 file changed, 8 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/media/radio/si4713/si4713.c b/drivers/media/radio/si4713/si4713.c
>> index 55c4d27..5d0be87 100644
>> --- a/drivers/media/radio/si4713/si4713.c
>> +++ b/drivers/media/radio/si4713/si4713.c
>> @@ -550,14 +550,14 @@ static int si4713_tx_tune_freq(struct si4713_device *sdev, u16 frequency)
>>  }
>>
>>  /*
>> - * si4713_tx_tune_power - Sets the RF voltage level between 88 and 115 dBuV in
>> + * si4713_tx_tune_power - Sets the RF voltage level between 88 and 120 dBuV in
>>   *                     1 dB units. A value of 0x00 indicates off. The command
>>   *                     also sets the antenna tuning capacitance. A value of 0
>>   *                     indicates autotuning, and a value of 1 - 191 indicates
>>   *                     a manual override, which results in a tuning
>>   *                     capacitance of 0.25 pF x @antcap.
>>   * @sdev: si4713_device structure for the device we are communicating
>> - * @power: tuning power (88 - 115 dBuV, unit/step 1 dB)
>> + * @power: tuning power (88 - 120 dBuV, unit/step 1 dB)
>>   * @antcap: value of antenna tuning capacitor (0 - 191)
>>   */
>>  static int si4713_tx_tune_power(struct si4713_device *sdev, u8 power,
>> @@ -571,16 +571,16 @@ static int si4713_tx_tune_power(struct si4713_device *sdev, u8 power,
>>          *      .Third byte = power
>>          *      .Fourth byte = antcap
>>          */
>> -       const u8 args[SI4713_TXPWR_NARGS] = {
>> +       u8 args[SI4713_TXPWR_NARGS] = {
>>                 0x00,
>>                 0x00,
>>                 power,
>>                 antcap,
>>         };
>>
>> -       if (((power > 0) && (power < SI4713_MIN_POWER)) ||
>> -               power > SI4713_MAX_POWER || antcap > SI4713_MAX_ANTCAP)
>> -               return -EDOM;
>> +       /* Map power values 1-87 to MIN_POWER (88) */
>> +       if (power > 0 && power < SI4713_MIN_POWER)
>> +               args[2] = power = SI4713_MIN_POWER;
> 
> Why are you allowing antcap > SI4713_MAX_ANTCAP? and power >
> SI4713_MAX_POWER too?

The control framework already checks for that so you'll never see out-of-range values
here. So it was an unnecessary check.

> 
>>
>>         err = si4713_send_command(sdev, SI4713_CMD_TX_TUNE_POWER,
>>                                   args, ARRAY_SIZE(args), val,
>> @@ -1457,9 +1457,9 @@ static int si4713_probe(struct i2c_client *client,
>>                         V4L2_CID_TUNE_PREEMPHASIS,
>>                         V4L2_PREEMPHASIS_75_uS, 0, V4L2_PREEMPHASIS_50_uS);
>>         sdev->tune_pwr_level = v4l2_ctrl_new_std(hdl, &si4713_ctrl_ops,
>> -                       V4L2_CID_TUNE_POWER_LEVEL, 0, 120, 1, DEFAULT_POWER_LEVEL);
>> +                       V4L2_CID_TUNE_POWER_LEVEL, 0, SI4713_MAX_POWER, 1, DEFAULT_POWER_LEVEL);
>>         sdev->tune_ant_cap = v4l2_ctrl_new_std(hdl, &si4713_ctrl_ops,
>> -                       V4L2_CID_TUNE_ANTENNA_CAPACITOR, 0, 191, 1, 0);
>> +                       V4L2_CID_TUNE_ANTENNA_CAPACITOR, 0, SI4713_MAX_ANTCAP, 1, 0);
>>
>>         if (hdl->error) {
>>                 rval = hdl->error;
>> --
>> 1.8.4.rc2
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> 

Regards,

	Hans

  reply	other threads:[~2013-09-01 11:04 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-30 11:28 [PATCH 0/6] si4713 : USB driver Dinesh Ram
2013-08-30 11:28 ` [PATCH 1/6] si4713 : Reorganized drivers/media/radio directory Dinesh Ram
2013-08-30 11:28   ` [PATCH 2/6] si4713 : Modified i2c driver to handle cases where interrupts are not used Dinesh Ram
2013-08-31 11:31     ` edubezval
2013-09-01 10:57       ` Hans Verkuil
2013-09-01 14:45         ` edubezval
2013-09-02  7:11           ` Hans Verkuil
2013-09-02 10:29             ` Dinesh Ram
2013-09-03 12:50               ` edubezval
2013-09-30 13:07               ` Hans Verkuil
2013-09-30 14:32                 ` Dinesh Ram
     [not found]         ` <1378046534.45961.YahooMailNeo@web190905.mail.sg3.yahoo.com>
2013-09-01 14:51           ` edubezval
2013-08-31 11:32     ` edubezval
2013-09-01 11:00       ` Hans Verkuil
2013-09-01 14:47         ` edubezval
2013-08-30 11:28   ` [PATCH 3/6] si4713 : Bug fix for si4713_tx_tune_power() method in the i2c driver Dinesh Ram
2013-08-31 11:49     ` edubezval
2013-09-01 11:04       ` Hans Verkuil [this message]
2013-09-01 14:57         ` edubezval
2013-09-02  6:59           ` Hans Verkuil
2013-09-02  7:15             ` Hans Verkuil
2013-08-30 11:28   ` [PATCH 4/6] si4713 : HID blacklist Si4713 USB development board Dinesh Ram
2013-08-30 11:47     ` Jiri Kosina
2013-09-02  9:23     ` Jiri Kosina
2013-08-30 11:28   ` [PATCH 5/6] si4713 : Added the USB driver for Si4713 Dinesh Ram
2013-09-02  3:13     ` edubezval
2013-08-30 11:28   ` [PATCH 6/6] si4713 : Added MAINTAINERS entry for radio-usb-si4713 driver Dinesh Ram
2013-08-30 12:07     ` Hans Verkuil
2013-08-31 11:38   ` [PATCH 1/6] si4713 : Reorganized drivers/media/radio directory edubezval
2013-08-30 12:09 ` [PATCH 0/6] si4713 : USB driver Hans Verkuil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52231F3C.9000208@xs4all.nl \
    --to=hverkuil@xs4all.nl \
    --cc=dinesh.ram@cern.ch \
    --cc=dinram@cisco.com \
    --cc=edubezval@gmail.com \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.