]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/blackfin/mach-common/pm.c
vlan: Use bitmask of feature flags instead of seperate feature bits
[linux-2.6-omap-h63xx.git] / arch / blackfin / mach-common / pm.c
index 81930f7d06f145632bc9fd203c9f2a16bff8b1aa..0be805ca423f06f604099cfb2c2a8e7f2d0a4e80 100644 (file)
@@ -4,7 +4,7 @@
  * Author:       Cliff Brake <cbrake@accelent.com> Copyright (c) 2001
  *
  * Created:      2001
- * Description:  Power management for the bfin
+ * Description:  Blackfin power management
  *
  * Modified:     Nicolas Pitre - PXA250 support
  *                Copyright (c) 2002 Monta Vista Software, Inc.
@@ -12,7 +12,7 @@
  *                Copyright (c) 2002 Monta Vista Software, Inc.
  *               Dirk Behme <dirk.behme@de.bosch.com> - OMAP1510/1610
  *                Copyright 2004
- *               Copyright 2004-2006 Analog Devices Inc.
+ *               Copyright 2004-2008 Analog Devices Inc.
  *
  * Bugs:         Enter bugs at http://blackfin.uclinux.org/
  *
@@ -67,42 +67,30 @@ void bfin_pm_suspend_standby_enter(void)
        gpio_pm_wakeup_request(CONFIG_PM_WAKEUP_GPIO_NUMBER, WAKEUP_TYPE);
 #endif
 
-#if defined(CONFIG_PM_WAKEUP_BY_GPIO) || defined(CONFIG_PM_WAKEUP_GPIO_API)
-       {
-               u32 flags;
+       u32 flags;
 
-               local_irq_save(flags);
+       local_irq_save(flags);
+       bfin_pm_setup();
 
-               sleep_deeper(gpio_pm_setup()); /*Goto Sleep*/
-
-               gpio_pm_restore();
-
-#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x)
-               bfin_write_SIC_IWR0(IWR_ENABLE_ALL);
-               bfin_write_SIC_IWR1(IWR_ENABLE_ALL);
-# ifdef CONFIG_BF54x
-               bfin_write_SIC_IWR2(IWR_ENABLE_ALL);
-# endif
+#ifdef CONFIG_PM_BFIN_SLEEP_DEEPER
+       sleep_deeper(bfin_sic_iwr[0], bfin_sic_iwr[1], bfin_sic_iwr[2]);
 #else
-               bfin_write_SIC_IWR(IWR_ENABLE_ALL);
+       sleep_mode(bfin_sic_iwr[0], bfin_sic_iwr[1], bfin_sic_iwr[2]);
 #endif
 
-               local_irq_restore(flags);
-       }
-#endif
+       bfin_pm_restore();
 
-#if defined(CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR)
-       sleep_deeper(CONFIG_PM_WAKEUP_SIC_IWR);
-# if defined(CONFIG_BF54x) || defined(CONFIG_BF52x)
+#if defined(CONFIG_BF54x) || defined(CONFIG_BF52x)  || defined(CONFIG_BF561)
        bfin_write_SIC_IWR0(IWR_ENABLE_ALL);
        bfin_write_SIC_IWR1(IWR_ENABLE_ALL);
-#  ifdef CONFIG_BF54x
+# ifdef CONFIG_BF54x
        bfin_write_SIC_IWR2(IWR_ENABLE_ALL);
-#  endif
-# else
-       bfin_write_SIC_IWR(IWR_ENABLE_ALL);
 # endif
-#endif                         /* CONFIG_PM_WAKEUP_GPIO_BY_SIC_IWR */
+#else
+       bfin_write_SIC_IWR(IWR_ENABLE_ALL);
+#endif
+
+       local_irq_restore(flags);
 }
 
 /*