summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2014-10-30 15:59:37 +0200
committerWolfram Sang <wsa@the-dreams.de>2014-11-07 19:03:18 +0100
commite4df3a0b62285130ac0a35cf07678c154ffb649d (patch)
tree7c9b514bc23c2c68c4258e9b8c17503cdd59892f
parent11cfbfb098b22d3e57f1f2be217cad20e2d48463 (diff)
downloadlinux-stable-e4df3a0b62285130ac0a35cf07678c154ffb649d.tar.gz
linux-stable-e4df3a0b62285130ac0a35cf07678c154ffb649d.tar.bz2
linux-stable-e4df3a0b62285130ac0a35cf07678c154ffb649d.zip
i2c: core: Dispose OF IRQ mapping at client removal time
Clients instantiated from OF get an IRQ mapping created at device registration time. Dispose the mapping when the client is removed. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Cc: stable@kernel.org
-rw-r--r--drivers/i2c/i2c-core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 17a1853c6c2f..f43b4e11647a 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -665,6 +665,9 @@ 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;
}