|
@@ -16,6 +16,7 @@
|
|
|
#include <linux/suspend.h>
|
|
|
#include <linux/errno.h>
|
|
|
#include <linux/delay.h>
|
|
|
+#include <linux/of.h>
|
|
|
#include <linux/serial_core.h>
|
|
|
#include <linux/io.h>
|
|
|
|
|
@@ -261,7 +262,8 @@ static int s3c_pm_enter(suspend_state_t state)
|
|
|
* require a full power-cycle)
|
|
|
*/
|
|
|
|
|
|
- if (!any_allowed(s3c_irqwake_intmask, s3c_irqwake_intallow) &&
|
|
|
+ if (!of_have_populated_dt() &&
|
|
|
+ !any_allowed(s3c_irqwake_intmask, s3c_irqwake_intallow) &&
|
|
|
!any_allowed(s3c_irqwake_eintmask, s3c_irqwake_eintallow)) {
|
|
|
printk(KERN_ERR "%s: No wake-up sources!\n", __func__);
|
|
|
printk(KERN_ERR "%s: Aborting sleep\n", __func__);
|
|
@@ -270,8 +272,11 @@ static int s3c_pm_enter(suspend_state_t state)
|
|
|
|
|
|
/* save all necessary core registers not covered by the drivers */
|
|
|
|
|
|
- samsung_pm_save_gpios();
|
|
|
- samsung_pm_saved_gpios();
|
|
|
+ if (!of_have_populated_dt()) {
|
|
|
+ samsung_pm_save_gpios();
|
|
|
+ samsung_pm_saved_gpios();
|
|
|
+ }
|
|
|
+
|
|
|
s3c_pm_save_uarts();
|
|
|
s3c_pm_save_core();
|
|
|
|
|
@@ -310,8 +315,11 @@ static int s3c_pm_enter(suspend_state_t state)
|
|
|
|
|
|
s3c_pm_restore_core();
|
|
|
s3c_pm_restore_uarts();
|
|
|
- samsung_pm_restore_gpios();
|
|
|
- s3c_pm_restored_gpios();
|
|
|
+
|
|
|
+ if (!of_have_populated_dt()) {
|
|
|
+ samsung_pm_restore_gpios();
|
|
|
+ s3c_pm_restored_gpios();
|
|
|
+ }
|
|
|
|
|
|
s3c_pm_debug_init();
|
|
|
|