Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

i2c: core: Tidy up handling of init_irq

Only set init_irq during i2c_device_new and only handle client->irq on
the probe/remove paths.

Suggested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>

authored by

Charles Keepax and committed by
Wolfram Sang
6e76cb7d 8466b616

+3 -2
+3 -2
drivers/i2c/i2c-core-base.c
··· 322 322 323 323 driver = to_i2c_driver(dev->driver); 324 324 325 + client->irq = client->init_irq; 326 + 325 327 if (!client->irq && !driver->disable_i2c_core_irq_mapping) { 326 328 int irq = -ENOENT; 327 329 ··· 434 432 dev_pm_clear_wake_irq(&client->dev); 435 433 device_init_wakeup(&client->dev, false); 436 434 437 - client->irq = client->init_irq; 435 + client->irq = 0; 438 436 if (client->flags & I2C_CLIENT_HOST_NOTIFY) 439 437 pm_runtime_put(&client->adapter->dev); 440 438 ··· 751 749 if (!client->init_irq) 752 750 client->init_irq = i2c_dev_irq_from_resources(info->resources, 753 751 info->num_resources); 754 - client->irq = client->init_irq; 755 752 756 753 strlcpy(client->name, info->type, sizeof(client->name)); 757 754