• Hans de Goede's avatar
    i2c: core: Allow drivers to disable i2c-core irq mapping · d1d84bb9
    Hans de Goede authored
    By default the i2c-core will try to get an irq with index 0 on ACPI / of
    instantiated devices. This is troublesome on some ACPI systems where the
    irq info at index 0 in the CRS table may contain nonsense and/or point
    to an irqchip for which there is no Linux driver.
    
    If this happens then before this commit the driver's probe method would
    never get called because i2c_device_probe will try to get an irq by
    calling acpi_dev_gpio_irq_get which will always return -EPROBE in this
    case, as it waits for a matching irqchip driver to load. Thus causing
    the driver to not get a chance to bind.
    
    This commit adds a new disable_i2c_core_irq_mapping flag to struct
    i2c_driver which a driver can set to tell the core to skip irq mapping.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    d1d84bb9
i2c-core.c 101 KB