linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BK PATCH] PCI fixes for 2.6.0-test6
@ 2003-09-30 22:34 Greg KH
  2003-09-30 22:35 ` [PATCH] " Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:34 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel

Hi,

Here are some PCI patches against 2.6.0-test6.  They mainly clean up the
pci power code by removing it entirely, as it is now done by the driver
core.  There are a few other minor janitorial fixes in here too.

Please pull from:
	bk://kernel.bkbits.net/gregkh/linux/pci-2.6

thanks,

greg k-h

p.s. I'll send these as patches in response to this email to lkml for
those who want to see them.


 drivers/pci/power.c                    |  159 ---------------------------------
 drivers/ide/pci/sc1200.c               |   61 ++++++------
 drivers/net/irda/vlsi_ir.c             |   10 --
 drivers/pci/Makefile                   |    1 
 drivers/pci/hotplug/cpqphp.h           |    1 
 drivers/pci/hotplug/pci_hotplug.h      |    1 
 drivers/pci/hotplug/pci_hotplug_core.c |   15 +--
 drivers/pci/pool.c                     |    1 
 drivers/pci/quirks.c                   |    3 
 drivers/scsi/nsp32.c                   |   10 --
 include/linux/pci.h                    |    1 
 11 files changed, 42 insertions(+), 221 deletions(-)
-----

<lxiep:us.ibm.com>:
  o PCI Hotplug: export hotplug_slots subsys

<rtjohnso:eecs.berkeley.edu>:
  o PCI: __init documetation

Alexey Dobriyan:
  o PCI: Remove setting TASK_RUNNING after schedule_timeout in /drivers/pci/

Patrick Mochel:
  o Remove ->save_state() in sc1200.c
  o Remove ->save_state() from vlsi_ir.c
  o Remove ->save_state() in nsp32.c
  o [pci] Really delete drivers/pci/power.c
  o [pci] Remove ->save_state() from struct pci_driver
  o [pci] Remove drivers/pci/power.c


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

* [PATCH] PCI fixes for 2.6.0-test6
  2003-09-30 22:34 [BK PATCH] PCI fixes for 2.6.0-test6 Greg KH
@ 2003-09-30 22:35 ` Greg KH
  2003-09-30 22:35   ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:35 UTC (permalink / raw)
  To: linux-kernel

ChangeSet 1.1305.5.1, 2003/09/26 09:11:22-07:00, mochel@osdl.org

[pci] Remove drivers/pci/power.c

The old-school method of power management, using the pm_send() interface, is 
superceded by the centralized driver model, which handles walking the tree
and calling each device's suspend/resume methods. 



 drivers/pci/Makefile |    1 -
 1 files changed, 1 deletion(-)


diff -Nru a/drivers/pci/Makefile b/drivers/pci/Makefile
--- a/drivers/pci/Makefile	Tue Sep 30 15:21:18 2003
+++ b/drivers/pci/Makefile	Tue Sep 30 15:21:18 2003
@@ -4,7 +4,6 @@
 
 obj-y		+= access.o bus.o probe.o remove.o pci.o pool.o quirks.o \
 			names.o pci-driver.o search.o pci-sysfs.o
-obj-$(CONFIG_PM)  += power.o
 obj-$(CONFIG_PROC_FS) += proc.o
 
 ifndef CONFIG_SPARC64


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

* Re: [PATCH] PCI fixes for 2.6.0-test6
  2003-09-30 22:35 ` [PATCH] " Greg KH
@ 2003-09-30 22:35   ` Greg KH
  2003-09-30 22:35     ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:35 UTC (permalink / raw)
  To: linux-kernel

ChangeSet 1.1305.5.2, 2003/09/26 09:18:44-07:00, mochel@osdl.org

[pci] Remove ->save_state() from struct pci_driver.

It is not called, and unused.


 include/linux/pci.h |    1 -
 1 files changed, 1 deletion(-)


diff -Nru a/include/linux/pci.h b/include/linux/pci.h
--- a/include/linux/pci.h	Tue Sep 30 15:21:11 2003
+++ b/include/linux/pci.h	Tue Sep 30 15:21:11 2003
@@ -515,7 +515,6 @@
 	const struct pci_device_id *id_table;	/* must be non-NULL for probe to be called */
 	int  (*probe)  (struct pci_dev *dev, const struct pci_device_id *id);	/* New device inserted */
 	void (*remove) (struct pci_dev *dev);	/* Device removed (NULL if not a hot-plug capable driver) */
