If sdhci-s3c driver is built as module, it gives following error if inserted
again after removing. This was happening as pm_runtime_use_autosuspend() is
called in sdhci_s3c_probe() function but in sdhci_s3c_remove() its
complementary pm_runtime_dont_use_autosuspend() is not called.
BUG: spinlock bad magic on CPU#1, insmod/955
lock: 0xee771368, .magic:
00000000, .owner: insmod/955, .owner_cpu: 1
[<
c00147e0>] (unwind_backtrace+0x0/0xf8) from [<
c0136b40>] (do_raw_spin_unlock+0xa4/0xe4)
[<
c0136b40>] (do_raw_spin_unlock+0xa4/0xe4) from [<
c01be508>] (_raw_spin_unlock_irqrestore+0xc/0x38)
[<
c01be508>] (_raw_spin_unlock_irqrestore+0xc/0x38) from [<
c01a9334>] (sdhci_runtime_suspend_host+0x54/0x80)
[<
c01a9334>] (sdhci_runtime_suspend_host+0x54/0x80) from [<
bf0060a8>] (sdhci_s3c_runtime_suspend+0x14/0x38 [sdhci_s3c])
[<
bf0060a8>] (sdhci_s3c_runtime_suspend+0x14/0x38 [sdhci_s3c]) from [<
c016cb00>] (pm_generic_runtime_suspend+0x2c/0x40)
[<
c016cb00>] (pm_generic_runtime_suspend+0x2c/0x40) from [<
c0170090>] (__rpm_callback+0x70/0x98)
[<
c0170090>] (__rpm_callback+0x70/0x98) from [<
c01703f0>] (rpm_suspend+0xf0/0x534)
[<
c01703f0>] (rpm_suspend+0xf0/0x534) from [<
c0171670>] (__pm_runtime_suspend+0x5c/0x74)
[<
c0171670>] (__pm_runtime_suspend+0x5c/0x74) from [<
c016d018>] (pm_generic_runtime_idle+0x44/0x4c)
[<
c016d018>] (pm_generic_runtime_idle+0x44/0x4c) from [<
c0170090>] (__rpm_callback+0x70/0x98)
[<
c0170090>] (__rpm_callback+0x70/0x98) from [<
c0170984>] (rpm_idle+0xdc/0x18c)
[<
c0170984>] (rpm_idle+0xdc/0x18c) from [<
c0171608>] (pm_runtime_set_autosuspend_delay+0x30/0x3c)
[<
c0171608>] (pm_runtime_set_autosuspend_delay+0x30/0x3c) from [<
bf0069c4>] (sdhci_s3c_probe+0x35c/0x52c [sdhci_s3c])
[<
bf0069c4>] (sdhci_s3c_probe+0x35c/0x52c [sdhci_s3c]) from [<
c016a014>] (platform_drv_probe+0x18/0x1c)
Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>