summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Kicinski <kubakici@wp.pl>2015-03-11 18:35:36 +0100
committerSasha Levin <sasha.levin@oracle.com>2015-03-28 09:53:02 -0400
commit9297c326266dd08af2c7be30cbab32787eef9b9f (patch)
treee09cfd833a48120c5c18c9f44a4f98e6f106efb2
parent5e0c3d9ec8d84dcfc8a4f740bb632b0d61d8d3ed (diff)
Revert "i2c: core: Dispose OF IRQ mapping at client removal time"
[ Upstream commit a49445727014216703a3c28ccee4cef36d41571e ] This reverts commit e4df3a0b6228 ("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: e4df3a0b6228 Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
-rw-r--r--drivers/i2c/i2c-core.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index f43b4e11647a..17a1853c6c2f 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -665,9 +665,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;
}