arm64: t210: disable suspend and cpuidle
Rajkumar Kasirajan [Thu, 14 Apr 2016 10:42:28 +0000 (18:42 +0800)]
Disabled suspend to RAM and CPU Idle support.

Bug 1747157

Change-Id: Ic0b242b2a2248beee1986c1a13f4ad4612c3f854
Signed-off-by: Rajkumar Kasirajan <rkasirajan@nvidia.com>
Reviewed-on: http://git-master/r/1165695
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>

23 files changed:
arch/arm64/mach-tegra/board-t210ref.c
drivers/ata/ahci-tegra.c
drivers/dma/tegra20-apb-dma.c
drivers/gpio/gpio-tegra.c
drivers/i2c/busses/i2c-tegra-vi.c
drivers/iio/light/nvs_bh1730fvc.c
drivers/iio/light/nvs_jsa1127.c
drivers/iio/light/nvs_max4400x.c
drivers/iio/magnetometer/nvi_ak89xx.c
drivers/iio/pressure/nvi_bmpX80.c
drivers/input/keyboard/gpio_keys.c
drivers/irqchip/irq-tegra.c
drivers/net/wireless/bcmdhd/bcmsdh_sdmmc_linux.c
drivers/platform/tegra/Makefile
drivers/platform/tegra/clock.c
drivers/platform/tegra/cpu-tegra.c
drivers/platform/tegra/pm_domains.c
drivers/platform/tegra/tegra_ptm_t210.c
drivers/power/bq2419x-charger-st8.c
drivers/power/bq2419x-charger.c
drivers/watchdog/softdog_platform.c
include/linux/irqchip/tegra.h
include/linux/system-wakeup.h

index f736de3..87bf087 100644 (file)
@@ -229,6 +229,7 @@ static void __init tegra_t210ref_early_init(void)
                tegra_soc_device_init("he2290");
 }
 
+#ifdef CONFIG_PM_SLEEP
 static struct tegra_suspend_platform_data t210ref_suspend_data = {
        .cpu_timer      = 1700,
        .cpu_off_timer  = 300,
@@ -245,6 +246,7 @@ static int __init t210ref_suspend_init(void)
        tegra_init_suspend(&t210ref_suspend_data);
        return 0;
 }
+#endif
 
 static void __init tegra_t210ref_late_init(void)
 {
@@ -257,9 +259,10 @@ static void __init tegra_t210ref_late_init(void)
 
        t210ref_usb_init();
        tegra_io_dpd_init();
+#ifdef CONFIG_PM_SLEEP
        /* FIXME: Assumed all t210ref platforms have sdhci DT support */
        t210ref_suspend_init();
-
+#endif
        tegra21_emc_init();
        isomgr_init();
 
index 3db4668..2fb2185 100644 (file)
@@ -466,6 +466,7 @@ static bool tegra_ahci_power_un_gate(struct ata_host *host);
 static bool tegra_ahci_power_gate(struct ata_host *host);
 static void tegra_ahci_abort_power_gate(struct ata_host *host);
 static int tegra_ahci_controller_suspend(struct platform_device *pdev);
+#ifdef CONFIG_PM_SLEEP
 static int tegra_ahci_controller_resume(struct platform_device *pdev);
 #ifndef CONFIG_TEGRA_SATA_IDLE_POWERGATE
 static int tegra_ahci_suspend(struct platform_device *pdev, pm_message_t mesg);
@@ -474,6 +475,7 @@ static int tegra_ahci_resume(struct platform_device *pdev);
 static int tegra_ahci_suspend(struct device *dev);
 static int tegra_ahci_resume(struct device *dev);
 #endif
+#endif
 static enum port_idle_status tegra_ahci_is_port_idle(struct ata_port *ap);
 static bool tegra_ahci_are_all_ports_idle(struct ata_host *host);
 #ifdef CONFIG_TEGRA_SATA_IDLE_POWERGATE
@@ -935,6 +937,7 @@ exit:
        return ret;
 }
 
