linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
To: "Michele De Candia (VT)"
	<michele.decandia-EZxuzQJkuwwybS5Ee8rs3A@public.gmane.org>
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	giometti-k2GhghHVRtY@public.gmane.org
Subject: Re: [PATCH] TSL2550 driver bugfix
Date: Wed, 01 Jul 2009 16:06:23 +0000	[thread overview]
Message-ID: <4A4B897F.30704@cam.ac.uk> (raw)
In-Reply-To: <4A4B7904.5010301-EZxuzQJkuwwybS5Ee8rs3A@public.gmane.org>


> What do you think about 'Bugfix for missing Lux returning in dark
> environment' ?
That covers the key point, so fine.
 
> Jonathan Cameron wrote:
>> Looks good to me. (perhaps a bit more detail in the commit
>> message of the patch?)
>>
>> Acked-by: Jonathan Cameron <jic23-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
>>  
>>> Jonathan Cameron wrote:
>>>    
>>>> Michele De Candia (VT) wrote:
>>>>  
>>>>      
>>>>> Hi all,
>>>>>
>>>>> I've tested TSL2550 driver and I've found a bug: when light is off,
>>>>> returned value from tsl2550_calculate_lux function is -1 when it
>>>>> should
>>>>> be 0 (sensor correctly read that light was off).
>>>>>
>>>>> I think the bug is that a zero c0 value (approximated value of ch0) is
>>>>> misinterpreted as an error.
>>>>> I'm attaching you a patch that fixes the bug.
>>>>>
>>>>> Regards,
>>>>> Michele Jr De Candia
>>>>>             
>>>> Sounds reasonable, but I think a stray line got away in your patch
>>>> (see below)
>>>> Not to mention, if the c1 <= c0 check is still valid, should you not
>>>> also
>>>> confirm that c1 == 0 as well? Perhaps reverse the ordering?
>>>>         
>>> That's right. A new patch can be found in attachment.
>>>    
>>>> if (c1 <= c0)
>>>>     if(c0) {
>>>>         r = c1* 128 / c0;
>>>>         lux = ((c0 - c1) * ratio_lut[r]) / 256;
>>>>     } else
>>>>         lux = 0;
>>>> else
>>>>     return -1;
>>>>    
>>>> Signed-off-by: Michele Jr De Candia <michele.decandia-EZxuzQJkuwwybS5Ee8rs3A@public.gmane.org>
>>>>
>>>> diff --git a/drivers/i2c/chips/tsl2550.c b/drivers/i2c/chips/tsl2550.c
>>>> index 1a9cc13..6bad072 100644
>>>> --- a/drivers/i2c/chips/tsl2550.c
>>>> +++ b/drivers/i2c/chips/tsl2550.c
>>>> @@ -189,10 +189,16 @@ static int tsl2550_calculate_lux(u8 ch0, u8 ch1)
>>>>      u8 r = 128;
>>>>  
>>>>      /* Avoid division by 0 and count 1 cannot be greater than count
>>>> 0 */
>>>> -    if (c0 && (c1 <= c0))
>>>> -        r = c1 * 128 / c0;
>>>> -    else
>>>> -        return -1;
>>>> +    if (c0)    {
>>>> +        if (c1 <= c0)
>>>> +            r = c1 * 128 / c0;
>>>> +        else
>>>> +            return -1;
>>>> +           +        /* Calculate LUX */
>>>> +        lux = ((c0 - c1) * ratio_lut[r]) / 256;
>>>> +    }
>>>> +    else lux = 0;
>>>>  
>>>>
>>>> This last line should have been removed I think?
>>>>      /* Calculate LUX */
>>>>     lux = ((c0 - c1) * ratio_lut[r]) / 256;
>>>>
>>>> ---
>>>> Jonathan Cameron
>>>>
>>>>         
>>> Than
>>>     
>>
>>   
> 
> 

  parent reply	other threads:[~2009-07-01 16:06 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-30 15:31 [PATCH] TSL2550 driver bugfix Michele De Candia (VT)
     [not found] ` <4A4A2FBC.1060804-EZxuzQJkuwwybS5Ee8rs3A@public.gmane.org>
2009-06-30 16:41   ` Jonathan Cameron
     [not found]     ` <4A4A4036.3000408-KWPb1pKIrIJaa/9Udqfwiw@public.gmane.org>
2009-07-01  8:12       ` Michele De Candia (VT)
     [not found]         ` <4A4B1A71.20101-EZxuzQJkuwwybS5Ee8rs3A@public.gmane.org>
2009-07-01 10:00           ` Jonathan Cameron
     [not found]             ` <4A4B7904.5010301@valueteam.com>
     [not found]               ` <4A4B7904.5010301-EZxuzQJkuwwybS5Ee8rs3A@public.gmane.org>
2009-07-01 16:06                 ` Jonathan Cameron [this message]
2009-07-11 18:20           ` Jean Delvare
     [not found]             ` <20090711202030.52ffbddb-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-07-12  8:52               ` Jean Delvare
     [not found]                 ` <20090712105237.01e11954-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-07-13  7:56                   ` Michele De Candia (VT)
     [not found]                     ` <4A5AE89A.8000000-EZxuzQJkuwwybS5Ee8rs3A@public.gmane.org>
2009-07-13  8:44                       ` Jean Delvare
     [not found]                         ` <4A5B011F.8030507@valueteam.com>
     [not found]                           ` <4A5B011F.8030507-EZxuzQJkuwwybS5Ee8rs3A@public.gmane.org>
2009-07-13 10:06                             ` Rodolfo Giometti
2009-07-13 19:17                             ` Jean Delvare

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=4A4B897F.30704@cam.ac.uk \
    --to=jic23-kwpb1pkirijaa/9udqfwiw@public.gmane.org \
    --cc=giometti-k2GhghHVRtY@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=michele.decandia-EZxuzQJkuwwybS5Ee8rs3A@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).