linux/drivers/i2c
Hans de Goede 7781edaed6 i2c: core: ACPI: Log device not acking errors at dbg loglevel
Unfortunately some DSDTs issue bogus i2c reads to non existing devices
resulting in -EREMOTEIO errors because the non existing device of course
does not ack.

This happens e.g. from the The Asus T100TA's _BIX method, the DSDT on
the T100TA defines 2 resources on the I2C1 bus:

        Name (EHID, ResourceTemplate ()
        {
            I2cSerialBusV2 (0x005B, ControllerInitiated, 0x00061A80,
                AddressingMode7Bit, "\\_SB.I2C1",
                0x00, ResourceConsumer, , Exclusive,
                )
        })
        OperationRegion (EHOR, GenericSerialBus, Zero, 0x0100)
        Field (EHOR, BufferAcc, NoLock, Preserve)
        {
            Connection (EHID),
            Offset (0x01),
            AccessAs (BufferAcc, AttribBytes (0x10)),
            ABCD,   8
        }

        Name (UMPC, ResourceTemplate ()
        {
            I2cSerialBusV2 (0x0066, ControllerInitiated, 0x00061A80,
                AddressingMode7Bit, "\\_SB.I2C1",
                0x00, ResourceConsumer, , Exclusive,
                )
        })

The _BIX method does a single read (on each BIX() call) from the EHID
device through the ABCD Field, only to completely ignore the result.
This read always fails as there is no i2c client at address 0x5b.

The _BIX method also does several reads from the UMPC device and actually
uses the results of those to provide battery information.

IIRC I've also seen some DSTDs which do an i2c read to detect if a device
is present, also leading to false positive errors being logged.

Esp. the _BIX use is problematic as the _BIX method gets called
periodically to monitor battery status.

This commit stops the logs from filling up with errors like these:

[   57.327858] i2c i2c-0: i2c read 16 bytes from client@0x5b starting at
               reg 0x1 failed, error: -121

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2018-04-30 10:53:31 +02:00
..
algos i2c: algo-bit: init the bus to a known state 2017-12-31 00:16:37 +01:00
busses i2c: sprd: Fix the i2c count issue 2018-04-27 14:12:43 +02:00
muxes i2c: mux: pca954x: verify the device id of the pca984x chips 2018-03-06 10:57:59 +01:00
i2c-boardinfo.c i2c: i2c-boardinfo: fix memory leaks on devinfo 2017-11-27 19:14:29 +01:00
i2c-core-acpi.c i2c: core: ACPI: Log device not acking errors at dbg loglevel 2018-04-30 10:53:31 +02:00
i2c-core-base.c i2c: add param sanity check to i2c_transfer() 2018-04-11 23:33:46 +02:00
i2c-core-of.c i2c: of: simplify reading the "reg" property 2018-02-26 20:40:46 +01:00
i2c-core-slave.c i2c: break out slave support into separate file 2017-05-31 21:01:03 +02:00
i2c-core-smbus.c i2c: reformat comments around i2c_smbus_xfer_emulated() 2018-02-27 13:54:05 +01:00
i2c-core.h i2c: make i2c_check_addr_validity() static 2018-03-24 14:07:23 +01:00
i2c-dev.c i2c: dev: prevent ZERO_SIZE_PTR deref in i2cdev_ioctl_rdwr() 2018-04-27 14:04:10 +02:00
i2c-mux.c i2c: mux: only print failure message on error 2017-05-15 18:49:11 +02:00
i2c-slave-eeprom.c i2c: Drop owner assignment from i2c_driver 2015-08-10 08:37:35 +02:00
i2c-smbus.c i2c: i2c-smbus: add of_i2c_setup_smbus_alert 2017-10-28 23:42:47 +02:00
i2c-stub.c i2c: stub: fix build warning regression 2017-06-15 23:22:11 +02:00
Kconfig Merge branch 'i2c/for-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-12-15 12:56:35 -08:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00