]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
iio: dht11: Improve detection of sensor type
authorHarald Geyer <harald@ccbib.org>
Sun, 11 Feb 2018 11:09:40 +0000 (11:09 +0000)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 17 Feb 2018 12:03:16 +0000 (12:03 +0000)
The old code was based on a DHT11 datasheet which specifies a measurement
range of 20%-90% RH. Turns out the sensor actually reports values outside
this range, so we should support it as far as possible.

Reported-by: Edward Attfield <edward@attfield.ca>
Signed-off-by: Harald Geyer <harald@ccbib.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/humidity/dht11.c

index df6bab40d6fa5ffd7c6e843541416bfac454cd64..1a9f8f4ffb8877d6541eec3bee9ee2e334383b3d 100644 (file)
@@ -159,7 +159,7 @@ static int dht11_decode(struct dht11 *dht11, int offset)
        }
 
        dht11->timestamp = ktime_get_boot_ns();
-       if (hum_int < 20) {  /* DHT22 */
+       if (hum_int < 4) {  /* DHT22: 100000 = (3*256+232)*100 */
                dht11->temperature = (((temp_int & 0x7f) << 8) + temp_dec) *
                                        ((temp_int & 0x80) ? -100 : 100);
                dht11->humidity = ((hum_int << 8) + hum_dec) * 100;