lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 28 Mar 2011 09:18:28 -0700
From:	Kevin Hilman <khilman@...com>
To:	"Rafael J. Wysocki" <rjw@...k.pl>
Cc:	LKML <linux-kernel@...r.kernel.org>, Greg KH <gregkh@...e.de>,
	Kay Sievers <kay.sievers@...e.de>,
	Linux PM mailing list <linux-pm@...ts.linux-foundation.org>,
	Russell King <linux@....linux.org.uk>,
	linux-omap@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
	Ben Dooks <ben-linux@...ff.org>
Subject: Re: [PATCH 2/7] ARM / OMAP: Use struct syscore_ops for "core" power management

"Rafael J. Wysocki" <rjw@...k.pl> writes:

> From: Rafael J. Wysocki <rjw@...k.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@...k.pl>

Acked-by: Kevin Hilman <khilman@...com>

Looks fine to me.  We're in the process of converting this driver to
runtime PM.  When that happens the syscore ops will be removed as well,
but I'm fine with this patch until we finish the runtime PM conversion.

Kevin

> ---
>  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);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