Index: chromeos/compat-wireless/drivers/net/wireless/orinoco/orinoco_pci.h |
diff --git a/chromeos/compat-wireless/drivers/net/wireless/orinoco/orinoco_pci.h b/chromeos/compat-wireless/drivers/net/wireless/orinoco/orinoco_pci.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ea7231af40a848be49f36f3e78a33b1a2c98ff14 |
--- /dev/null |
+++ b/chromeos/compat-wireless/drivers/net/wireless/orinoco/orinoco_pci.h |
@@ -0,0 +1,68 @@ |
+/* orinoco_pci.h |
+ * |
+ * Common code for all Orinoco drivers for PCI devices, including |
+ * both native PCI and PCMCIA-to-PCI bridges. |
+ * |
+ * Copyright (C) 2005, Pavel Roskin. |
+ * See main.c for license. |
+ */ |
+ |
+#ifndef _ORINOCO_PCI_H |
+#define _ORINOCO_PCI_H |
+ |
+#include <linux/netdevice.h> |
+ |
+/* Driver specific data */ |
+struct orinoco_pci_card { |
+ void __iomem *bridge_io; |
+ void __iomem *attr_io; |
+}; |
+ |
+#ifdef CONFIG_PM |
+static int orinoco_pci_suspend(struct pci_dev *pdev, pm_message_t state) |
+{ |
+ struct orinoco_private *priv = pci_get_drvdata(pdev); |
+ |
+ orinoco_down(priv); |
+ free_irq(pdev->irq, priv); |
+ pci_save_state(pdev); |
+ pci_disable_device(pdev); |
+ pci_set_power_state(pdev, PCI_D3hot); |
+ |
+ return 0; |
+} |
+ |
+static int orinoco_pci_resume(struct pci_dev *pdev) |
+{ |
+ struct orinoco_private *priv = pci_get_drvdata(pdev); |
+ struct net_device *dev = priv->ndev; |
+ int err; |
+ |
+ pci_set_power_state(pdev, 0); |
+ err = pci_enable_device(pdev); |
+ if (err) { |
+ printk(KERN_ERR "%s: pci_enable_device failed on resume\n", |
+ dev->name); |
+ return err; |
+ } |
+ pci_restore_state(pdev); |
+ |
+ err = request_irq(pdev->irq, orinoco_interrupt, IRQF_SHARED, |
+ dev->name, priv); |
+ if (err) { |
+ printk(KERN_ERR "%s: cannot re-allocate IRQ on resume\n", |
+ dev->name); |
+ pci_disable_device(pdev); |
+ return -EBUSY; |
+ } |
+ |
+ err = orinoco_up(priv); |
+ |
+ return err; |
+} |
+#else |
+#define orinoco_pci_suspend NULL |
+#define orinoco_pci_resume NULL |
+#endif |
+ |
+#endif /* _ORINOCO_PCI_H */ |