mmc: fix runtime PM with -ENOSYS suspend case
authorOhad Ben-Cohen <ohad@wizery.com>
Sun, 17 Jul 2011 15:38:21 +0000 (16:38 +0100)
committerChris Ball <cjb@laptop.org>
Thu, 21 Jul 2011 14:35:09 +0000 (10:35 -0400)
commitecc024419a13da1e589aebc422d9d1e3c0124ba4
tree7f46c0fd259b76ca2f13cb2cd8b2675326f1bab6
parentb0a68ec9444384269ec06b474c0a841ccd6fcdf9
mmc: fix runtime PM with -ENOSYS suspend case

In the case where a driver returns -ENOSYS from its suspend handler
to indicate that the device should be powered down over suspend, the
remove routine of the driver was not being called, leading to lots of
confusion during resume.

The problem is that runtime PM is disabled during this process,
and when we reach mmc_sdio_remove, calling the runtime PM functions here
(validly) return errors, and this was causing us to skip the remove
function.

Fix this by ignoring the error value of pm_runtime_get_sync(), which
can return valid errors. This also matches the behaviour of
pci_device_remove().

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/sdio_bus.c