-	int  (*save_state) (struct pci_dev *dev, u32 state);    /* Save Device Context */
 	int  (*suspend) (struct pci_dev *dev, u32 state);	/* Device suspended */
 	int  (*resume) (struct pci_dev *dev);	                /* Device woken up */
 	int  (*enable_wake) (struct pci_dev *dev, u32 state, int enable);   /* Enable wake event */


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

* Re: [PATCH] PCI fixes for 2.6.0-test6
  2003-09-30 22:35       ` Greg KH
@ 2003-09-30 22:35         ` Greg KH
  2003-09-30 22:35           ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:35 UTC (permalink / raw)
  To: linux-kernel

ChangeSet 1.1345, 2003/09/26 16:34:09-07:00, mochel@osdl.org

[PATCH] Remove ->save_state() from vlsi_ir.c

Remove the unneeded and uncalled struct pci_driver::save_state().


 drivers/net/irda/vlsi_ir.c |   10 ----------
 1 files changed, 10 deletions(-)


diff -Nru a/drivers/net/irda/vlsi_ir.c b/drivers/net/irda/vlsi_ir.c
--- a/drivers/net/irda/vlsi_ir.c	Tue Sep 30 15:20:50 2003
+++ b/drivers/net/irda/vlsi_ir.c	Tue Sep 30 15:20:50 2003
@@ -1859,15 +1859,6 @@
  * otherwise we might get cheated by pci-pm.
  */
 
