aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c/i2c-core.c
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 /drivers/i2c/i2c-core.c
parenti2c: at91: don't account as iowait (diff)
downloadlinux-dev-e4df3a0b62285130ac0a35cf07678c154ffb649d.tar.xz
linux-dev-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
Diffstat (limited to 'drivers/i2c/i2c-core.c')
-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;
}