[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1497256966-29082-1-git-send-email-jeffy.chen@rock-chips.com>
Date: Mon, 12 Jun 2017 16:42:46 +0800
From: Jeffy Chen <jeffy.chen@...k-chips.com>
To: linux-kernel@...r.kernel.org, lee.jones@...aro.org
Cc: briannorris@...omium.org, dtor@...omium.org, dianders@...omium.org,
Jeffy Chen <jeffy.chen@...k-chips.com>
Subject: [PATCH v2] mfd: cros_ec: Free IRQ on exit
Currently we request the irq when probing, but never free it. So after
unbind ec driver, this irq will be left requested, which would break
the next bind:
[ 2683.338437] genirq: Flags mismatch irq 64. 00002008 (chromeos-ec) vs. 00002008 (chromeos-ec)
[ 2683.338591] cros-ec-spi spi5.0: request irq 64: error -16
[ 2683.338610] cros-ec-spi spi5.0: cannot register EC
[ 2683.338656] cros-ec-spi: probe of spi5.0 failed with error -16
Signed-off-by: Jeffy Chen <jeffy.chen@...k-chips.com>
---
Changes in v2:
Improve the commit message.
drivers/mfd/cros_ec.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/mfd/cros_ec.c b/drivers/mfd/cros_ec.c
index e31ac60..dc6ce90 100644
--- a/drivers/mfd/cros_ec.c
+++ b/drivers/mfd/cros_ec.c
@@ -183,6 +183,9 @@ int cros_ec_remove(struct cros_ec_device *ec_dev)
cros_ec_acpi_remove_gpe_handler();
+ if (ec_dev->irq)
+ free_irq(ec_dev->irq, ec_dev);
+
return 0;
}
EXPORT_SYMBOL(cros_ec_remove);
--
2.1.4
Powered by blists - more mailing lists