-static int vlsi_irda_save_state(struct pci_dev *pdev, u32 state)
-{
-	if (state < 1 || state > 3 ) {
-		ERROR("%s - %s: invalid pm state request: %u\n",
-			__FUNCTION__, PCIDEV_NAME(pdev), state);
-		return -1;
-	}
-	return 0;
-}
 
 static int vlsi_irda_suspend(struct pci_dev *pdev, u32 state)
 {
@@ -1970,7 +1961,6 @@
 	.probe		= vlsi_irda_probe,
 	.remove		= __devexit_p(vlsi_irda_remove),
 #ifdef CONFIG_PM
-	.save_state	= vlsi_irda_save_state,
 	.suspend	= vlsi_irda_suspend,
 	.resume		= vlsi_irda_resume,
 #endif


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

* Re: [PATCH] PCI fixes for 2.6.0-test6
  2003-09-30 22:35     ` Greg KH
@ 2003-09-30 22:35       ` Greg KH
  2003-09-30 22:35         ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:35 UTC (permalink / raw)
  To: linux-kernel

ChangeSet 1.1344, 2003/09/26 16:33:35-07:00, mochel@osdl.org

[PATCH] Remove ->save_state() in nsp32.c

Remove the uncalled and unneeded struct pci_driver::save_state() in
drivers/scsi/nsp32.c


 drivers/scsi/nsp32.c |   10 ----------
 1 files changed, 10 deletions(-)


diff -Nru a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c
--- a/drivers/scsi/nsp32.c	Tue Sep 30 15:20:57 2003
+++ b/drivers/scsi/nsp32.c	Tue Sep 30 15:20:57 2003
@@ -3435,15 +3435,6 @@
  * Power Management
  */
 #ifdef CONFIG_PM
-/* Save Device Context */
-static int nsp32_save_state(struct pci_dev *pdev, u32 state)
-{
-	struct Scsi_Host *host = pci_get_drvdata(pdev);
-
-	nsp32_msg(KERN_INFO, "pci-save_state: stub, pdev=0x%p, state=%ld, slot=%s, host=0x%p", pdev, state, pci_name(pdev), host);
-
-	return 0;
-}
 
 /* Device suspended */
 static int nsp32_suspend(struct pci_dev *pdev, u32 state)
@@ -3573,7 +3564,6 @@
 	.probe		= nsp32_probe,
 	.remove		= __devexit_p(nsp32_remove),
 #ifdef CONFIG_PM
-	.save_state     = nsp32_save_state,
 	.suspend	= nsp32_suspend, 
 	.resume		= nsp32_resume, 
 	.enable_wake    = nsp32_enable_wake,


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

* Re: [PATCH] PCI fixes for 2.6.0-test6
  2003-09-30 22:35   ` Greg KH
@ 2003-09-30 22:35     ` Greg KH
  2003-09-30 22:35       ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:35 UTC (permalink / raw)
  To: linux-kernel

ChangeSet 1.1305.5.3, 2003/09/26 09:38:37-07:00, mochel@osdl.org

[pci] Really delete drivers/pci/power.c


 drivers/pci/power.c |  159 ----------------------------------------------------
 1 files changed, 159 deletions(-)


diff -Nru a/drivers/pci/power.c b/drivers/pci/power.c
--- a/drivers/pci/power.c	Tue Sep 30 15:21:04 2003
+++ /dev/null	Wed Dec 31 16:00:00 1969
@@ -1,159 +0,0 @@
-#include <linux/pci.h>
-#include <linux/pm.h>
-#include <linux/init.h>
-
-/*
- * PCI Power management..
- *
- * This needs to be done centralized, so that we power manage PCI
- * devices in the right order: we should not shut down PCI bridges
- * before we've shut down the devices behind them, and we should
- * not wake up devices before we've woken up the bridge to the
- * device.. Eh?
- *
- * We do not touch devices that don't have a driver that exports
- * a suspend/resume function. That is just too dangerous. If the default
- * PCI suspend/resume functions work for a device, the driver can
- * easily implement them (ie just have a suspend function that calls
- * the pci_set_power_state() function).
- */
-
-static int pci_pm_save_state_device(struct pci_dev *dev, u32 state)
-{
-	int error = 0;
-	if (dev) {
-		struct pci_driver *driver = dev->driver;
-		if (driver && driver->save_state) 
-			error = driver->save_state(dev,state);
-	}
-	return error;
-}
-
-static int pci_pm_suspend_device(struct pci_dev *dev, u32 state)
-{
-	int error = 0;
-	if (dev) {
-		struct pci_driver *driver = dev->driver;
-		if (driver && driver->suspend)
-			error = driver->suspend(dev,state);
-	}
-	return error;
-}
-
-static int pci_pm_resume_device(struct pci_dev *dev)
-{
-	int error = 0;
-	if (dev) {
-		struct pci_driver *driver = dev->driver;
-		if (driver && driver->resume)
-			error = driver->resume(dev);
-	}
-	return error;
-}
-
-static int pci_pm_save_state_bus(struct pci_bus *bus, u32 state)
-{
-	struct list_head *list;
-	int error = 0;
-
-	list_for_each(list, &bus->children) {
-		error = pci_pm_save_state_bus(pci_bus_b(list),state);
-		if (error) return error;
-	}
-	list_for_each(list, &bus->devices) {
-		error = pci_pm_save_state_device(pci_dev_b(list),state);
-		if (error) return error;
-	}
-	return 0;
-}
-
-static int pci_pm_suspend_bus(struct pci_bus *bus, u32 state)
-{
-	struct list_head *list;
-
-	/* Walk the bus children list */
-	list_for_each(list, &bus->children) 
-		pci_pm_suspend_bus(pci_bus_b(list),state);
-
-	/* Walk the device children list */
-	list_for_each(list, &bus->devices)
-		pci_pm_suspend_device(pci_dev_b(list),state);
-	return 0;
-}
-
-static int pci_pm_resume_bus(struct pci_bus *bus)
-{
-	struct list_head *list;
-
-	/* Walk the device children list */
-	list_for_each(list, &bus->devices)
-		pci_pm_resume_device(pci_dev_b(list));
-
-	/* And then walk the bus children */
-	list_for_each(list, &bus->children)
-		pci_pm_resume_bus(pci_bus_b(list));
-	return 0;
-}
-
-static int pci_pm_save_state(u32 state)
-{
-	struct pci_bus *bus = NULL;
-	int error = 0;
-
-	while ((bus = pci_find_next_bus(bus)) != NULL) {
-		error = pci_pm_save_state_bus(bus,state);
-		if (!error)
-			error = pci_pm_save_state_device(bus->self,state);
-	}
-	return error;
-}
-
-static int pci_pm_suspend(u32 state)
-{
-	struct pci_bus *bus = NULL;
-
-	while ((bus = pci_find_next_bus(bus)) != NULL) {
-		pci_pm_suspend_bus(bus,state);
-		pci_pm_suspend_device(bus->self,state);
-	}
-	return 0;
-}
-
-static int pci_pm_resume(void)
-{
-	struct pci_bus *bus = NULL;
-
-	while ((bus = pci_find_next_bus(bus)) != NULL) {
-		pci_pm_resume_device(bus->self);
-		pci_pm_resume_bus(bus);
-	}
-	return 0;
-}
-
-static int 
-pci_pm_callback(struct pm_dev *pm_device, pm_request_t rqst, void *data)
-{
-	int error = 0;
-
-	switch (rqst) {
-	case PM_SAVE_STATE:
-		error = pci_pm_save_state((unsigned long)data);
-		break;
-	case PM_SUSPEND:
-		error = pci_pm_suspend((unsigned long)data);
-		break;
-	case PM_RESUME:
-		error = pci_pm_resume();
-		break;
-	default: break;
-	}
-	return error;
-}
-
-static int __init pci_pm_init(void)
-{
-	pm_register(PM_PCI_DEV, 0, pci_pm_callback);
-	return 0;
-}
-
-subsys_initcall(pci_pm_init);


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

* Re: [PATCH] PCI fixes for 2.6.0-test6
  2003-09-30 22:35           ` Greg KH
@ 2003-09-30 22:35             ` Greg KH
  2003-09-30 22:35               ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:35 UTC (permalink / raw)
  To: linux-kernel

ChangeSet 1.1347, 2003/09/29 12:23:22-07:00, lxiep@us.ibm.com

[PATCH] PCI Hotplug: export hotplug_slots subsys

This is needed for the PPC64 PCI hotplug driver.


 drivers/pci/hotplug/pci_hotplug.h      |    1 +
 drivers/pci/hotplug/pci_hotplug_core.c |   15 ++++++++-------
 2 files changed, 9 insertions(+), 7 deletions(-)


diff -Nru a/drivers/pci/hotplug/pci_hotplug.h b/drivers/pci/hotplug/pci_hotplug.h
--- a/drivers/pci/hotplug/pci_hotplug.h	Tue Sep 30 15:20:35 2003
+++ b/drivers/pci/hotplug/pci_hotplug.h	Tue Sep 30 15:20:35 2003
@@ -145,6 +145,7 @@
 extern int pci_hp_deregister		(struct hotplug_slot *slot);
 extern int pci_hp_change_slot_info	(struct hotplug_slot *slot,
 					 struct hotplug_slot_info *info);
+extern struct subsystem pci_hotplug_slots_subsys;
 
 #endif
 
diff -Nru a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c
--- a/drivers/pci/hotplug/pci_hotplug_core.c	Tue Sep 30 15:20:35 2003
+++ b/drivers/pci/hotplug/pci_hotplug_core.c	Tue Sep 30 15:20:35 2003
@@ -69,7 +69,7 @@
 
 static LIST_HEAD(pci_hotplug_slot_list);
 
-static struct subsystem hotplug_slots_subsys;
+struct subsystem pci_hotplug_slots_subsys;
 
 static ssize_t hotplug_slot_attr_show(struct kobject *kobj,
 		struct attribute *attr, char *buf)
@@ -104,7 +104,7 @@
 	.release = &hotplug_slot_release,
 };
 
