[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <547F0CFE.4010107@nod.at>
Date: Wed, 03 Dec 2014 14:15:42 +0100
From: Richard Weinberger <richard@....at>
To: Harald Geyer <harald@...ib.org>
CC: jic23@...nel.org, knaack.h@....de, lars@...afoo.de,
pmeerw@...erw.net, sanjeev_sharma@...tor.com,
linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: iio: dht11 Updates
Harald,
Am 03.12.2014 um 13:18 schrieb Harald Geyer:
> Hi Richard,
>
> thanks for all the work you put into this!
>
> Richard Weinberger writes:
>> Please see my current patches for your driver.
>> As discussed in an earlier mail I'm testing with the DHT22 sensor only.
>> With the IRQ changes I see 84 edges.
>
> This still surprises me. With the IRQ changes I would expect the
> preamble to be 2 edges only. I must be missing something. Can you
> explain this to me?
I'll try to find out!
> I'll look into this as soon as I've time.
>
>> I have also a question on your driver. Why you increment
>> DHT11_DATA_BIT_LOW/timeres by one in the ambiguity check?
>>
>> threshold = DHT11_DATA_BIT_HIGH / timeres;
>> if (DHT11_DATA_BIT_LOW/timeres + 1 >= threshold)
>> pr_err("dht11: WARNING: decoding ambiguous\n");
>
> This is to take ambiguity of when the bit started relativ to the
> clock ticks into account. For example with common 32kHz clocks:
> DHT11_DATA_BIT_LOW / timeres = 0
> DHT11_DATA_BIT_HIGH / timeres = 2
> but since the bit might not start at a clock tick the actual t of
> a low bit can be either 0 or 1 while the actual t of a high bit
> can be either 2 or 3.
>
> This case is fine.
>
> But if we had a 38kHz clock:
> DHT11_DATA_BIT_LOW / timeres = 1 t can be 1 or 2
> DHT11_DATA_BIT_HIGH / timeres = 2 t can be 2 or 3
> so we have an ambiguity. The ambiguity could be removed by a smarter
> decoder, that looks at the t of other bits, but I'm not going to do
> that unless somebody is promising to test it on affected hardware.
>
> Feel free to add some comment about this to the code.
Will do, thanks a lot for the explanation.
I was asking because I see the "dht11: WARNING: decoding ambiguous"
very often. (with and without my patches)
>> [PATCH 1/4] iio: dht11: Add locking
>> [PATCH 2/4] iio: dht11: IRQ fixes
>> [PATCH 3/4] iio: dht11: Logging updates
>> [PATCH 4/4] iio: dht11: Fix out-of-bounds read
>
> You can add my Acked-by or Reviewed-by to 1/4 and 4/4 if you want to.
> Maybe Jonathan wants the patches reordered so that fixes come first, but
> then 4/4 should not cause any problems in practice, so perhaps it doesn't
> matter.
>
> I really have to understand this preamble length thing on 2/4 and I will
> reply to 3/4 separately.
Thanks a lot!
//richard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists