Blame view
drivers/pnp/base.h
5.82 KB
1f32ca31e PNP: convert reso... |
1 2 3 4 |
/* * Copyright (C) 2008 Hewlett-Packard Development Company, L.P. * Bjorn Helgaas <bjorn.helgaas@hp.com> */ |
1da177e4c Linux-2.6.12-rc2 |
5 |
extern spinlock_t pnp_lock; |
2df439013 PNP: convert bus ... |
6 |
extern const struct attribute_group *pnp_dev_groups[]; |
1da177e4c Linux-2.6.12-rc2 |
7 |
void *pnp_alloc(long size); |
62cfb298b PNP: make interfa... |
8 9 10 |
int pnp_register_protocol(struct pnp_protocol *protocol); void pnp_unregister_protocol(struct pnp_protocol *protocol); |
25eb84618 PNP: add pnp_eisa... |
11 12 |
#define PNP_EISA_ID_MASK 0x7fffffff void pnp_eisa_id_to_string(u32 id, char *str); |
620e112cf ACPI/PNP: A HID v... |
13 14 |
struct pnp_dev *pnp_alloc_dev(struct pnp_protocol *, int id, const char *pnpid); |
6bf2aab24 PNP: add pnp_allo... |
15 |
struct pnp_card *pnp_alloc_card(struct pnp_protocol *, int id, char *pnpid); |
62cfb298b PNP: make interfa... |
16 17 |
int pnp_add_device(struct pnp_dev *dev); |
620e112cf ACPI/PNP: A HID v... |
18 |
struct pnp_id *pnp_add_id(struct pnp_dev *dev, const char *id); |
62cfb298b PNP: make interfa... |
19 20 |
int pnp_add_card(struct pnp_card *card); |
62cfb298b PNP: make interfa... |
21 22 23 |
void pnp_remove_card(struct pnp_card *card); int pnp_add_card_device(struct pnp_card *card, struct pnp_dev *dev); void pnp_remove_card_device(struct pnp_dev *dev); |
a1802c429 PNP: make resourc... |
24 |
struct pnp_port { |
169aaffe8 PNP: increase I/O... |
25 26 27 28 |
resource_size_t min; /* min base number */ resource_size_t max; /* max base number */ resource_size_t align; /* align boundary */ resource_size_t size; /* size of range */ |
a1802c429 PNP: make resourc... |
29 |
unsigned char flags; /* port flags */ |
a1802c429 PNP: make resourc... |
30 31 32 |
}; #define PNP_IRQ_NR 256 |
7aefff518 PNP: introduce pn... |
33 |
typedef struct { DECLARE_BITMAP(bits, PNP_IRQ_NR); } pnp_irq_mask_t; |
a1802c429 PNP: make resourc... |
34 |
struct pnp_irq { |
7aefff518 PNP: introduce pn... |
35 |
pnp_irq_mask_t map; /* bitmap for IRQ lines */ |
a1802c429 PNP: make resourc... |
36 |
unsigned char flags; /* IRQ flags */ |
a1802c429 PNP: make resourc... |
37 38 39 40 41 |
}; struct pnp_dma { unsigned char map; /* bitmask for DMA channels */ unsigned char flags; /* DMA flags */ |
a1802c429 PNP: make resourc... |
42 43 44 |
}; struct pnp_mem { |
169aaffe8 PNP: increase I/O... |
45 46 47 48 |
resource_size_t min; /* min base number */ resource_size_t max; /* max base number */ resource_size_t align; /* align boundary */ resource_size_t size; /* size of range */ |
a1802c429 PNP: make resourc... |
49 |
unsigned char flags; /* memory flags */ |
a1802c429 PNP: make resourc... |
50 |
}; |
1f32ca31e PNP: convert reso... |
51 52 53 54 55 |
#define PNP_OPTION_DEPENDENT 0x80000000 #define PNP_OPTION_SET_MASK 0xffff #define PNP_OPTION_SET_SHIFT 12 #define PNP_OPTION_PRIORITY_MASK 0xfff #define PNP_OPTION_PRIORITY_SHIFT 0 |
a1802c429 PNP: make resourc... |
56 57 58 |
#define PNP_RES_PRIORITY_PREFERRED 0 #define PNP_RES_PRIORITY_ACCEPTABLE 1 #define PNP_RES_PRIORITY_FUNCTIONAL 2 |
1f32ca31e PNP: convert reso... |
59 |
#define PNP_RES_PRIORITY_INVALID PNP_OPTION_PRIORITY_MASK |
a1802c429 PNP: make resourc... |
60 61 |
struct pnp_option { |
1f32ca31e PNP: convert reso... |
62 63 64 65 66 67 68 69 70 71 |
struct list_head list; unsigned int flags; /* independent/dependent, set, priority */ unsigned long type; /* IORESOURCE_{IO,MEM,IRQ,DMA} */ union { struct pnp_port port; struct pnp_irq irq; struct pnp_dma dma; struct pnp_mem mem; } u; |
a1802c429 PNP: make resourc... |
72 |
}; |
1f32ca31e PNP: convert reso... |
73 |
int pnp_register_irq_resource(struct pnp_dev *dev, unsigned int option_flags, |
c227536b4 PNP: centralize r... |
74 |
pnp_irq_mask_t *map, unsigned char flags); |
1f32ca31e PNP: convert reso... |
75 |
int pnp_register_dma_resource(struct pnp_dev *dev, unsigned int option_flags, |
c227536b4 PNP: centralize r... |
76 |
unsigned char map, unsigned char flags); |
1f32ca31e PNP: convert reso... |
77 |
int pnp_register_port_resource(struct pnp_dev *dev, unsigned int option_flags, |
c227536b4 PNP: centralize r... |
78 79 80 |
resource_size_t min, resource_size_t max, resource_size_t align, resource_size_t size, unsigned char flags); |
1f32ca31e PNP: convert reso... |
81 |
int pnp_register_mem_resource(struct pnp_dev *dev, unsigned int option_flags, |
c227536b4 PNP: centralize r... |
82 83 84 |
resource_size_t min, resource_size_t max, resource_size_t align, resource_size_t size, unsigned char flags); |
1f32ca31e PNP: convert reso... |
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
static inline int pnp_option_is_dependent(struct pnp_option *option) { return option->flags & PNP_OPTION_DEPENDENT ? 1 : 0; } static inline unsigned int pnp_option_set(struct pnp_option *option) { return (option->flags >> PNP_OPTION_SET_SHIFT) & PNP_OPTION_SET_MASK; } static inline unsigned int pnp_option_priority(struct pnp_option *option) { return (option->flags >> PNP_OPTION_PRIORITY_SHIFT) & PNP_OPTION_PRIORITY_MASK; } static inline unsigned int pnp_new_dependent_set(struct pnp_dev *dev, int priority) { unsigned int flags; if (priority > PNP_RES_PRIORITY_FUNCTIONAL) { dev_warn(&dev->dev, "invalid dependent option priority %d " "clipped to %d", priority, PNP_RES_PRIORITY_INVALID); priority = PNP_RES_PRIORITY_INVALID; } flags = PNP_OPTION_DEPENDENT | ((dev->num_dependent_sets & PNP_OPTION_SET_MASK) << PNP_OPTION_SET_SHIFT) | ((priority & PNP_OPTION_PRIORITY_MASK) << PNP_OPTION_PRIORITY_SHIFT); dev->num_dependent_sets++; return flags; } char *pnp_option_priority_name(struct pnp_option *option); void dbg_pnp_show_option(struct pnp_dev *dev, struct pnp_option *option); |
62cfb298b PNP: make interfa... |
127 |
void pnp_init_resources(struct pnp_dev *dev); |
1da177e4c Linux-2.6.12-rc2 |
128 |
void pnp_fixup_device(struct pnp_dev *dev); |
1f32ca31e PNP: convert reso... |
129 |
void pnp_free_options(struct pnp_dev *dev); |
1da177e4c Linux-2.6.12-rc2 |
130 131 |
int __pnp_add_device(struct pnp_dev *dev); void __pnp_remove_device(struct pnp_dev *dev); |
f5d94ff01 PNP: pass resourc... |
132 133 134 |
int pnp_check_port(struct pnp_dev *dev, struct resource *res); int pnp_check_mem(struct pnp_dev *dev, struct resource *res); int pnp_check_irq(struct pnp_dev *dev, struct resource *res); |
586f83e2b pnp: only assign ... |
135 |
#ifdef CONFIG_ISA_DMA_API |
f5d94ff01 PNP: pass resourc... |
136 |
int pnp_check_dma(struct pnp_dev *dev, struct resource *res); |
586f83e2b pnp: only assign ... |
137 |
#endif |
81b5c75f0 PNP: add debug wh... |
138 |
|
9fdee4e02 PNP: add pnp_reso... |
139 |
char *pnp_resource_type_name(struct resource *res); |
81b5c75f0 PNP: add debug wh... |
140 |
void dbg_pnp_show_resources(struct pnp_dev *dev, char *desc); |
d948a8daa PNP: factor pnp_i... |
141 |
|
aee3ad815 PNP: replace pnp_... |
142 |
void pnp_free_resources(struct pnp_dev *dev); |
b563cf59c pnp: make the res... |
143 |
unsigned long pnp_resource_type(struct resource *res); |
02d83b5da PNP: make pnp_res... |
144 |
|
784f01d5b PNP: add struct p... |
145 |
struct pnp_resource { |
aee3ad815 PNP: replace pnp_... |
146 |
struct list_head list; |
784f01d5b PNP: add struct p... |
147 148 |
struct resource res; }; |
aee3ad815 PNP: replace pnp_... |
149 |
void pnp_free_resource(struct pnp_resource *pnp_res); |
dbddd0383 PNP: make generic... |
150 |
|
046d9ce68 ACPI: Move device... |
151 152 |
struct pnp_resource *pnp_add_resource(struct pnp_dev *dev, struct resource *res); |
dbddd0383 PNP: make generic... |
153 154 |
struct pnp_resource *pnp_add_irq_resource(struct pnp_dev *dev, int irq, int flags); |
dc16f5f2e PNP: make generic... |
155 156 |
struct pnp_resource *pnp_add_dma_resource(struct pnp_dev *dev, int dma, int flags); |
cc8c2e308 PNP: make generic... |
157 158 159 |
struct pnp_resource *pnp_add_io_resource(struct pnp_dev *dev, resource_size_t start, resource_size_t end, int flags); |
d6180f366 PNP: make generic... |
160 161 162 |
struct pnp_resource *pnp_add_mem_resource(struct pnp_dev *dev, resource_size_t start, resource_size_t end, int flags); |
7e0e9c042 PNPACPI: add bus ... |
163 164 165 |
struct pnp_resource *pnp_add_bus_resource(struct pnp_dev *dev, resource_size_t start, resource_size_t end); |
97ef062bb PNP: add CONFIG_P... |
166 167 168 169 170 171 172 173 174 175 |
extern int pnp_debug; #if defined(CONFIG_PNP_DEBUG_MESSAGES) #define pnp_dbg(dev, format, arg...) \ ({ if (pnp_debug) dev_printk(KERN_DEBUG, dev, format, ## arg); 0; }) #else #define pnp_dbg(dev, format, arg...) \ ({ if (0) dev_printk(KERN_DEBUG, dev, format, ## arg); 0; }) #endif |