lkml.org 
[lkml]   [2011]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/7] ARM / OMAP: Use struct syscore_ops for "core" power management
    Date
    From: Rafael J. Wysocki <rjw@sisk.pl>

    Replace the sysdev class and struct sys_device used for power
    management in the OMAP's GPIO code with a struct syscore_ops object
    which is simpler.

    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    ---
    arch/arm/plat-omap/gpio.c | 35 +++++++++--------------------------
    1 file changed, 9 insertions(+), 26 deletions(-)

    Index: linux-2.6/arch/arm/plat-omap/gpio.c
    ===================================================================
    --- linux-2.6.orig/arch/arm/plat-omap/gpio.c
    +++ linux-2.6/arch/arm/plat-omap/gpio.c
    @@ -17,7 +17,7 @@
    #include <linux/init.h>
    #include <linux/module.h>
    #include <linux/interrupt.h>
    -#include <linux/sysdev.h>
    +#include <linux/syscore_ops.h>
    #include <linux/err.h>
    #include <linux/clk.h>
    #include <linux/io.h>
    @@ -1379,9 +1379,7 @@ static const struct dev_pm_ops omap_mpui
    .resume_noirq = omap_mpuio_resume_noirq,
    };

    -/* use platform_driver for this, now that there's no longer any
    - * point to sys_device (other than not disturbing old code).
    - */
    +/* use platform_driver for this. */
    static struct platform_driver omap_mpuio_driver = {
    .driver = {
    .name = "mpuio",
    @@ -1754,7 +1752,7 @@ static int __devinit omap_gpio_probe(str
    }

    #if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2PLUS)
    -static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg)
    +static int omap_gpio_suspend(void)
    {
    int i;

    @@ -1804,12 +1802,12 @@ static int omap_gpio_suspend(struct sys_
    return 0;
    }

    -static int omap_gpio_resume(struct sys_device *dev)
    +static void omap_gpio_resume(void)
    {
    int i;

    if (!cpu_class_is_omap2() && !cpu_is_omap16xx())
    - return 0;
    + return;

    for (i = 0; i < gpio_bank_count; i++) {
    struct gpio_bank *bank = &gpio_bank[i];
    @@ -1845,21 +1843,13 @@ static int omap_gpio_resume(struct sys_d
    __raw_writel(bank->saved_wakeup, wake_set);
    spin_unlock_irqrestore(&bank->lock, flags);
    }
    -
    - return 0;
    }

    -static struct sysdev_class omap_gpio_sysclass = {
    - .name = "gpio",
    +static struct syscore_ops omap_gpio_syscore_ops = {
    .suspend = omap_gpio_suspend,
    .resume = omap_gpio_resume,
    };

    -static struct sys_device omap_gpio_device = {
    - .id = 0,
    - .cls = &omap_gpio_sysclass,
    -};
    -
    #endif

    #ifdef CONFIG_ARCH_OMAP2PLUS
    @@ -2117,21 +2107,14 @@ postcore_initcall(omap_gpio_drv_reg);

    static int __init omap_gpio_sysinit(void)
    {
    - int ret = 0;
    -
    mpuio_init();

    #if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2PLUS)
    - if (cpu_is_omap16xx() || cpu_class_is_omap2()) {
    - if (ret == 0) {
    - ret = sysdev_class_register(&omap_gpio_sysclass);
    - if (ret == 0)
    - ret = sysdev_register(&omap_gpio_device);
    - }
    - }
    + if (cpu_is_omap16xx() || cpu_class_is_omap2())
    + register_syscore_ops(&omap_gpio_syscore_ops);
    #endif

    - return ret;
    + return 0;
    }

    arch_initcall(omap_gpio_sysinit);


    \
     
     \ /
      Last update: 2011-03-28 01:35    [W:0.025 / U:31.704 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site