aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/memstick/core/memstick.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/memstick/core/memstick.c')
-rw-r--r--drivers/memstick/core/memstick.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c
index 61b98c333cb0..3c7d9a79c1ea 100644
--- a/drivers/memstick/core/memstick.c
+++ b/drivers/memstick/core/memstick.c
@@ -415,10 +415,14 @@ err_out:
415 return NULL; 415 return NULL;
416} 416}
417 417
418static void memstick_power_on(struct memstick_host *host) 418static int memstick_power_on(struct memstick_host *host)
419{ 419{
420 host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); 420 int rc = host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON);
421 host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); 421
422 if (!rc)
423 rc = host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL);
424
425 return rc;
422} 426}
423 427
424static void memstick_check(struct work_struct *work) 428static void memstick_check(struct work_struct *work)
@@ -573,11 +577,15 @@ EXPORT_SYMBOL(memstick_suspend_host);
573 */ 577 */
574void memstick_resume_host(struct memstick_host *host) 578void memstick_resume_host(struct memstick_host *host)
575{ 579{
580 int rc = 0;
581
576 mutex_lock(&host->lock); 582 mutex_lock(&host->lock);
577 if (host->card) 583 if (host->card)
578 memstick_power_on(host); 584 rc = memstick_power_on(host);
579 mutex_unlock(&host->lock); 585 mutex_unlock(&host->lock);
580 memstick_detect_change(host); 586
587 if (!rc)
588 memstick_detect_change(host);
581} 589}
582EXPORT_SYMBOL(memstick_resume_host); 590EXPORT_SYMBOL(memstick_resume_host);
583 591