Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
net
wireless
orinoco
orinoco_pci.h
Go to the documentation of this file.
1
/* orinoco_pci.h
2
*
3
* Common code for all Orinoco drivers for PCI devices, including
4
* both native PCI and PCMCIA-to-PCI bridges.
5
*
6
* Copyright (C) 2005, Pavel Roskin.
7
* See main.c for license.
8
*/
9
10
#ifndef _ORINOCO_PCI_H
11
#define _ORINOCO_PCI_H
12
13
#include <linux/netdevice.h>
14
15
/* Driver specific data */
16
struct
orinoco_pci_card
{
17
void
__iomem
*
bridge_io
;
18
void
__iomem
*
attr_io
;
19
};
20
21
#ifdef CONFIG_PM
22
static
int
orinoco_pci_suspend
(
struct
pci_dev
*pdev,
pm_message_t
state
)
23
{
24
struct
orinoco_private
*
priv
= pci_get_drvdata(pdev);
25
26
orinoco_down
(priv);
27
free_irq
(pdev->
irq
, priv);
28
pci_save_state
(pdev);
29
pci_disable_device
(pdev);
30
pci_set_power_state
(pdev,
PCI_D3hot
);
31
32
return
0;
33
}
34
35
static
int
orinoco_pci_resume
(
struct
pci_dev
*pdev)
36
{
37
struct
orinoco_private
*
priv
= pci_get_drvdata(pdev);
38
struct
net_device
*
dev
= priv->
ndev
;
39
int
err
;
40
41
pci_set_power_state
(pdev, 0);
42
err =
pci_enable_device
(pdev);
43
if
(err) {
44
printk
(
KERN_ERR
"%s: pci_enable_device failed on resume\n"
,
45
dev->
name
);
46
return
err
;
47
}
48
pci_restore_state
(pdev);
49
50
err =
request_irq
(pdev->
irq
,
orinoco_interrupt
,
IRQF_SHARED
,
51
dev->
name
, priv);
52
if
(err) {
53
printk
(
KERN_ERR
"%s: cannot re-allocate IRQ on resume\n"
,
54
dev->
name
);
55
pci_disable_device
(pdev);
56
return
-
EBUSY
;
57
}
58
59
err =
orinoco_up
(priv);
60
61
return
err
;
62
}
63
#else
64
#define orinoco_pci_suspend NULL
65
#define orinoco_pci_resume NULL
66
#endif
67
68
#endif
/* _ORINOCO_PCI_H */
Generated on Thu Jan 10 2013 14:12:24 for Linux Kernel by
1.8.2