]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/arm/mach-at91/pm.c
Pull misc into release branch
[linux-2.6-omap-h63xx.git] / arch / arm / mach-at91 / pm.c
index ff8db29e989e2f39c420a9de219f63b435ace081..ddf9184d561d2c82d4efe9e5a23ea07c6e62af35 100644 (file)
@@ -53,7 +53,7 @@ static suspend_state_t target_state;
 /*
  * Called after processes are frozen, but before we shutdown devices.
  */
-static int at91_pm_prepare(suspend_state_t state)
+static int at91_pm_set_target(suspend_state_t state)
 {
        target_state = state;
        return 0;
@@ -76,12 +76,11 @@ static int at91_pm_verify_clocks(void)
                        pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n");
                        return 0;
                }
-       } else if (cpu_is_at91sam9260()) {
-#warning "Check SAM9260 USB clocks"
-       } else if (cpu_is_at91sam9261()) {
-#warning "Check SAM9261 USB clocks"
-       } else if (cpu_is_at91sam9263()) {
-#warning "Check SAM9263 USB clocks"
+       } else if (cpu_is_at91sam9260() || cpu_is_at91sam9261() || cpu_is_at91sam9263()) {
+               if ((scsr & (AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP)) != 0) {
+                       pr_debug("AT91: PM - Suspend-to-RAM with USB still active\n");
+                       return 0;
+               }
        }
 
 #ifdef CONFIG_AT91_PROGRAMMABLE_CLOCKS
@@ -202,7 +201,7 @@ error:
 
 static struct pm_ops at91_pm_ops ={
        .valid          = at91_pm_valid_state,
-       .prepare        = at91_pm_prepare,
+       .set_target     = at91_pm_set_target,
        .enter          = at91_pm_enter,
 };