public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3/8] ACPI: Use syscore_ops instead of sysdev class and sysdev
       [not found] ` <201103122212.40828.rjw@sisk.pl>
@ 2011-03-12 21:16   ` Rafael J. Wysocki
  2011-03-18 21:38     ` Len Brown
  0 siblings, 1 reply; 2+ messages in thread
From: Rafael J. Wysocki @ 2011-03-12 21:16 UTC (permalink / raw)
  To: LKML
  Cc: Len Brown, Greg KH, Kay Sievers, Jesse Barnes,
	Linux PM mailing list, H. Peter Anvin, mingo, tglx, Dave Jones,
	Alan Stern, Avi Kivity, ACPI Devel Mailing List

From: Rafael J. Wysocki <rjw@sisk.pl>

ACPI uses a sysdev class and a sysdev for executing
irqrouter_resume() before turning on interrupts on the boot CPU.
However, since irqrouter_resume() ignores its argument, the entire
mechanism may be replaced with a struct syscore_ops object which
is considerably simpler.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
 drivers/acpi/pci_link.c |   30 ++++++++----------------------
 1 file changed, 8 insertions(+), 22 deletions(-)

Index: linux-2.6/drivers/acpi/pci_link.c
===================================================================
--- linux-2.6.orig/drivers/acpi/pci_link.c
+++ linux-2.6/drivers/acpi/pci_link.c
@@ -29,7 +29,7 @@
  *	   for IRQ management (e.g. start()->_SRS).
  */
 
-#include <linux/sysdev.h>
+#include <linux/syscore_ops.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
@@ -757,14 +757,13 @@ static int acpi_pci_link_resume(struct a
 	return 0;
 }
 
-static int irqrouter_resume(struct sys_device *dev)
+static void irqrouter_resume(void)
 {
 	struct acpi_pci_link *link;
 
 	list_for_each_entry(link, &acpi_link_list, list) {
 		acpi_pci_link_resume(link);
 	}
-	return 0;
 }
 
 static int acpi_pci_link_remove(struct acpi_device *device, int type)
@@ -871,32 +870,19 @@ static int __init acpi_irq_balance_set(c
 
 __setup("acpi_irq_balance", acpi_irq_balance_set);
 
-/* FIXME: we will remove this interface after all drivers call pci_disable_device */
-static struct sysdev_class irqrouter_sysdev_class = {
-	.name = "irqrouter",
+static struct syscore_ops irqrouter_syscore_ops = {
 	.resume = irqrouter_resume,
 };
 
-static struct sys_device device_irqrouter = {
-	.id = 0,
-	.cls = &irqrouter_sysdev_class,
-};
-
-static int __init irqrouter_init_sysfs(void)
+static int __init irqrouter_init_ops(void)
 {
-	int error;
+	if (!acpi_disabled && !acpi_noirq)
+		register_syscore_ops(&irqrouter_syscore_ops);
 
-	if (acpi_disabled || acpi_noirq)
-		return 0;
-
-	error = sysdev_class_register(&irqrouter_sysdev_class);
-	if (!error)
-		error = sysdev_register(&device_irqrouter);
-
-	return error;
+	return 0;
 }
 
-device_initcall(irqrouter_init_sysfs);
+device_initcall(irqrouter_init_ops);
 
 static int __init acpi_pci_link_init(void)
 {


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH 3/8] ACPI: Use syscore_ops instead of sysdev class and sysdev
  2011-03-12 21:16   ` [PATCH 3/8] ACPI: Use syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
@ 2011-03-18 21:38     ` Len Brown
  0 siblings, 0 replies; 2+ messages in thread
From: Len Brown @ 2011-03-18 21:38 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Greg KH, LKML, Jesse Barnes, ACPI Devel Mailing List, mingo,
	Avi Kivity, H. Peter Anvin, Kay Sievers, Linux PM mailing list,
	tglx

applied

thanks,
Len Brown, Intel Open Source Technology Center

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-03-18 21:38 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <201103100131.58206.rjw@sisk.pl>
     [not found] ` <201103122212.40828.rjw@sisk.pl>
2011-03-12 21:16   ` [PATCH 3/8] ACPI: Use syscore_ops instead of sysdev class and sysdev Rafael J. Wysocki
2011-03-18 21:38     ` Len Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox