|
|
@@ -430,7 +430,7 @@ static int i2c_device_remove(struct device *dev)
|
|
|
dev_pm_clear_wake_irq(&client->dev);
|
|
|
device_init_wakeup(&client->dev, false);
|
|
|
|
|
|
- client->irq = 0;
|
|
|
+ client->irq = client->init_irq;
|
|
|
|
|
|
return status;
|
|
|
}
|
|
|
@@ -741,10 +741,11 @@ i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info)
|
|
|
client->flags = info->flags;
|
|
|
client->addr = info->addr;
|
|
|
|
|
|
- client->irq = info->irq;
|
|
|
- if (!client->irq)
|
|
|
- client->irq = i2c_dev_irq_from_resources(info->resources,
|
|
|
+ client->init_irq = info->irq;
|
|
|
+ if (!client->init_irq)
|
|
|
+ client->init_irq = i2c_dev_irq_from_resources(info->resources,
|
|
|
info->num_resources);
|
|
|
+ client->irq = client->init_irq;
|
|
|
|
|
|
strlcpy(client->name, info->type, sizeof(client->name));
|
|
|
|