From 1d7534b6adcd3e4a9673c4e7fdc5bf4770f5ab81 Mon Sep 17 00:00:00 2001 From: Charles Keepax Date: Thu, 27 Jun 2019 10:24:06 +0100 Subject: i2c: core: Allow whole core to use i2c_dev_irq_from_resources Remove the static from i2c_dev_irq_from _resources so that other parts of the core code can use this helper function. Reviewed-by: Mika Westerberg Reviewed-by: Andy Shevchenko Signed-off-by: Charles Keepax Signed-off-by: Wolfram Sang --- drivers/i2c/i2c-core.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'drivers/i2c/i2c-core.h') diff --git a/drivers/i2c/i2c-core.h b/drivers/i2c/i2c-core.h index c88cfef81343..8f3a08dc73a2 100644 --- a/drivers/i2c/i2c-core.h +++ b/drivers/i2c/i2c-core.h @@ -28,6 +28,8 @@ extern struct list_head __i2c_board_list; extern int __i2c_first_dynamic_bus_num; int i2c_check_7bit_addr_validity_strict(unsigned short addr); +int i2c_dev_irq_from_resources(const struct resource *resources, + unsigned int num_resources); /* * We only allow atomic transfers for very late communication, e.g. to send -- cgit v1.2.3 From 16c9db1dd84cef50c819733a19def842bdb3d5ef Mon Sep 17 00:00:00 2001 From: Charles Keepax Date: Thu, 27 Jun 2019 10:24:09 +0100 Subject: i2c: core: Move ACPI IRQ handling to probe time Bring the ACPI path in sync with the device tree path and handle all the IRQ fetching at probe time. This leaves the only IRQ handling at device registration time being that which is passed directly through the board info as either a resource or an actual IRQ number. Reviewed-by: Andy Shevchenko Signed-off-by: Charles Keepax Reviewed-by: Mika Westerberg Signed-off-by: Wolfram Sang --- drivers/i2c/i2c-core.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'drivers/i2c/i2c-core.h') diff --git a/drivers/i2c/i2c-core.h b/drivers/i2c/i2c-core.h index 8f3a08dc73a2..15c1411f35f0 100644 --- a/drivers/i2c/i2c-core.h +++ b/drivers/i2c/i2c-core.h @@ -72,6 +72,8 @@ const struct acpi_device_id * i2c_acpi_match_device(const struct acpi_device_id *matches, struct i2c_client *client); void i2c_acpi_register_devices(struct i2c_adapter *adap); + +int i2c_acpi_get_irq(struct i2c_client *client); #else /* CONFIG_ACPI */ static inline void i2c_acpi_register_devices(struct i2c_adapter *adap) { } static inline const struct acpi_device_id * @@ -80,6 +82,11 @@ i2c_acpi_match_device(const struct acpi_device_id *matches, { return NULL; } + +static inline int i2c_acpi_get_irq(struct i2c_client *client) +{ + return 0; +} #endif /* CONFIG_ACPI */ extern struct notifier_block i2c_acpi_notifier; -- cgit v1.2.3