+#ifdef CONFIG_PM_SLEEP
 static void tegra_first_level_clk_gate(void)
 {
        if (g_tegra_hpriv->clk_state == CLK_OFF)
@@ -948,6 +951,7 @@ static void tegra_first_level_clk_gate(void)
                clk_disable_unprepare(g_tegra_hpriv->clk_cml1);
        g_tegra_hpriv->clk_state = CLK_OFF;
 }
+#endif
 
 #if defined(CONFIG_TEGRA_SATA_IDLE_POWERGATE) && \
        !defined(CONFIG_TEGRA_AHCI_CONTEXT_RESTORE)
@@ -1788,6 +1792,7 @@ static int tegra_ahci_controller_suspend(struct platform_device *pdev)
                tegra_hpriv->soc_data->num_sata_regulators);
 }
 
+#ifdef CONFIG_PM_SLEEP
 static int tegra_ahci_controller_resume(struct platform_device *pdev)
 {
        struct ata_host *host = dev_get_drvdata(&pdev->dev);
@@ -1824,6 +1829,7 @@ static int tegra_ahci_controller_resume(struct platform_device *pdev)
 
        return 0;
 }
+#endif
 
 #ifndef CONFIG_TEGRA_SATA_IDLE_POWERGATE
 static int tegra_ahci_suspend(struct platform_device *pdev, pm_message_t mesg)
@@ -1993,6 +1999,7 @@ static int tegra_ahci_port_resume(struct ata_port *ap)
 
 }
 
+#ifdef CONFIG_PM_SLEEP
 static int tegra_ahci_suspend_common(struct platform_device *pdev,
                pm_message_t mesg)
 {
@@ -2027,7 +2034,7 @@ static int tegra_ahci_suspend(struct device *dev)
        dev_dbg(dev, "Suspending...\n");
        return tegra_ahci_suspend_common(pdev, PMSG_SUSPEND);
 }
-
+#endif
 
 static int tegra_ahci_runtime_suspend(struct device *dev)
 {
@@ -2063,6 +2070,7 @@ static int tegra_ahci_runtime_suspend(struct device *dev)
        return err;
 }
 
+#ifdef CONFIG_PM_SLEEP
 static int tegra_ahci_resume(struct device *dev)
 {
        struct platform_device *pdev = g_tegra_hpriv->pdev;
@@ -2109,6 +2117,7 @@ static int tegra_ahci_resume(struct device *dev)
 #endif
        return 0;
 }
+#endif
 
 static int tegra_ahci_runtime_resume(struct device *dev)
 {
index cdf6bd0..ed1ed56 100644 (file)
@@ -1686,7 +1686,6 @@ static int tegra_dma_pm_resume(struct device *dev)
        tegra_dma_runtime_suspend(dev);
        return 0;
 }
