Browse Source

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@rock-chips.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Jeffy Chen 8 years ago
parent
commit
f58b14e663
1 changed files with 3 additions and 0 deletions
  1. 3 0
      drivers/mfd/cros_ec.c

+ 3 - 0
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();
 	cros_ec_acpi_remove_gpe_handler();
 
 
+	if (ec_dev->irq)
+		free_irq(ec_dev->irq, ec_dev);
+
 	return 0;
 	return 0;
 }
 }
 EXPORT_SYMBOL(cros_ec_remove);
 EXPORT_SYMBOL(cros_ec_remove);