-static decl_subsys(hotplug_slots, &hotplug_slot_ktype, NULL);
+decl_subsys(pci_hotplug_slots, &hotplug_slot_ktype, NULL);
 
 
 /* these strings match up with the values in pci_bus_speed */
@@ -534,7 +534,7 @@
 		return -EINVAL;
 
 	strlcpy(slot->kobj.name, slot->name, KOBJ_NAME_LEN);
-	kobj_set_kset_s(slot, hotplug_slots_subsys);
+	kobj_set_kset_s(slot, pci_hotplug_slots_subsys);
 
 	/* this can fail if we have already registered a slot with the same name */
 	if (kobject_register(&slot->kobj)) {
@@ -629,8 +629,8 @@
 {
 	int result;
 
-	kset_set_kset_s(&hotplug_slots_subsys, pci_bus_type.subsys);
-	result = subsystem_register(&hotplug_slots_subsys);
+	kset_set_kset_s(&pci_hotplug_slots_subsys, pci_bus_type.subsys);
+	result = subsystem_register(&pci_hotplug_slots_subsys);
 	if (result) {
 		err("Register subsys with error %d\n", result);
 		goto exit;
@@ -645,7 +645,7 @@
 	goto exit;
 	
 err_subsys:
-	subsystem_unregister(&hotplug_slots_subsys);
+	subsystem_unregister(&pci_hotplug_slots_subsys);
 exit:
 	return result;
 }
@@ -653,7 +653,7 @@
 static void __exit pci_hotplug_exit (void)
 {
 	cpci_hotplug_exit();
-	subsystem_unregister(&hotplug_slots_subsys);
+	subsystem_unregister(&pci_hotplug_slots_subsys);
 }
 
 module_init(pci_hotplug_init);
@@ -665,6 +665,7 @@
 MODULE_PARM(debug, "i");
 MODULE_PARM_DESC(debug, "Debugging mode enabled or not");
 
+EXPORT_SYMBOL_GPL(pci_hotplug_slots_subsys);
 EXPORT_SYMBOL_GPL(pci_hp_register);
 EXPORT_SYMBOL_GPL(pci_hp_deregister);
 EXPORT_SYMBOL_GPL(pci_hp_change_slot_info);


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

* Re: [PATCH] PCI fixes for 2.6.0-test6
  2003-09-30 22:35             ` Greg KH
@ 2003-09-30 22:35               ` Greg KH
  2003-09-30 22:35                 ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:35 UTC (permalink / raw)
  To: linux-kernel

ChangeSet 1.1349, 2003/09/29 12:48:49-07:00, adobriyan@mail.ru

[PATCH] PCI: Remove setting TASK_RUNNING after schedule_timeout in /drivers/pci/


 drivers/pci/hotplug/cpqphp.h |    1 -
 drivers/pci/pool.c           |    1 -
 2 files changed, 2 deletions(-)


diff -Nru a/drivers/pci/hotplug/cpqphp.h b/drivers/pci/hotplug/cpqphp.h
--- a/drivers/pci/hotplug/cpqphp.h	Tue Sep 30 15:20:28 2003
+++ b/drivers/pci/hotplug/cpqphp.h	Tue Sep 30 15:20:28 2003
@@ -766,7 +766,6 @@
 	set_current_state(TASK_INTERRUPTIBLE);
 	/* Sleep for up to 1 second to wait for the LED to change. */
 	schedule_timeout(1*HZ);
-	set_current_state(TASK_RUNNING);
 	remove_wait_queue(&ctrl->queue, &wait);
 	if (signal_pending(current))
 		retval =  -EINTR;
diff -Nru a/drivers/pci/pool.c b/drivers/pci/pool.c
--- a/drivers/pci/pool.c	Tue Sep 30 15:20:28 2003
+++ b/drivers/pci/pool.c	Tue Sep 30 15:20:28 2003
@@ -296,7 +296,6 @@
 
 			schedule_timeout (POOL_TIMEOUT_JIFFIES);
 
-			current->state = TASK_RUNNING;
 			remove_wait_queue (&pool->waitq, &wait);
 			goto restart;
 		}


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

* Re: [PATCH] PCI fixes for 2.6.0-test6
  2003-09-30 22:35         ` Greg KH
@ 2003-09-30 22:35           ` Greg KH
  2003-09-30 22:35             ` Greg KH
  0 siblings, 1 reply; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:35 UTC (permalink / raw)
  To: linux-kernel

ChangeSet 1.1346, 2003/09/26 16:34:55-07:00, mochel@osdl.org

[PATCH] Remove ->save_state() in sc1200.c

This removes the uncalled and unneeded method struct
pci_driver::save_state(). The contents of ->save_state() were folded into
->suspend(), though the semantics don't seem exactly right - the hwifs
should not be iterated over there; the driver core should take care of
that. But, that code will never get executed as is, since neither function
should ever be called with (state == 0).


 drivers/ide/pci/sc1200.c |   61 +++++++++++++++++++++++------------------------
 1 files changed, 30 insertions(+), 31 deletions(-)


diff -Nru a/drivers/ide/pci/sc1200.c b/drivers/ide/pci/sc1200.c
--- a/drivers/ide/pci/sc1200.c	Tue Sep 30 15:20:43 2003
+++ b/drivers/ide/pci/sc1200.c	Tue Sep 30 15:20:43 2003
@@ -396,44 +396,44 @@
 	__u32		regs[4];
 } sc1200_saved_state_t;
 
-static int sc1200_save_state (struct pci_dev *dev, u32 state)
+
+static int sc1200_suspend (struct pci_dev *dev, u32 state)
 {
 	ide_hwif_t		*hwif = NULL;
 
-printk("SC1200: save_state(%u)\n", state);
-	if (state != 0)
-		return 0;	// we only save state when going from full power to less
-	//
-	// Loop over all interfaces that are part of this PCI device:
-	//
-	while ((hwif = lookup_pci_dev(hwif, dev)) != NULL) {
-		sc1200_saved_state_t	*ss;
-		unsigned int		basereg, r;
-		//
-		// allocate a permanent save area, if not already allocated
-		//
-		ss = (sc1200_saved_state_t *)hwif->config_data;
-		if (ss == NULL) {
-			ss = kmalloc(sizeof(sc1200_saved_state_t), GFP_KERNEL);
-			if (ss == NULL)
-				return -ENOMEM;
-			(sc1200_saved_state_t *)hwif->config_data = ss;
-		}
-		ss = (sc1200_saved_state_t *)hwif->config_data;
+	printk("SC1200: suspend(%u)\n", state);
+
+	if (state == 0) {
+		// we only save state when going from full power to less
+
 		//
-		// Save timing registers:  this may be unnecessary if BIOS also does it
+		// Loop over all interfaces that are part of this PCI device:
 		//
-		basereg = hwif->channel ? 0x50 : 0x40;
-		for (r = 0; r < 4; ++r) {
-			pci_read_config_dword (hwif->pci_dev, basereg + (r<<2), &ss->regs[r]);
+		while ((hwif = lookup_pci_dev(hwif, dev)) != NULL) {
+			sc1200_saved_state_t	*ss;
+			unsigned int		basereg, r;
+			//
+			// allocate a permanent save area, if not already allocated
+			//
+			ss = (sc1200_saved_state_t *)hwif->config_data;
+			if (ss == NULL) {
+				ss = kmalloc(sizeof(sc1200_saved_state_t), GFP_KERNEL);
+				if (ss == NULL)
+					return -ENOMEM;
+				(sc1200_saved_state_t *)hwif->config_data = ss;
+			}
+			ss = (sc1200_saved_state_t *)hwif->config_data;
+			//
+			// Save timing registers:  this may be unnecessary if 
+			// BIOS also does it
+			//
+			basereg = hwif->channel ? 0x50 : 0x40;
+			for (r = 0; r < 4; ++r) {
+				pci_read_config_dword (hwif->pci_dev, basereg + (r<<2), &ss->regs[r]);
+			}
 		}
 	}
-	return 0;
-}
 
-static int sc1200_suspend (struct pci_dev *dev, u32 state)
-{
-	printk("SC1200: suspend(%u)\n", state);
 	/* You don't need to iterate over disks -- sysfs should have done that for you already */ 
 
 	pci_disable_device(dev);
@@ -572,7 +572,6 @@
 	.name		= "SC1200 IDE",
 	.id_table	= sc1200_pci_tbl,
 	.probe		= sc1200_init_one,
-	.save_state	= sc1200_save_state,
 	.suspend	= sc1200_suspend,
 	.resume		= sc1200_resume,
 };


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

* Re: [PATCH] PCI fixes for 2.6.0-test6
  2003-09-30 22:35               ` Greg KH
@ 2003-09-30 22:35                 ` Greg KH
  0 siblings, 0 replies; 10+ messages in thread
From: Greg KH @ 2003-09-30 22:35 UTC (permalink / raw)
  To: linux-kernel

ChangeSet 1.1351, 2003/09/30 15:19:11-07:00, rtjohnso@eecs.berkeley.edu

[PATCH] PCI: __init documetation

It might not have prevented me from reporting the potential bug, but I
would've known you'd thought about it, it might help future developers,
and it's unlikely to become dangerously wrong.


 drivers/pci/quirks.c |    3 +++
 1 files changed, 3 insertions(+)


diff -Nru a/drivers/pci/quirks.c b/drivers/pci/quirks.c
--- a/drivers/pci/quirks.c	Tue Sep 30 15:20:20 2003
+++ b/drivers/pci/quirks.c	Tue Sep 30 15:20:20 2003
@@ -750,6 +750,9 @@
 
 /*
  *  The main table of quirks.
+ *
+ *  Note: any hooks for hotpluggable devices in this table must _NOT_
+ *        be declared __init.
  */
 
 static struct pci_fixup pci_fixups[] __devinitdata = {


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

end of thread, other threads:[~2003-09-30 23:01 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-30 22:34 [BK PATCH] PCI fixes for 2.6.0-test6 Greg KH
2003-09-30 22:35 ` [PATCH] " Greg KH
2003-09-30 22:35   ` Greg KH
2003-09-30 22:35     ` Greg KH
2003-09-30 22:35       ` Greg KH
2003-09-30 22:35         ` Greg KH
2003-09-30 22:35           ` Greg KH
2003-09-30 22:35             ` Greg KH
2003-09-30 22:35               ` Greg KH
2003-09-30 22:35                 ` Greg KH

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).