-#endif
 
 int tegra_dma_save(void)
 {
@@ -1697,13 +1696,16 @@ int tegra_dma_restore(void)
 {
        return tegra_dma_pm_resume(dma_device);
 }
+#endif
 
 static const struct dev_pm_ops tegra_dma_dev_pm_ops = {
 #ifdef CONFIG_PM_RUNTIME
        .runtime_suspend = tegra_dma_runtime_suspend,
        .runtime_resume = tegra_dma_runtime_resume,
 #endif
+#ifdef CONFIG_PM_SLEEP
        SET_SYSTEM_SLEEP_PM_OPS(tegra_dma_pm_suspend, tegra_dma_pm_resume)
+#endif
 };
 
 static struct platform_driver tegra_dmac_driver = {
index 2d9ef01..3114200 100644 (file)
@@ -522,12 +522,14 @@ fail:
 #define tegra_update_lp1_gpio_wake NULL
 #endif
 
+#ifdef CONFIG_PM_SLEEP
 static struct syscore_ops tegra_gpio_syscore_ops = {
        .suspend = tegra_gpio_suspend,
        .resume = tegra_gpio_resume,
        .save = tegra_gpio_suspend,
        .restore = tegra_gpio_resume,
 };
+#endif
 
 static struct irq_chip tegra_gpio_irq_chip = {
        .name           = "GPIO",
@@ -698,7 +700,9 @@ static struct platform_driver tegra_gpio_driver = {
 
 static int __init tegra_gpio_init(void)
 {
+#ifdef CONFIG_PM_SLEEP
        register_syscore_ops(&tegra_gpio_syscore_ops);
+#endif
        return platform_driver_register(&tegra_gpio_driver);
 }
 postcore_initcall(tegra_gpio_init);
index e52e9f3..4ebcc98 100644 (file)
@@ -1318,6 +1318,7 @@ static const struct i2c_algorithm tegra_vi_i2c_algo = {
        .functionality  = tegra_vi_i2c_func,
 };
 
+#ifdef CONFIG_PM_SLEEP
 static int __tegra_vi_i2c_suspend_noirq(struct tegra_vi_i2c_dev *i2c_dev);
 static int __tegra_vi_i2c_resume_noirq(struct tegra_vi_i2c_dev *i2c_dev);
 
@@ -1334,6 +1335,7 @@ static int tegra_vi_i2c_pm_notifier(struct notifier_block *nb,
 
        return NOTIFY_OK;
 }
+#endif
 
 static struct tegra_i2c_platform_data *parse_i2c_tegra_dt(
        struct platform_device *pdev)
@@ -1598,9 +1600,11 @@ skip_pinctrl:
                return ret;
        }
 
+#ifdef CONFIG_PM_SLEEP
        i2c_dev->pm_nb.notifier_call = tegra_vi_i2c_pm_notifier;
 
        tegra_register_pm_notifier(&i2c_dev->pm_nb);
+#endif
 
        pm_runtime_enable(&i2c_dev->adapter.dev);
        of_i2c_register_devices(&i2c_dev->adapter);
index 98f7373..e541b4e 100644 (file)
@@ -421,6 +421,7 @@ static struct nvs_fn_dev bh1730_fn_dev = {
        .nvs_read                       = bh1730_nvs_read,
 };
 
+#ifdef CONFIG_PM_SLEEP
 static int bh1730_suspend(struct device *dev)
 {
        struct i2c_client *client = to_i2c_client(dev);
@@ -456,6 +457,7 @@ static int bh1730_resume(struct device *dev)
 }
 
 static SIMPLE_DEV_PM_OPS(bh1730_pm_ops, bh1730_suspend, bh1730_resume);
+#endif
 
 static void bh1730_shutdown(struct i2c_client *client)
 {
@@ -766,7 +768,9 @@ static struct i2c_driver bh1730_driver = {
                .name           = BH1730_NAME,
                .owner          = THIS_MODULE,
                .of_match_table = of_match_ptr(bh1730_of_match),
+#ifdef CONFIG_PM_SLEEP
                .pm             = &bh1730_pm_ops,
+#endif
        },
        .id_table       = bh1730_i2c_device_id,
 };
index b11826a..2b9cf46 100644 (file)
@@ -435,6 +435,7 @@ static struct nvs_fn_dev jsa_fn_dev = {
        .nvs_read                       = jsa_nvs_read,
 };
 
+#ifdef CONFIG_PM_SLEEP
 static int jsa_suspend(struct device *dev)
 {
        struct i2c_client *client = to_i2c_client(dev);
@@ -464,6 +465,7 @@ static int jsa_resume(struct device *dev)
 }
 
 static SIMPLE_DEV_PM_OPS(jsa_pm_ops, jsa_suspend, jsa_resume);
+#endif
 
 static void jsa_shutdown(struct i2c_client *client)
 {
@@ -743,7 +745,9 @@ static struct i2c_driver jsa_driver = {
                .name           = JSA_NAME,
                .owner          = THIS_MODULE,
                .of_match_table = of_match_ptr(jsa_of_match),
+#ifdef CONFIG_PM_SLEEP
                .pm             = &jsa_pm_ops,
+#endif
        },
        .id_table       = jsa_i2c_device_id,
 };
index 14d3f42..6fe2e24 100644 (file)
@@ -766,6 +766,7 @@ static struct nvs_fn_dev mx_fn_dev = {
        .nvs_read                       = mx_nvs_read,
 };
 
+#ifdef CONFIG_PM_SLEEP
 static int mx_suspend(struct device *dev)
 {
        struct i2c_client *client = to_i2c_client(dev);
@@ -821,6 +822,7 @@ static int mx_resume(struct device *dev)
 }
 
 static SIMPLE_DEV_PM_OPS(mx_pm_ops, mx_suspend, mx_resume);
+#endif
 
 static void mx_shutdown(struct i2c_client *client)
 {
@@ -1173,7 +1175,9 @@ static struct i2c_driver mx_driver = {
                .name           = MX_NAME,
                .owner          = THIS_MODULE,
                .of_match_table = of_match_ptr(mx_of_match),
+#ifdef CONFIG_PM_SLEEP
                .pm             = &mx_pm_ops,
+#endif
        },
        .id_table       = mx_i2c_device_id,
 };
index 7016929..75bf39c 100644 (file)
@@ -1030,6 +1030,7 @@ static struct nvs_fn_dev akm_fn_dev = {
        .nvs_read                       = akm_nvs_read,
 };
 
+#ifdef CONFIG_PM_SLEEP
 static int akm_suspend(struct device *dev)
 {
        struct i2c_client *client = to_i2c_client(dev);
@@ -1059,6 +1060,7 @@ static int akm_resume(struct device *dev)
 }
 
 static SIMPLE_DEV_PM_OPS(akm_pm_ops, akm_suspend, akm_resume);
+#endif
 
 static void akm_shutdown(struct i2c_client *client)
 {
@@ -1706,7 +1708,9 @@ static struct i2c_driver akm_driver = {
                .name                   = AKM_NAME,
                .owner                  = THIS_MODULE,
                .of_match_table         = of_match_ptr(akm_of_match),
+#ifdef CONFIG_PM_SLEEP
                .pm                     = &akm_pm_ops,
+#endif
        },
        .id_table                       = akm_i2c_device_id,
 };
index 4f56eff..6b61cc8 100644 (file)
@@ -1189,6 +1189,7 @@ static struct nvs_fn_dev bmp_fn_dev = {
        .nvs_read                       = bmp_nvs_read,
 };
 
+#ifdef CONFIG_PM_SLEEP
 static int bmp_suspend(struct device *dev)
 {
        struct i2c_client *client = to_i2c_client(dev);
@@ -1224,6 +1225,7 @@ static int bmp_resume(struct device *dev)
 }
 
 static SIMPLE_DEV_PM_OPS(bmp_pm_ops, bmp_suspend, bmp_resume);
+#endif
 
 static void bmp_shutdown(struct i2c_client *client)
 {
@@ -1958,7 +1960,9 @@ static struct i2c_driver bmp_driver = {
                .name                   = BMP_NAME,
                .owner                  = THIS_MODULE,
                .of_match_table         = of_match_ptr(bmp_of_match),
+#ifdef CONFIG_PM_SLEEP
                .pm                     = &bmp_pm_ops,
+#endif
        },
        .id_table                       = bmp_i2c_device_id,
 };
index da4b9b9..1a446d1 100644 (file)
@@ -745,8 +745,11 @@ static void gpio_remove_key(struct gpio_button_data *bdata)
        if (gpio_is_valid(bdata->button->gpio))
                gpio_free(bdata->button->gpio);
 }
+
+#ifdef CONFIG_PM_SLEEP
 static int gpio_keys_pm_notifier(struct notifier_block *nb,
        unsigned long event, void *data);
+#endif
 
 static int gpio_keys_probe(struct platform_device *pdev)
 {
@@ -823,8 +826,10 @@ static int gpio_keys_probe(struct platform_device *pdev)
 
        device_init_wakeup(&pdev->dev, wakeup);
 
+#ifdef CONFIG_PM_SLEEP
        ddata->pm_nb.notifier_call = gpio_keys_pm_notifier;
        tegra_register_pm_notifier(&ddata->pm_nb);
+#endif
 
        return 0;
 
index 7946058..8cfed3a 100644 (file)
@@ -71,8 +71,9 @@ static u32 gic_version;
 
 static void __iomem *gic_dist_base;
 static void __iomem *gic_cpu_base;
+#ifdef CONFIG_PM_SLEEP
 static u32 gic_affinity[INT_GIC_NR/4];
-
+#endif
 static int num_ictlrs;
 
 static void __iomem **ictlr_reg_base;
index 31c1150..34ab4b7 100644 (file)
@@ -107,7 +107,9 @@ MODULE_PARM_DESC(clockoverride, "SDIO card clock override");
 /* Maximum number of bcmsdh_sdmmc devices supported by driver */
 #define BCMSDH_SDMMC_MAX_DEVICES 1
 
+#ifdef CONFIG_PM_SLEEP
 extern volatile bool dhd_mmc_suspend;
+#endif
 
 static int sdioh_probe(struct sdio_func *func)
 {
@@ -345,7 +347,7 @@ static const struct sdio_device_id bcmsdh_sdmmc_ids[] = {
 
 MODULE_DEVICE_TABLE(sdio, bcmsdh_sdmmc_ids);
 
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)) && defined(CONFIG_PM)
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)) && defined(CONFIG_PM_SLEEP)
 static int bcmsdh_sdmmc_suspend(struct device *pdev)
 {
        int err;
@@ -424,7 +426,7 @@ static const struct dev_pm_ops bcmsdh_sdmmc_pm_ops = {
        .resume_noirq   = bcmsdh_sdmmc_resume_noirq,
 #endif
 };
-#endif  /* (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)) && defined(CONFIG_PM) */
+#endif  /* (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)) && defined(CONFIG_PM_SLEEP) */
 
 #if defined(BCMLXSDMMC)
 static struct semaphore *notify_semaphore = NULL;
@@ -471,11 +473,11 @@ static struct sdio_driver bcmsdh_sdmmc_driver = {
        .remove         = bcmsdh_sdmmc_remove,
        .name           = "bcmsdh_sdmmc",
        .id_table       = bcmsdh_sdmmc_ids,
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)) && defined(CONFIG_PM)
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)) && defined(CONFIG_PM_SLEEP)
        .drv = {
        .pm     = &bcmsdh_sdmmc_pm_ops,
        },
