mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 14:44:10 +08:00
Revert "i2c: core: Dispose OF IRQ mapping at client removal time"
This reverts commite4df3a0b62
("i2c: core: Dispose OF IRQ mapping at client removal time") Calling irq_dispose_mapping() will destroy the mapping and disassociate the IRQ from the IRQ chip to which it belongs. Keeping it is OK, because existent mappings are reused properly. Also, this commit breaks drivers using devm* for IRQ management on OF-based systems because devm* cleanup happens in device code, after bus's remove() method returns. Signed-off-by: Jakub Kicinski <kubakici@wp.pl> Reported-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> [wsa: updated the commit message with findings fromt the other bug report] Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Cc: stable@kernel.org Fixes:e4df3a0b62
This commit is contained in:
parent
9eccca0843
commit
a494457270
@ -679,9 +679,6 @@ static int i2c_device_remove(struct device *dev)
|
||||
status = driver->remove(client);
|
||||
}
|
||||
|
||||
if (dev->of_node)
|
||||
irq_dispose_mapping(client->irq);
|
||||
|
||||
dev_pm_domain_detach(&client->dev, true);
|
||||
return status;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user