Re: FYI: my current bigdiff

From: Bjorn Helgaas
Date: Mon Sep 13 2004 - 17:10:01 EST


On Thursday 09 September 2004 10:13 pm, Kevin Fenzi wrote:
> After booting with the pci=routeirq as suggested wireless and usb
> played nice on suspend resume again.

Kevin, can you try the attached patch, please?

===== drivers/pcmcia/yenta_socket.c 1.59 vs edited =====
--- 1.59/drivers/pcmcia/yenta_socket.c 2004-08-22 08:39:15 -06:00
+++ edited/drivers/pcmcia/yenta_socket.c 2004-09-13 16:01:48 -06:00
@@ -1036,11 +1036,17 @@
static int yenta_dev_resume (struct pci_dev *dev)
{
struct yenta_socket *socket = pci_get_drvdata(dev);
+ int ret;

if (socket) {
- pci_set_power_state(dev, 0);
/* FIXME: pci_restore_state needs to have a better interface */
pci_restore_state(dev, socket->saved_state);
+ ret = pci_enable_device(dev);
+ if (ret < 0) {
+ printk(KERN_ERR "yenta %s: couldn't enable device (%d)\n",
+ pci_name(dev), ret);
+ return ret;
+ }
pci_write_config_dword(dev, 16*4, socket->saved_state[16]);
pci_write_config_dword(dev, 17*4, socket->saved_state[17]);

===== drivers/usb/core/hcd-pci.c 1.33 vs edited =====
--- 1.33/drivers/usb/core/hcd-pci.c 2004-06-30 11:06:30 -06:00
+++ edited/drivers/usb/core/hcd-pci.c 2004-09-13 15:54:54 -06:00
@@ -354,8 +354,14 @@
}
hcd->state = USB_STATE_RESUMING;

- if (has_pci_pm)
- pci_set_power_state (dev, 0);
+ pci_restore_state (dev, hcd->pci_state);
+ retval = pci_enable_device (dev);
+ if (retval < 0) {
+ dev_err (hcd->self.controller, "can't enable device! (%d)\n",
+ retval);
+ return retval;
+ }
+
dev->dev.power.power_state = 0;
retval = request_irq (dev->irq, usb_hcd_irq, SA_SHIRQ,
hcd->description, hcd);
@@ -365,7 +371,6 @@
return retval;
}
pci_set_master (dev);
- pci_restore_state (dev, hcd->pci_state);
#ifdef CONFIG_USB_SUSPEND
pci_enable_wake (dev, dev->current_state, 0);
pci_enable_wake (dev, 4, 0);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/