-#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)) && defined(CONFIG_PM) */
+#endif /* (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39)) && defined(CONFIG_PM_SLEEP) */
        };
 
 struct sdos_info {
index b2381e6..0344cf9 100644 (file)
@@ -123,7 +123,9 @@ obj-$(CONFIG_COMMON_CLK) += common_clock.o
 
 
 obj-$(CONFIG_TEGRA3_PM) += pm-t3.o
+ifeq ($(CONFIG_PM_SLEEP),y)
 obj-$(CONFIG_ARCH_TEGRA_21x_SOC) += wakeups-t21x.o
+endif
 
 
 obj-$(CONFIG_TEGRA_KFUSE) += kfuse.o
index 0b0efb6..8097c29 100644 (file)
@@ -1336,9 +1336,12 @@ static int __init tegra_dvfs_rail_start_scaling(void)
        unsigned long flags, rate;
        struct clk *c = tegra_get_clock_by_name("cpu");
        struct clk *dfll_cpu = tegra_get_clock_by_name("dfll_cpu");
+#ifdef CONFIG_PM_SLEEP
        bool init_dfll_first = tegra_dvfs_is_dfll_bypass() ||
                tegra_platform_is_fpga();
-
+#else
+    bool init_dfll_first = tegra_platform_is_fpga();
+#endif
        BUG_ON(!c);
        clk_lock_save(c, &flags);
 
index 7da2a9f..cff3e11 100644 (file)
@@ -1472,8 +1472,10 @@ static struct cpufreq_driver tegra_cpufreq_driver = {
 static int __init tegra_cpufreq_init(void)
 {
        int ret = 0;
+#ifdef CONFIG_PM_SLEEP
        unsigned int cpu_suspend_freq = 0;
        unsigned int i;
+#endif
 
        struct tegra_cpufreq_table_data *table_data =
                tegra_cpufreq_table_get();
@@ -1482,6 +1484,7 @@ static int __init tegra_cpufreq_init(void)
 
        freq_table = table_data->freq_table;
 
+#ifdef CONFIG_PM_SLEEP
        preserve_cpu_speed = table_data->preserve_across_suspend;
        cpu_suspend_freq = tegra_cpu_suspend_freq();
        if (cpu_suspend_freq == 0) {
@@ -1493,6 +1496,7 @@ static int __init tegra_cpufreq_init(void)
                }
                suspend_index = i;
        }
+#endif
 
        cpu_clk = clk_get_sys(NULL, "cpu");
        if (IS_ERR(cpu_clk))
index d2b9c55..ca25da4 100644 (file)
@@ -359,7 +359,9 @@ static int tegra_ape_power_on(struct generic_pm_domain *genpd)
         */
        clk_disable_unprepare(ape_pd->clk[ADSP_CLK]);
 
+#ifdef CONFIG_CPU_PM
        tegra_agic_restore_registers();
+#endif
 
        list_for_each_entry(pdd, &genpd->dev_list, list_node)
                TEGRA_PD_DEV_CALLBACK(resume, pdd->dev);
@@ -387,7 +389,9 @@ static int tegra_ape_power_off(struct generic_pm_domain *genpd)
        list_for_each_entry(pdd, &genpd->dev_list, list_node)
                TEGRA_PD_DEV_CALLBACK(suspend, pdd->dev);
 
+#ifdef CONFIG_CPU_PM
        tegra_agic_save_registers();
+#endif
 
        ape_pd = to_tegra_pd(genpd);
 
index 4deb97b..8915d91 100644 (file)
@@ -275,6 +275,7 @@ static inline void ptm_check_trace_stable(struct tracectx *t, int id, int bit)
 #define SAVE_RESTORE_PTM(reg) \
        (addr[cnt++] = readl_relaxed(reg_base + reg))
 
+#ifdef CONFIG_CPU_PM
 static void ptm_save(struct tracectx *t)
 {
        u32 *addr;
@@ -293,10 +294,12 @@ static void ptm_save(struct tracectx *t)
        PTM_REG_SAVE_RESTORE_LIST;
        rmb();
 }
+#endif
 
 #undef SAVE_RESTORE_PTM
 #define SAVE_RESTORE_PTM(reg) ptm_writel(t, id, addr[cnt++], reg)
 
+#ifdef CONFIG_CPU_PM
 static void ptm_restore(struct tracectx *t)
 {
        u32 *addr;
@@ -312,6 +315,7 @@ static void ptm_restore(struct tracectx *t)
 
        ptm_os_unlock(t, id);
 }
+#endif
 
 /* Initialise the PTM registers */
 static void ptm_init(void *p_info)
index ae5fbbc..d51e964 100644 (file)
@@ -587,6 +587,7 @@ static struct regulator_ops bq2419x_tegra_regulator_ops = {
        .set_current_limit = bq2419x_set_charging_current,
 };
 
+#ifdef CONFIG_PM_SLEEP
 static int bq2419x_set_charging_current_suspend(struct bq2419x_chip *bq2419x,
                        int in_current_limit)
 {
@@ -617,6 +618,7 @@ static int bq2419x_set_charging_current_suspend(struct bq2419x_chip *bq2419x,
        }
        return 0;
 }
+#endif
 
 static int bq2419x_reset_wdt(struct bq2419x_chip *bq2419x, const char *from)
 {
index 1dce55d..c1783c0 100644 (file)
@@ -781,6 +781,7 @@ static struct regulator_ops bq2419x_tegra_regulator_ops = {
        .set_current_limit = bq2419x_set_charging_current,
 };
 
+#ifdef CONFIG_PM_SLEEP
 static int bq2419x_set_charging_current_suspend(struct bq2419x_chip *bq2419x,
                        int in_current_limit)
 {
@@ -810,6 +811,7 @@ static int bq2419x_set_charging_current_suspend(struct bq2419x_chip *bq2419x,
        }
        return 0;
 }
+#endif
 
 static int bq2419x_reconfigure_charger_param(struct bq2419x_chip *bq2419x,
                const char *from)
index 7ee5601..b58ca3c 100644 (file)
@@ -220,6 +220,7 @@ static void softdog_platform_shutdown(struct platform_device *pdev)
        del_timer_sync(&swdt->watchdog_ticktock);
 }
 
+#ifdef CONFIG_PM_SLEEP
 static int softdog_platform_suspend(struct device *dev)
 {
        struct softdog_platform_wdt *swdt = dev_get_drvdata(dev);
@@ -246,6 +247,7 @@ static const struct dev_pm_ops softdog_platform_pm_ops = {
        SET_SYSTEM_SLEEP_PM_OPS(softdog_platform_suspend,
                        softdog_platform_resume)
 };
+#endif
 
 static struct of_device_id softdog_platform_of_match[] = {
        { .compatible = "softdog-platform", },
@@ -258,7 +260,9 @@ static struct platform_driver softdog_platform_driver = {
                .name = "softdog-platform",
                .owner = THIS_MODULE,
                .of_match_table = softdog_platform_of_match,
+#ifdef CONFIG_PM_SLEEP
                .pm = &softdog_platform_pm_ops,
+#endif
        },
        .probe = softdog_platform_probe,
        .remove = softdog_platform_remove,
index 7c537b0..cc1afa0 100644 (file)
@@ -44,11 +44,11 @@ void tegra_gic_affinity_to_cpu0(void);
 
 u32 tegra_gic_version(void);
 
+#if defined(CONFIG_PM_SLEEP)
 extern int *tegra_gpio_wake_table;
 extern int *tegra_irq_wake_table;
 extern int tegra_wake_table_len;
 
-#if defined(CONFIG_PM_SLEEP)
 int tegra_wakeup_table_init(void);
 u64 tegra_read_pmc_wake_status(void);
 int tegra_pm_irq_set_wake(int wake, int enable);
@@ -64,9 +64,6 @@ int tegra_disable_wake_source(int wake);
 #else
 static inline int tegra_wakeup_table_init(void)
 {
-       tegra_gpio_wake_table = NULL;
-       tegra_irq_wake_table = NULL;
-       tegra_wake_table_len = 0;
        return 0;
 }
 static inline int tegra_set_wake_gpio(unsigned int wake, int gpio)
index a9747fc..5220534 100644 (file)
@@ -21,6 +21,8 @@
 #ifndef __LINUX_SYSTEM_WAKEUP_H__
 #define __LINUX_SYSTEM_WAKEUP_H__
 
+#include <linux/err.h>
+
 #ifdef CONFIG_PM_SLEEP
 extern int get_wakeup_reason_irq(void);
 #else