diff options
author | Tony Luck <tony.luck@intel.com> | 2005-10-31 13:51:57 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2005-10-31 13:51:57 -0500 |
commit | c7fb577e2a6cb04732541f2dc402bd46747f7558 (patch) | |
tree | df3b1a1922ed13bfbcc45d08650c38beeb1a7bd1 /include/linux | |
parent | 9cec58dc138d6fcad9f447a19c8ff69f6540e667 (diff) | |
parent | 581c1b14394aee60aff46ea67d05483261ed6527 (diff) |
manual update from upstream:
Applied Al's change 06a544971fad0992fe8b92c5647538d573089dd4
to new location of swiotlb.c
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'include/linux')
111 files changed, 2791 insertions, 1171 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h index a5b74efab067..d2873b732bb1 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
@@ -42,13 +42,18 @@ enum { | |||
42 | ATA_SECT_SIZE = 512, | 42 | ATA_SECT_SIZE = 512, |
43 | 43 | ||
44 | ATA_ID_WORDS = 256, | 44 | ATA_ID_WORDS = 256, |
45 | ATA_ID_PROD_OFS = 27, | ||
46 | ATA_ID_FW_REV_OFS = 23, | ||
47 | ATA_ID_SERNO_OFS = 10, | 45 | ATA_ID_SERNO_OFS = 10, |
48 | ATA_ID_MAJOR_VER = 80, | 46 | ATA_ID_FW_REV_OFS = 23, |
49 | ATA_ID_PIO_MODES = 64, | 47 | ATA_ID_PROD_OFS = 27, |
48 | ATA_ID_OLD_PIO_MODES = 51, | ||
49 | ATA_ID_FIELD_VALID = 53, | ||
50 | ATA_ID_MWDMA_MODES = 63, | 50 | ATA_ID_MWDMA_MODES = 63, |
51 | ATA_ID_PIO_MODES = 64, | ||
52 | ATA_ID_EIDE_DMA_MIN = 65, | ||
53 | ATA_ID_EIDE_PIO = 67, | ||
54 | ATA_ID_EIDE_PIO_IORDY = 68, | ||
51 | ATA_ID_UDMA_MODES = 88, | 55 | ATA_ID_UDMA_MODES = 88, |
56 | ATA_ID_MAJOR_VER = 80, | ||
52 | ATA_ID_PIO4 = (1 << 1), | 57 | ATA_ID_PIO4 = (1 << 1), |
53 | 58 | ||
54 | ATA_PCI_CTL_OFS = 2, | 59 | ATA_PCI_CTL_OFS = 2, |
@@ -128,10 +133,15 @@ enum { | |||
128 | ATA_CMD_PIO_READ_EXT = 0x24, | 133 | ATA_CMD_PIO_READ_EXT = 0x24, |
129 | ATA_CMD_PIO_WRITE = 0x30, | 134 | ATA_CMD_PIO_WRITE = 0x30, |
130 | ATA_CMD_PIO_WRITE_EXT = 0x34, | 135 | ATA_CMD_PIO_WRITE_EXT = 0x34, |
136 | ATA_CMD_READ_MULTI = 0xC4, | ||
137 | ATA_CMD_READ_MULTI_EXT = 0x29, | ||
138 | ATA_CMD_WRITE_MULTI = 0xC5, | ||
139 | ATA_CMD_WRITE_MULTI_EXT = 0x39, | ||
131 | ATA_CMD_SET_FEATURES = 0xEF, | 140 | ATA_CMD_SET_FEATURES = 0xEF, |
132 | ATA_CMD_PACKET = 0xA0, | 141 | ATA_CMD_PACKET = 0xA0, |
133 | ATA_CMD_VERIFY = 0x40, | 142 | ATA_CMD_VERIFY = 0x40, |
134 | ATA_CMD_VERIFY_EXT = 0x42, | 143 | ATA_CMD_VERIFY_EXT = 0x42, |
144 | ATA_CMD_INIT_DEV_PARAMS = 0x91, | ||
135 | 145 | ||
136 | /* SETFEATURES stuff */ | 146 | /* SETFEATURES stuff */ |
137 | SETFEATURES_XFER = 0x03, | 147 | SETFEATURES_XFER = 0x03, |
@@ -146,14 +156,14 @@ enum { | |||
146 | XFER_MW_DMA_2 = 0x22, | 156 | XFER_MW_DMA_2 = 0x22, |
147 | XFER_MW_DMA_1 = 0x21, | 157 | XFER_MW_DMA_1 = 0x21, |
148 | XFER_MW_DMA_0 = 0x20, | 158 | XFER_MW_DMA_0 = 0x20, |
159 | XFER_SW_DMA_2 = 0x12, | ||
160 | XFER_SW_DMA_1 = 0x11, | ||
161 | XFER_SW_DMA_0 = 0x10, | ||
149 | XFER_PIO_4 = 0x0C, | 162 | XFER_PIO_4 = 0x0C, |
150 | XFER_PIO_3 = 0x0B, | 163 | XFER_PIO_3 = 0x0B, |
151 | XFER_PIO_2 = 0x0A, | 164 | XFER_PIO_2 = 0x0A, |
152 | XFER_PIO_1 = 0x09, | 165 | XFER_PIO_1 = 0x09, |
153 | XFER_PIO_0 = 0x08, | 166 | XFER_PIO_0 = 0x08, |
154 | XFER_SW_DMA_2 = 0x12, | ||
155 | XFER_SW_DMA_1 = 0x11, | ||
156 | XFER_SW_DMA_0 = 0x10, | ||
157 | XFER_PIO_SLOW = 0x00, | 167 | XFER_PIO_SLOW = 0x00, |
158 | 168 | ||
159 | /* ATAPI stuff */ | 169 | /* ATAPI stuff */ |
@@ -181,6 +191,7 @@ enum { | |||
181 | ATA_TFLAG_ISADDR = (1 << 1), /* enable r/w to nsect/lba regs */ | 191 | ATA_TFLAG_ISADDR = (1 << 1), /* enable r/w to nsect/lba regs */ |
182 | ATA_TFLAG_DEVICE = (1 << 2), /* enable r/w to device reg */ | 192 | ATA_TFLAG_DEVICE = (1 << 2), /* enable r/w to device reg */ |
183 | ATA_TFLAG_WRITE = (1 << 3), /* data dir: host->dev==1 (write) */ | 193 | ATA_TFLAG_WRITE = (1 << 3), /* data dir: host->dev==1 (write) */ |
194 | ATA_TFLAG_LBA = (1 << 4), /* enable LBA */ | ||
184 | }; | 195 | }; |
185 | 196 | ||
186 | enum ata_tf_protocols { | 197 | enum ata_tf_protocols { |
@@ -250,7 +261,19 @@ struct ata_taskfile { | |||
250 | ((u64) (id)[(n) + 1] << 16) | \ | 261 | ((u64) (id)[(n) + 1] << 16) | \ |
251 | ((u64) (id)[(n) + 0]) ) | 262 | ((u64) (id)[(n) + 0]) ) |
252 | 263 | ||
253 | static inline int atapi_cdb_len(u16 *dev_id) | 264 | static inline int ata_id_current_chs_valid(const u16 *id) |
265 | { | ||
266 | /* For ATA-1 devices, if the INITIALIZE DEVICE PARAMETERS command | ||
267 | has not been issued to the device then the values of | ||
268 | id[54] to id[56] are vendor specific. */ | ||
269 | return (id[53] & 0x01) && /* Current translation valid */ | ||
270 | id[54] && /* cylinders in current translation */ | ||
271 | id[55] && /* heads in current translation */ | ||
272 | id[55] <= 16 && | ||
273 | id[56]; /* sectors in current translation */ | ||
274 | } | ||
275 | |||
276 | static inline int atapi_cdb_len(const u16 *dev_id) | ||
254 | { | 277 | { |
255 | u16 tmp = dev_id[0] & 0x3; | 278 | u16 tmp = dev_id[0] & 0x3; |
256 | switch (tmp) { | 279 | switch (tmp) { |
@@ -260,7 +283,7 @@ static inline int atapi_cdb_len(u16 *dev_id) | |||
260 | } | 283 | } |
261 | } | 284 | } |
262 | 285 | ||
263 | static inline int is_atapi_taskfile(struct ata_taskfile *tf) | 286 | static inline int is_atapi_taskfile(const struct ata_taskfile *tf) |
264 | { | 287 | { |
265 | return (tf->protocol == ATA_PROT_ATAPI) || | 288 | return (tf->protocol == ATA_PROT_ATAPI) || |
266 | (tf->protocol == ATA_PROT_ATAPI_NODATA) || | 289 | (tf->protocol == ATA_PROT_ATAPI_NODATA) || |
diff --git a/include/linux/audit.h b/include/linux/audit.h index b2a2509bd7ea..da3c01955f3d 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
@@ -260,11 +260,11 @@ extern int audit_filter_user(struct netlink_skb_parms *cb, int type); | |||
260 | #ifdef CONFIG_AUDIT | 260 | #ifdef CONFIG_AUDIT |
261 | /* These are defined in audit.c */ | 261 | /* These are defined in audit.c */ |
262 | /* Public API */ | 262 | /* Public API */ |
263 | extern void audit_log(struct audit_context *ctx, int gfp_mask, | 263 | extern void audit_log(struct audit_context *ctx, gfp_t gfp_mask, |
264 | int type, const char *fmt, ...) | 264 | int type, const char *fmt, ...) |
265 | __attribute__((format(printf,4,5))); | 265 | __attribute__((format(printf,4,5))); |
266 | 266 | ||
267 | extern struct audit_buffer *audit_log_start(struct audit_context *ctx, int gfp_mask, int type); | 267 | extern struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int type); |
268 | extern void audit_log_format(struct audit_buffer *ab, | 268 | extern void audit_log_format(struct audit_buffer *ab, |
269 | const char *fmt, ...) | 269 | const char *fmt, ...) |
270 | __attribute__((format(printf,2,3))); | 270 | __attribute__((format(printf,2,3))); |
diff --git a/include/linux/bio.h b/include/linux/bio.h index 3344b4e8e43a..685fd3720df5 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h | |||
@@ -301,7 +301,7 @@ extern struct bio *bio_map_user_iov(struct request_queue *, | |||
301 | struct sg_iovec *, int, int); | 301 | struct sg_iovec *, int, int); |
302 | extern void bio_unmap_user(struct bio *); | 302 | extern void bio_unmap_user(struct bio *); |
303 | extern struct bio *bio_map_kern(struct request_queue *, void *, unsigned int, | 303 | extern struct bio *bio_map_kern(struct request_queue *, void *, unsigned int, |
304 | unsigned int); | 304 | gfp_t); |
305 | extern void bio_set_pages_dirty(struct bio *bio); | 305 | extern void bio_set_pages_dirty(struct bio *bio); |
306 | extern void bio_check_pages_dirty(struct bio *bio); | 306 | extern void bio_check_pages_dirty(struct bio *bio); |
307 | extern struct bio *bio_copy_user(struct request_queue *, unsigned long, unsigned int, int); | 307 | extern struct bio *bio_copy_user(struct request_queue *, unsigned long, unsigned int, int); |
diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h index 86dd5502b05c..7d8ff97b3e92 100644 --- a/include/linux/bitmap.h +++ b/include/linux/bitmap.h | |||
@@ -40,6 +40,8 @@ | |||
40 | * bitmap_weight(src, nbits) Hamming Weight: number set bits | 40 | * bitmap_weight(src, nbits) Hamming Weight: number set bits |
41 | * bitmap_shift_right(dst, src, n, nbits) *dst = *src >> n | 41 | * bitmap_shift_right(dst, src, n, nbits) *dst = *src >> n |
42 | * bitmap_shift_left(dst, src, n, nbits) *dst = *src << n | 42 | * bitmap_shift_left(dst, src, n, nbits) *dst = *src << n |
43 | * bitmap_remap(dst, src, old, new, nbits) *dst = map(old, new)(src) | ||
44 | * bitmap_bitremap(oldbit, old, new, nbits) newbit = map(old, new)(oldbit) | ||
43 | * bitmap_scnprintf(buf, len, src, nbits) Print bitmap src to buf | 45 | * bitmap_scnprintf(buf, len, src, nbits) Print bitmap src to buf |
44 | * bitmap_parse(ubuf, ulen, dst, nbits) Parse bitmap dst from user buf | 46 | * bitmap_parse(ubuf, ulen, dst, nbits) Parse bitmap dst from user buf |
45 | * bitmap_scnlistprintf(buf, len, src, nbits) Print bitmap src as list to buf | 47 | * bitmap_scnlistprintf(buf, len, src, nbits) Print bitmap src as list to buf |
@@ -104,6 +106,10 @@ extern int bitmap_scnlistprintf(char *buf, unsigned int len, | |||
104 | const unsigned long *src, int nbits); | 106 | const unsigned long *src, int nbits); |
105 | extern int bitmap_parselist(const char *buf, unsigned long *maskp, | 107 | extern int bitmap_parselist(const char *buf, unsigned long *maskp, |
106 | int nmaskbits); | 108 | int nmaskbits); |
109 | extern void bitmap_remap(unsigned long *dst, const unsigned long *src, | ||
110 | const unsigned long *old, const unsigned long *new, int bits); | ||
111 | extern int bitmap_bitremap(int oldbit, | ||
112 | const unsigned long *old, const unsigned long *new, int bits); | ||
107 | extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order); | 113 | extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order); |
108 | extern void bitmap_release_region(unsigned long *bitmap, int pos, int order); | 114 | extern void bitmap_release_region(unsigned long *bitmap, int pos, int order); |
109 | extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order); | 115 | extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order); |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index efdc9b5bc05c..025a7f084dbd 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -96,8 +96,8 @@ struct io_context { | |||
96 | 96 | ||
97 | void put_io_context(struct io_context *ioc); | 97 | void put_io_context(struct io_context *ioc); |
98 | void exit_io_context(void); | 98 | void exit_io_context(void); |
99 | struct io_context *current_io_context(int gfp_flags); | 99 | struct io_context *current_io_context(gfp_t gfp_flags); |
100 | struct io_context *get_io_context(int gfp_flags); | 100 | struct io_context *get_io_context(gfp_t gfp_flags); |
101 | void copy_io_context(struct io_context **pdst, struct io_context **psrc); | 101 | void copy_io_context(struct io_context **pdst, struct io_context **psrc); |
102 | void swap_io_context(struct io_context **ioc1, struct io_context **ioc2); | 102 | void swap_io_context(struct io_context **ioc1, struct io_context **ioc2); |
103 | 103 | ||
@@ -107,9 +107,9 @@ typedef void (rq_end_io_fn)(struct request *); | |||
107 | struct request_list { | 107 | struct request_list { |
108 | int count[2]; | 108 | int count[2]; |
109 | int starved[2]; | 109 | int starved[2]; |
110 | int elvpriv; | ||
110 | mempool_t *rq_pool; | 111 | mempool_t *rq_pool; |
111 | wait_queue_head_t wait[2]; | 112 | wait_queue_head_t wait[2]; |
112 | wait_queue_head_t drain; | ||
113 | }; | 113 | }; |
114 | 114 | ||
115 | #define BLK_MAX_CDB 16 | 115 | #define BLK_MAX_CDB 16 |
@@ -203,6 +203,7 @@ struct request { | |||
203 | enum rq_flag_bits { | 203 | enum rq_flag_bits { |
204 | __REQ_RW, /* not set, read. set, write */ | 204 | __REQ_RW, /* not set, read. set, write */ |
205 | __REQ_FAILFAST, /* no low level driver retries */ | 205 | __REQ_FAILFAST, /* no low level driver retries */ |
206 | __REQ_SORTED, /* elevator knows about this request */ | ||
206 | __REQ_SOFTBARRIER, /* may not be passed by ioscheduler */ | 207 | __REQ_SOFTBARRIER, /* may not be passed by ioscheduler */ |
207 | __REQ_HARDBARRIER, /* may not be passed by drive either */ | 208 | __REQ_HARDBARRIER, /* may not be passed by drive either */ |
208 | __REQ_CMD, /* is a regular fs rw request */ | 209 | __REQ_CMD, /* is a regular fs rw request */ |
@@ -210,6 +211,7 @@ enum rq_flag_bits { | |||
210 | __REQ_STARTED, /* drive already may have started this one */ | 211 | __REQ_STARTED, /* drive already may have started this one */ |
211 | __REQ_DONTPREP, /* don't call prep for this one */ | 212 | __REQ_DONTPREP, /* don't call prep for this one */ |
212 | __REQ_QUEUED, /* uses queueing */ | 213 | __REQ_QUEUED, /* uses queueing */ |
214 | __REQ_ELVPRIV, /* elevator private data attached */ | ||
213 | /* | 215 | /* |
214 | * for ATA/ATAPI devices | 216 | * for ATA/ATAPI devices |
215 | */ | 217 | */ |
@@ -235,6 +237,7 @@ enum rq_flag_bits { | |||
235 | 237 | ||
236 | #define REQ_RW (1 << __REQ_RW) | 238 | #define REQ_RW (1 << __REQ_RW) |
237 | #define REQ_FAILFAST (1 << __REQ_FAILFAST) | 239 | #define REQ_FAILFAST (1 << __REQ_FAILFAST) |
240 | #define REQ_SORTED (1 << __REQ_SORTED) | ||
238 | #define REQ_SOFTBARRIER (1 << __REQ_SOFTBARRIER) | 241 | #define REQ_SOFTBARRIER (1 << __REQ_SOFTBARRIER) |
239 | #define REQ_HARDBARRIER (1 << __REQ_HARDBARRIER) | 242 | #define REQ_HARDBARRIER (1 << __REQ_HARDBARRIER) |
240 | #define REQ_CMD (1 << __REQ_CMD) | 243 | #define REQ_CMD (1 << __REQ_CMD) |
@@ -242,6 +245,7 @@ enum rq_flag_bits { | |||
242 | #define REQ_STARTED (1 << __REQ_STARTED) | 245 | #define REQ_STARTED (1 << __REQ_STARTED) |
243 | #define REQ_DONTPREP (1 << __REQ_DONTPREP) | 246 | #define REQ_DONTPREP (1 << __REQ_DONTPREP) |
244 | #define REQ_QUEUED (1 << __REQ_QUEUED) | 247 | #define REQ_QUEUED (1 << __REQ_QUEUED) |
248 | #define REQ_ELVPRIV (1 << __REQ_ELVPRIV) | ||
245 | #define REQ_PC (1 << __REQ_PC) | 249 | #define REQ_PC (1 << __REQ_PC) |
246 | #define REQ_BLOCK_PC (1 << __REQ_BLOCK_PC) | 250 | #define REQ_BLOCK_PC (1 << __REQ_BLOCK_PC) |
247 | #define REQ_SENSE (1 << __REQ_SENSE) | 251 | #define REQ_SENSE (1 << __REQ_SENSE) |
@@ -333,6 +337,12 @@ struct request_queue | |||
333 | end_flush_fn *end_flush_fn; | 337 | end_flush_fn *end_flush_fn; |
334 | 338 | ||
335 | /* | 339 | /* |
340 | * Dispatch queue sorting | ||
341 | */ | ||
342 | sector_t end_sector; | ||
343 | struct request *boundary_rq; | ||
344 | |||
345 | /* | ||
336 | * Auto-unplugging state | 346 | * Auto-unplugging state |
337 | */ | 347 | */ |
338 | struct timer_list unplug_timer; | 348 | struct timer_list unplug_timer; |
@@ -354,7 +364,7 @@ struct request_queue | |||
354 | * queue needs bounce pages for pages above this limit | 364 | * queue needs bounce pages for pages above this limit |
355 | */ | 365 | */ |
356 | unsigned long bounce_pfn; | 366 | unsigned long bounce_pfn; |
357 | unsigned int bounce_gfp; | 367 | gfp_t bounce_gfp; |
358 | 368 | ||
359 | /* | 369 | /* |
360 | * various queue flags, see QUEUE_* below | 370 | * various queue flags, see QUEUE_* below |
@@ -405,8 +415,6 @@ struct request_queue | |||
405 | unsigned int sg_reserved_size; | 415 | unsigned int sg_reserved_size; |
406 | int node; | 416 | int node; |
407 | 417 | ||
408 | struct list_head drain_list; | ||
409 | |||
410 | /* | 418 | /* |
411 | * reserved for flush operations | 419 | * reserved for flush operations |
412 | */ | 420 | */ |
@@ -434,7 +442,7 @@ enum { | |||
434 | #define QUEUE_FLAG_DEAD 5 /* queue being torn down */ | 442 | #define QUEUE_FLAG_DEAD 5 /* queue being torn down */ |
435 | #define QUEUE_FLAG_REENTER 6 /* Re-entrancy avoidance */ | 443 | #define QUEUE_FLAG_REENTER 6 /* Re-entrancy avoidance */ |
436 | #define QUEUE_FLAG_PLUGGED 7 /* queue is plugged */ | 444 | #define QUEUE_FLAG_PLUGGED 7 /* queue is plugged */ |
437 | #define QUEUE_FLAG_DRAIN 8 /* draining queue for sched switch */ | 445 | #define QUEUE_FLAG_ELVSWITCH 8 /* don't use elevator, just do FIFO */ |
438 | #define QUEUE_FLAG_FLUSH 9 /* doing barrier flush sequence */ | 446 | #define QUEUE_FLAG_FLUSH 9 /* doing barrier flush sequence */ |
439 | 447 | ||
440 | #define blk_queue_plugged(q) test_bit(QUEUE_FLAG_PLUGGED, &(q)->queue_flags) | 448 | #define blk_queue_plugged(q) test_bit(QUEUE_FLAG_PLUGGED, &(q)->queue_flags) |
@@ -454,6 +462,7 @@ enum { | |||
454 | #define blk_pm_request(rq) \ | 462 | #define blk_pm_request(rq) \ |
455 | ((rq)->flags & (REQ_PM_SUSPEND | REQ_PM_RESUME)) | 463 | ((rq)->flags & (REQ_PM_SUSPEND | REQ_PM_RESUME)) |
456 | 464 | ||
465 | #define blk_sorted_rq(rq) ((rq)->flags & REQ_SORTED) | ||
457 | #define blk_barrier_rq(rq) ((rq)->flags & REQ_HARDBARRIER) | 466 | #define blk_barrier_rq(rq) ((rq)->flags & REQ_HARDBARRIER) |
458 | #define blk_barrier_preflush(rq) ((rq)->flags & REQ_BAR_PREFLUSH) | 467 | #define blk_barrier_preflush(rq) ((rq)->flags & REQ_BAR_PREFLUSH) |
459 | #define blk_barrier_postflush(rq) ((rq)->flags & REQ_BAR_POSTFLUSH) | 468 | #define blk_barrier_postflush(rq) ((rq)->flags & REQ_BAR_POSTFLUSH) |
@@ -550,7 +559,7 @@ extern void generic_make_request(struct bio *bio); | |||
550 | extern void blk_put_request(struct request *); | 559 | extern void blk_put_request(struct request *); |
551 | extern void blk_end_sync_rq(struct request *rq); | 560 | extern void blk_end_sync_rq(struct request *rq); |
552 | extern void blk_attempt_remerge(request_queue_t *, struct request *); | 561 | extern void blk_attempt_remerge(request_queue_t *, struct request *); |
553 | extern struct request *blk_get_request(request_queue_t *, int, int); | 562 | extern struct request *blk_get_request(request_queue_t *, int, gfp_t); |
554 | extern void blk_insert_request(request_queue_t *, struct request *, int, void *); | 563 | extern void blk_insert_request(request_queue_t *, struct request *, int, void *); |
555 | extern void blk_requeue_request(request_queue_t *, struct request *); | 564 | extern void blk_requeue_request(request_queue_t *, struct request *); |
556 | extern void blk_plug_device(request_queue_t *); | 565 | extern void blk_plug_device(request_queue_t *); |
@@ -565,7 +574,7 @@ extern void blk_run_queue(request_queue_t *); | |||
565 | extern void blk_queue_activity_fn(request_queue_t *, activity_fn *, void *); | 574 | extern void blk_queue_activity_fn(request_queue_t *, activity_fn *, void *); |
566 | extern int blk_rq_map_user(request_queue_t *, struct request *, void __user *, unsigned int); | 575 | extern int blk_rq_map_user(request_queue_t *, struct request *, void __user *, unsigned int); |
567 | extern int blk_rq_unmap_user(struct bio *, unsigned int); | 576 | extern int blk_rq_unmap_user(struct bio *, unsigned int); |
568 | extern int blk_rq_map_kern(request_queue_t *, struct request *, void *, unsigned int, unsigned int); | 577 | extern int blk_rq_map_kern(request_queue_t *, struct request *, void *, unsigned int, gfp_t); |
569 | extern int blk_rq_map_user_iov(request_queue_t *, struct request *, struct sg_iovec *, int); | 578 | extern int blk_rq_map_user_iov(request_queue_t *, struct request *, struct sg_iovec *, int); |
570 | extern int blk_execute_rq(request_queue_t *, struct gendisk *, | 579 | extern int blk_execute_rq(request_queue_t *, struct gendisk *, |
571 | struct request *, int); | 580 | struct request *, int); |
@@ -611,12 +620,21 @@ extern void end_request(struct request *req, int uptodate); | |||
611 | 620 | ||
612 | static inline void blkdev_dequeue_request(struct request *req) | 621 | static inline void blkdev_dequeue_request(struct request *req) |
613 | { | 622 | { |
614 | BUG_ON(list_empty(&req->queuelist)); | 623 | elv_dequeue_request(req->q, req); |
624 | } | ||
615 | 625 | ||
616 | list_del_init(&req->queuelist); | 626 | /* |
627 | * This should be in elevator.h, but that requires pulling in rq and q | ||
628 | */ | ||
629 | static inline void elv_dispatch_add_tail(struct request_queue *q, | ||
630 | struct request *rq) | ||
631 | { | ||
632 | if (q->last_merge == rq) | ||
633 | q->last_merge = NULL; | ||
617 | 634 | ||
618 | if (req->rl) | 635 | q->end_sector = rq_end_sector(rq); |
619 | elv_remove_request(req->q, req); | 636 | q->boundary_rq = rq; |
637 | list_add_tail(&rq->queuelist, &q->queue_head); | ||
620 | } | 638 | } |
621 | 639 | ||
622 | /* | 640 | /* |
@@ -650,12 +668,10 @@ extern void blk_dump_rq_flags(struct request *, char *); | |||
650 | extern void generic_unplug_device(request_queue_t *); | 668 | extern void generic_unplug_device(request_queue_t *); |
651 | extern void __generic_unplug_device(request_queue_t *); | 669 | extern void __generic_unplug_device(request_queue_t *); |
652 | extern long nr_blockdev_pages(void); | 670 | extern long nr_blockdev_pages(void); |
653 | extern void blk_wait_queue_drained(request_queue_t *, int); | ||
654 | extern void blk_finish_queue_drain(request_queue_t *); | ||
655 | 671 | ||
656 | int blk_get_queue(request_queue_t *); | 672 | int blk_get_queue(request_queue_t *); |
657 | request_queue_t *blk_alloc_queue(int gfp_mask); | 673 | request_queue_t *blk_alloc_queue(gfp_t); |
658 | request_queue_t *blk_alloc_queue_node(int,int); | 674 | request_queue_t *blk_alloc_queue_node(gfp_t, int); |
659 | #define blk_put_queue(q) blk_cleanup_queue((q)) | 675 | #define blk_put_queue(q) blk_cleanup_queue((q)) |
660 | 676 | ||
661 | /* | 677 | /* |
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 6a1d154c0825..1db061bb6b08 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h | |||
@@ -126,8 +126,8 @@ BUFFER_FNS(Eopnotsupp, eopnotsupp) | |||
126 | /* If we *know* page->private refers to buffer_heads */ | 126 | /* If we *know* page->private refers to buffer_heads */ |
127 | #define page_buffers(page) \ | 127 | #define page_buffers(page) \ |
128 | ({ \ | 128 | ({ \ |
129 | BUG_ON(!PagePrivate(page)); \ | 129 | BUG_ON(!PagePrivate(page)); \ |
130 | ((struct buffer_head *)(page)->private); \ | 130 | ((struct buffer_head *)page_private(page)); \ |
131 | }) | 131 | }) |
132 | #define page_has_buffers(page) PagePrivate(page) | 132 | #define page_has_buffers(page) PagePrivate(page) |
133 | 133 | ||
@@ -188,8 +188,9 @@ extern int buffer_heads_over_limit; | |||
188 | * Generic address_space_operations implementations for buffer_head-backed | 188 | * Generic address_space_operations implementations for buffer_head-backed |
189 | * address_spaces. | 189 | * address_spaces. |
190 | */ | 190 | */ |
191 | int try_to_release_page(struct page * page, int gfp_mask); | 191 | int try_to_release_page(struct page * page, gfp_t gfp_mask); |
192 | int block_invalidatepage(struct page *page, unsigned long offset); | 192 | int block_invalidatepage(struct page *page, unsigned long offset); |
193 | int do_invalidatepage(struct page *page, unsigned long offset); | ||
193 | int block_write_full_page(struct page *page, get_block_t *get_block, | 194 | int block_write_full_page(struct page *page, get_block_t *get_block, |
194 | struct writeback_control *wbc); | 195 | struct writeback_control *wbc); |
195 | int block_read_full_page(struct page*, get_block_t*); | 196 | int block_read_full_page(struct page*, get_block_t*); |
@@ -219,7 +220,7 @@ static inline void attach_page_buffers(struct page *page, | |||
219 | { | 220 | { |
220 | page_cache_get(page); | 221 | page_cache_get(page); |
221 | SetPagePrivate(page); | 222 | SetPagePrivate(page); |
222 | page->private = (unsigned long)head; | 223 | set_page_private(page, (unsigned long)head); |
223 | } | 224 | } |
224 | 225 | ||
225 | static inline void get_bh(struct buffer_head *bh) | 226 | static inline void get_bh(struct buffer_head *bh) |
diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 86980c68234a..1f7b2c097503 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h | |||
@@ -32,6 +32,7 @@ struct cpu { | |||
32 | }; | 32 | }; |
33 | 33 | ||
34 | extern int register_cpu(struct cpu *, int, struct node *); | 34 | extern int register_cpu(struct cpu *, int, struct node *); |
35 | extern struct sys_device *get_cpu_sysdev(int cpu); | ||
35 | #ifdef CONFIG_HOTPLUG_CPU | 36 | #ifdef CONFIG_HOTPLUG_CPU |
36 | extern void unregister_cpu(struct cpu *, struct node *); | 37 | extern void unregister_cpu(struct cpu *, struct node *); |
37 | #endif | 38 | #endif |
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index ff7f80f48df1..d068176b7ad7 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/completion.h> | 23 | #include <linux/completion.h> |
24 | #include <linux/workqueue.h> | 24 | #include <linux/workqueue.h> |
25 | #include <linux/cpumask.h> | 25 | #include <linux/cpumask.h> |
26 | #include <asm/div64.h> | ||
26 | 27 | ||
27 | #define CPUFREQ_NAME_LEN 16 | 28 | #define CPUFREQ_NAME_LEN 16 |
28 | 29 | ||
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 9bdba8169b41..13e9f4a3ab26 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h | |||
@@ -12,6 +12,8 @@ | |||
12 | * see bitmap_scnprintf() and bitmap_parse() in lib/bitmap.c. | 12 | * see bitmap_scnprintf() and bitmap_parse() in lib/bitmap.c. |
13 | * For details of cpulist_scnprintf() and cpulist_parse(), see | 13 | * For details of cpulist_scnprintf() and cpulist_parse(), see |
14 | * bitmap_scnlistprintf() and bitmap_parselist(), also in bitmap.c. | 14 | * bitmap_scnlistprintf() and bitmap_parselist(), also in bitmap.c. |
15 | * For details of cpu_remap(), see bitmap_bitremap in lib/bitmap.c | ||
16 | * For details of cpus_remap(), see bitmap_remap in lib/bitmap.c. | ||
15 | * | 17 | * |
16 | * The available cpumask operations are: | 18 | * The available cpumask operations are: |
17 | * | 19 | * |
@@ -50,6 +52,8 @@ | |||
50 | * int cpumask_parse(ubuf, ulen, mask) Parse ascii string as cpumask | 52 | * int cpumask_parse(ubuf, ulen, mask) Parse ascii string as cpumask |
51 | * int cpulist_scnprintf(buf, len, mask) Format cpumask as list for printing | 53 | * int cpulist_scnprintf(buf, len, mask) Format cpumask as list for printing |
52 | * int cpulist_parse(buf, map) Parse ascii string as cpulist | 54 | * int cpulist_parse(buf, map) Parse ascii string as cpulist |
55 | * int cpu_remap(oldbit, old, new) newbit = map(old, new)(oldbit) | ||
56 | * int cpus_remap(dst, src, old, new) *dst = map(old, new)(src) | ||
53 | * | 57 | * |
54 | * for_each_cpu_mask(cpu, mask) for-loop cpu over mask | 58 | * for_each_cpu_mask(cpu, mask) for-loop cpu over mask |
55 | * | 59 | * |
@@ -294,6 +298,22 @@ static inline int __cpulist_parse(const char *buf, cpumask_t *dstp, int nbits) | |||
294 | return bitmap_parselist(buf, dstp->bits, nbits); | 298 | return bitmap_parselist(buf, dstp->bits, nbits); |
295 | } | 299 | } |
296 | 300 | ||
301 | #define cpu_remap(oldbit, old, new) \ | ||
302 | __cpu_remap((oldbit), &(old), &(new), NR_CPUS) | ||
303 | static inline int __cpu_remap(int oldbit, | ||
304 | const cpumask_t *oldp, const cpumask_t *newp, int nbits) | ||
305 | { | ||
306 | return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits); | ||
307 | } | ||
308 | |||
309 | #define cpus_remap(dst, src, old, new) \ | ||
310 | __cpus_remap(&(dst), &(src), &(old), &(new), NR_CPUS) | ||
311 | static inline void __cpus_remap(cpumask_t *dstp, const cpumask_t *srcp, | ||
312 | const cpumask_t *oldp, const cpumask_t *newp, int nbits) | ||
313 | { | ||
314 | bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits); | ||
315 | } | ||
316 | |||
297 | #if NR_CPUS > 1 | 317 | #if NR_CPUS > 1 |
298 | #define for_each_cpu_mask(cpu, mask) \ | 318 | #define for_each_cpu_mask(cpu, mask) \ |
299 | for ((cpu) = first_cpu(mask); \ | 319 | for ((cpu) = first_cpu(mask); \ |
diff --git a/include/linux/cyclomx.h b/include/linux/cyclomx.h index 04fa7dff079c..300d704bdb9a 100644 --- a/include/linux/cyclomx.h +++ b/include/linux/cyclomx.h | |||
@@ -37,8 +37,6 @@ | |||
37 | #include <linux/cycx_x25.h> | 37 | #include <linux/cycx_x25.h> |
38 | #endif | 38 | #endif |
39 | 39 | ||
40 | #define is_digit(ch) (((ch)>=(unsigned)'0'&&(ch)<=(unsigned)'9')?1:0) | ||
41 | |||
42 | /* Adapter Data Space. | 40 | /* Adapter Data Space. |
43 | * This structure is needed because we handle multiple cards, otherwise | 41 | * This structure is needed because we handle multiple cards, otherwise |
44 | * static data would do it. | 42 | * static data would do it. |
diff --git a/include/linux/cycx_drv.h b/include/linux/cycx_drv.h index 6621df86a748..12fe6b0bfcff 100644 --- a/include/linux/cycx_drv.h +++ b/include/linux/cycx_drv.h | |||
@@ -60,6 +60,5 @@ extern int cycx_peek(struct cycx_hw *hw, u32 addr, void *buf, u32 len); | |||
60 | extern int cycx_poke(struct cycx_hw *hw, u32 addr, void *buf, u32 len); | 60 | extern int cycx_poke(struct cycx_hw *hw, u32 addr, void *buf, u32 len); |
61 | extern int cycx_exec(void __iomem *addr); | 61 | extern int cycx_exec(void __iomem *addr); |
62 | 62 | ||
63 | extern void cycx_inten(struct cycx_hw *hw); | ||
64 | extern void cycx_intr(struct cycx_hw *hw); | 63 | extern void cycx_intr(struct cycx_hw *hw); |
65 | #endif /* _CYCX_DRV_H */ | 64 | #endif /* _CYCX_DRV_H */ |
diff --git a/include/linux/device.h b/include/linux/device.h index 95d607a48f06..17cbc6db67b4 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -28,19 +28,6 @@ | |||
28 | #define BUS_ID_SIZE KOBJ_NAME_LEN | 28 | #define BUS_ID_SIZE KOBJ_NAME_LEN |
29 | 29 | ||
30 | 30 | ||
31 | enum { | ||
32 | SUSPEND_NOTIFY, | ||
33 | SUSPEND_SAVE_STATE, | ||
34 | SUSPEND_DISABLE, | ||
35 | SUSPEND_POWER_DOWN, | ||
36 | }; | ||
37 | |||
38 | enum { | ||
39 | RESUME_POWER_ON, | ||
40 | RESUME_RESTORE_STATE, | ||
41 | RESUME_ENABLE, | ||
42 | }; | ||
43 | |||
44 | struct device; | 31 | struct device; |
45 | struct device_driver; | 32 | struct device_driver; |
46 | struct class; | 33 | struct class; |
@@ -115,8 +102,8 @@ struct device_driver { | |||
115 | int (*probe) (struct device * dev); | 102 | int (*probe) (struct device * dev); |
116 | int (*remove) (struct device * dev); | 103 | int (*remove) (struct device * dev); |
117 | void (*shutdown) (struct device * dev); | 104 | void (*shutdown) (struct device * dev); |
118 | int (*suspend) (struct device * dev, pm_message_t state, u32 level); | 105 | int (*suspend) (struct device * dev, pm_message_t state); |
119 | int (*resume) (struct device * dev, u32 level); | 106 | int (*resume) (struct device * dev); |
120 | }; | 107 | }; |
121 | 108 | ||
122 | 109 | ||
@@ -190,7 +177,43 @@ struct class_attribute class_attr_##_name = __ATTR(_name,_mode,_show,_store) | |||
190 | extern int class_create_file(struct class *, const struct class_attribute *); | 177 | extern int class_create_file(struct class *, const struct class_attribute *); |
191 | extern void class_remove_file(struct class *, const struct class_attribute *); | 178 | extern void class_remove_file(struct class *, const struct class_attribute *); |
192 | 179 | ||
180 | struct class_device_attribute { | ||
181 | struct attribute attr; | ||
182 | ssize_t (*show)(struct class_device *, char * buf); | ||
183 | ssize_t (*store)(struct class_device *, const char * buf, size_t count); | ||
184 | }; | ||
193 | 185 | ||
186 | #define CLASS_DEVICE_ATTR(_name,_mode,_show,_store) \ | ||
187 | struct class_device_attribute class_device_attr_##_name = \ | ||
188 | __ATTR(_name,_mode,_show,_store) | ||
189 | |||
190 | extern int class_device_create_file(struct class_device *, | ||
191 | const struct class_device_attribute *); | ||
192 | |||
193 | /** | ||
194 | * struct class_device - class devices | ||
195 | * @class: pointer to the parent class for this class device. This is required. | ||
196 | * @devt: for internal use by the driver core only. | ||
197 | * @node: for internal use by the driver core only. | ||
198 | * @kobj: for internal use by the driver core only. | ||
199 | * @devt_attr: for internal use by the driver core only. | ||
200 | * @dev: if set, a symlink to the struct device is created in the sysfs | ||
201 | * directory for this struct class device. | ||
202 | * @class_data: pointer to whatever you want to store here for this struct | ||
203 | * class_device. Use class_get_devdata() and class_set_devdata() to get and | ||
204 | * set this pointer. | ||
205 | * @parent: pointer to a struct class_device that is the parent of this struct | ||
206 | * class_device. If NULL, this class_device will show up at the root of the | ||
207 | * struct class in sysfs (which is probably what you want to have happen.) | ||
208 | * @release: pointer to a release function for this struct class_device. If | ||
209 | * set, this will be called instead of the class specific release function. | ||
210 | * Only use this if you want to override the default release function, like | ||
211 | * when you are nesting class_device structures. | ||
212 | * @hotplug: pointer to a hotplug function for this struct class_device. If | ||
213 | * set, this will be called instead of the class specific hotplug function. | ||
214 | * Only use this if you want to override the default hotplug function, like | ||
215 | * when you are nesting class_device structures. | ||
216 | */ | ||
194 | struct class_device { | 217 | struct class_device { |
195 | struct list_head node; | 218 | struct list_head node; |
196 | 219 | ||
@@ -198,9 +221,14 @@ struct class_device { | |||
198 | struct class * class; /* required */ | 221 | struct class * class; /* required */ |
199 | dev_t devt; /* dev_t, creates the sysfs "dev" */ | 222 | dev_t devt; /* dev_t, creates the sysfs "dev" */ |
200 | struct class_device_attribute *devt_attr; | 223 | struct class_device_attribute *devt_attr; |
224 | struct class_device_attribute uevent_attr; | ||
201 | struct device * dev; /* not necessary, but nice to have */ | 225 | struct device * dev; /* not necessary, but nice to have */ |
202 | void * class_data; /* class-specific data */ | 226 | void * class_data; /* class-specific data */ |
227 | struct class_device *parent; /* parent of this child device, if there is one */ | ||
203 | 228 | ||
229 | void (*release)(struct class_device *dev); | ||
230 | int (*hotplug)(struct class_device *dev, char **envp, | ||
231 | int num_envp, char *buffer, int buffer_size); | ||
204 | char class_id[BUS_ID_SIZE]; /* unique to this class */ | 232 | char class_id[BUS_ID_SIZE]; /* unique to this class */ |
205 | }; | 233 | }; |
206 | 234 | ||
@@ -228,18 +256,6 @@ extern int class_device_rename(struct class_device *, char *); | |||
228 | extern struct class_device * class_device_get(struct class_device *); | 256 | extern struct class_device * class_device_get(struct class_device *); |
229 | extern void class_device_put(struct class_device *); | 257 | extern void class_device_put(struct class_device *); |
230 | 258 | ||
231 | struct class_device_attribute { | ||
232 | struct attribute attr; | ||
233 | ssize_t (*show)(struct class_device *, char * buf); | ||
234 | ssize_t (*store)(struct class_device *, const char * buf, size_t count); | ||
235 | }; | ||
236 | |||
237 | #define CLASS_DEVICE_ATTR(_name,_mode,_show,_store) \ | ||
238 | struct class_device_attribute class_device_attr_##_name = \ | ||
239 | __ATTR(_name,_mode,_show,_store) | ||
240 | |||
241 | extern int class_device_create_file(struct class_device *, | ||
242 | const struct class_device_attribute *); | ||
243 | extern void class_device_remove_file(struct class_device *, | 259 | extern void class_device_remove_file(struct class_device *, |
244 | const struct class_device_attribute *); | 260 | const struct class_device_attribute *); |
245 | extern int class_device_create_bin_file(struct class_device *, | 261 | extern int class_device_create_bin_file(struct class_device *, |
@@ -251,8 +267,8 @@ struct class_interface { | |||
251 | struct list_head node; | 267 | struct list_head node; |
252 | struct class *class; | 268 | struct class *class; |
253 | 269 | ||
254 | int (*add) (struct class_device *); | 270 | int (*add) (struct class_device *, struct class_interface *); |
255 | void (*remove) (struct class_device *); | 271 | void (*remove) (struct class_device *, struct class_interface *); |
256 | }; | 272 | }; |
257 | 273 | ||
258 | extern int class_interface_register(struct class_interface *); | 274 | extern int class_interface_register(struct class_interface *); |
@@ -260,12 +276,29 @@ extern void class_interface_unregister(struct class_interface *); | |||
260 | 276 | ||
261 | extern struct class *class_create(struct module *owner, char *name); | 277 | extern struct class *class_create(struct module *owner, char *name); |
262 | extern void class_destroy(struct class *cls); | 278 | extern void class_destroy(struct class *cls); |
263 | extern struct class_device *class_device_create(struct class *cls, dev_t devt, | 279 | extern struct class_device *class_device_create(struct class *cls, |
264 | struct device *device, char *fmt, ...) | 280 | struct class_device *parent, |
265 | __attribute__((format(printf,4,5))); | 281 | dev_t devt, |
282 | struct device *device, | ||
283 | char *fmt, ...) | ||
284 | __attribute__((format(printf,5,6))); | ||
266 | extern void class_device_destroy(struct class *cls, dev_t devt); | 285 | extern void class_device_destroy(struct class *cls, dev_t devt); |
267 | 286 | ||
268 | 287 | ||
288 | /* interface for exporting device attributes */ | ||
289 | struct device_attribute { | ||
290 | struct attribute attr; | ||
291 | ssize_t (*show)(struct device *dev, struct device_attribute *attr, | ||
292 | char *buf); | ||
293 | ssize_t (*store)(struct device *dev, struct device_attribute *attr, | ||
294 | const char *buf, size_t count); | ||
295 | }; | ||
296 | |||
297 | #define DEVICE_ATTR(_name,_mode,_show,_store) \ | ||
298 | struct device_attribute dev_attr_##_name = __ATTR(_name,_mode,_show,_store) | ||
299 | |||
300 | extern int device_create_file(struct device *device, struct device_attribute * entry); | ||
301 | extern void device_remove_file(struct device * dev, struct device_attribute * attr); | ||
269 | struct device { | 302 | struct device { |
270 | struct klist klist_children; | 303 | struct klist klist_children; |
271 | struct klist_node knode_parent; /* node in sibling list */ | 304 | struct klist_node knode_parent; /* node in sibling list */ |
@@ -275,6 +308,7 @@ struct device { | |||
275 | 308 | ||
276 | struct kobject kobj; | 309 | struct kobject kobj; |
277 | char bus_id[BUS_ID_SIZE]; /* position on parent bus */ | 310 | char bus_id[BUS_ID_SIZE]; /* position on parent bus */ |
311 | struct device_attribute uevent_attr; | ||
278 | 312 | ||
279 | struct semaphore sem; /* semaphore to synchronize calls to | 313 | struct semaphore sem; /* semaphore to synchronize calls to |
280 | * its driver. | 314 | * its driver. |
@@ -343,23 +377,6 @@ extern int device_attach(struct device * dev); | |||
343 | extern void driver_attach(struct device_driver * drv); | 377 | extern void driver_attach(struct device_driver * drv); |
344 | 378 | ||
345 | 379 | ||
346 | /* driverfs interface for exporting device attributes */ | ||
347 | |||
348 | struct device_attribute { | ||
349 | struct attribute attr; | ||
350 | ssize_t (*show)(struct device *dev, struct device_attribute *attr, | ||
351 | char *buf); | ||
352 | ssize_t (*store)(struct device *dev, struct device_attribute *attr, | ||
353 | const char *buf, size_t count); | ||
354 | }; | ||
355 | |||
356 | #define DEVICE_ATTR(_name,_mode,_show,_store) \ | ||
357 | struct device_attribute dev_attr_##_name = __ATTR(_name,_mode,_show,_store) | ||
358 | |||
359 | |||
360 | extern int device_create_file(struct device *device, struct device_attribute * entry); | ||
361 | extern void device_remove_file(struct device * dev, struct device_attribute * attr); | ||
362 | |||
363 | /* | 380 | /* |
364 | * Platform "fixup" functions - allow the platform to have their say | 381 | * Platform "fixup" functions - allow the platform to have their say |
365 | * about devices and actions that the general device layer doesn't | 382 | * about devices and actions that the general device layer doesn't |
@@ -379,32 +396,6 @@ extern struct device * get_device(struct device * dev); | |||
379 | extern void put_device(struct device * dev); | 396 | extern void put_device(struct device * dev); |
380 | 397 | ||
381 | 398 | ||
382 | /* drivers/base/platform.c */ | ||
383 | |||
384 | struct platform_device { | ||
385 | const char * name; | ||
386 | u32 id; | ||
387 | struct device dev; | ||
388 | u32 num_resources; | ||
389 | struct resource * resource; | ||
390 | }; | ||
391 | |||
392 | #define to_platform_device(x) container_of((x), struct platform_device, dev) | ||
393 | |||
394 | extern int platform_device_register(struct platform_device *); | ||
395 | extern void platform_device_unregister(struct platform_device *); | ||
396 | |||
397 | extern struct bus_type platform_bus_type; | ||
398 | extern struct device platform_bus; | ||
399 | |||
400 | extern struct resource *platform_get_resource(struct platform_device *, unsigned int, unsigned int); | ||
401 | extern int platform_get_irq(struct platform_device *, unsigned int); | ||
402 | extern struct resource *platform_get_resource_byname(struct platform_device *, unsigned int, char *); | ||
403 | extern int platform_get_irq_byname(struct platform_device *, char *); | ||
404 | extern int platform_add_devices(struct platform_device **, int); | ||
405 | |||
406 | extern struct platform_device *platform_device_register_simple(char *, unsigned int, struct resource *, unsigned int); | ||
407 | |||
408 | /* drivers/base/power.c */ | 399 | /* drivers/base/power.c */ |
409 | extern void device_shutdown(void); | 400 | extern void device_shutdown(void); |
410 | 401 | ||
diff --git a/include/linux/dmi.h b/include/linux/dmi.h index a415f1d93e9a..05f4132622fc 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h | |||
@@ -60,7 +60,7 @@ struct dmi_device { | |||
60 | void *device_data; /* Type specific data */ | 60 | void *device_data; /* Type specific data */ |
61 | }; | 61 | }; |
62 | 62 | ||
63 | #if defined(CONFIG_X86) && !defined(CONFIG_X86_64) | 63 | #if defined(CONFIG_X86_32) |
64 | 64 | ||
65 | extern int dmi_check_system(struct dmi_system_id *list); | 65 | extern int dmi_check_system(struct dmi_system_id *list); |
66 | extern char * dmi_get_system_info(int field); | 66 | extern char * dmi_get_system_info(int field); |
diff --git a/include/linux/elevator.h b/include/linux/elevator.h index ea6bbc2d7407..a74c27e460ba 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h | |||
@@ -8,18 +8,17 @@ typedef void (elevator_merge_req_fn) (request_queue_t *, struct request *, struc | |||
8 | 8 | ||
9 | typedef void (elevator_merged_fn) (request_queue_t *, struct request *); | 9 | typedef void (elevator_merged_fn) (request_queue_t *, struct request *); |
10 | 10 | ||
11 | typedef struct request *(elevator_next_req_fn) (request_queue_t *); | 11 | typedef int (elevator_dispatch_fn) (request_queue_t *, int); |
12 | 12 | ||
13 | typedef void (elevator_add_req_fn) (request_queue_t *, struct request *, int); | 13 | typedef void (elevator_add_req_fn) (request_queue_t *, struct request *); |
14 | typedef int (elevator_queue_empty_fn) (request_queue_t *); | 14 | typedef int (elevator_queue_empty_fn) (request_queue_t *); |
15 | typedef void (elevator_remove_req_fn) (request_queue_t *, struct request *); | ||
16 | typedef void (elevator_requeue_req_fn) (request_queue_t *, struct request *); | ||
17 | typedef struct request *(elevator_request_list_fn) (request_queue_t *, struct request *); | 15 | typedef struct request *(elevator_request_list_fn) (request_queue_t *, struct request *); |
18 | typedef void (elevator_completed_req_fn) (request_queue_t *, struct request *); | 16 | typedef void (elevator_completed_req_fn) (request_queue_t *, struct request *); |
19 | typedef int (elevator_may_queue_fn) (request_queue_t *, int, struct bio *); | 17 | typedef int (elevator_may_queue_fn) (request_queue_t *, int, struct bio *); |
20 | 18 | ||
21 | typedef int (elevator_set_req_fn) (request_queue_t *, struct request *, struct bio *, int); | 19 | typedef int (elevator_set_req_fn) (request_queue_t *, struct request *, struct bio *, gfp_t); |
22 | typedef void (elevator_put_req_fn) (request_queue_t *, struct request *); | 20 | typedef void (elevator_put_req_fn) (request_queue_t *, struct request *); |
21 | typedef void (elevator_activate_req_fn) (request_queue_t *, struct request *); | ||
23 | typedef void (elevator_deactivate_req_fn) (request_queue_t *, struct request *); | 22 | typedef void (elevator_deactivate_req_fn) (request_queue_t *, struct request *); |
24 | 23 | ||
25 | typedef int (elevator_init_fn) (request_queue_t *, elevator_t *); | 24 | typedef int (elevator_init_fn) (request_queue_t *, elevator_t *); |
@@ -31,10 +30,9 @@ struct elevator_ops | |||
31 | elevator_merged_fn *elevator_merged_fn; | 30 | elevator_merged_fn *elevator_merged_fn; |
32 | elevator_merge_req_fn *elevator_merge_req_fn; | 31 | elevator_merge_req_fn *elevator_merge_req_fn; |
33 | 32 | ||
34 | elevator_next_req_fn *elevator_next_req_fn; | 33 | elevator_dispatch_fn *elevator_dispatch_fn; |
35 | elevator_add_req_fn *elevator_add_req_fn; | 34 | elevator_add_req_fn *elevator_add_req_fn; |
36 | elevator_remove_req_fn *elevator_remove_req_fn; | 35 | elevator_activate_req_fn *elevator_activate_req_fn; |
37 | elevator_requeue_req_fn *elevator_requeue_req_fn; | ||
38 | elevator_deactivate_req_fn *elevator_deactivate_req_fn; | 36 | elevator_deactivate_req_fn *elevator_deactivate_req_fn; |
39 | 37 | ||
40 | elevator_queue_empty_fn *elevator_queue_empty_fn; | 38 | elevator_queue_empty_fn *elevator_queue_empty_fn; |
@@ -81,15 +79,15 @@ struct elevator_queue | |||
81 | /* | 79 | /* |
82 | * block elevator interface | 80 | * block elevator interface |
83 | */ | 81 | */ |
82 | extern void elv_dispatch_sort(request_queue_t *, struct request *); | ||
84 | extern void elv_add_request(request_queue_t *, struct request *, int, int); | 83 | extern void elv_add_request(request_queue_t *, struct request *, int, int); |
85 | extern void __elv_add_request(request_queue_t *, struct request *, int, int); | 84 | extern void __elv_add_request(request_queue_t *, struct request *, int, int); |
86 | extern int elv_merge(request_queue_t *, struct request **, struct bio *); | 85 | extern int elv_merge(request_queue_t *, struct request **, struct bio *); |
87 | extern void elv_merge_requests(request_queue_t *, struct request *, | 86 | extern void elv_merge_requests(request_queue_t *, struct request *, |
88 | struct request *); | 87 | struct request *); |
89 | extern void elv_merged_request(request_queue_t *, struct request *); | 88 | extern void elv_merged_request(request_queue_t *, struct request *); |
90 | extern void elv_remove_request(request_queue_t *, struct request *); | 89 | extern void elv_dequeue_request(request_queue_t *, struct request *); |
91 | extern void elv_requeue_request(request_queue_t *, struct request *); | 90 | extern void elv_requeue_request(request_queue_t *, struct request *); |
92 | extern void elv_deactivate_request(request_queue_t *, struct request *); | ||
93 | extern int elv_queue_empty(request_queue_t *); | 91 | extern int elv_queue_empty(request_queue_t *); |
94 | extern struct request *elv_next_request(struct request_queue *q); | 92 | extern struct request *elv_next_request(struct request_queue *q); |
95 | extern struct request *elv_former_request(request_queue_t *, struct request *); | 93 | extern struct request *elv_former_request(request_queue_t *, struct request *); |
@@ -98,7 +96,7 @@ extern int elv_register_queue(request_queue_t *q); | |||
98 | extern void elv_unregister_queue(request_queue_t *q); | 96 | extern void elv_unregister_queue(request_queue_t *q); |
99 | extern int elv_may_queue(request_queue_t *, int, struct bio *); | 97 | extern int elv_may_queue(request_queue_t *, int, struct bio *); |
100 | extern void elv_completed_request(request_queue_t *, struct request *); | 98 | extern void elv_completed_request(request_queue_t *, struct request *); |
101 | extern int elv_set_request(request_queue_t *, struct request *, struct bio *, int); | 99 | extern int elv_set_request(request_queue_t *, struct request *, struct bio *, gfp_t); |
102 | extern void elv_put_request(request_queue_t *, struct request *); | 100 | extern void elv_put_request(request_queue_t *, struct request *); |
103 | 101 | ||
104 | /* | 102 | /* |
@@ -142,4 +140,6 @@ enum { | |||
142 | ELV_MQUEUE_MUST, | 140 | ELV_MQUEUE_MUST, |
143 | }; | 141 | }; |
144 | 142 | ||
143 | #define rq_end_sector(rq) ((rq)->sector + (rq)->nr_sectors) | ||
144 | |||
145 | #endif | 145 | #endif |
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index 4522c7186bf3..cc84934f9059 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h | |||
@@ -104,6 +104,22 @@ static inline void random_ether_addr(u8 *addr) | |||
104 | addr [0] &= 0xfe; /* clear multicast bit */ | 104 | addr [0] &= 0xfe; /* clear multicast bit */ |
105 | addr [0] |= 0x02; /* set local assignment bit (IEEE802) */ | 105 | addr [0] |= 0x02; /* set local assignment bit (IEEE802) */ |
106 | } | 106 | } |
107 | |||
108 | /** | ||
109 | * compare_ether_addr - Compare two Ethernet addresses | ||
110 | * @addr1: Pointer to a six-byte array containing the Ethernet address | ||
111 | * @addr2 Pointer other six-byte array containing the Ethernet address | ||
112 | * | ||
113 | * Compare two ethernet addresses, returns 0 if equal | ||
114 | */ | ||
115 | static inline unsigned compare_ether_addr(const u8 *_a, const u8 *_b) | ||
116 | { | ||
117 | const u16 *a = (const u16 *) _a; | ||
118 | const u16 *b = (const u16 *) _b; | ||
119 | |||
120 | BUILD_BUG_ON(ETH_ALEN != 6); | ||
121 | return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) != 0; | ||
122 | } | ||
107 | #endif /* __KERNEL__ */ | 123 | #endif /* __KERNEL__ */ |
108 | 124 | ||
109 | #endif /* _LINUX_ETHERDEVICE_H */ | 125 | #endif /* _LINUX_ETHERDEVICE_H */ |
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index ed1440ea4c91..d2c390eff1b2 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
@@ -269,6 +269,8 @@ u32 ethtool_op_get_tso(struct net_device *dev); | |||
269 | int ethtool_op_set_tso(struct net_device *dev, u32 data); | 269 | int ethtool_op_set_tso(struct net_device *dev, u32 data); |
270 | int ethtool_op_get_perm_addr(struct net_device *dev, | 270 | int ethtool_op_get_perm_addr(struct net_device *dev, |
271 | struct ethtool_perm_addr *addr, u8 *data); | 271 | struct ethtool_perm_addr *addr, u8 *data); |
272 | u32 ethtool_op_get_ufo(struct net_device *dev); | ||
273 | int ethtool_op_set_ufo(struct net_device *dev, u32 data); | ||
272 | 274 | ||
273 | /** | 275 | /** |
274 | * ðtool_ops - Alter and report network device settings | 276 | * ðtool_ops - Alter and report network device settings |
@@ -298,6 +300,8 @@ int ethtool_op_get_perm_addr(struct net_device *dev, | |||
298 | * set_sg: Turn scatter-gather on or off | 300 | * set_sg: Turn scatter-gather on or off |
299 | * get_tso: Report whether TCP segmentation offload is enabled | 301 | * get_tso: Report whether TCP segmentation offload is enabled |
300 | * set_tso: Turn TCP segmentation offload on or off | 302 | * set_tso: Turn TCP segmentation offload on or off |
303 | * get_ufo: Report whether UDP fragmentation offload is enabled | ||
304 | * set_ufo: Turn UDP fragmentation offload on or off | ||
301 | * self_test: Run specified self-tests | 305 | * self_test: Run specified self-tests |
302 | * get_strings: Return a set of strings that describe the requested objects | 306 | * get_strings: Return a set of strings that describe the requested objects |
303 | * phys_id: Identify the device | 307 | * phys_id: Identify the device |
@@ -364,6 +368,8 @@ struct ethtool_ops { | |||
364 | int (*get_perm_addr)(struct net_device *, struct ethtool_perm_addr *, u8 *); | 368 | int (*get_perm_addr)(struct net_device *, struct ethtool_perm_addr *, u8 *); |
365 | int (*begin)(struct net_device *); | 369 | int (*begin)(struct net_device *); |
366 | void (*complete)(struct net_device *); | 370 | void (*complete)(struct net_device *); |
371 | u32 (*get_ufo)(struct net_device *); | ||
372 | int (*set_ufo)(struct net_device *, u32); | ||
367 | }; | 373 | }; |
368 | 374 | ||
369 | /* CMDs currently supported */ | 375 | /* CMDs currently supported */ |
@@ -400,6 +406,8 @@ struct ethtool_ops { | |||
400 | #define ETHTOOL_GTSO 0x0000001e /* Get TSO enable (ethtool_value) */ | 406 | #define ETHTOOL_GTSO 0x0000001e /* Get TSO enable (ethtool_value) */ |
401 | #define ETHTOOL_STSO 0x0000001f /* Set TSO enable (ethtool_value) */ | 407 | #define ETHTOOL_STSO 0x0000001f /* Set TSO enable (ethtool_value) */ |
402 | #define ETHTOOL_GPERMADDR 0x00000020 /* Get permanent hardware address */ | 408 | #define ETHTOOL_GPERMADDR 0x00000020 /* Get permanent hardware address */ |
409 | #define ETHTOOL_GUFO 0x00000021 /* Get UFO enable (ethtool_value) */ | ||
410 | #define ETHTOOL_SUFO 0x00000022 /* Set UFO enable (ethtool_value) */ | ||
403 | 411 | ||
404 | /* compatibility with older code */ | 412 | /* compatibility with older code */ |
405 | #define SPARC_ETH_GSET ETHTOOL_GSET | 413 | #define SPARC_ETH_GSET ETHTOOL_GSET |
diff --git a/include/linux/fs.h b/include/linux/fs.h index e0b77c5af9a0..6d6226732c93 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -320,7 +320,7 @@ struct address_space_operations { | |||
320 | /* Unfortunately this kludge is needed for FIBMAP. Don't use it */ | 320 | /* Unfortunately this kludge is needed for FIBMAP. Don't use it */ |
321 | sector_t (*bmap)(struct address_space *, sector_t); | 321 | sector_t (*bmap)(struct address_space *, sector_t); |
322 | int (*invalidatepage) (struct page *, unsigned long); | 322 | int (*invalidatepage) (struct page *, unsigned long); |
323 | int (*releasepage) (struct page *, int); | 323 | int (*releasepage) (struct page *, gfp_t); |
324 | ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, | 324 | ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov, |
325 | loff_t offset, unsigned long nr_segs); | 325 | loff_t offset, unsigned long nr_segs); |
326 | struct page* (*get_xip_page)(struct address_space *, sector_t, | 326 | struct page* (*get_xip_page)(struct address_space *, sector_t, |
@@ -574,7 +574,14 @@ struct file_ra_state { | |||
574 | #define RA_FLAG_INCACHE 0x02 /* file is already in cache */ | 574 | #define RA_FLAG_INCACHE 0x02 /* file is already in cache */ |
575 | 575 | ||
576 | struct file { | 576 | struct file { |
577 | struct list_head f_list; | 577 | /* |
578 | * fu_list becomes invalid after file_free is called and queued via | ||
579 | * fu_rcuhead for RCU freeing | ||
580 | */ | ||
581 | union { | ||
582 | struct list_head fu_list; | ||
583 | struct rcu_head fu_rcuhead; | ||
584 | } f_u; | ||
578 | struct dentry *f_dentry; | 585 | struct dentry *f_dentry; |
579 | struct vfsmount *f_vfsmnt; | 586 | struct vfsmount *f_vfsmnt; |
580 | struct file_operations *f_op; | 587 | struct file_operations *f_op; |
@@ -598,7 +605,6 @@ struct file { | |||
598 | spinlock_t f_ep_lock; | 605 | spinlock_t f_ep_lock; |
599 | #endif /* #ifdef CONFIG_EPOLL */ | 606 | #endif /* #ifdef CONFIG_EPOLL */ |
600 | struct address_space *f_mapping; | 607 | struct address_space *f_mapping; |
601 | struct rcu_head f_rcuhead; | ||
602 | }; | 608 | }; |
603 | extern spinlock_t files_lock; | 609 | extern spinlock_t files_lock; |
604 | #define file_list_lock() spin_lock(&files_lock); | 610 | #define file_list_lock() spin_lock(&files_lock); |
diff --git a/include/linux/fs_enet_pd.h b/include/linux/fs_enet_pd.h new file mode 100644 index 000000000000..bef23bbf8690 --- /dev/null +++ b/include/linux/fs_enet_pd.h | |||
@@ -0,0 +1,136 @@ | |||
1 | /* | ||
2 | * Platform information definitions for the | ||
3 | * universal Freescale Ethernet driver. | ||
4 | * | ||
5 | * Copyright (c) 2003 Intracom S.A. | ||
6 | * by Pantelis Antoniou <panto@intracom.gr> | ||
7 | * | ||
8 | * 2005 (c) MontaVista Software, Inc. | ||
9 | * Vitaly Bordug <vbordug@ru.mvista.com> | ||
10 | * | ||
11 | * This file is licensed under the terms of the GNU General Public License | ||
12 | * version 2. This program is licensed "as is" without any warranty of any | ||
13 | * kind, whether express or implied. | ||
14 | */ | ||
15 | |||
16 | #ifndef FS_ENET_PD_H | ||
17 | #define FS_ENET_PD_H | ||
18 | |||
19 | #include <linux/version.h> | ||
20 | #include <asm/types.h> | ||
21 | |||
22 | #define FS_ENET_NAME "fs_enet" | ||
23 | |||
24 | enum fs_id { | ||
25 | fsid_fec1, | ||
26 | fsid_fec2, | ||
27 | fsid_fcc1, | ||
28 | fsid_fcc2, | ||
29 | fsid_fcc3, | ||
30 | fsid_scc1, | ||
31 | fsid_scc2, | ||
32 | fsid_scc3, | ||
33 | fsid_scc4, | ||
34 | }; | ||
35 | |||
36 | #define FS_MAX_INDEX 9 | ||
37 | |||
38 | static inline int fs_get_fec_index(enum fs_id id) | ||
39 | { | ||
40 | if (id >= fsid_fec1 && id <= fsid_fec2) | ||
41 | return id - fsid_fec1; | ||
42 | return -1; | ||
43 | } | ||
44 | |||
45 | static inline int fs_get_fcc_index(enum fs_id id) | ||
46 | { | ||
47 | if (id >= fsid_fcc1 && id <= fsid_fcc3) | ||
48 | return id - fsid_fcc1; | ||
49 | return -1; | ||
50 | } | ||
51 | |||
52 | static inline int fs_get_scc_index(enum fs_id id) | ||
53 | { | ||
54 | if (id >= fsid_scc1 && id <= fsid_scc4) | ||
55 | return id - fsid_scc1; | ||
56 | return -1; | ||
57 | } | ||
58 | |||
59 | enum fs_mii_method { | ||
60 | fsmii_fixed, | ||
61 | fsmii_fec, | ||
62 | fsmii_bitbang, | ||
63 | }; | ||
64 | |||
65 | enum fs_ioport { | ||
66 | fsiop_porta, | ||
67 | fsiop_portb, | ||
68 | fsiop_portc, | ||
69 | fsiop_portd, | ||
70 | fsiop_porte, | ||
71 | }; | ||
72 | |||
73 | struct fs_mii_bus_info { | ||
74 | int method; /* mii method */ | ||
75 | int id; /* the id of the mii_bus */ | ||
76 | int disable_aneg; /* if the controller needs to negothiate speed & duplex */ | ||
77 | int lpa; /* the default board-specific vallues will be applied otherwise */ | ||
78 | |||
79 | union { | ||
80 | struct { | ||
81 | int duplex; | ||
82 | int speed; | ||
83 | } fixed; | ||
84 | |||
85 | struct { | ||
86 | /* nothing */ | ||
87 | } fec; | ||
88 | |||
89 | struct { | ||
90 | /* nothing */ | ||
91 | } scc; | ||
92 | |||
93 | struct { | ||
94 | int mdio_port; /* port & bit for MDIO */ | ||
95 | int mdio_bit; | ||
96 | int mdc_port; /* port & bit for MDC */ | ||
97 | int mdc_bit; | ||
98 | int delay; /* delay in us */ | ||
99 | } bitbang; | ||
100 | } i; | ||
101 | }; | ||
102 | |||
103 | struct fs_platform_info { | ||
104 | |||
105 | void(*init_ioports)(void); | ||
106 | /* device specific information */ | ||
107 | int fs_no; /* controller index */ | ||
108 | |||
109 | u32 cp_page; /* CPM page */ | ||
110 | u32 cp_block; /* CPM sblock */ | ||
111 | |||
112 | u32 clk_trx; /* some stuff for pins & mux configuration*/ | ||
113 | u32 clk_route; | ||
114 | u32 clk_mask; | ||
115 | |||
116 | u32 mem_offset; | ||
117 | u32 dpram_offset; | ||
118 | u32 fcc_regs_c; | ||
119 | |||
120 | u32 device_flags; | ||
121 | |||
122 | int phy_addr; /* the phy address (-1 no phy) */ | ||
123 | int phy_irq; /* the phy irq (if it exists) */ | ||
124 | |||
125 | const struct fs_mii_bus_info *bus_info; | ||
126 | |||
127 | int rx_ring, tx_ring; /* number of buffers on rx */ | ||
128 | __u8 macaddr[6]; /* mac address */ | ||
129 | int rx_copybreak; /* limit we copy small frames */ | ||
130 | int use_napi; /* use NAPI */ | ||
131 | int napi_weight; /* NAPI weight */ | ||
132 | |||
133 | int use_rmii; /* use RMII mode */ | ||
134 | }; | ||
135 | |||
136 | #endif | ||
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h index 70f54af87b9f..114d5d59f695 100644 --- a/include/linux/fsl_devices.h +++ b/include/linux/fsl_devices.h | |||
@@ -47,16 +47,21 @@ | |||
47 | struct gianfar_platform_data { | 47 | struct gianfar_platform_data { |
48 | /* device specific information */ | 48 | /* device specific information */ |
49 | u32 device_flags; | 49 | u32 device_flags; |
50 | u32 phy_reg_addr; | ||
51 | 50 | ||
52 | /* board specific information */ | 51 | /* board specific information */ |
53 | u32 board_flags; | 52 | u32 board_flags; |
54 | u32 phy_flags; | 53 | const char *bus_id; |
55 | u32 phyid; | ||
56 | u32 interruptPHY; | ||
57 | u8 mac_addr[6]; | 54 | u8 mac_addr[6]; |
58 | }; | 55 | }; |
59 | 56 | ||
57 | struct gianfar_mdio_data { | ||
58 | /* device specific information */ | ||
59 | u32 paddr; | ||
60 | |||
61 | /* board specific information */ | ||
62 | int irq[32]; | ||
63 | }; | ||
64 | |||
60 | /* Flags related to gianfar device features */ | 65 | /* Flags related to gianfar device features */ |
61 | #define FSL_GIANFAR_DEV_HAS_GIGABIT 0x00000001 | 66 | #define FSL_GIANFAR_DEV_HAS_GIGABIT 0x00000001 |
62 | #define FSL_GIANFAR_DEV_HAS_COALESCE 0x00000002 | 67 | #define FSL_GIANFAR_DEV_HAS_COALESCE 0x00000002 |
diff --git a/include/linux/fuse.h b/include/linux/fuse.h index acbeb96a3353..f98854c2abd7 100644 --- a/include/linux/fuse.h +++ b/include/linux/fuse.h | |||
@@ -61,7 +61,6 @@ struct fuse_kstatfs { | |||
61 | #define FATTR_SIZE (1 << 3) | 61 | #define FATTR_SIZE (1 << 3) |
62 | #define FATTR_ATIME (1 << 4) | 62 | #define FATTR_ATIME (1 << 4) |
63 | #define FATTR_MTIME (1 << 5) | 63 | #define FATTR_MTIME (1 << 5) |
64 | #define FATTR_CTIME (1 << 6) | ||
65 | 64 | ||
66 | /** | 65 | /** |
67 | * Flags returned by the OPEN request | 66 | * Flags returned by the OPEN request |
diff --git a/include/linux/gameport.h b/include/linux/gameport.h index cd623eccdbea..2401dea2b867 100644 --- a/include/linux/gameport.h +++ b/include/linux/gameport.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <asm/io.h> | 12 | #include <asm/io.h> |
13 | #include <linux/list.h> | 13 | #include <linux/list.h> |
14 | #include <linux/device.h> | 14 | #include <linux/device.h> |
15 | #include <linux/timer.h> | ||
15 | 16 | ||
16 | struct gameport { | 17 | struct gameport { |
17 | 18 | ||
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 01796c41c951..eabdb5cce357 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
@@ -119,7 +119,7 @@ struct gendisk { | |||
119 | int policy; | 119 | int policy; |
120 | 120 | ||
121 | atomic_t sync_io; /* RAID */ | 121 | atomic_t sync_io; /* RAID */ |
122 | unsigned long stamp, stamp_idle; | 122 | unsigned long stamp; |
123 | int in_flight; | 123 | int in_flight; |
124 | #ifdef CONFIG_SMP | 124 | #ifdef CONFIG_SMP |
125 | struct disk_stats *dkstats; | 125 | struct disk_stats *dkstats; |
@@ -132,6 +132,7 @@ struct gendisk { | |||
132 | struct disk_attribute { | 132 | struct disk_attribute { |
133 | struct attribute attr; | 133 | struct attribute attr; |
134 | ssize_t (*show)(struct gendisk *, char *); | 134 | ssize_t (*show)(struct gendisk *, char *); |
135 | ssize_t (*store)(struct gendisk *, const char *, size_t); | ||
135 | }; | 136 | }; |
136 | 137 | ||
137 | /* | 138 | /* |
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 3010e172394d..c3779432a723 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h | |||
@@ -12,8 +12,8 @@ struct vm_area_struct; | |||
12 | * GFP bitmasks.. | 12 | * GFP bitmasks.. |
13 | */ | 13 | */ |
14 | /* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low two bits) */ | 14 | /* Zone modifiers in GFP_ZONEMASK (see linux/mmzone.h - low two bits) */ |
15 | #define __GFP_DMA 0x01u | 15 | #define __GFP_DMA ((__force gfp_t)0x01u) |
16 | #define __GFP_HIGHMEM 0x02u | 16 | #define __GFP_HIGHMEM ((__force gfp_t)0x02u) |
17 | 17 | ||
18 | /* | 18 | /* |
19 | * Action modifiers - doesn't change the zoning | 19 | * Action modifiers - doesn't change the zoning |
@@ -26,24 +26,24 @@ struct vm_area_struct; | |||
26 | * | 26 | * |
27 | * __GFP_NORETRY: The VM implementation must not retry indefinitely. | 27 | * __GFP_NORETRY: The VM implementation must not retry indefinitely. |
28 | */ | 28 | */ |
29 | #define __GFP_WAIT 0x10u /* Can wait and reschedule? */ | 29 | #define __GFP_WAIT ((__force gfp_t)0x10u) /* Can wait and reschedule? */ |
30 | #define __GFP_HIGH 0x20u /* Should access emergency pools? */ | 30 | #define __GFP_HIGH ((__force gfp_t)0x20u) /* Should access emergency pools? */ |
31 | #define __GFP_IO 0x40u /* Can start physical IO? */ | 31 | #define __GFP_IO ((__force gfp_t)0x40u) /* Can start physical IO? */ |
32 | #define __GFP_FS 0x80u /* Can call down to low-level FS? */ | 32 | #define __GFP_FS ((__force gfp_t)0x80u) /* Can call down to low-level FS? */ |
33 | #define __GFP_COLD 0x100u /* Cache-cold page required */ | 33 | #define __GFP_COLD ((__force gfp_t)0x100u) /* Cache-cold page required */ |
34 | #define __GFP_NOWARN 0x200u /* Suppress page allocation failure warning */ | 34 | #define __GFP_NOWARN ((__force gfp_t)0x200u) /* Suppress page allocation failure warning */ |
35 | #define __GFP_REPEAT 0x400u /* Retry the allocation. Might fail */ | 35 | #define __GFP_REPEAT ((__force gfp_t)0x400u) /* Retry the allocation. Might fail */ |
36 | #define __GFP_NOFAIL 0x800u /* Retry for ever. Cannot fail */ | 36 | #define __GFP_NOFAIL ((__force gfp_t)0x800u) /* Retry for ever. Cannot fail */ |
37 | #define __GFP_NORETRY 0x1000u /* Do not retry. Might fail */ | 37 | #define __GFP_NORETRY ((__force gfp_t)0x1000u)/* Do not retry. Might fail */ |
38 | #define __GFP_NO_GROW 0x2000u /* Slab internal usage */ | 38 | #define __GFP_NO_GROW ((__force gfp_t)0x2000u)/* Slab internal usage */ |
39 | #define __GFP_COMP 0x4000u /* Add compound page metadata */ | 39 | #define __GFP_COMP ((__force gfp_t)0x4000u)/* Add compound page metadata */ |
40 | #define __GFP_ZERO 0x8000u /* Return zeroed page on success */ | 40 | #define __GFP_ZERO ((__force gfp_t)0x8000u)/* Return zeroed page on success */ |
41 | #define __GFP_NOMEMALLOC 0x10000u /* Don't use emergency reserves */ | 41 | #define __GFP_NOMEMALLOC ((__force gfp_t)0x10000u) /* Don't use emergency reserves */ |
42 | #define __GFP_NORECLAIM 0x20000u /* No realy zone reclaim during allocation */ | 42 | #define __GFP_NORECLAIM ((__force gfp_t)0x20000u) /* No realy zone reclaim during allocation */ |
43 | #define __GFP_HARDWALL 0x40000u /* Enforce hardwall cpuset memory allocs */ | 43 | #define __GFP_HARDWALL ((__force gfp_t)0x40000u) /* Enforce hardwall cpuset memory allocs */ |
44 | 44 | ||
45 | #define __GFP_BITS_SHIFT 20 /* Room for 20 __GFP_FOO bits */ | 45 | #define __GFP_BITS_SHIFT 20 /* Room for 20 __GFP_FOO bits */ |
46 | #define __GFP_BITS_MASK ((1 << __GFP_BITS_SHIFT) - 1) | 46 | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) |
47 | 47 | ||
48 | /* if you forget to add the bitmask here kernel will crash, period */ | 48 | /* if you forget to add the bitmask here kernel will crash, period */ |
49 | #define GFP_LEVEL_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS| \ | 49 | #define GFP_LEVEL_MASK (__GFP_WAIT|__GFP_HIGH|__GFP_IO|__GFP_FS| \ |
@@ -64,6 +64,7 @@ struct vm_area_struct; | |||
64 | 64 | ||
65 | #define GFP_DMA __GFP_DMA | 65 | #define GFP_DMA __GFP_DMA |
66 | 66 | ||
67 | #define gfp_zone(mask) ((__force int)((mask) & (__force gfp_t)GFP_ZONEMASK)) | ||
67 | 68 | ||
68 | /* | 69 | /* |
69 | * There is only one page-allocator function, and two main namespaces to | 70 | * There is only one page-allocator function, and two main namespaces to |
@@ -94,7 +95,7 @@ static inline struct page *alloc_pages_node(int nid, gfp_t gfp_mask, | |||
94 | return NULL; | 95 | return NULL; |
95 | 96 | ||
96 | return __alloc_pages(gfp_mask, order, | 97 | return __alloc_pages(gfp_mask, order, |
97 | NODE_DATA(nid)->node_zonelists + (gfp_mask & GFP_ZONEMASK)); | 98 | NODE_DATA(nid)->node_zonelists + gfp_zone(gfp_mask)); |
98 | } | 99 | } |
99 | 100 | ||
100 | #ifdef CONFIG_NUMA | 101 | #ifdef CONFIG_NUMA |
diff --git a/include/linux/hil.h b/include/linux/hil.h new file mode 100644 index 000000000000..13352d7d0caf --- /dev/null +++ b/include/linux/hil.h | |||
@@ -0,0 +1,483 @@ | |||
1 | #ifndef _HIL_H_ | ||
2 | #define _HIL_H_ | ||
3 | |||
4 | /* | ||
5 | * Hewlett Packard Human Interface Loop (HP-HIL) Protocol -- header. | ||
6 | * | ||
7 | * Copyright (c) 2001 Brian S. Julin | ||
8 | * All rights reserved. | ||
9 | * | ||
10 | * Redistribution and use in source and binary forms, with or without | ||
11 | * modification, are permitted provided that the following conditions | ||
12 | * are met: | ||
13 | * 1. Redistributions of source code must retain the above copyright | ||
14 | * notice, this list of conditions, and the following disclaimer, | ||
15 | * without modification. | ||
16 | * 2. The name of the author may not be used to endorse or promote products | ||
17 | * derived from this software without specific prior written permission. | ||
18 | * | ||
19 | * Alternatively, this software may be distributed under the terms of the | ||
20 | * GNU General Public License ("GPL"). | ||
21 | * | ||
22 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
23 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
25 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR | ||
26 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
27 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
28 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
29 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
31 | * | ||
32 | * References: | ||
33 | * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A | ||
34 | * | ||
35 | * A note of thanks to HP for providing and shipping reference materials | ||
36 | * free of charge to help in the development of HIL support for Linux. | ||
37 | * | ||
38 | */ | ||
39 | |||
40 | #include <asm/types.h> | ||
41 | |||
42 | /* Physical constants relevant to raw loop/device timing. | ||
43 | */ | ||
44 | |||
45 | #define HIL_CLOCK 8MHZ | ||
46 | #define HIL_EK1_CLOCK 30HZ | ||
47 | #define HIL_EK2_CLOCK 60HZ | ||
48 | |||
49 | #define HIL_TIMEOUT_DEV 5 /* ms */ | ||
50 | #define HIL_TIMEOUT_DEVS 10 /* ms */ | ||
51 | #define HIL_TIMEOUT_NORESP 10 /* ms */ | ||
52 | #define HIL_TIMEOUT_DEVS_DATA 16 /* ms */ | ||
53 | #define HIL_TIMEOUT_SELFTEST 200 /* ms */ | ||
54 | |||
55 | |||
56 | /* Actual wire line coding. These will only be useful if someone is | ||
57 | * implementing a software MLC to run HIL devices on a non-parisc machine. | ||
58 | */ | ||
59 | |||
60 | #define HIL_WIRE_PACKET_LEN 15 | ||
61 | enum hil_wire_bitpos { | ||
62 | HIL_WIRE_START = 0, | ||
63 | HIL_WIRE_ADDR2, | ||
64 | HIL_WIRE_ADDR1, | ||
65 | HIL_WIRE_ADDR0, | ||
66 | HIL_WIRE_COMMAND, | ||
67 | HIL_WIRE_DATA7, | ||
68 | HIL_WIRE_DATA6, | ||
69 | HIL_WIRE_DATA5, | ||
70 | HIL_WIRE_DATA4, | ||
71 | HIL_WIRE_DATA3, | ||
72 | HIL_WIRE_DATA2, | ||
73 | HIL_WIRE_DATA1, | ||
74 | HIL_WIRE_DATA0, | ||
75 | HIL_WIRE_PARITY, | ||
76 | HIL_WIRE_STOP | ||
77 | }; | ||
78 | |||
79 | /* HP documentation uses these bit positions to refer to commands; | ||
80 | * we will call these "packets". | ||
81 | */ | ||
82 | enum hil_pkt_bitpos { | ||
83 | HIL_PKT_CMD = 0x00000800, | ||
84 | HIL_PKT_ADDR2 = 0x00000400, | ||
85 | HIL_PKT_ADDR1 = 0x00000200, | ||
86 | HIL_PKT_ADDR0 = 0x00000100, | ||
87 | HIL_PKT_ADDR_MASK = 0x00000700, | ||
88 | HIL_PKT_ADDR_SHIFT = 8, | ||
89 | HIL_PKT_DATA7 = 0x00000080, | ||
90 | HIL_PKT_DATA6 = 0x00000040, | ||
91 | HIL_PKT_DATA5 = 0x00000020, | ||
92 | HIL_PKT_DATA4 = 0x00000010, | ||
93 | HIL_PKT_DATA3 = 0x00000008, | ||
94 | HIL_PKT_DATA2 = 0x00000004, | ||
95 | HIL_PKT_DATA1 = 0x00000002, | ||
96 | HIL_PKT_DATA0 = 0x00000001, | ||
97 | HIL_PKT_DATA_MASK = 0x000000FF, | ||
98 | HIL_PKT_DATA_SHIFT = 0 | ||
99 | }; | ||
100 | |||
101 | /* The HIL MLC also has several error/status/control bits. We extend the | ||
102 | * "packet" to include these when direct access to the MLC is available, | ||
103 | * or emulate them in cases where they are not available. | ||
104 | * | ||
105 | * This way the device driver knows that the underlying MLC driver | ||
106 | * has had to deal with loop errors. | ||
107 | */ | ||
108 | enum hil_error_bitpos { | ||
109 | HIL_ERR_OB = 0x00000800, /* MLC is busy sending an auto-poll, | ||
110 | or we have filled up the output | ||
111 | buffer and must wait. */ | ||
112 | HIL_ERR_INT = 0x00010000, /* A normal interrupt has occurred. */ | ||
113 | HIL_ERR_NMI = 0x00020000, /* An NMI has occurred. */ | ||
114 | HIL_ERR_LERR = 0x00040000, /* A poll didn't come back. */ | ||
115 | HIL_ERR_PERR = 0x01000000, /* There was a Parity Error. */ | ||
116 | HIL_ERR_FERR = 0x02000000, /* There was a Framing Error. */ | ||
117 | HIL_ERR_FOF = 0x04000000 /* Input FIFO Overflowed. */ | ||
118 | }; | ||
119 | |||
120 | enum hil_control_bitpos { | ||
121 | HIL_CTRL_TEST = 0x00010000, | ||
122 | HIL_CTRL_IPF = 0x00040000, | ||
123 | HIL_CTRL_APE = 0x02000000 | ||
124 | }; | ||
125 | |||
126 | /* Bits 30,31 are unused, we use them to control write behavior. */ | ||
127 | #define HIL_DO_ALTER_CTRL 0x40000000 /* Write MSW of packet to control | ||
128 | before writing LSW to loop */ | ||
129 | #define HIL_CTRL_ONLY 0xc0000000 /* *Only* alter the control registers */ | ||
130 | |||
131 | /* This gives us a 32-bit "packet" | ||
132 | */ | ||
133 | typedef u32 hil_packet; | ||
134 | |||
135 | |||
136 | /* HIL Loop commands | ||
137 | */ | ||
138 | enum hil_command { | ||
139 | HIL_CMD_IFC = 0x00, /* Interface Clear */ | ||
140 | HIL_CMD_EPT = 0x01, /* Enter Pass-Thru Mode */ | ||
141 | HIL_CMD_ELB = 0x02, /* Enter Loop-Back Mode */ | ||
142 | HIL_CMD_IDD = 0x03, /* Identify and Describe */ | ||
143 | HIL_CMD_DSR = 0x04, /* Device Soft Reset */ | ||
144 | HIL_CMD_PST = 0x05, /* Perform Self Test */ | ||
145 | HIL_CMD_RRG = 0x06, /* Read Register */ | ||
146 | HIL_CMD_WRG = 0x07, /* Write Register */ | ||
147 | HIL_CMD_ACF = 0x08, /* Auto Configure */ | ||
148 | HIL_CMDID_ACF = 0x07, /* Auto Configure bits with incremented ID */ | ||
149 | HIL_CMD_POL = 0x10, /* Poll */ | ||
150 | HIL_CMDCT_POL = 0x0f, /* Poll command bits with item count */ | ||
151 | HIL_CMD_RPL = 0x20, /* RePoll */ | ||
152 | HIL_CMDCT_RPL = 0x0f, /* RePoll command bits with item count */ | ||
153 | HIL_CMD_RNM = 0x30, /* Report Name */ | ||
154 | HIL_CMD_RST = 0x31, /* Report Status */ | ||
155 | HIL_CMD_EXD = 0x32, /* Extended Describe */ | ||
156 | HIL_CMD_RSC = 0x33, /* Report Security Code */ | ||
157 | |||
158 | /* 0x34 to 0x3c reserved for future use */ | ||
159 | |||
160 | HIL_CMD_DKA = 0x3d, /* Disable Keyswitch Autorepeat */ | ||
161 | HIL_CMD_EK1 = 0x3e, /* Enable Keyswitch Autorepeat 1 */ | ||
162 | HIL_CMD_EK2 = 0x3f, /* Enable Keyswitch Autorepeat 2 */ | ||
163 | HIL_CMD_PR1 = 0x40, /* Prompt1 */ | ||
164 | HIL_CMD_PR2 = 0x41, /* Prompt2 */ | ||
165 | HIL_CMD_PR3 = 0x42, /* Prompt3 */ | ||
166 | HIL_CMD_PR4 = 0x43, /* Prompt4 */ | ||
167 | HIL_CMD_PR5 = 0x44, /* Prompt5 */ | ||
168 | HIL_CMD_PR6 = 0x45, /* Prompt6 */ | ||
169 | HIL_CMD_PR7 = 0x46, /* Prompt7 */ | ||
170 | HIL_CMD_PRM = 0x47, /* Prompt (General Purpose) */ | ||
171 | HIL_CMD_AK1 = 0x48, /* Acknowlege1 */ | ||
172 | HIL_CMD_AK2 = 0x49, /* Acknowlege2 */ | ||
173 | HIL_CMD_AK3 = 0x4a, /* Acknowlege3 */ | ||
174 | HIL_CMD_AK4 = 0x4b, /* Acknowlege4 */ | ||
175 | HIL_CMD_AK5 = 0x4c, /* Acknowlege5 */ | ||
176 | HIL_CMD_AK6 = 0x4d, /* Acknowlege6 */ | ||
177 | HIL_CMD_AK7 = 0x4e, /* Acknowlege7 */ | ||
178 | HIL_CMD_ACK = 0x4f, /* Acknowlege (General Purpose) */ | ||
179 | |||
180 | /* 0x50 to 0x78 reserved for future use */ | ||
181 | /* 0x80 to 0xEF device-specific commands */ | ||
182 | /* 0xf0 to 0xf9 reserved for future use */ | ||
183 | |||
184 | HIL_CMD_RIO = 0xfa, /* Register I/O Error */ | ||
185 | HIL_CMD_SHR = 0xfb, /* System Hard Reset */ | ||
186 | HIL_CMD_TER = 0xfc, /* Transmission Error */ | ||
187 | HIL_CMD_CAE = 0xfd, /* Configuration Address Error */ | ||
188 | HIL_CMD_DHR = 0xfe, /* Device Hard Reset */ | ||
189 | |||
190 | /* 0xff is prohibited from use. */ | ||
191 | }; | ||
192 | |||
193 | |||
194 | /* | ||
195 | * Response "records" to HIL commands | ||
196 | */ | ||
197 | |||
198 | /* Device ID byte | ||
199 | */ | ||
200 | #define HIL_IDD_DID_TYPE_MASK 0xe0 /* Primary type bits */ | ||
201 | #define HIL_IDD_DID_TYPE_KB_INTEGRAL 0xa0 /* Integral keyboard */ | ||
202 | #define HIL_IDD_DID_TYPE_KB_ITF 0xc0 /* ITD keyboard */ | ||
203 | #define HIL_IDD_DID_TYPE_KB_RSVD 0xe0 /* Reserved keyboard type */ | ||
204 | #define HIL_IDD_DID_TYPE_KB_LANG_MASK 0x1f /* Keyboard locale bits */ | ||
205 | #define HIL_IDD_DID_KBLANG_USE_ESD 0x00 /* Use ESD Locale instead */ | ||
206 | #define HIL_IDD_DID_TYPE_ABS 0x80 /* Absolute Positioners */ | ||
207 | #define HIL_IDD_DID_ABS_RSVD1_MASK 0xf8 /* Reserved */ | ||
208 | #define HIL_IDD_DID_ABS_RSVD1 0x98 | ||
209 | #define HIL_IDD_DID_ABS_TABLET_MASK 0xf8 /* Tablets and digitizers */ | ||
210 | #define HIL_IDD_DID_ABS_TABLET 0x90 | ||
211 | #define HIL_IDD_DID_ABS_TSCREEN_MASK 0xfc /* Touch screens */ | ||
212 | #define HIL_IDD_DID_ABS_TSCREEN 0x8c | ||
213 | #define HIL_IDD_DID_ABS_RSVD2_MASK 0xfc /* Reserved */ | ||
214 | #define HIL_IDD_DID_ABS_RSVD2 0x88 | ||
215 | #define HIL_IDD_DID_ABS_RSVD3_MASK 0xfc /* Reserved */ | ||
216 | #define HIL_IDD_DID_ABS_RSVD3 0x80 | ||
217 | #define HIL_IDD_DID_TYPE_REL 0x60 /* Relative Positioners */ | ||
218 | #define HIL_IDD_DID_REL_RSVD1_MASK 0xf0 /* Reserved */ | ||
219 | #define HIL_IDD_DID_REL_RSVD1 0x70 | ||
220 | #define HIL_IDD_DID_REL_RSVD2_MASK 0xfc /* Reserved */ | ||
221 | #define HIL_IDD_DID_REL_RSVD2 0x6c | ||
222 | #define HIL_IDD_DID_REL_MOUSE_MASK 0xfc /* Mouse */ | ||
223 | #define HIL_IDD_DID_REL_MOUSE 0x68 | ||
224 | #define HIL_IDD_DID_REL_QUAD_MASK 0xf8 /* Other Quadrature Devices */ | ||
225 | #define HIL_IDD_DID_REL_QUAD 0x60 | ||
226 | #define HIL_IDD_DID_TYPE_CHAR 0x40 /* Character Entry */ | ||
227 | #define HIL_IDD_DID_CHAR_BARCODE_MASK 0xfc /* Barcode Reader */ | ||
228 | #define HIL_IDD_DID_CHAR_BARCODE 0x5c | ||
229 | #define HIL_IDD_DID_CHAR_RSVD1_MASK 0xfc /* Reserved */ | ||
230 | #define HIL_IDD_DID_CHAR_RSVD1 0x58 | ||
231 | #define HIL_IDD_DID_CHAR_RSVD2_MASK 0xf8 /* Reserved */ | ||
232 | #define HIL_IDD_DID_CHAR_RSVD2 0x50 | ||
233 | #define HIL_IDD_DID_CHAR_RSVD3_MASK 0xf0 /* Reserved */ | ||
234 | #define HIL_IDD_DID_CHAR_RSVD3 0x40 | ||
235 | #define HIL_IDD_DID_TYPE_OTHER 0x20 /* Miscellaneous */ | ||
236 | #define HIL_IDD_DID_OTHER_RSVD1_MASK 0xf0 /* Reserved */ | ||
237 | #define HIL_IDD_DID_OTHER_RSVD1 0x30 | ||
238 | #define HIL_IDD_DID_OTHER_BARCODE_MASK 0xfc /* Tone Generator */ | ||
239 | #define HIL_IDD_DID_OTHER_BARCODE 0x2c | ||
240 | #define HIL_IDD_DID_OTHER_RSVD2_MASK 0xfc /* Reserved */ | ||
241 | #define HIL_IDD_DID_OTHER_RSVD2 0x28 | ||
242 | #define HIL_IDD_DID_OTHER_RSVD3_MASK 0xf8 /* Reserved */ | ||
243 | #define HIL_IDD_DID_OTHER_RSVD3 0x20 | ||
244 | #define HIL_IDD_DID_TYPE_KEYPAD 0x00 /* Vectra Keyboard */ | ||
245 | |||
246 | /* IDD record header | ||
247 | */ | ||
248 | #define HIL_IDD_HEADER_AXSET_MASK 0x03 /* Number of axis in a set */ | ||
249 | #define HIL_IDD_HEADER_RSC 0x04 /* Supports RSC command */ | ||
250 | #define HIL_IDD_HEADER_EXD 0x08 /* Supports EXD command */ | ||
251 | #define HIL_IDD_HEADER_IOD 0x10 /* IOD byte to follow */ | ||
252 | #define HIL_IDD_HEADER_16BIT 0x20 /* 16 (vs. 8) bit resolution */ | ||
253 | #define HIL_IDD_HEADER_ABS 0x40 /* Reports Absolute Position */ | ||
254 | #define HIL_IDD_HEADER_2X_AXIS 0x80 /* Two sets of 1-3 axis */ | ||
255 | |||
256 | /* I/O Descriptor | ||
257 | */ | ||
258 | #define HIL_IDD_IOD_NBUTTON_MASK 0x07 /* Number of buttons */ | ||
259 | #define HIL_IDD_IOD_PROXIMITY 0x08 /* Proximity in/out events */ | ||
260 | #define HIL_IDD_IOD_PROMPT_MASK 0x70 /* Number of prompts/acks */ | ||
261 | #define HIL_IDD_IOD_PROMPT_SHIFT 4 | ||
262 | #define HIL_IDD_IOD_PROMPT 0x80 /* Generic prompt/ack */ | ||
263 | |||
264 | #define HIL_IDD_NUM_AXES_PER_SET(header_packet) \ | ||
265 | ((header_packet) & HIL_IDD_HEADER_AXSET_MASK) | ||
266 | |||
267 | #define HIL_IDD_NUM_AXSETS(header_packet) \ | ||
268 | (2 - !((header_packet) & HIL_IDD_HEADER_2X_AXIS)) | ||
269 | |||
270 | #define HIL_IDD_LEN(header_packet) \ | ||
271 | ((4 - !(header_packet & HIL_IDD_HEADER_IOD) - \ | ||
272 | 2 * !(HIL_IDD_NUM_AXES_PER_SET(header_packet))) + \ | ||
273 | 2 * HIL_IDD_NUM_AXES_PER_SET(header_packet) * \ | ||
274 | !!((header_packet) & HIL_IDD_HEADER_ABS)) | ||
275 | |||
276 | /* The following HIL_IDD_* macros assume you have an array of | ||
277 | * packets and/or unpacked 8-bit data in the order that they | ||
278 | * were received. | ||
279 | */ | ||
280 | |||
281 | #define HIL_IDD_AXIS_COUNTS_PER_M(header_ptr) \ | ||
282 | (!(HIL_IDD_NUM_AXSETS(*(header_ptr))) ? -1 : \ | ||
283 | (((*(header_ptr + 1) & HIL_PKT_DATA_MASK) + \ | ||
284 | ((*(header_ptr + 2) & HIL_PKT_DATA_MASK)) << 8) \ | ||
285 | * ((*(header_ptr) & HIL_IDD_HEADER_16BIT) ? 100 : 1))) | ||
286 | |||
287 | #define HIL_IDD_AXIS_MAX(header_ptr, __axnum) \ | ||
288 | ((!(*(header_ptr) & HIL_IDD_HEADER_ABS) || \ | ||
289 | (HIL_IDD_NUM_AXES_PER_SET(*(header_ptr)) <= __axnum)) ? 0 : \ | ||
290 | ((HIL_PKT_DATA_MASK & *((header_ptr) + 3 + 2 * __axnum)) + \ | ||
291 | ((HIL_PKT_DATA_MASK & *((header_ptr) + 4 + 2 * __axnum)) << 8))) | ||
292 | |||
293 | #define HIL_IDD_IOD(header_ptr) \ | ||
294 | (*(header_ptr + HIL_IDD_LEN((*header_ptr)) - 1)) | ||
295 | |||
296 | #define HIL_IDD_HAS_GEN_PROMPT(header_ptr) \ | ||
297 | ((*header_ptr & HIL_IDD_HEADER_IOD) && \ | ||
298 | (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROMPT)) | ||
299 | |||
300 | #define HIL_IDD_HAS_GEN_PROXIMITY(header_ptr) \ | ||
301 | ((*header_ptr & HIL_IDD_HEADER_IOD) && \ | ||
302 | (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_PROXIMITY)) | ||
303 | |||
304 | #define HIL_IDD_NUM_BUTTONS(header_ptr) \ | ||
305 | ((*header_ptr & HIL_IDD_HEADER_IOD) ? \ | ||
306 | (HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NBUTTON_MASK) : 0) | ||
307 | |||
308 | #define HIL_IDD_NUM_PROMPTS(header_ptr) \ | ||
309 | ((*header_ptr & HIL_IDD_HEADER_IOD) ? \ | ||
310 | ((HIL_IDD_IOD(header_ptr) & HIL_IDD_IOD_NPROMPT_MASK) \ | ||
311 | >> HIL_IDD_IOD_PROMPT_SHIFT) : 0) | ||
312 | |||
313 | /* The response to HIL EXD commands -- the "extended describe record" */ | ||
314 | #define HIL_EXD_HEADER_WRG 0x03 /* Supports type2 WRG */ | ||
315 | #define HIL_EXD_HEADER_WRG_TYPE1 0x01 /* Supports type1 WRG */ | ||
316 | #define HIL_EXD_HEADER_WRG_TYPE2 0x02 /* Supports type2 WRG */ | ||
317 | #define HIL_EXD_HEADER_RRG 0x04 /* Supports RRG command */ | ||
318 | #define HIL_EXD_HEADER_RNM 0x10 /* Supports RNM command */ | ||
319 | #define HIL_EXD_HEADER_RST 0x20 /* Supports RST command */ | ||
320 | #define HIL_EXD_HEADER_LOCALE 0x40 /* Contains locale code */ | ||
321 | |||
322 | #define HIL_EXD_NUM_RRG(header_ptr) \ | ||
323 | ((*header_ptr & HIL_EXD_HEADER_RRG) ? \ | ||
324 | (*(header_ptr + 1) & HIL_PKT_DATA_MASK) : 0) | ||
325 | |||
326 | #define HIL_EXD_NUM_WWG(header_ptr) \ | ||
327 | ((*header_ptr & HIL_EXD_HEADER_WRG) ? \ | ||
328 | (*(header_ptr + 2 - !(*header_ptr & HIL_EXD_HEADER_RRG)) & \ | ||
329 | HIL_PKT_DATA_MASK) : 0) | ||
330 | |||
331 | #define HIL_EXD_LEN(header_ptr) \ | ||
332 | (!!(*header_ptr & HIL_EXD_HEADER_RRG) + \ | ||
333 | !!(*header_ptr & HIL_EXD_HEADER_WRG) + \ | ||
334 | !!(*header_ptr & HIL_EXD_HEADER_LOCALE) + \ | ||
335 | 2 * !!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) + 1) | ||
336 | |||
337 | #define HIL_EXD_LOCALE(header_ptr) \ | ||
338 | (!(*header_ptr & HIL_EXD_HEADER_LOCALE) ? -1 : \ | ||
339 | (*(header_ptr + HIL_EXD_LEN(header_ptr) - 1) & HIL_PKT_DATA_MASK)) | ||
340 | |||
341 | #define HIL_EXD_WRG_TYPE2_LEN(header_ptr) \ | ||
342 | (!(*header_ptr & HIL_EXD_HEADER_WRG_TYPE2) ? -1 : \ | ||
343 | (*(header_ptr + HIL_EXD_LEN(header_ptr) - 2 - \ | ||
344 | !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) + \ | ||
345 | ((*(header_ptr + HIL_EXD_LEN(header_ptr) - 1 - \ | ||
346 | !!(*header_ptr & HIL_EXD_HEADER_LOCALE)) & HIL_PKT_DATA_MASK) << 8)) | ||
347 | |||
348 | /* Device locale codes. */ | ||
349 | |||
350 | /* Last defined locale code. Everything above this is "Reserved", | ||
351 | and note that this same table applies to the Device ID Byte where | ||
352 | keyboards may have a nationality code which is only 5 bits. */ | ||
353 | #define HIL_LOCALE_MAX 0x1f | ||
354 | |||
355 | /* Map to hopefully useful strings. I was trying to make these look | ||
356 | like locale.aliases strings do; maybe that isn't the right table to | ||
357 | emulate. In either case, I didn't have much to work on. */ | ||
358 | #define HIL_LOCALE_MAP \ | ||
359 | "", /* 0x00 Reserved */ \ | ||
360 | "", /* 0x01 Reserved */ \ | ||
361 | "", /* 0x02 Reserved */ \ | ||
362 | "swiss.french", /* 0x03 Swiss/French */ \ | ||
363 | "portuguese", /* 0x04 Portuguese */ \ | ||
364 | "arabic", /* 0x05 Arabic */ \ | ||
365 | "hebrew", /* 0x06 Hebrew */ \ | ||
366 | "english.canadian", /* 0x07 Canadian English */ \ | ||
367 | "turkish", /* 0x08 Turkish */ \ | ||
368 | "greek", /* 0x09 Greek */ \ | ||
369 | "thai", /* 0x0a Thai (Thailand) */ \ | ||
370 | "italian", /* 0x0b Italian */ \ | ||
371 | "korean", /* 0x0c Hangul (Korea) */ \ | ||
372 | "dutch", /* 0x0d Dutch */ \ | ||
373 | "swedish", /* 0x0e Swedish */ \ | ||
374 | "german", /* 0x0f German */ \ | ||
375 | "chinese", /* 0x10 Chinese-PRC */ \ | ||
376 | "chinese", /* 0x11 Chinese-ROC */ \ | ||
377 | "swiss.french", /* 0x12 Swiss/French II */ \ | ||
378 | "spanish", /* 0x13 Spanish */ \ | ||
379 | "swiss.german", /* 0x14 Swiss/German II */ \ | ||
380 | "flemish", /* 0x15 Belgian (Flemish) */ \ | ||
381 | "finnish", /* 0x16 Finnish */ \ | ||
382 | "english.uk", /* 0x17 United Kingdom */ \ | ||
383 | "french.canadian", /* 0x18 French/Canadian */ \ | ||
384 | "swiss.german", /* 0x19 Swiss/German */ \ | ||
385 | "norwegian", /* 0x1a Norwegian */ \ | ||
386 | "french", /* 0x1b French */ \ | ||
387 | "danish", /* 0x1c Danish */ \ | ||
388 | "japanese", /* 0x1d Katakana */ \ | ||
389 | "spanish", /* 0x1e Latin American/Spanish*/\ | ||
390 | "english.us" /* 0x1f United States */ \ | ||
391 | |||
392 | |||
393 | /* HIL keycodes */ | ||
394 | #define HIL_KEYCODES_SET1_TBLSIZE 128 | ||
395 | #define HIL_KEYCODES_SET1 \ | ||
396 | KEY_5, KEY_RESERVED, KEY_RIGHTALT, KEY_LEFTALT, \ | ||
397 | KEY_RIGHTSHIFT, KEY_LEFTSHIFT, KEY_LEFTCTRL, KEY_SYSRQ, \ | ||
398 | KEY_KP4, KEY_KP8, KEY_KP5, KEY_KP9, \ | ||
399 | KEY_KP6, KEY_KP7, KEY_KPCOMMA, KEY_KPENTER, \ | ||
400 | KEY_KP1, KEY_KPSLASH, KEY_KP2, KEY_KPPLUS, \ | ||
401 | KEY_KP3, KEY_KPASTERISK, KEY_KP0, KEY_KPMINUS, \ | ||
402 | KEY_B, KEY_V, KEY_C, KEY_X, \ | ||
403 | KEY_Z, KEY_RESERVED, KEY_RESERVED, KEY_ESC, \ | ||
404 | KEY_6, KEY_F10, KEY_3, KEY_F11, \ | ||
405 | KEY_KPDOT, KEY_F9, KEY_TAB /*KP*/, KEY_F12, \ | ||
406 | KEY_H, KEY_G, KEY_F, KEY_D, \ | ||
407 | KEY_S, KEY_A, KEY_RESERVED, KEY_CAPSLOCK, \ | ||
408 | KEY_U, KEY_Y, KEY_T, KEY_R, \ | ||
409 | KEY_E, KEY_W, KEY_Q, KEY_TAB, \ | ||
410 | KEY_7, KEY_6, KEY_5, KEY_4, \ | ||
411 | KEY_3, KEY_2, KEY_1, KEY_GRAVE, \ | ||
412 | KEY_F13, KEY_F14, KEY_F15, KEY_F16, \ | ||
413 | KEY_F17, KEY_F18, KEY_F19, KEY_F20, \ | ||
414 | KEY_MENU, KEY_F4, KEY_F3, KEY_F2, \ | ||
415 | KEY_F1, KEY_VOLUMEUP, KEY_STOP, KEY_SENDFILE, \ | ||
416 | KEY_SYSRQ, KEY_F5, KEY_F6, KEY_F7, \ | ||
417 | KEY_F8, KEY_VOLUMEDOWN, KEY_DEL_EOL, KEY_DEL_EOS, \ | ||
418 | KEY_8, KEY_9, KEY_0, KEY_MINUS, \ | ||
419 | KEY_EQUAL, KEY_BACKSPACE, KEY_INS_LINE, KEY_DEL_LINE, \ | ||
420 | KEY_I, KEY_O, KEY_P, KEY_LEFTBRACE, \ | ||
421 | KEY_RIGHTBRACE, KEY_BACKSLASH, KEY_INSERT, KEY_DELETE, \ | ||
422 | KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, \ | ||
423 | KEY_APOSTROPHE, KEY_ENTER, KEY_HOME, KEY_PAGEUP, \ | ||
424 | KEY_M, KEY_COMMA, KEY_DOT, KEY_SLASH, \ | ||
425 | KEY_BACKSLASH, KEY_SELECT, KEY_102ND, KEY_PAGEDOWN, \ | ||
426 | KEY_N, KEY_SPACE, KEY_NEXT, KEY_RESERVED, \ | ||
427 | KEY_LEFT, KEY_DOWN, KEY_UP, KEY_RIGHT | ||
428 | |||
429 | |||
430 | #define HIL_KEYCODES_SET3_TBLSIZE 128 | ||
431 | #define HIL_KEYCODES_SET3 \ | ||
432 | KEY_RESERVED, KEY_ESC, KEY_1, KEY_2, \ | ||
433 | KEY_3, KEY_4, KEY_5, KEY_6, \ | ||
434 | KEY_7, KEY_8, KEY_9, KEY_0, \ | ||
435 | KEY_MINUS, KEY_EQUAL, KEY_BACKSPACE, KEY_TAB, \ | ||
436 | KEY_Q, KEY_W, KEY_E, KEY_R, \ | ||
437 | KEY_T, KEY_Y, KEY_U, KEY_I, \ | ||
438 | KEY_O, KEY_P, KEY_LEFTBRACE, KEY_RIGHTBRACE, \ | ||
439 | KEY_ENTER, KEY_LEFTCTRL, KEY_A, KEY_S, \ | ||
440 | KEY_D, KEY_F, KEY_G, KEY_H, \ | ||
441 | KEY_J, KEY_K, KEY_L, KEY_SEMICOLON, \ | ||
442 | KEY_APOSTROPHE,KEY_GRAVE, KEY_LEFTSHIFT, KEY_BACKSLASH, \ | ||
443 | KEY_Z, KEY_X, KEY_C, KEY_V, \ | ||
444 | KEY_B, KEY_N, KEY_M, KEY_COMMA, \ | ||
445 | KEY_DOT, KEY_SLASH, KEY_RIGHTSHIFT, KEY_KPASTERISK, \ | ||
446 | KEY_LEFTALT, KEY_SPACE, KEY_CAPSLOCK, KEY_F1, \ | ||
447 | KEY_F2, KEY_F3, KEY_F4, KEY_F5, \ | ||
448 | KEY_F6, KEY_F7, KEY_F8, KEY_F9, \ | ||
449 | KEY_F10, KEY_NUMLOCK, KEY_SCROLLLOCK, KEY_KP7, \ | ||
450 | KEY_KP8, KEY_KP9, KEY_KPMINUS, KEY_KP4, \ | ||
451 | KEY_KP5, KEY_KP6, KEY_KPPLUS, KEY_KP1, \ | ||
452 | KEY_KP2, KEY_KP3, KEY_KP0, KEY_KPDOT, \ | ||
453 | KEY_SYSRQ, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
454 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
455 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
456 | KEY_UP, KEY_LEFT, KEY_DOWN, KEY_RIGHT, \ | ||
457 | KEY_HOME, KEY_PAGEUP, KEY_END, KEY_PAGEDOWN, \ | ||
458 | KEY_INSERT, KEY_DELETE, KEY_102ND, KEY_RESERVED, \ | ||
459 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
460 | KEY_F1, KEY_F2, KEY_F3, KEY_F4, \ | ||
461 | KEY_F5, KEY_F6, KEY_F7, KEY_F8, \ | ||
462 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, \ | ||
463 | KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED | ||
464 | |||
465 | |||
466 | /* Response to POL command, the "poll record header" */ | ||
467 | |||
468 | #define HIL_POL_NUM_AXES_MASK 0x03 /* Number of axis reported */ | ||
469 | #define HIL_POL_CTS 0x04 /* Device ready to receive data */ | ||
470 | #define HIL_POL_STATUS_PENDING 0x08 /* Device has status to report */ | ||
471 | #define HIL_POL_CHARTYPE_MASK 0x70 /* Type of character data to follow */ | ||
472 | #define HIL_POL_CHARTYPE_NONE 0x00 /* No character data to follow */ | ||
473 | #define HIL_POL_CHARTYPE_RSVD1 0x10 /* Reserved Set 1 */ | ||
474 | #define HIL_POL_CHARTYPE_ASCII 0x20 /* U.S. ASCII */ | ||
475 | #define HIL_POL_CHARTYPE_BINARY 0x30 /* Binary data */ | ||
476 | #define HIL_POL_CHARTYPE_SET1 0x40 /* Keycode Set 1 */ | ||
477 | #define HIL_POL_CHARTYPE_RSVD2 0x50 /* Reserved Set 2 */ | ||
478 | #define HIL_POL_CHARTYPE_SET2 0x60 /* Keycode Set 2 */ | ||
479 | #define HIL_POL_CHARTYPE_SET3 0x70 /* Keycode Set 3 */ | ||
480 | #define HIL_POL_AXIS_ALT 0x80 /* Data is from axis set 2 */ | ||
481 | |||
482 | |||
483 | #endif /* _HIL_H_ */ | ||
diff --git a/include/linux/hil_mlc.h b/include/linux/hil_mlc.h new file mode 100644 index 000000000000..8df29ca48a13 --- /dev/null +++ b/include/linux/hil_mlc.h | |||
@@ -0,0 +1,168 @@ | |||
1 | /* | ||
2 | * HP Human Interface Loop Master Link Controller driver. | ||
3 | * | ||
4 | * Copyright (c) 2001 Brian S. Julin | ||
5 | * All rights reserved. | ||
6 | * | ||
7 | * Redistribution and use in source and binary forms, with or without | ||
8 | * modification, are permitted provided that the following conditions | ||
9 | * are met: | ||
10 | * 1. Redistributions of source code must retain the above copyright | ||
11 | * notice, this list of conditions, and the following disclaimer, | ||
12 | * without modification. | ||
13 | * 2. The name of the author may not be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * Alternatively, this software may be distributed under the terms of the | ||
17 | * GNU General Public License ("GPL"). | ||
18 | * | ||
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
20 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
21 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
22 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR | ||
23 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
28 | * | ||
29 | * References: | ||
30 | * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A | ||
31 | * | ||
32 | */ | ||
33 | |||
34 | #include <linux/hil.h> | ||
35 | #include <linux/time.h> | ||
36 | #include <linux/interrupt.h> | ||
37 | #include <asm/semaphore.h> | ||
38 | #include <linux/serio.h> | ||
39 | #include <linux/list.h> | ||
40 | |||
41 | typedef struct hil_mlc hil_mlc; | ||
42 | |||
43 | /* The HIL has a complicated state engine. | ||
44 | * We define the structure of nodes in the state engine here. | ||
45 | */ | ||
46 | enum hilse_act { | ||
47 | /* HILSE_OUT prepares to receive input if the next node | ||
48 | * is an IN or EXPECT, and then sends the given packet. | ||
49 | */ | ||
50 | HILSE_OUT = 0, | ||
51 | |||
52 | /* HILSE_CTS checks if the loop is busy. */ | ||
53 | HILSE_CTS, | ||
54 | |||
55 | /* HILSE_OUT_LAST sends the given command packet to | ||
56 | * the last configured/running device on the loop. | ||
57 | */ | ||
58 | HILSE_OUT_LAST, | ||
59 | |||
60 | /* HILSE_OUT_DISC sends the given command packet to | ||
61 | * the next device past the last configured/running one. | ||
62 | */ | ||
63 | HILSE_OUT_DISC, | ||
64 | |||
65 | /* HILSE_FUNC runs a callback function with given arguments. | ||
66 | * a positive return value causes the "ugly" branch to be taken. | ||
67 | */ | ||
68 | HILSE_FUNC, | ||
69 | |||
70 | /* HILSE_IN simply expects any non-errored packet to arrive | ||
71 | * within arg usecs. | ||
72 | */ | ||
73 | HILSE_IN = 0x100, | ||
74 | |||
75 | /* HILSE_EXPECT expects a particular packet to arrive | ||
76 | * within arg usecs, any other packet is considered an error. | ||
77 | */ | ||
78 | HILSE_EXPECT, | ||
79 | |||
80 | /* HILSE_EXPECT_LAST as above but dev field should be last | ||
81 | * discovered/operational device. | ||
82 | */ | ||
83 | HILSE_EXPECT_LAST, | ||
84 | |||
85 | /* HILSE_EXPECT_LAST as above but dev field should be first | ||
86 | * undiscovered/inoperational device. | ||
87 | */ | ||
88 | HILSE_EXPECT_DISC | ||
89 | }; | ||
90 | |||
91 | typedef int (hilse_func) (hil_mlc *mlc, int arg); | ||
92 | struct hilse_node { | ||
93 | enum hilse_act act; /* How to process this node */ | ||
94 | union { | ||
95 | hilse_func *func; /* Function to call if HILSE_FUNC */ | ||
96 | hil_packet packet; /* Packet to send or to compare */ | ||
97 | } object; | ||
98 | int arg; /* Timeout in usec or parm for func */ | ||
99 | int good; /* Node to jump to on success */ | ||
100 | int bad; /* Node to jump to on error */ | ||
101 | int ugly; /* Node to jump to on timeout */ | ||
102 | }; | ||
103 | |||
104 | /* Methods for back-end drivers, e.g. hp_sdc_mlc */ | ||
105 | typedef int (hil_mlc_cts) (hil_mlc *mlc); | ||
106 | typedef void (hil_mlc_out) (hil_mlc *mlc); | ||
107 | typedef int (hil_mlc_in) (hil_mlc *mlc, suseconds_t timeout); | ||
108 | |||
109 | struct hil_mlc_devinfo { | ||
110 | uint8_t idd[16]; /* Device ID Byte and Describe Record */ | ||
111 | uint8_t rsc[16]; /* Security Code Header and Record */ | ||
112 | uint8_t exd[16]; /* Extended Describe Record */ | ||
113 | uint8_t rnm[16]; /* Device name as returned by RNM command */ | ||
114 | }; | ||
115 | |||
116 | struct hil_mlc_serio_map { | ||
117 | hil_mlc *mlc; | ||
118 | int di_revmap; | ||
119 | int didx; | ||
120 | }; | ||
121 | |||
122 | /* How many (possibly old/detached) devices the we try to keep track of */ | ||
123 | #define HIL_MLC_DEVMEM 16 | ||
124 | |||
125 | struct hil_mlc { | ||
126 | struct list_head list; /* hil_mlc is organized as linked list */ | ||
127 | |||
128 | rwlock_t lock; | ||
129 | |||
130 | void *priv; /* Data specific to a particular type of MLC */ | ||
131 | |||
132 | int seidx; /* Current node in state engine */ | ||
133 | int istarted, ostarted; | ||
134 | |||
135 | hil_mlc_cts *cts; | ||
136 | struct semaphore csem; /* Raised when loop idle */ | ||
137 | |||
138 | hil_mlc_out *out; | ||
139 | struct semaphore osem; /* Raised when outpacket dispatched */ | ||
140 | hil_packet opacket; | ||
141 | |||
142 | hil_mlc_in *in; | ||
143 | struct semaphore isem; /* Raised when a packet arrives */ | ||
144 | hil_packet ipacket[16]; | ||
145 | hil_packet imatch; | ||
146 | int icount; | ||
147 | struct timeval instart; | ||
148 | suseconds_t intimeout; | ||
149 | |||
150 | int ddi; /* Last operational device id */ | ||
151 | int lcv; /* LCV to throttle loops */ | ||
152 | struct timeval lcv_tv; /* Time loop was started */ | ||
153 | |||
154 | int di_map[7]; /* Maps below items to live devs */ | ||
155 | struct hil_mlc_devinfo di[HIL_MLC_DEVMEM]; | ||
156 | struct serio *serio[HIL_MLC_DEVMEM]; | ||
157 | struct hil_mlc_serio_map serio_map[HIL_MLC_DEVMEM]; | ||
158 | hil_packet serio_opacket[HIL_MLC_DEVMEM]; | ||
159 | int serio_oidx[HIL_MLC_DEVMEM]; | ||
160 | struct hil_mlc_devinfo di_scratch; /* Temporary area */ | ||
161 | |||
162 | int opercnt; | ||
163 | |||
164 | struct tasklet_struct *tasklet; | ||
165 | }; | ||
166 | |||
167 | int hil_mlc_register(hil_mlc *mlc); | ||
168 | int hil_mlc_unregister(hil_mlc *mlc); | ||
diff --git a/include/linux/hp_sdc.h b/include/linux/hp_sdc.h new file mode 100644 index 000000000000..debd71515312 --- /dev/null +++ b/include/linux/hp_sdc.h | |||
@@ -0,0 +1,300 @@ | |||
1 | /* | ||
2 | * HP i8042 System Device Controller -- header | ||
3 | * | ||
4 | * Copyright (c) 2001 Brian S. Julin | ||
5 | * All rights reserved. | ||
6 | * | ||
7 | * Redistribution and use in source and binary forms, with or without | ||
8 | * modification, are permitted provided that the following conditions | ||
9 | * are met: | ||
10 | * 1. Redistributions of source code must retain the above copyright | ||
11 | * notice, this list of conditions, and the following disclaimer, | ||
12 | * without modification. | ||
13 | * 2. The name of the author may not be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * Alternatively, this software may be distributed under the terms of the | ||
17 | * GNU General Public License ("GPL"). | ||
18 | * | ||
19 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||
20 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
21 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||
22 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR | ||
23 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||
24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||
25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||
28 | * | ||
29 | * References: | ||
30 | * | ||
31 | * HP-HIL Technical Reference Manual. Hewlett Packard Product No. 45918A | ||
32 | * | ||
33 | * System Device Controller Microprocessor Firmware Theory of Operation | ||
34 | * for Part Number 1820-4784 Revision B. Dwg No. A-1820-4784-2 | ||
35 | * | ||
36 | */ | ||
37 | |||
38 | #ifndef _LINUX_HP_SDC_H | ||
39 | #define _LINUX_HP_SDC_H | ||
40 | |||
41 | #include <linux/interrupt.h> | ||
42 | #include <linux/types.h> | ||
43 | #include <linux/time.h> | ||
44 | #include <linux/timer.h> | ||
45 | #if defined(__hppa__) | ||
46 | #include <asm/hardware.h> | ||
47 | #endif | ||
48 | |||
49 | |||
50 | /* No 4X status reads take longer than this (in usec). | ||
51 | */ | ||
52 | #define HP_SDC_MAX_REG_DELAY 20000 | ||
53 | |||
54 | typedef void (hp_sdc_irqhook) (int irq, void *dev_id, | ||
55 | uint8_t status, uint8_t data); | ||
56 | |||
57 | int hp_sdc_request_timer_irq(hp_sdc_irqhook *callback); | ||
58 | int hp_sdc_request_hil_irq(hp_sdc_irqhook *callback); | ||
59 | int hp_sdc_request_cooked_irq(hp_sdc_irqhook *callback); | ||
60 | int hp_sdc_release_timer_irq(hp_sdc_irqhook *callback); | ||
61 | int hp_sdc_release_hil_irq(hp_sdc_irqhook *callback); | ||
62 | int hp_sdc_release_cooked_irq(hp_sdc_irqhook *callback); | ||
63 | |||
64 | typedef struct { | ||
65 | int actidx; /* Start of act. Acts are atomic WRT I/O to SDC */ | ||
66 | int idx; /* Index within the act */ | ||
67 | int endidx; /* transaction is over and done if idx == endidx */ | ||
68 | uint8_t *seq; /* commands/data for the transaction */ | ||
69 | union { | ||
70 | hp_sdc_irqhook *irqhook; /* Callback, isr or tasklet context */ | ||
71 | struct semaphore *semaphore; /* Semaphore to sleep on. */ | ||
72 | } act; | ||
73 | } hp_sdc_transaction; | ||
74 | int hp_sdc_enqueue_transaction(hp_sdc_transaction *this); | ||
75 | int hp_sdc_dequeue_transaction(hp_sdc_transaction *this); | ||
76 | |||
77 | /* The HP_SDC_ACT* values are peculiar to this driver. | ||
78 | * Nuance: never HP_SDC_ACT_DATAIN | HP_SDC_ACT_DEALLOC, use another | ||
79 | * act to perform the dealloc. | ||
80 | */ | ||
81 | #define HP_SDC_ACT_PRECMD 0x01 /* Send a command first */ | ||
82 | #define HP_SDC_ACT_DATAREG 0x02 /* Set data registers */ | ||
83 | #define HP_SDC_ACT_DATAOUT 0x04 /* Send data bytes */ | ||
84 | #define HP_SDC_ACT_POSTCMD 0x08 /* Send command after */ | ||
85 | #define HP_SDC_ACT_DATAIN 0x10 /* Collect data after */ | ||
86 | #define HP_SDC_ACT_DURING 0x1f | ||
87 | #define HP_SDC_ACT_SEMAPHORE 0x20 /* Raise semaphore after */ | ||
88 | #define HP_SDC_ACT_CALLBACK 0x40 /* Pass data to IRQ handler */ | ||
89 | #define HP_SDC_ACT_DEALLOC 0x80 /* Destroy transaction after */ | ||
90 | #define HP_SDC_ACT_AFTER 0xe0 | ||
91 | #define HP_SDC_ACT_DEAD 0x60 /* Act timed out. */ | ||
92 | |||
93 | /* Rest of the flags are straightforward representation of the SDC interface */ | ||
94 | #define HP_SDC_STATUS_IBF 0x02 /* Input buffer full */ | ||
95 | |||
96 | #define HP_SDC_STATUS_IRQMASK 0xf0 /* Bits containing "level 1" irq */ | ||
97 | #define HP_SDC_STATUS_PERIODIC 0x10 /* Periodic 10ms timer */ | ||
98 | #define HP_SDC_STATUS_USERTIMER 0x20 /* "Special purpose" timer */ | ||
99 | #define HP_SDC_STATUS_TIMER 0x30 /* Both PERIODIC and USERTIMER */ | ||
100 | #define HP_SDC_STATUS_REG 0x40 /* Data from an i8042 register */ | ||
101 | #define HP_SDC_STATUS_HILCMD 0x50 /* Command from HIL MLC */ | ||
102 | #define HP_SDC_STATUS_HILDATA 0x60 /* Data from HIL MLC */ | ||
103 | #define HP_SDC_STATUS_PUP 0x70 /* Sucessful power-up self test */ | ||
104 | #define HP_SDC_STATUS_KCOOKED 0x80 /* Key from cooked kbd */ | ||
105 | #define HP_SDC_STATUS_KRPG 0xc0 /* Key from Repeat Gen */ | ||
106 | #define HP_SDC_STATUS_KMOD_SUP 0x10 /* Shift key is up */ | ||
107 | #define HP_SDC_STATUS_KMOD_CUP 0x20 /* Control key is up */ | ||
108 | |||
109 | #define HP_SDC_NMISTATUS_FHS 0x40 /* NMI is a fast handshake irq */ | ||
110 | |||
111 | /* Internal i8042 registers (there are more, but they are not too useful). */ | ||
112 | |||
113 | #define HP_SDC_USE 0x02 /* Resource usage (including OB bit) */ | ||
114 | #define HP_SDC_IM 0x04 /* Interrupt mask */ | ||
115 | #define HP_SDC_CFG 0x11 /* Configuration register */ | ||
116 | #define HP_SDC_KBLANGUAGE 0x12 /* Keyboard language */ | ||
117 | |||
118 | #define HP_SDC_D0 0x70 /* General purpose data buffer 0 */ | ||
119 | #define HP_SDC_D1 0x71 /* General purpose data buffer 1 */ | ||
120 | #define HP_SDC_D2 0x72 /* General purpose data buffer 2 */ | ||
121 | #define HP_SDC_D3 0x73 /* General purpose data buffer 3 */ | ||
122 | #define HP_SDC_VT1 0x74 /* Timer for voice 1 */ | ||
123 | #define HP_SDC_VT2 0x75 /* Timer for voice 2 */ | ||
124 | #define HP_SDC_VT3 0x76 /* Timer for voice 3 */ | ||
125 | #define HP_SDC_VT4 0x77 /* Timer for voice 4 */ | ||
126 | #define HP_SDC_KBN 0x78 /* Which HIL devs are Nimitz */ | ||
127 | #define HP_SDC_KBC 0x79 /* Which HIL devs are cooked kbds */ | ||
128 | #define HP_SDC_LPS 0x7a /* i8042's view of HIL status */ | ||
129 | #define HP_SDC_LPC 0x7b /* i8042's view of HIL "control" */ | ||
130 | #define HP_SDC_RSV 0x7c /* Reserved "for testing" */ | ||
131 | #define HP_SDC_LPR 0x7d /* i8042 count of HIL reconfigs */ | ||
132 | #define HP_SDC_XTD 0x7e /* "Extended Configuration" register */ | ||
133 | #define HP_SDC_STR 0x7f /* i8042 self-test result */ | ||
134 | |||
135 | /* Bitfields for above registers */ | ||
136 | #define HP_SDC_USE_LOOP 0x04 /* Command is currently on the loop. */ | ||
137 | |||
138 | #define HP_SDC_IM_MASK 0x1f /* these bits not part of cmd/status */ | ||
139 | #define HP_SDC_IM_FH 0x10 /* Mask the fast handshake irq */ | ||
140 | #define HP_SDC_IM_PT 0x08 /* Mask the periodic timer irq */ | ||
141 | #define HP_SDC_IM_TIMERS 0x04 /* Mask the MT/DT/CT irq */ | ||
142 | #define HP_SDC_IM_RESET 0x02 /* Mask the reset key irq */ | ||
143 | #define HP_SDC_IM_HIL 0x01 /* Mask the HIL MLC irq */ | ||
144 | |||
145 | #define HP_SDC_CFG_ROLLOVER 0x08 /* WTF is "N-key rollover"? */ | ||
146 | #define HP_SDC_CFG_KBD 0x10 /* There is a keyboard */ | ||
147 | #define HP_SDC_CFG_NEW 0x20 /* Supports/uses HIL MLC */ | ||
148 | #define HP_SDC_CFG_KBD_OLD 0x03 /* keyboard code for non-HIL */ | ||
149 | #define HP_SDC_CFG_KBD_NEW 0x07 /* keyboard code from HIL autoconfig */ | ||
150 | #define HP_SDC_CFG_REV 0x40 /* Code revision bit */ | ||
151 | #define HP_SDC_CFG_IDPROM 0x80 /* IDPROM present in kbd (not HIL) */ | ||
152 | |||
153 | #define HP_SDC_LPS_NDEV 0x07 /* # devices autoconfigured on HIL */ | ||
154 | #define HP_SDC_LPS_ACSUCC 0x08 /* loop autoconfigured successfully */ | ||
155 | #define HP_SDC_LPS_ACFAIL 0x80 /* last loop autoconfigure failed */ | ||
156 | |||
157 | #define HP_SDC_LPC_APE_IPF 0x01 /* HIL MLC APE/IPF (autopoll) set */ | ||
158 | #define HP_SDC_LPC_ARCONERR 0x02 /* i8042 autoreconfigs loop on err */ | ||
159 | #define HP_SDC_LPC_ARCQUIET 0x03 /* i8042 doesn't report autoreconfigs*/ | ||
160 | #define HP_SDC_LPC_COOK 0x10 /* i8042 cooks devices in _KBN */ | ||
161 | #define HP_SDC_LPC_RC 0x80 /* causes autoreconfig */ | ||
162 | |||
163 | #define HP_SDC_XTD_REV 0x07 /* contains revision code */ | ||
164 | #define HP_SDC_XTD_REV_STRINGS(val, str) \ | ||
165 | switch (val) { \ | ||
166 | case 0x1: str = "1820-3712"; break; \ | ||
167 | case 0x2: str = "1820-4379"; break; \ | ||
168 | case 0x3: str = "1820-4784"; break; \ | ||
169 | default: str = "unknown"; \ | ||
170 | }; | ||
171 | #define HP_SDC_XTD_BEEPER 0x08 /* TI SN76494 beeper available */ | ||
172 | #define HP_SDC_XTD_BBRTC 0x20 /* OKI MSM-58321 BBRTC present */ | ||
173 | |||
174 | #define HP_SDC_CMD_LOAD_RT 0x31 /* Load real time (from 8042) */ | ||
175 | #define HP_SDC_CMD_LOAD_FHS 0x36 /* Load the fast handshake timer */ | ||
176 | #define HP_SDC_CMD_LOAD_MT 0x38 /* Load the match timer */ | ||
177 | #define HP_SDC_CMD_LOAD_DT 0x3B /* Load the delay timer */ | ||
178 | #define HP_SDC_CMD_LOAD_CT 0x3E /* Load the cycle timer */ | ||
179 | |||
180 | #define HP_SDC_CMD_SET_IM 0x40 /* 010xxxxx == set irq mask */ | ||
181 | |||
182 | /* The documents provided do not explicitly state that all registers betweem | ||
183 | * 0x01 and 0x1f inclusive can be read by sending their register index as a | ||
184 | * command, but this is implied and appears to be the case. | ||
185 | */ | ||
186 | #define HP_SDC_CMD_READ_RAM 0x00 /* Load from i8042 RAM (autoinc) */ | ||
187 | #define HP_SDC_CMD_READ_USE 0x02 /* Undocumented! Load from usage reg */ | ||
188 | #define HP_SDC_CMD_READ_IM 0x04 /* Load current interrupt mask */ | ||
189 | #define HP_SDC_CMD_READ_KCC 0x11 /* Load primary kbd config code */ | ||
190 | #define HP_SDC_CMD_READ_KLC 0x12 /* Load primary kbd language code */ | ||
191 | #define HP_SDC_CMD_READ_T1 0x13 /* Load timer output buffer byte 1 */ | ||
192 | #define HP_SDC_CMD_READ_T2 0x14 /* Load timer output buffer byte 1 */ | ||
193 | #define HP_SDC_CMD_READ_T3 0x15 /* Load timer output buffer byte 1 */ | ||
194 | #define HP_SDC_CMD_READ_T4 0x16 /* Load timer output buffer byte 1 */ | ||
195 | #define HP_SDC_CMD_READ_T5 0x17 /* Load timer output buffer byte 1 */ | ||
196 | #define HP_SDC_CMD_READ_D0 0xf0 /* Load from i8042 RAM location 0x70 */ | ||
197 | #define HP_SDC_CMD_READ_D1 0xf1 /* Load from i8042 RAM location 0x71 */ | ||
198 | #define HP_SDC_CMD_READ_D2 0xf2 /* Load from i8042 RAM location 0x72 */ | ||
199 | #define HP_SDC_CMD_READ_D3 0xf3 /* Load from i8042 RAM location 0x73 */ | ||
200 | #define HP_SDC_CMD_READ_VT1 0xf4 /* Load from i8042 RAM location 0x74 */ | ||
201 | #define HP_SDC_CMD_READ_VT2 0xf5 /* Load from i8042 RAM location 0x75 */ | ||
202 | #define HP_SDC_CMD_READ_VT3 0xf6 /* Load from i8042 RAM location 0x76 */ | ||
203 | #define HP_SDC_CMD_READ_VT4 0xf7 /* Load from i8042 RAM location 0x77 */ | ||
204 | #define HP_SDC_CMD_READ_KBN 0xf8 /* Load from i8042 RAM location 0x78 */ | ||
205 | #define HP_SDC_CMD_READ_KBC 0xf9 /* Load from i8042 RAM location 0x79 */ | ||
206 | #define HP_SDC_CMD_READ_LPS 0xfa /* Load from i8042 RAM location 0x7a */ | ||
207 | #define HP_SDC_CMD_READ_LPC 0xfb /* Load from i8042 RAM location 0x7b */ | ||
208 | #define HP_SDC_CMD_READ_RSV 0xfc /* Load from i8042 RAM location 0x7c */ | ||
209 | #define HP_SDC_CMD_READ_LPR 0xfd /* Load from i8042 RAM location 0x7d */ | ||
210 | #define HP_SDC_CMD_READ_XTD 0xfe /* Load from i8042 RAM location 0x7e */ | ||
211 | #define HP_SDC_CMD_READ_STR 0xff /* Load from i8042 RAM location 0x7f */ | ||
212 | |||
213 | #define HP_SDC_CMD_SET_ARD 0xA0 /* Set emulated autorepeat delay */ | ||
214 | #define HP_SDC_CMD_SET_ARR 0xA2 /* Set emulated autorepeat rate */ | ||
215 | #define HP_SDC_CMD_SET_BELL 0xA3 /* Set voice 3 params for "beep" cmd */ | ||
216 | #define HP_SDC_CMD_SET_RPGR 0xA6 /* Set "RPG" irq rate (doesn't work) */ | ||
217 | #define HP_SDC_CMD_SET_RTMS 0xAD /* Set the RTC time (milliseconds) */ | ||
218 | #define HP_SDC_CMD_SET_RTD 0xAF /* Set the RTC time (days) */ | ||
219 | #define HP_SDC_CMD_SET_FHS 0xB2 /* Set fast handshake timer */ | ||
220 | #define HP_SDC_CMD_SET_MT 0xB4 /* Set match timer */ | ||
221 | #define HP_SDC_CMD_SET_DT 0xB7 /* Set delay timer */ | ||
222 | #define HP_SDC_CMD_SET_CT 0xBA /* Set cycle timer */ | ||
223 | #define HP_SDC_CMD_SET_RAMP 0xC1 /* Reset READ_RAM autoinc counter */ | ||
224 | #define HP_SDC_CMD_SET_D0 0xe0 /* Load to i8042 RAM location 0x70 */ | ||
225 | #define HP_SDC_CMD_SET_D1 0xe1 /* Load to i8042 RAM location 0x71 */ | ||
226 | #define HP_SDC_CMD_SET_D2 0xe2 /* Load to i8042 RAM location 0x72 */ | ||
227 | #define HP_SDC_CMD_SET_D3 0xe3 /* Load to i8042 RAM location 0x73 */ | ||
228 | #define HP_SDC_CMD_SET_VT1 0xe4 /* Load to i8042 RAM location 0x74 */ | ||
229 | #define HP_SDC_CMD_SET_VT2 0xe5 /* Load to i8042 RAM location 0x75 */ | ||
230 | #define HP_SDC_CMD_SET_VT3 0xe6 /* Load to i8042 RAM location 0x76 */ | ||
231 | #define HP_SDC_CMD_SET_VT4 0xe7 /* Load to i8042 RAM location 0x77 */ | ||
232 | #define HP_SDC_CMD_SET_KBN 0xe8 /* Load to i8042 RAM location 0x78 */ | ||
233 | #define HP_SDC_CMD_SET_KBC 0xe9 /* Load to i8042 RAM location 0x79 */ | ||
234 | #define HP_SDC_CMD_SET_LPS 0xea /* Load to i8042 RAM location 0x7a */ | ||
235 | #define HP_SDC_CMD_SET_LPC 0xeb /* Load to i8042 RAM location 0x7b */ | ||
236 | #define HP_SDC_CMD_SET_RSV 0xec /* Load to i8042 RAM location 0x7c */ | ||
237 | #define HP_SDC_CMD_SET_LPR 0xed /* Load to i8042 RAM location 0x7d */ | ||
238 | #define HP_SDC_CMD_SET_XTD 0xee /* Load to i8042 RAM location 0x7e */ | ||
239 | #define HP_SDC_CMD_SET_STR 0xef /* Load to i8042 RAM location 0x7f */ | ||
240 | |||
241 | #define HP_SDC_CMD_DO_RTCW 0xc2 /* i8042 RAM 0x70 --> RTC */ | ||
242 | #define HP_SDC_CMD_DO_RTCR 0xc3 /* RTC[0x70 0:3] --> irq/status/data */ | ||
243 | #define HP_SDC_CMD_DO_BEEP 0xc4 /* i8042 RAM 0x70-74 --> beeper,VT3 */ | ||
244 | #define HP_SDC_CMD_DO_HIL 0xc5 /* i8042 RAM 0x70-73 --> | ||
245 | HIL MLC R0,R1 i8042 HIL watchdog */ | ||
246 | |||
247 | /* Values used to (de)mangle input/output to/from the HIL MLC */ | ||
248 | #define HP_SDC_DATA 0x40 /* Data from an 8042 register */ | ||
249 | #define HP_SDC_HIL_CMD 0x50 /* Data from HIL MLC R1/8042 */ | ||
250 | #define HP_SDC_HIL_R1MASK 0x0f /* Contents of HIL MLC R1 0:3 */ | ||
251 | #define HP_SDC_HIL_AUTO 0x10 /* Set if POL results from i8042 */ | ||
252 | #define HP_SDC_HIL_ISERR 0x80 /* Has meaning as in next 4 values */ | ||
253 | #define HP_SDC_HIL_RC_DONE 0x80 /* i8042 auto-configured loop */ | ||
254 | #define HP_SDC_HIL_ERR 0x81 /* HIL MLC R2 had a bit set */ | ||
255 | #define HP_SDC_HIL_TO 0x82 /* i8042 HIL watchdog expired */ | ||
256 | #define HP_SDC_HIL_RC 0x84 /* i8042 is auto-configuring loop */ | ||
257 | #define HP_SDC_HIL_DAT 0x60 /* Data from HIL MLC R0 */ | ||
258 | |||
259 | |||
260 | typedef struct { | ||
261 | rwlock_t ibf_lock; | ||
262 | rwlock_t lock; /* user/tasklet lock */ | ||
263 | rwlock_t rtq_lock; /* isr/tasklet lock */ | ||
264 | rwlock_t hook_lock; /* isr/user lock for handler add/del */ | ||
265 | |||
266 | unsigned int irq, nmi; /* Our IRQ lines */ | ||
267 | unsigned long base_io, status_io, data_io; /* Our IO ports */ | ||
268 | |||
269 | uint8_t im; /* Interrupt mask */ | ||
270 | int set_im; /* Interrupt mask needs to be set. */ | ||
271 | |||
272 | int ibf; /* Last known status of IBF flag */ | ||
273 | uint8_t wi; /* current i8042 write index */ | ||
274 | uint8_t r7[4]; /* current i8042[0x70 - 0x74] values */ | ||
275 | uint8_t r11, r7e; /* Values from version/revision regs */ | ||
276 | |||
277 | hp_sdc_irqhook *timer, *reg, *hil, *pup, *cooked; | ||
278 | |||
279 | #define HP_SDC_QUEUE_LEN 16 | ||
280 | hp_sdc_transaction *tq[HP_SDC_QUEUE_LEN]; /* All pending read/writes */ | ||
281 | |||
282 | int rcurr, rqty; /* Current read transact in process */ | ||
283 | struct timeval rtv; /* Time when current read started */ | ||
284 | int wcurr; /* Current write transact in process */ | ||
285 | |||
286 | int dev_err; /* carries status from registration */ | ||
287 | #if defined(__hppa__) | ||
288 | struct parisc_device *dev; | ||
289 | #elif defined(__mc68000__) | ||
290 | void *dev; | ||
291 | #else | ||
292 | #error No support for device registration on this arch yet. | ||
293 | #endif | ||
294 | |||
295 | struct timer_list kicker; /* Keeps below task alive */ | ||
296 | struct tasklet_struct task; | ||
297 | |||
298 | } hp_i8042_sdc; | ||
299 | |||
300 | #endif /* _LINUX_HP_SDC_H */ | ||
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index d664330d900e..0cea162b08c0 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
@@ -16,7 +16,6 @@ static inline int is_vm_hugetlb_page(struct vm_area_struct *vma) | |||
16 | int hugetlb_sysctl_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); | 16 | int hugetlb_sysctl_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); |
17 | int copy_hugetlb_page_range(struct mm_struct *, struct mm_struct *, struct vm_area_struct *); | 17 | int copy_hugetlb_page_range(struct mm_struct *, struct mm_struct *, struct vm_area_struct *); |
18 | int follow_hugetlb_page(struct mm_struct *, struct vm_area_struct *, struct page **, struct vm_area_struct **, unsigned long *, int *, int); | 18 | int follow_hugetlb_page(struct mm_struct *, struct vm_area_struct *, struct page **, struct vm_area_struct **, unsigned long *, int *, int); |
19 | void zap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long); | ||
20 | void unmap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long); | 19 | void unmap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long); |
21 | int hugetlb_prefault(struct address_space *, struct vm_area_struct *); | 20 | int hugetlb_prefault(struct address_space *, struct vm_area_struct *); |
22 | int hugetlb_report_meminfo(char *); | 21 | int hugetlb_report_meminfo(char *); |
@@ -87,7 +86,6 @@ static inline unsigned long hugetlb_total_pages(void) | |||
87 | #define follow_huge_addr(mm, addr, write) ERR_PTR(-EINVAL) | 86 | #define follow_huge_addr(mm, addr, write) ERR_PTR(-EINVAL) |
88 | #define copy_hugetlb_page_range(src, dst, vma) ({ BUG(); 0; }) | 87 | #define copy_hugetlb_page_range(src, dst, vma) ({ BUG(); 0; }) |
89 | #define hugetlb_prefault(mapping, vma) ({ BUG(); 0; }) | 88 | #define hugetlb_prefault(mapping, vma) ({ BUG(); 0; }) |
90 | #define zap_hugepage_range(vma, start, len) BUG() | ||
91 | #define unmap_hugepage_range(vma, start, end) BUG() | 89 | #define unmap_hugepage_range(vma, start, end) BUG() |
92 | #define is_hugepage_mem_enough(size) 0 | 90 | #define is_hugepage_mem_enough(size) 0 |
93 | #define hugetlb_report_meminfo(buf) 0 | 91 | #define hugetlb_report_meminfo(buf) 0 |
diff --git a/include/linux/i2c-algo-bit.h b/include/linux/i2c-algo-bit.h index 110904481238..c0e7fab28ce3 100644 --- a/include/linux/i2c-algo-bit.h +++ b/include/linux/i2c-algo-bit.h | |||
@@ -21,8 +21,6 @@ | |||
21 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even | 21 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even |
22 | Frodo Looijaard <frodol@dds.nl> */ | 22 | Frodo Looijaard <frodol@dds.nl> */ |
23 | 23 | ||
24 | /* $Id: i2c-algo-bit.h,v 1.10 2003/01/21 08:08:16 kmalkki Exp $ */ | ||
25 | |||
26 | #ifndef _LINUX_I2C_ALGO_BIT_H | 24 | #ifndef _LINUX_I2C_ALGO_BIT_H |
27 | #define _LINUX_I2C_ALGO_BIT_H | 25 | #define _LINUX_I2C_ALGO_BIT_H |
28 | 26 | ||
@@ -46,8 +44,6 @@ struct i2c_algo_bit_data { | |||
46 | int timeout; /* in jiffies */ | 44 | int timeout; /* in jiffies */ |
47 | }; | 45 | }; |
48 | 46 | ||
49 | #define I2C_BIT_ADAP_MAX 16 | ||
50 | |||
51 | int i2c_bit_add_bus(struct i2c_adapter *); | 47 | int i2c_bit_add_bus(struct i2c_adapter *); |
52 | int i2c_bit_del_bus(struct i2c_adapter *); | 48 | int i2c_bit_del_bus(struct i2c_adapter *); |
53 | 49 | ||
diff --git a/include/linux/i2c-algo-pca.h b/include/linux/i2c-algo-pca.h index 941b786c5732..226693e0d88b 100644 --- a/include/linux/i2c-algo-pca.h +++ b/include/linux/i2c-algo-pca.h | |||
@@ -9,8 +9,6 @@ struct i2c_algo_pca_data { | |||
9 | int (*wait_for_interrupt) (struct i2c_algo_pca_data *adap); | 9 | int (*wait_for_interrupt) (struct i2c_algo_pca_data *adap); |
10 | }; | 10 | }; |
11 | 11 | ||
12 | #define I2C_PCA_ADAP_MAX 16 | ||
13 | |||
14 | int i2c_pca_add_bus(struct i2c_adapter *); | 12 | int i2c_pca_add_bus(struct i2c_adapter *); |
15 | int i2c_pca_del_bus(struct i2c_adapter *); | 13 | int i2c_pca_del_bus(struct i2c_adapter *); |
16 | 14 | ||
diff --git a/include/linux/i2c-algo-pcf.h b/include/linux/i2c-algo-pcf.h index 2a508562255f..18b0adf57a3d 100644 --- a/include/linux/i2c-algo-pcf.h +++ b/include/linux/i2c-algo-pcf.h | |||
@@ -22,8 +22,6 @@ | |||
22 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even | 22 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and even |
23 | Frodo Looijaard <frodol@dds.nl> */ | 23 | Frodo Looijaard <frodol@dds.nl> */ |
24 | 24 | ||
25 | /* $Id: i2c-algo-pcf.h,v 1.8 2003/01/21 08:08:16 kmalkki Exp $ */ | ||
26 | |||
27 | #ifndef _LINUX_I2C_ALGO_PCF_H | 25 | #ifndef _LINUX_I2C_ALGO_PCF_H |
28 | #define _LINUX_I2C_ALGO_PCF_H | 26 | #define _LINUX_I2C_ALGO_PCF_H |
29 | 27 | ||
@@ -41,8 +39,6 @@ struct i2c_algo_pcf_data { | |||
41 | int timeout; | 39 | int timeout; |
42 | }; | 40 | }; |
43 | 41 | ||
44 | #define I2C_PCF_ADAP_MAX 16 | ||
45 | |||
46 | int i2c_pcf_add_bus(struct i2c_adapter *); | 42 | int i2c_pcf_add_bus(struct i2c_adapter *); |
47 | int i2c_pcf_del_bus(struct i2c_adapter *); | 43 | int i2c_pcf_del_bus(struct i2c_adapter *); |
48 | 44 | ||
diff --git a/include/linux/i2c-dev.h b/include/linux/i2c-dev.h index 541695679762..81c229a0fbca 100644 --- a/include/linux/i2c-dev.h +++ b/include/linux/i2c-dev.h | |||
@@ -19,8 +19,6 @@ | |||
19 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 19 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
20 | */ | 20 | */ |
21 | 21 | ||
22 | /* $Id: i2c-dev.h,v 1.13 2003/01/21 08:08:16 kmalkki Exp $ */ | ||
23 | |||
24 | #ifndef _LINUX_I2C_DEV_H | 22 | #ifndef _LINUX_I2C_DEV_H |
25 | #define _LINUX_I2C_DEV_H | 23 | #define _LINUX_I2C_DEV_H |
26 | 24 | ||
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h index 44f30876a1c9..1ce4b54caa21 100644 --- a/include/linux/i2c-id.h +++ b/include/linux/i2c-id.h | |||
@@ -164,10 +164,7 @@ | |||
164 | 164 | ||
165 | /* --- Bit algorithm adapters */ | 165 | /* --- Bit algorithm adapters */ |
166 | #define I2C_HW_B_LP 0x010000 /* Parallel port Philips style */ | 166 | #define I2C_HW_B_LP 0x010000 /* Parallel port Philips style */ |
167 | #define I2C_HW_B_LPC 0x010001 /* Parallel port control reg. */ | ||
168 | #define I2C_HW_B_SER 0x010002 /* Serial line interface */ | 167 | #define I2C_HW_B_SER 0x010002 /* Serial line interface */ |
169 | #define I2C_HW_B_ELV 0x010003 /* ELV Card */ | ||
170 | #define I2C_HW_B_VELLE 0x010004 /* Vellemann K8000 */ | ||
171 | #define I2C_HW_B_BT848 0x010005 /* BT848 video boards */ | 168 | #define I2C_HW_B_BT848 0x010005 /* BT848 video boards */ |
172 | #define I2C_HW_B_WNV 0x010006 /* Winnov Videums */ | 169 | #define I2C_HW_B_WNV 0x010006 /* Winnov Videums */ |
173 | #define I2C_HW_B_VIA 0x010007 /* Via vt82c586b */ | 170 | #define I2C_HW_B_VIA 0x010007 /* Via vt82c586b */ |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 3d49a305bf88..5e19a7ba69b2 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -23,15 +23,15 @@ | |||
23 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and | 23 | /* With some changes from Kyösti Mälkki <kmalkki@cc.hut.fi> and |
24 | Frodo Looijaard <frodol@dds.nl> */ | 24 | Frodo Looijaard <frodol@dds.nl> */ |
25 | 25 | ||
26 | /* $Id: i2c.h,v 1.68 2003/01/21 08:08:16 kmalkki Exp $ */ | ||
27 | |||
28 | #ifndef _LINUX_I2C_H | 26 | #ifndef _LINUX_I2C_H |
29 | #define _LINUX_I2C_H | 27 | #define _LINUX_I2C_H |
30 | 28 | ||
31 | #include <linux/module.h> | 29 | #include <linux/module.h> |
32 | #include <linux/types.h> | 30 | #include <linux/types.h> |
33 | #include <linux/i2c-id.h> | 31 | #include <linux/i2c-id.h> |
32 | #include <linux/mod_devicetable.h> | ||
34 | #include <linux/device.h> /* for struct device */ | 33 | #include <linux/device.h> /* for struct device */ |
34 | #include <linux/sched.h> /* for completion */ | ||
35 | #include <asm/semaphore.h> | 35 | #include <asm/semaphore.h> |
36 | 36 | ||
37 | /* --- For i2c-isa ---------------------------------------------------- */ | 37 | /* --- For i2c-isa ---------------------------------------------------- */ |
@@ -94,10 +94,10 @@ extern s32 i2c_smbus_write_byte_data(struct i2c_client * client, | |||
94 | extern s32 i2c_smbus_read_word_data(struct i2c_client * client, u8 command); | 94 | extern s32 i2c_smbus_read_word_data(struct i2c_client * client, u8 command); |
95 | extern s32 i2c_smbus_write_word_data(struct i2c_client * client, | 95 | extern s32 i2c_smbus_write_word_data(struct i2c_client * client, |
96 | u8 command, u16 value); | 96 | u8 command, u16 value); |
97 | /* Returns the number of bytes transferred */ | ||
98 | extern s32 i2c_smbus_write_block_data(struct i2c_client * client, | 97 | extern s32 i2c_smbus_write_block_data(struct i2c_client * client, |
99 | u8 command, u8 length, | 98 | u8 command, u8 length, |
100 | u8 *values); | 99 | u8 *values); |
100 | /* Returns the number of read bytes */ | ||
101 | extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client, | 101 | extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client, |
102 | u8 command, u8 *values); | 102 | u8 command, u8 *values); |
103 | 103 | ||
@@ -391,10 +391,6 @@ struct i2c_msg { | |||
391 | #define I2C_FUNC_10BIT_ADDR 0x00000002 | 391 | #define I2C_FUNC_10BIT_ADDR 0x00000002 |
392 | #define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_{REV_DIR_ADDR,NOSTART,..} */ | 392 | #define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 /* I2C_M_{REV_DIR_ADDR,NOSTART,..} */ |
393 | #define I2C_FUNC_SMBUS_HWPEC_CALC 0x00000008 /* SMBus 2.0 */ | 393 | #define I2C_FUNC_SMBUS_HWPEC_CALC 0x00000008 /* SMBus 2.0 */ |
394 | #define I2C_FUNC_SMBUS_READ_WORD_DATA_PEC 0x00000800 /* SMBus 2.0 */ | ||
395 | #define I2C_FUNC_SMBUS_WRITE_WORD_DATA_PEC 0x00001000 /* SMBus 2.0 */ | ||
396 | #define I2C_FUNC_SMBUS_PROC_CALL_PEC 0x00002000 /* SMBus 2.0 */ | ||
397 | #define I2C_FUNC_SMBUS_BLOCK_PROC_CALL_PEC 0x00004000 /* SMBus 2.0 */ | ||
398 | #define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 /* SMBus 2.0 */ | 394 | #define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 /* SMBus 2.0 */ |
399 | #define I2C_FUNC_SMBUS_QUICK 0x00010000 | 395 | #define I2C_FUNC_SMBUS_QUICK 0x00010000 |
400 | #define I2C_FUNC_SMBUS_READ_BYTE 0x00020000 | 396 | #define I2C_FUNC_SMBUS_READ_BYTE 0x00020000 |
@@ -410,8 +406,6 @@ struct i2c_msg { | |||
410 | #define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000 /* w/ 1-byte reg. addr. */ | 406 | #define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000 /* w/ 1-byte reg. addr. */ |
411 | #define I2C_FUNC_SMBUS_READ_I2C_BLOCK_2 0x10000000 /* I2C-like block xfer */ | 407 | #define I2C_FUNC_SMBUS_READ_I2C_BLOCK_2 0x10000000 /* I2C-like block xfer */ |
412 | #define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK_2 0x20000000 /* w/ 2-byte reg. addr. */ | 408 | #define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK_2 0x20000000 /* w/ 2-byte reg. addr. */ |
413 | #define I2C_FUNC_SMBUS_READ_BLOCK_DATA_PEC 0x40000000 /* SMBus 2.0 */ | ||
414 | #define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA_PEC 0x80000000 /* SMBus 2.0 */ | ||
415 | 409 | ||
416 | #define I2C_FUNC_SMBUS_BYTE (I2C_FUNC_SMBUS_READ_BYTE | \ | 410 | #define I2C_FUNC_SMBUS_BYTE (I2C_FUNC_SMBUS_READ_BYTE | \ |
417 | I2C_FUNC_SMBUS_WRITE_BYTE) | 411 | I2C_FUNC_SMBUS_WRITE_BYTE) |
@@ -425,17 +419,6 @@ struct i2c_msg { | |||
425 | I2C_FUNC_SMBUS_WRITE_I2C_BLOCK) | 419 | I2C_FUNC_SMBUS_WRITE_I2C_BLOCK) |
426 | #define I2C_FUNC_SMBUS_I2C_BLOCK_2 (I2C_FUNC_SMBUS_READ_I2C_BLOCK_2 | \ | 420 | #define I2C_FUNC_SMBUS_I2C_BLOCK_2 (I2C_FUNC_SMBUS_READ_I2C_BLOCK_2 | \ |
427 | I2C_FUNC_SMBUS_WRITE_I2C_BLOCK_2) | 421 | I2C_FUNC_SMBUS_WRITE_I2C_BLOCK_2) |
428 | #define I2C_FUNC_SMBUS_BLOCK_DATA_PEC (I2C_FUNC_SMBUS_READ_BLOCK_DATA_PEC | \ | ||
429 | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA_PEC) | ||
430 | #define I2C_FUNC_SMBUS_WORD_DATA_PEC (I2C_FUNC_SMBUS_READ_WORD_DATA_PEC | \ | ||
431 | I2C_FUNC_SMBUS_WRITE_WORD_DATA_PEC) | ||
432 | |||
433 | #define I2C_FUNC_SMBUS_READ_BYTE_PEC I2C_FUNC_SMBUS_READ_BYTE_DATA | ||
434 | #define I2C_FUNC_SMBUS_WRITE_BYTE_PEC I2C_FUNC_SMBUS_WRITE_BYTE_DATA | ||
435 | #define I2C_FUNC_SMBUS_READ_BYTE_DATA_PEC I2C_FUNC_SMBUS_READ_WORD_DATA | ||
436 | #define I2C_FUNC_SMBUS_WRITE_BYTE_DATA_PEC I2C_FUNC_SMBUS_WRITE_WORD_DATA | ||
437 | #define I2C_FUNC_SMBUS_BYTE_PEC I2C_FUNC_SMBUS_BYTE_DATA | ||
438 | #define I2C_FUNC_SMBUS_BYTE_DATA_PEC I2C_FUNC_SMBUS_WORD_DATA | ||
439 | 422 | ||
440 | #define I2C_FUNC_SMBUS_EMUL (I2C_FUNC_SMBUS_QUICK | \ | 423 | #define I2C_FUNC_SMBUS_EMUL (I2C_FUNC_SMBUS_QUICK | \ |
441 | I2C_FUNC_SMBUS_BYTE | \ | 424 | I2C_FUNC_SMBUS_BYTE | \ |
@@ -443,20 +426,17 @@ struct i2c_msg { | |||
443 | I2C_FUNC_SMBUS_WORD_DATA | \ | 426 | I2C_FUNC_SMBUS_WORD_DATA | \ |
444 | I2C_FUNC_SMBUS_PROC_CALL | \ | 427 | I2C_FUNC_SMBUS_PROC_CALL | \ |
445 | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA | \ | 428 | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA | \ |
446 | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA_PEC | \ | ||
447 | I2C_FUNC_SMBUS_I2C_BLOCK) | 429 | I2C_FUNC_SMBUS_I2C_BLOCK) |
448 | 430 | ||
449 | /* | 431 | /* |
450 | * Data for SMBus Messages | 432 | * Data for SMBus Messages |
451 | */ | 433 | */ |
452 | #define I2C_SMBUS_BLOCK_MAX 32 /* As specified in SMBus standard */ | 434 | #define I2C_SMBUS_BLOCK_MAX 32 /* As specified in SMBus standard */ |
453 | #define I2C_SMBUS_I2C_BLOCK_MAX 32 /* Not specified but we use same structure */ | ||
454 | union i2c_smbus_data { | 435 | union i2c_smbus_data { |
455 | __u8 byte; | 436 | __u8 byte; |
456 | __u16 word; | 437 | __u16 word; |
457 | __u8 block[I2C_SMBUS_BLOCK_MAX + 3]; /* block[0] is used for length */ | 438 | __u8 block[I2C_SMBUS_BLOCK_MAX + 2]; /* block[0] is used for length */ |
458 | /* one more for read length in block process call */ | 439 | /* and one more for user-space compatibility */ |
459 | /* and one more for PEC */ | ||
460 | }; | 440 | }; |
461 | 441 | ||
462 | /* smbus_access read or write markers */ | 442 | /* smbus_access read or write markers */ |
@@ -473,10 +453,6 @@ union i2c_smbus_data { | |||
473 | #define I2C_SMBUS_BLOCK_DATA 5 | 453 | #define I2C_SMBUS_BLOCK_DATA 5 |
474 | #define I2C_SMBUS_I2C_BLOCK_DATA 6 | 454 | #define I2C_SMBUS_I2C_BLOCK_DATA 6 |
475 | #define I2C_SMBUS_BLOCK_PROC_CALL 7 /* SMBus 2.0 */ | 455 | #define I2C_SMBUS_BLOCK_PROC_CALL 7 /* SMBus 2.0 */ |
476 | #define I2C_SMBUS_BLOCK_DATA_PEC 8 /* SMBus 2.0 */ | ||
477 | #define I2C_SMBUS_PROC_CALL_PEC 9 /* SMBus 2.0 */ | ||
478 | #define I2C_SMBUS_BLOCK_PROC_CALL_PEC 10 /* SMBus 2.0 */ | ||
479 | #define I2C_SMBUS_WORD_DATA_PEC 11 /* SMBus 2.0 */ | ||
480 | 456 | ||
481 | 457 | ||
482 | /* ----- commands for the ioctl like i2c_command call: | 458 | /* ----- commands for the ioctl like i2c_command call: |
@@ -506,11 +482,6 @@ union i2c_smbus_data { | |||
506 | 482 | ||
507 | #define I2C_SMBUS 0x0720 /* SMBus-level access */ | 483 | #define I2C_SMBUS 0x0720 /* SMBus-level access */ |
508 | 484 | ||
509 | /* ... algo-bit.c recognizes */ | ||
510 | #define I2C_UDELAY 0x0705 /* set delay in microsecs between each */ | ||
511 | /* written byte (except address) */ | ||
512 | #define I2C_MDELAY 0x0706 /* millisec delay between written bytes */ | ||
513 | |||
514 | /* ----- I2C-DEV: char device interface stuff ------------------------- */ | 485 | /* ----- I2C-DEV: char device interface stuff ------------------------- */ |
515 | 486 | ||
516 | #define I2C_MAJOR 89 /* Device major number */ | 487 | #define I2C_MAJOR 89 /* Device major number */ |
diff --git a/include/linux/i2o.h b/include/linux/i2o.h index bdc286ec947c..d79c8a4bc4f8 100644 --- a/include/linux/i2o.h +++ b/include/linux/i2o.h | |||
@@ -25,10 +25,14 @@ | |||
25 | /* How many different OSM's are we allowing */ | 25 | /* How many different OSM's are we allowing */ |
26 | #define I2O_MAX_DRIVERS 8 | 26 | #define I2O_MAX_DRIVERS 8 |
27 | 27 | ||
28 | #include <asm/io.h> | ||
29 | #include <asm/semaphore.h> /* Needed for MUTEX init macros */ | ||
30 | #include <linux/pci.h> | 28 | #include <linux/pci.h> |
31 | #include <linux/dma-mapping.h> | 29 | #include <linux/dma-mapping.h> |
30 | #include <linux/string.h> | ||
31 | #include <linux/slab.h> | ||
32 | #include <linux/workqueue.h> /* work_struct */ | ||
33 | |||
34 | #include <asm/io.h> | ||
35 | #include <asm/semaphore.h> /* Needed for MUTEX init macros */ | ||
32 | 36 | ||
33 | /* message queue empty */ | 37 | /* message queue empty */ |
34 | #define I2O_QUEUE_EMPTY 0xffffffff | 38 | #define I2O_QUEUE_EMPTY 0xffffffff |
@@ -66,8 +70,6 @@ struct i2o_device { | |||
66 | struct device device; | 70 | struct device device; |
67 | 71 | ||
68 | struct semaphore lock; /* device lock */ | 72 | struct semaphore lock; /* device lock */ |
69 | |||
70 | struct class_device classdev; /* i2o device class */ | ||
71 | }; | 73 | }; |
72 | 74 | ||
73 | /* | 75 | /* |
@@ -194,7 +196,7 @@ struct i2o_controller { | |||
194 | struct resource mem_resource; /* Mem resource allocated to the IOP */ | 196 | struct resource mem_resource; /* Mem resource allocated to the IOP */ |
195 | 197 | ||
196 | struct device device; | 198 | struct device device; |
197 | struct class_device classdev; /* I2O controller class */ | 199 | struct class_device *classdev; /* I2O controller class device */ |
198 | struct i2o_device *exec; /* Executive */ | 200 | struct i2o_device *exec; /* Executive */ |
199 | #if BITS_PER_LONG == 64 | 201 | #if BITS_PER_LONG == 64 |
200 | spinlock_t context_list_lock; /* lock for context_list */ | 202 | spinlock_t context_list_lock; /* lock for context_list */ |
@@ -492,7 +494,7 @@ static inline int i2o_dma_map_sg(struct i2o_controller *c, | |||
492 | * Returns 0 on success or -ENOMEM on failure. | 494 | * Returns 0 on success or -ENOMEM on failure. |
493 | */ | 495 | */ |
494 | static inline int i2o_dma_alloc(struct device *dev, struct i2o_dma *addr, | 496 | static inline int i2o_dma_alloc(struct device *dev, struct i2o_dma *addr, |
495 | size_t len, unsigned int gfp_mask) | 497 | size_t len, gfp_t gfp_mask) |
496 | { | 498 | { |
497 | struct pci_dev *pdev = to_pci_dev(dev); | 499 | struct pci_dev *pdev = to_pci_dev(dev); |
498 | int dma_64 = 0; | 500 | int dma_64 = 0; |
@@ -551,7 +553,7 @@ static inline void i2o_dma_free(struct device *dev, struct i2o_dma *addr) | |||
551 | * Returns the 0 on success or negative error code on failure. | 553 | * Returns the 0 on success or negative error code on failure. |
552 | */ | 554 | */ |
553 | static inline int i2o_dma_realloc(struct device *dev, struct i2o_dma *addr, | 555 | static inline int i2o_dma_realloc(struct device *dev, struct i2o_dma *addr, |
554 | size_t len, unsigned int gfp_mask) | 556 | size_t len, gfp_t gfp_mask) |
555 | { | 557 | { |
556 | i2o_dma_free(dev, addr); | 558 | i2o_dma_free(dev, addr); |
557 | 559 | ||
diff --git a/include/linux/ibmtr.h b/include/linux/ibmtr.h index 2ef0b21517fb..1c7a0dd5536a 100644 --- a/include/linux/ibmtr.h +++ b/include/linux/ibmtr.h | |||
@@ -7,8 +7,8 @@ | |||
7 | /* ported to the Alpha architecture 02/20/96 (just used the HZ macro) */ | 7 | /* ported to the Alpha architecture 02/20/96 (just used the HZ macro) */ |
8 | 8 | ||
9 | #define TR_RETRY_INTERVAL (30*HZ) /* 500 on PC = 5 s */ | 9 | #define TR_RETRY_INTERVAL (30*HZ) /* 500 on PC = 5 s */ |
10 | #define TR_RST_TIME (HZ/20) /* 5 on PC = 50 ms */ | 10 | #define TR_RST_TIME (msecs_to_jiffies(50)) /* 5 on PC = 50 ms */ |
11 | #define TR_BUSY_INTERVAL (HZ/5) /* 5 on PC = 200 ms */ | 11 | #define TR_BUSY_INTERVAL (msecs_to_jiffies(200)) /* 5 on PC = 200 ms */ |
12 | #define TR_SPIN_INTERVAL (3*HZ) /* 3 seconds before init timeout */ | 12 | #define TR_SPIN_INTERVAL (3*HZ) /* 3 seconds before init timeout */ |
13 | 13 | ||
14 | #define TR_ISA 1 | 14 | #define TR_ISA 1 |
diff --git a/include/linux/ide.h b/include/linux/ide.h index a6dbb51ecd7b..3461abc1e854 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -218,7 +218,7 @@ typedef enum { ide_unknown, ide_generic, ide_pci, | |||
218 | ide_rz1000, ide_trm290, | 218 | ide_rz1000, ide_trm290, |
219 | ide_cmd646, ide_cy82c693, ide_4drives, | 219 | ide_cmd646, ide_cy82c693, ide_4drives, |
220 | ide_pmac, ide_etrax100, ide_acorn, | 220 | ide_pmac, ide_etrax100, ide_acorn, |
221 | ide_forced | 221 | ide_au1xxx, ide_forced |
222 | } hwif_chipset_t; | 222 | } hwif_chipset_t; |
223 | 223 | ||
224 | /* | 224 | /* |
diff --git a/include/linux/idr.h b/include/linux/idr.h index ca3b7e462576..7fb3ff9c7b0e 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h | |||
@@ -71,8 +71,9 @@ struct idr { | |||
71 | */ | 71 | */ |
72 | 72 | ||
73 | void *idr_find(struct idr *idp, int id); | 73 | void *idr_find(struct idr *idp, int id); |
74 | int idr_pre_get(struct idr *idp, unsigned gfp_mask); | 74 | int idr_pre_get(struct idr *idp, gfp_t gfp_mask); |
75 | int idr_get_new(struct idr *idp, void *ptr, int *id); | 75 | int idr_get_new(struct idr *idp, void *ptr, int *id); |
76 | int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id); | 76 | int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id); |
77 | void idr_remove(struct idr *idp, int id); | 77 | void idr_remove(struct idr *idp, int id); |
78 | void idr_destroy(struct idr *idp); | ||
78 | void idr_init(struct idr *idp); | 79 | void idr_init(struct idr *idp); |
diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h index 0856548a2a08..a8b1a2071838 100644 --- a/include/linux/if_arp.h +++ b/include/linux/if_arp.h | |||
@@ -84,6 +84,7 @@ | |||
84 | #define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR */ | 84 | #define ARPHRD_IEEE802_TR 800 /* Magic type ident for TR */ |
85 | #define ARPHRD_IEEE80211 801 /* IEEE 802.11 */ | 85 | #define ARPHRD_IEEE80211 801 /* IEEE 802.11 */ |
86 | #define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */ | 86 | #define ARPHRD_IEEE80211_PRISM 802 /* IEEE 802.11 + Prism2 header */ |
87 | #define ARPHRD_IEEE80211_RADIOTAP 803 /* IEEE 802.11 + radiotap header */ | ||
87 | 88 | ||
88 | #define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ | 89 | #define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */ |
89 | #define ARPHRD_NONE 0xFFFE /* zero header length */ | 90 | #define ARPHRD_NONE 0xFFFE /* zero header length */ |
diff --git a/include/linux/input.h b/include/linux/input.h index e8c296ff6257..f623c745c21c 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #ifdef __KERNEL__ | 12 | #ifdef __KERNEL__ |
13 | #include <linux/time.h> | 13 | #include <linux/time.h> |
14 | #include <linux/list.h> | 14 | #include <linux/list.h> |
15 | #include <linux/device.h> | ||
15 | #else | 16 | #else |
16 | #include <sys/time.h> | 17 | #include <sys/time.h> |
17 | #include <sys/ioctl.h> | 18 | #include <sys/ioctl.h> |
@@ -644,6 +645,7 @@ struct input_absinfo { | |||
644 | #define BUS_ADB 0x17 | 645 | #define BUS_ADB 0x17 |
645 | #define BUS_I2C 0x18 | 646 | #define BUS_I2C 0x18 |
646 | #define BUS_HOST 0x19 | 647 | #define BUS_HOST 0x19 |
648 | #define BUS_GSC 0x1A | ||
647 | 649 | ||
648 | /* | 650 | /* |
649 | * Values describing the status of an effect | 651 | * Values describing the status of an effect |
@@ -889,11 +891,15 @@ struct input_dev { | |||
889 | struct semaphore sem; /* serializes open and close operations */ | 891 | struct semaphore sem; /* serializes open and close operations */ |
890 | unsigned int users; | 892 | unsigned int users; |
891 | 893 | ||
892 | struct device *dev; | 894 | struct class_device cdev; |
895 | struct device *dev; /* will be removed soon */ | ||
896 | |||
897 | int dynalloc; /* temporarily */ | ||
893 | 898 | ||
894 | struct list_head h_list; | 899 | struct list_head h_list; |
895 | struct list_head node; | 900 | struct list_head node; |
896 | }; | 901 | }; |
902 | #define to_input_dev(d) container_of(d, struct input_dev, cdev) | ||
897 | 903 | ||
898 | /* | 904 | /* |
899 | * Structure for hotplug & device<->driver matching. | 905 | * Structure for hotplug & device<->driver matching. |
@@ -984,6 +990,23 @@ static inline void init_input_dev(struct input_dev *dev) | |||
984 | INIT_LIST_HEAD(&dev->node); | 990 | INIT_LIST_HEAD(&dev->node); |
985 | } | 991 | } |
986 | 992 | ||
993 | struct input_dev *input_allocate_device(void); | ||
994 | |||
995 | static inline void input_free_device(struct input_dev *dev) | ||
996 | { | ||
997 | kfree(dev); | ||
998 | } | ||
999 | |||
1000 | static inline struct input_dev *input_get_device(struct input_dev *dev) | ||
1001 | { | ||
1002 | return to_input_dev(class_device_get(&dev->cdev)); | ||
1003 | } | ||
1004 | |||
1005 | static inline void input_put_device(struct input_dev *dev) | ||
1006 | { | ||
1007 | class_device_put(&dev->cdev); | ||
1008 | } | ||
1009 | |||
987 | void input_register_device(struct input_dev *); | 1010 | void input_register_device(struct input_dev *); |
988 | void input_unregister_device(struct input_dev *); | 1011 | void input_unregister_device(struct input_dev *); |
989 | 1012 | ||
@@ -1052,7 +1075,7 @@ static inline void input_set_abs_params(struct input_dev *dev, int axis, int min | |||
1052 | dev->absbit[LONG(axis)] |= BIT(axis); | 1075 | dev->absbit[LONG(axis)] |= BIT(axis); |
1053 | } | 1076 | } |
1054 | 1077 | ||
1055 | extern struct class *input_class; | 1078 | extern struct class input_class; |
1056 | 1079 | ||
1057 | #endif | 1080 | #endif |
1058 | #endif | 1081 | #endif |
diff --git a/include/linux/jbd.h b/include/linux/jbd.h index ff853b3173c6..be197eb90077 100644 --- a/include/linux/jbd.h +++ b/include/linux/jbd.h | |||
@@ -69,7 +69,7 @@ extern int journal_enable_debug; | |||
69 | #define jbd_debug(f, a...) /**/ | 69 | #define jbd_debug(f, a...) /**/ |
70 | #endif | 70 | #endif |
71 | 71 | ||
72 | extern void * __jbd_kmalloc (const char *where, size_t size, int flags, int retry); | 72 | extern void * __jbd_kmalloc (const char *where, size_t size, gfp_t flags, int retry); |
73 | #define jbd_kmalloc(size, flags) \ | 73 | #define jbd_kmalloc(size, flags) \ |
74 | __jbd_kmalloc(__FUNCTION__, (size), (flags), journal_oom_retry) | 74 | __jbd_kmalloc(__FUNCTION__, (size), (flags), journal_oom_retry) |
75 | #define jbd_rep_kmalloc(size, flags) \ | 75 | #define jbd_rep_kmalloc(size, flags) \ |
@@ -890,7 +890,7 @@ extern int journal_forget (handle_t *, struct buffer_head *); | |||
890 | extern void journal_sync_buffer (struct buffer_head *); | 890 | extern void journal_sync_buffer (struct buffer_head *); |
891 | extern int journal_invalidatepage(journal_t *, | 891 | extern int journal_invalidatepage(journal_t *, |
892 | struct page *, unsigned long); | 892 | struct page *, unsigned long); |
893 | extern int journal_try_to_free_buffers(journal_t *, struct page *, int); | 893 | extern int journal_try_to_free_buffers(journal_t *, struct page *, gfp_t); |
894 | extern int journal_stop(handle_t *); | 894 | extern int journal_stop(handle_t *); |
895 | extern int journal_flush (journal_t *); | 895 | extern int journal_flush (journal_t *); |
896 | extern void journal_lock_updates (journal_t *); | 896 | extern void journal_lock_updates (journal_t *); |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 4367ce4db52a..f1925ccc9fe1 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -307,7 +307,7 @@ struct sysinfo { | |||
307 | char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */ | 307 | char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */ |
308 | }; | 308 | }; |
309 | 309 | ||
310 | /* Force a compilation error if condition is false */ | 310 | /* Force a compilation error if condition is true */ |
311 | #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) | 311 | #define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) |
312 | 312 | ||
313 | #ifdef CONFIG_SYSCTL | 313 | #ifdef CONFIG_SYSCTL |
diff --git a/include/linux/key-ui.h b/include/linux/key-ui.h index 7a2e332067c3..e8b8a7a5c496 100644 --- a/include/linux/key-ui.h +++ b/include/linux/key-ui.h | |||
@@ -24,7 +24,8 @@ extern spinlock_t key_serial_lock; | |||
24 | #define KEY_WRITE 0x04 /* require permission to update / modify */ | 24 | #define KEY_WRITE 0x04 /* require permission to update / modify */ |
25 | #define KEY_SEARCH 0x08 /* require permission to search (keyring) or find (key) */ | 25 | #define KEY_SEARCH 0x08 /* require permission to search (keyring) or find (key) */ |
26 | #define KEY_LINK 0x10 /* require permission to link */ | 26 | #define KEY_LINK 0x10 /* require permission to link */ |
27 | #define KEY_ALL 0x1f /* all the above permissions */ | 27 | #define KEY_SETATTR 0x20 /* require permission to change attributes */ |
28 | #define KEY_ALL 0x3f /* all the above permissions */ | ||
28 | 29 | ||
29 | /* | 30 | /* |
30 | * the keyring payload contains a list of the keys to which the keyring is | 31 | * the keyring payload contains a list of the keys to which the keyring is |
diff --git a/include/linux/key.h b/include/linux/key.h index f1efa016dbf3..53513a3be53b 100644 --- a/include/linux/key.h +++ b/include/linux/key.h | |||
@@ -40,28 +40,32 @@ struct key; | |||
40 | #define KEY_POS_WRITE 0x04000000 /* possessor can update key payload / add link to keyring */ | 40 | #define KEY_POS_WRITE 0x04000000 /* possessor can update key payload / add link to keyring */ |
41 | #define KEY_POS_SEARCH 0x08000000 /* possessor can find a key in search / search a keyring */ | 41 | #define KEY_POS_SEARCH 0x08000000 /* possessor can find a key in search / search a keyring */ |
42 | #define KEY_POS_LINK 0x10000000 /* possessor can create a link to a key/keyring */ | 42 | #define KEY_POS_LINK 0x10000000 /* possessor can create a link to a key/keyring */ |
43 | #define KEY_POS_ALL 0x1f000000 | 43 | #define KEY_POS_SETATTR 0x20000000 /* possessor can set key attributes */ |
44 | #define KEY_POS_ALL 0x3f000000 | ||
44 | 45 | ||
45 | #define KEY_USR_VIEW 0x00010000 /* user permissions... */ | 46 | #define KEY_USR_VIEW 0x00010000 /* user permissions... */ |
46 | #define KEY_USR_READ 0x00020000 | 47 | #define KEY_USR_READ 0x00020000 |
47 | #define KEY_USR_WRITE 0x00040000 | 48 | #define KEY_USR_WRITE 0x00040000 |
48 | #define KEY_USR_SEARCH 0x00080000 | 49 | #define KEY_USR_SEARCH 0x00080000 |
49 | #define KEY_USR_LINK 0x00100000 | 50 | #define KEY_USR_LINK 0x00100000 |
50 | #define KEY_USR_ALL 0x001f0000 | 51 | #define KEY_USR_SETATTR 0x00200000 |
52 | #define KEY_USR_ALL 0x003f0000 | ||
51 | 53 | ||
52 | #define KEY_GRP_VIEW 0x00000100 /* group permissions... */ | 54 | #define KEY_GRP_VIEW 0x00000100 /* group permissions... */ |
53 | #define KEY_GRP_READ 0x00000200 | 55 | #define KEY_GRP_READ 0x00000200 |
54 | #define KEY_GRP_WRITE 0x00000400 | 56 | #define KEY_GRP_WRITE 0x00000400 |
55 | #define KEY_GRP_SEARCH 0x00000800 | 57 | #define KEY_GRP_SEARCH 0x00000800 |
56 | #define KEY_GRP_LINK 0x00001000 | 58 | #define KEY_GRP_LINK 0x00001000 |
57 | #define KEY_GRP_ALL 0x00001f00 | 59 | #define KEY_GRP_SETATTR 0x00002000 |
60 | #define KEY_GRP_ALL 0x00003f00 | ||
58 | 61 | ||
59 | #define KEY_OTH_VIEW 0x00000001 /* third party permissions... */ | 62 | #define KEY_OTH_VIEW 0x00000001 /* third party permissions... */ |
60 | #define KEY_OTH_READ 0x00000002 | 63 | #define KEY_OTH_READ 0x00000002 |
61 | #define KEY_OTH_WRITE 0x00000004 | 64 | #define KEY_OTH_WRITE 0x00000004 |
62 | #define KEY_OTH_SEARCH 0x00000008 | 65 | #define KEY_OTH_SEARCH 0x00000008 |
63 | #define KEY_OTH_LINK 0x00000010 | 66 | #define KEY_OTH_LINK 0x00000010 |
64 | #define KEY_OTH_ALL 0x0000001f | 67 | #define KEY_OTH_SETATTR 0x00000020 |
68 | #define KEY_OTH_ALL 0x0000003f | ||
65 | 69 | ||
66 | struct seq_file; | 70 | struct seq_file; |
67 | struct user_struct; | 71 | struct user_struct; |
@@ -119,6 +123,7 @@ struct key { | |||
119 | struct key_type *type; /* type of key */ | 123 | struct key_type *type; /* type of key */ |
120 | struct rw_semaphore sem; /* change vs change sem */ | 124 | struct rw_semaphore sem; /* change vs change sem */ |
121 | struct key_user *user; /* owner of this key */ | 125 | struct key_user *user; /* owner of this key */ |
126 | void *security; /* security data for this key */ | ||
122 | time_t expiry; /* time at which key expires (or 0) */ | 127 | time_t expiry; /* time at which key expires (or 0) */ |
123 | uid_t uid; | 128 | uid_t uid; |
124 | gid_t gid; | 129 | gid_t gid; |
diff --git a/include/linux/kobj_map.h b/include/linux/kobj_map.h index b6cc10bf8dfc..cbe7d8008042 100644 --- a/include/linux/kobj_map.h +++ b/include/linux/kobj_map.h | |||
@@ -1,5 +1,7 @@ | |||
1 | #ifdef __KERNEL__ | 1 | #ifdef __KERNEL__ |
2 | 2 | ||
3 | #include <asm/semaphore.h> | ||
4 | |||
3 | typedef struct kobject *kobj_probe_t(dev_t, int *, void *); | 5 | typedef struct kobject *kobj_probe_t(dev_t, int *, void *); |
4 | struct kobj_map; | 6 | struct kobj_map; |
5 | 7 | ||
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index 3b22304f12fd..7f7403aa4a41 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
@@ -65,7 +65,7 @@ extern void kobject_unregister(struct kobject *); | |||
65 | extern struct kobject * kobject_get(struct kobject *); | 65 | extern struct kobject * kobject_get(struct kobject *); |
66 | extern void kobject_put(struct kobject *); | 66 | extern void kobject_put(struct kobject *); |
67 | 67 | ||
68 | extern char * kobject_get_path(struct kobject *, int); | 68 | extern char * kobject_get_path(struct kobject *, gfp_t); |
69 | 69 | ||
70 | struct kobj_type { | 70 | struct kobj_type { |
71 | void (*release)(struct kobject *); | 71 | void (*release)(struct kobject *); |
diff --git a/include/linux/kthread.h b/include/linux/kthread.h index 3fa786448db3..ebdd41fd1082 100644 --- a/include/linux/kthread.h +++ b/include/linux/kthread.h | |||
@@ -70,6 +70,18 @@ void kthread_bind(struct task_struct *k, unsigned int cpu); | |||
70 | int kthread_stop(struct task_struct *k); | 70 | int kthread_stop(struct task_struct *k); |
71 | 71 | ||
72 | /** | 72 | /** |
73 | * kthread_stop_sem: stop a thread created by kthread_create(). | ||
74 | * @k: thread created by kthread_create(). | ||
75 | * @s: semaphore that @k waits on while idle. | ||
76 | * | ||
77 | * Does essentially the same thing as kthread_stop() above, but wakes | ||
78 | * @k by calling up(@s). | ||
79 | * | ||
80 | * Returns the result of threadfn(), or -EINTR if wake_up_process() | ||
81 | * was never called. */ | ||
82 | int kthread_stop_sem(struct task_struct *k, struct semaphore *s); | ||
83 | |||
84 | /** | ||
73 | * kthread_should_stop: should this kthread return now? | 85 | * kthread_should_stop: should this kthread return now? |
74 | * | 86 | * |
75 | * When someone calls kthread_stop on your kthread, it will be woken | 87 | * When someone calls kthread_stop on your kthread, it will be woken |
diff --git a/include/linux/libata.h b/include/linux/libata.h index ceee1fc42c60..0ba3af7a1236 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -91,12 +91,13 @@ enum { | |||
91 | ATA_SHT_EMULATED = 1, | 91 | ATA_SHT_EMULATED = 1, |
92 | ATA_SHT_CMD_PER_LUN = 1, | 92 | ATA_SHT_CMD_PER_LUN = 1, |
93 | ATA_SHT_THIS_ID = -1, | 93 | ATA_SHT_THIS_ID = -1, |
94 | ATA_SHT_USE_CLUSTERING = 0, | 94 | ATA_SHT_USE_CLUSTERING = 1, |
95 | 95 | ||
96 | /* struct ata_device stuff */ | 96 | /* struct ata_device stuff */ |
97 | ATA_DFLAG_LBA48 = (1 << 0), /* device supports LBA48 */ | 97 | ATA_DFLAG_LBA48 = (1 << 0), /* device supports LBA48 */ |
98 | ATA_DFLAG_PIO = (1 << 1), /* device currently in PIO mode */ | 98 | ATA_DFLAG_PIO = (1 << 1), /* device currently in PIO mode */ |
99 | ATA_DFLAG_LOCK_SECTORS = (1 << 2), /* don't adjust max_sectors */ | 99 | ATA_DFLAG_LOCK_SECTORS = (1 << 2), /* don't adjust max_sectors */ |
100 | ATA_DFLAG_LBA = (1 << 3), /* device supports LBA */ | ||
100 | 101 | ||
101 | ATA_DEV_UNKNOWN = 0, /* unknown device */ | 102 | ATA_DEV_UNKNOWN = 0, /* unknown device */ |
102 | ATA_DEV_ATA = 1, /* ATA device */ | 103 | ATA_DEV_ATA = 1, /* ATA device */ |
@@ -154,17 +155,28 @@ enum { | |||
154 | ATA_SHIFT_UDMA = 0, | 155 | ATA_SHIFT_UDMA = 0, |
155 | ATA_SHIFT_MWDMA = 8, | 156 | ATA_SHIFT_MWDMA = 8, |
156 | ATA_SHIFT_PIO = 11, | 157 | ATA_SHIFT_PIO = 11, |
158 | |||
159 | /* Masks for port functions */ | ||
160 | ATA_PORT_PRIMARY = (1 << 0), | ||
161 | ATA_PORT_SECONDARY = (1 << 1), | ||
157 | }; | 162 | }; |
158 | 163 | ||
159 | enum pio_task_states { | 164 | enum hsm_task_states { |
160 | PIO_ST_UNKNOWN, | 165 | HSM_ST_UNKNOWN, |
161 | PIO_ST_IDLE, | 166 | HSM_ST_IDLE, |
162 | PIO_ST_POLL, | 167 | HSM_ST_POLL, |
163 | PIO_ST_TMOUT, | 168 | HSM_ST_TMOUT, |
164 | PIO_ST, | 169 | HSM_ST, |
165 | PIO_ST_LAST, | 170 | HSM_ST_LAST, |
166 | PIO_ST_LAST_POLL, | 171 | HSM_ST_LAST_POLL, |
167 | PIO_ST_ERR, | 172 | HSM_ST_ERR, |
173 | }; | ||
174 | |||
175 | enum ata_completion_errors { | ||
176 | AC_ERR_OTHER = (1 << 0), | ||
177 | AC_ERR_DEV = (1 << 1), | ||
178 | AC_ERR_ATA_BUS = (1 << 2), | ||
179 | AC_ERR_HOST_BUS = (1 << 3), | ||
168 | }; | 180 | }; |
169 | 181 | ||
170 | /* forward declarations */ | 182 | /* forward declarations */ |
@@ -174,7 +186,7 @@ struct ata_port; | |||
174 | struct ata_queued_cmd; | 186 | struct ata_queued_cmd; |
175 | 187 | ||
176 | /* typedefs */ | 188 | /* typedefs */ |
177 | typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc, u8 drv_stat); | 189 | typedef int (*ata_qc_cb_t) (struct ata_queued_cmd *qc, unsigned int err_mask); |
178 | 190 | ||
179 | struct ata_ioports { | 191 | struct ata_ioports { |
180 | unsigned long cmd_addr; | 192 | unsigned long cmd_addr; |
@@ -197,7 +209,7 @@ struct ata_ioports { | |||
197 | struct ata_probe_ent { | 209 | struct ata_probe_ent { |
198 | struct list_head node; | 210 | struct list_head node; |
199 | struct device *dev; | 211 | struct device *dev; |
200 | struct ata_port_operations *port_ops; | 212 | const struct ata_port_operations *port_ops; |
201 | Scsi_Host_Template *sht; | 213 | Scsi_Host_Template *sht; |
202 | struct ata_ioports port[ATA_MAX_PORTS]; | 214 | struct ata_ioports port[ATA_MAX_PORTS]; |
203 | unsigned int n_ports; | 215 | unsigned int n_ports; |
@@ -220,7 +232,7 @@ struct ata_host_set { | |||
220 | void __iomem *mmio_base; | 232 | void __iomem *mmio_base; |
221 | unsigned int n_ports; | 233 | unsigned int n_ports; |
222 | void *private_data; | 234 | void *private_data; |
223 | struct ata_port_operations *ops; | 235 | const struct ata_port_operations *ops; |
224 | struct ata_port * ports[0]; | 236 | struct ata_port * ports[0]; |
225 | }; | 237 | }; |
226 | 238 | ||
@@ -278,15 +290,18 @@ struct ata_device { | |||
278 | u8 xfer_mode; | 290 | u8 xfer_mode; |
279 | unsigned int xfer_shift; /* ATA_SHIFT_xxx */ | 291 | unsigned int xfer_shift; /* ATA_SHIFT_xxx */ |
280 | 292 | ||
281 | /* cache info about current transfer mode */ | 293 | unsigned int multi_count; /* sectors count for |
282 | u8 xfer_protocol; /* taskfile xfer protocol */ | 294 | READ/WRITE MULTIPLE */ |
283 | u8 read_cmd; /* opcode to use on read */ | 295 | |
284 | u8 write_cmd; /* opcode to use on write */ | 296 | /* for CHS addressing */ |
297 | u16 cylinders; /* Number of cylinders */ | ||
298 | u16 heads; /* Number of heads */ | ||
299 | u16 sectors; /* Number of sectors per track */ | ||
285 | }; | 300 | }; |
286 | 301 | ||
287 | struct ata_port { | 302 | struct ata_port { |
288 | struct Scsi_Host *host; /* our co-allocated scsi host */ | 303 | struct Scsi_Host *host; /* our co-allocated scsi host */ |
289 | struct ata_port_operations *ops; | 304 | const struct ata_port_operations *ops; |
290 | unsigned long flags; /* ATA_FLAG_xxx */ | 305 | unsigned long flags; /* ATA_FLAG_xxx */ |
291 | unsigned int id; /* unique id req'd by scsi midlyr */ | 306 | unsigned int id; /* unique id req'd by scsi midlyr */ |
292 | unsigned int port_no; /* unique port #; from zero */ | 307 | unsigned int port_no; /* unique port #; from zero */ |
@@ -319,7 +334,7 @@ struct ata_port { | |||
319 | struct work_struct packet_task; | 334 | struct work_struct packet_task; |
320 | 335 | ||
321 | struct work_struct pio_task; | 336 | struct work_struct pio_task; |
322 | unsigned int pio_task_state; | 337 | unsigned int hsm_task_state; |
323 | unsigned long pio_task_timeout; | 338 | unsigned long pio_task_timeout; |
324 | 339 | ||
325 | void *private_data; | 340 | void *private_data; |
@@ -333,13 +348,12 @@ struct ata_port_operations { | |||
333 | void (*set_piomode) (struct ata_port *, struct ata_device *); | 348 | void (*set_piomode) (struct ata_port *, struct ata_device *); |
334 | void (*set_dmamode) (struct ata_port *, struct ata_device *); | 349 | void (*set_dmamode) (struct ata_port *, struct ata_device *); |
335 | 350 | ||
336 | void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf); | 351 | void (*tf_load) (struct ata_port *ap, const struct ata_taskfile *tf); |
337 | void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); | 352 | void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); |
338 | 353 | ||
339 | void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); | 354 | void (*exec_command)(struct ata_port *ap, const struct ata_taskfile *tf); |
340 | u8 (*check_status)(struct ata_port *ap); | 355 | u8 (*check_status)(struct ata_port *ap); |
341 | u8 (*check_altstatus)(struct ata_port *ap); | 356 | u8 (*check_altstatus)(struct ata_port *ap); |
342 | u8 (*check_err)(struct ata_port *ap); | ||
343 | void (*dev_select)(struct ata_port *ap, unsigned int device); | 357 | void (*dev_select)(struct ata_port *ap, unsigned int device); |
344 | 358 | ||
345 | void (*phy_reset) (struct ata_port *ap); | 359 | void (*phy_reset) (struct ata_port *ap); |
@@ -377,9 +391,22 @@ struct ata_port_info { | |||
377 | unsigned long pio_mask; | 391 | unsigned long pio_mask; |
378 | unsigned long mwdma_mask; | 392 | unsigned long mwdma_mask; |
379 | unsigned long udma_mask; | 393 | unsigned long udma_mask; |
380 | struct ata_port_operations *port_ops; | 394 | const struct ata_port_operations *port_ops; |
395 | }; | ||
396 | |||
397 | struct ata_timing { | ||
398 | unsigned short mode; /* ATA mode */ | ||
399 | unsigned short setup; /* t1 */ | ||
400 | unsigned short act8b; /* t2 for 8-bit I/O */ | ||
401 | unsigned short rec8b; /* t2i for 8-bit I/O */ | ||
402 | unsigned short cyc8b; /* t0 for 8-bit I/O */ | ||
403 | unsigned short active; /* t2 or tD */ | ||
404 | unsigned short recover; /* t2i or tK */ | ||
405 | unsigned short cycle; /* t0 */ | ||
406 | unsigned short udma; /* t2CYCTYP/2 */ | ||
381 | }; | 407 | }; |
382 | 408 | ||
409 | #define FIT(v,vmin,vmax) max_t(short,min_t(short,v,vmax),vmin) | ||
383 | 410 | ||
384 | extern void ata_port_probe(struct ata_port *); | 411 | extern void ata_port_probe(struct ata_port *); |
385 | extern void __sata_phy_reset(struct ata_port *ap); | 412 | extern void __sata_phy_reset(struct ata_port *ap); |
@@ -392,7 +419,7 @@ extern int ata_pci_init_one (struct pci_dev *pdev, struct ata_port_info **port_i | |||
392 | unsigned int n_ports); | 419 | unsigned int n_ports); |
393 | extern void ata_pci_remove_one (struct pci_dev *pdev); | 420 | extern void ata_pci_remove_one (struct pci_dev *pdev); |
394 | #endif /* CONFIG_PCI */ | 421 | #endif /* CONFIG_PCI */ |
395 | extern int ata_device_add(struct ata_probe_ent *ent); | 422 | extern int ata_device_add(const struct ata_probe_ent *ent); |
396 | extern void ata_host_set_remove(struct ata_host_set *host_set); | 423 | extern void ata_host_set_remove(struct ata_host_set *host_set); |
397 | extern int ata_scsi_detect(Scsi_Host_Template *sht); | 424 | extern int ata_scsi_detect(Scsi_Host_Template *sht); |
398 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); | 425 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); |
@@ -400,19 +427,20 @@ extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmn | |||
400 | extern int ata_scsi_error(struct Scsi_Host *host); | 427 | extern int ata_scsi_error(struct Scsi_Host *host); |
401 | extern int ata_scsi_release(struct Scsi_Host *host); | 428 | extern int ata_scsi_release(struct Scsi_Host *host); |
402 | extern unsigned int ata_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc); | 429 | extern unsigned int ata_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc); |
430 | extern int ata_ratelimit(void); | ||
431 | |||
403 | /* | 432 | /* |
404 | * Default driver ops implementations | 433 | * Default driver ops implementations |
405 | */ | 434 | */ |
406 | extern void ata_tf_load(struct ata_port *ap, struct ata_taskfile *tf); | 435 | extern void ata_tf_load(struct ata_port *ap, const struct ata_taskfile *tf); |
407 | extern void ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf); | 436 | extern void ata_tf_read(struct ata_port *ap, struct ata_taskfile *tf); |
408 | extern void ata_tf_to_fis(struct ata_taskfile *tf, u8 *fis, u8 pmp); | 437 | extern void ata_tf_to_fis(const struct ata_taskfile *tf, u8 *fis, u8 pmp); |
409 | extern void ata_tf_from_fis(u8 *fis, struct ata_taskfile *tf); | 438 | extern void ata_tf_from_fis(const u8 *fis, struct ata_taskfile *tf); |
410 | extern void ata_noop_dev_select (struct ata_port *ap, unsigned int device); | 439 | extern void ata_noop_dev_select (struct ata_port *ap, unsigned int device); |
411 | extern void ata_std_dev_select (struct ata_port *ap, unsigned int device); | 440 | extern void ata_std_dev_select (struct ata_port *ap, unsigned int device); |
412 | extern u8 ata_check_status(struct ata_port *ap); | 441 | extern u8 ata_check_status(struct ata_port *ap); |
413 | extern u8 ata_altstatus(struct ata_port *ap); | 442 | extern u8 ata_altstatus(struct ata_port *ap); |
414 | extern u8 ata_chk_err(struct ata_port *ap); | 443 | extern void ata_exec_command(struct ata_port *ap, const struct ata_taskfile *tf); |
415 | extern void ata_exec_command(struct ata_port *ap, struct ata_taskfile *tf); | ||
416 | extern int ata_port_start (struct ata_port *ap); | 444 | extern int ata_port_start (struct ata_port *ap); |
417 | extern void ata_port_stop (struct ata_port *ap); | 445 | extern void ata_port_stop (struct ata_port *ap); |
418 | extern void ata_host_stop (struct ata_host_set *host_set); | 446 | extern void ata_host_stop (struct ata_host_set *host_set); |
@@ -423,8 +451,8 @@ extern void ata_sg_init_one(struct ata_queued_cmd *qc, void *buf, | |||
423 | unsigned int buflen); | 451 | unsigned int buflen); |
424 | extern void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg, | 452 | extern void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg, |
425 | unsigned int n_elem); | 453 | unsigned int n_elem); |
426 | extern unsigned int ata_dev_classify(struct ata_taskfile *tf); | 454 | extern unsigned int ata_dev_classify(const struct ata_taskfile *tf); |
427 | extern void ata_dev_id_string(u16 *id, unsigned char *s, | 455 | extern void ata_dev_id_string(const u16 *id, unsigned char *s, |
428 | unsigned int ofs, unsigned int len); | 456 | unsigned int ofs, unsigned int len); |
429 | extern void ata_dev_config(struct ata_port *ap, unsigned int i); | 457 | extern void ata_dev_config(struct ata_port *ap, unsigned int i); |
430 | extern void ata_bmdma_setup (struct ata_queued_cmd *qc); | 458 | extern void ata_bmdma_setup (struct ata_queued_cmd *qc); |
@@ -432,7 +460,7 @@ extern void ata_bmdma_start (struct ata_queued_cmd *qc); | |||
432 | extern void ata_bmdma_stop(struct ata_queued_cmd *qc); | 460 | extern void ata_bmdma_stop(struct ata_queued_cmd *qc); |
433 | extern u8 ata_bmdma_status(struct ata_port *ap); | 461 | extern u8 ata_bmdma_status(struct ata_port *ap); |
434 | extern void ata_bmdma_irq_clear(struct ata_port *ap); | 462 | extern void ata_bmdma_irq_clear(struct ata_port *ap); |
435 | extern void ata_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat); | 463 | extern void ata_qc_complete(struct ata_queued_cmd *qc, unsigned int err_mask); |
436 | extern void ata_eng_timeout(struct ata_port *ap); | 464 | extern void ata_eng_timeout(struct ata_port *ap); |
437 | extern void ata_scsi_simulate(u16 *id, struct scsi_cmnd *cmd, | 465 | extern void ata_scsi_simulate(u16 *id, struct scsi_cmnd *cmd, |
438 | void (*done)(struct scsi_cmnd *)); | 466 | void (*done)(struct scsi_cmnd *)); |
@@ -441,6 +469,32 @@ extern int ata_std_bios_param(struct scsi_device *sdev, | |||
441 | sector_t capacity, int geom[]); | 469 | sector_t capacity, int geom[]); |
442 | extern int ata_scsi_slave_config(struct scsi_device *sdev); | 470 | extern int ata_scsi_slave_config(struct scsi_device *sdev); |
443 | 471 | ||
472 | /* | ||
473 | * Timing helpers | ||
474 | */ | ||
475 | extern int ata_timing_compute(struct ata_device *, unsigned short, | ||
476 | struct ata_timing *, int, int); | ||
477 | extern void ata_timing_merge(const struct ata_timing *, | ||
478 | const struct ata_timing *, struct ata_timing *, | ||
479 | unsigned int); | ||
480 | |||
481 | enum { | ||
482 | ATA_TIMING_SETUP = (1 << 0), | ||
483 | ATA_TIMING_ACT8B = (1 << 1), | ||
484 | ATA_TIMING_REC8B = (1 << 2), | ||
485 | ATA_TIMING_CYC8B = (1 << 3), | ||
486 | ATA_TIMING_8BIT = ATA_TIMING_ACT8B | ATA_TIMING_REC8B | | ||
487 | ATA_TIMING_CYC8B, | ||
488 | ATA_TIMING_ACTIVE = (1 << 4), | ||
489 | ATA_TIMING_RECOVER = (1 << 5), | ||
490 | ATA_TIMING_CYCLE = (1 << 6), | ||
491 | ATA_TIMING_UDMA = (1 << 7), | ||
492 | ATA_TIMING_ALL = ATA_TIMING_SETUP | ATA_TIMING_ACT8B | | ||
493 | ATA_TIMING_REC8B | ATA_TIMING_CYC8B | | ||
494 | ATA_TIMING_ACTIVE | ATA_TIMING_RECOVER | | ||
495 | ATA_TIMING_CYCLE | ATA_TIMING_UDMA, | ||
496 | }; | ||
497 | |||
444 | 498 | ||
445 | #ifdef CONFIG_PCI | 499 | #ifdef CONFIG_PCI |
446 | struct pci_bits { | 500 | struct pci_bits { |
@@ -452,8 +506,8 @@ struct pci_bits { | |||
452 | 506 | ||
453 | extern void ata_pci_host_stop (struct ata_host_set *host_set); | 507 | extern void ata_pci_host_stop (struct ata_host_set *host_set); |
454 | extern struct ata_probe_ent * | 508 | extern struct ata_probe_ent * |
455 | ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port); | 509 | ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port, int portmask); |
456 | extern int pci_test_config_bits(struct pci_dev *pdev, struct pci_bits *bits); | 510 | extern int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits); |
457 | 511 | ||
458 | #endif /* CONFIG_PCI */ | 512 | #endif /* CONFIG_PCI */ |
459 | 513 | ||
@@ -463,7 +517,7 @@ static inline unsigned int ata_tag_valid(unsigned int tag) | |||
463 | return (tag < ATA_MAX_QUEUE) ? 1 : 0; | 517 | return (tag < ATA_MAX_QUEUE) ? 1 : 0; |
464 | } | 518 | } |
465 | 519 | ||
466 | static inline unsigned int ata_dev_present(struct ata_device *dev) | 520 | static inline unsigned int ata_dev_present(const struct ata_device *dev) |
467 | { | 521 | { |
468 | return ((dev->class == ATA_DEV_ATA) || | 522 | return ((dev->class == ATA_DEV_ATA) || |
469 | (dev->class == ATA_DEV_ATAPI)); | 523 | (dev->class == ATA_DEV_ATAPI)); |
@@ -662,11 +716,28 @@ static inline unsigned int sata_dev_present(struct ata_port *ap) | |||
662 | return ((scr_read(ap, SCR_STATUS) & 0xf) == 0x3) ? 1 : 0; | 716 | return ((scr_read(ap, SCR_STATUS) & 0xf) == 0x3) ? 1 : 0; |
663 | } | 717 | } |
664 | 718 | ||
665 | static inline int ata_try_flush_cache(struct ata_device *dev) | 719 | static inline int ata_try_flush_cache(const struct ata_device *dev) |
666 | { | 720 | { |
667 | return ata_id_wcache_enabled(dev->id) || | 721 | return ata_id_wcache_enabled(dev->id) || |
668 | ata_id_has_flush(dev->id) || | 722 | ata_id_has_flush(dev->id) || |
669 | ata_id_has_flush_ext(dev->id); | 723 | ata_id_has_flush_ext(dev->id); |
670 | } | 724 | } |
671 | 725 | ||
726 | static inline unsigned int ac_err_mask(u8 status) | ||
727 | { | ||
728 | if (status & ATA_BUSY) | ||
729 | return AC_ERR_ATA_BUS; | ||
730 | if (status & (ATA_ERR | ATA_DF)) | ||
731 | return AC_ERR_DEV; | ||
732 | return 0; | ||
733 | } | ||
734 | |||
735 | static inline unsigned int __ac_err_mask(u8 status) | ||
736 | { | ||
737 | unsigned int mask = ac_err_mask(status); | ||
738 | if (mask == 0) | ||
739 | return AC_ERR_OTHER; | ||
740 | return mask; | ||
741 | } | ||
742 | |||
672 | #endif /* __LINUX_LIBATA_H__ */ | 743 | #endif /* __LINUX_LIBATA_H__ */ |
diff --git a/include/linux/loop.h b/include/linux/loop.h index 53fa51595443..40f63c9879d2 100644 --- a/include/linux/loop.h +++ b/include/linux/loop.h | |||
@@ -52,7 +52,7 @@ struct loop_device { | |||
52 | unsigned lo_blocksize; | 52 | unsigned lo_blocksize; |
53 | void *key_data; | 53 | void *key_data; |
54 | 54 | ||
55 | int old_gfp_mask; | 55 | gfp_t old_gfp_mask; |
56 | 56 | ||
57 | spinlock_t lo_lock; | 57 | spinlock_t lo_lock; |
58 | struct bio *lo_bio; | 58 | struct bio *lo_bio; |
diff --git a/include/linux/mbcache.h b/include/linux/mbcache.h index 9263d2db2d67..99e044b4efc6 100644 --- a/include/linux/mbcache.h +++ b/include/linux/mbcache.h | |||
@@ -22,7 +22,7 @@ struct mb_cache_entry { | |||
22 | }; | 22 | }; |
23 | 23 | ||
24 | struct mb_cache_op { | 24 | struct mb_cache_op { |
25 | int (*free)(struct mb_cache_entry *, int); | 25 | int (*free)(struct mb_cache_entry *, gfp_t); |
26 | }; | 26 | }; |
27 | 27 | ||
28 | /* Functions on caches */ | 28 | /* Functions on caches */ |
diff --git a/include/linux/memory.h b/include/linux/memory.h new file mode 100644 index 000000000000..0def328ab5cf --- /dev/null +++ b/include/linux/memory.h | |||
@@ -0,0 +1,94 @@ | |||
1 | /* | ||
2 | * include/linux/memory.h - generic memory definition | ||
3 | * | ||
4 | * This is mainly for topological representation. We define the | ||
5 | * basic "struct memory_block" here, which can be embedded in per-arch | ||
6 | * definitions or NUMA information. | ||
7 | * | ||
8 | * Basic handling of the devices is done in drivers/base/memory.c | ||
9 | * and system devices are handled in drivers/base/sys.c. | ||
10 | * | ||
11 | * Memory block are exported via sysfs in the class/memory/devices/ | ||
12 | * directory. | ||
13 | * | ||
14 | */ | ||
15 | #ifndef _LINUX_MEMORY_H_ | ||
16 | #define _LINUX_MEMORY_H_ | ||
17 | |||
18 | #include <linux/sysdev.h> | ||
19 | #include <linux/node.h> | ||
20 | #include <linux/compiler.h> | ||
21 | |||
22 | #include <asm/semaphore.h> | ||
23 | |||
24 | struct memory_block { | ||
25 | unsigned long phys_index; | ||
26 | unsigned long state; | ||
27 | /* | ||
28 | * This serializes all state change requests. It isn't | ||
29 | * held during creation because the control files are | ||
30 | * created long after the critical areas during | ||
31 | * initialization. | ||
32 | */ | ||
33 | struct semaphore state_sem; | ||
34 | int phys_device; /* to which fru does this belong? */ | ||
35 | void *hw; /* optional pointer to fw/hw data */ | ||
36 | int (*phys_callback)(struct memory_block *); | ||
37 | struct sys_device sysdev; | ||
38 | }; | ||
39 | |||
40 | /* These states are exposed to userspace as text strings in sysfs */ | ||
41 | #define MEM_ONLINE (1<<0) /* exposed to userspace */ | ||
42 | #define MEM_GOING_OFFLINE (1<<1) /* exposed to userspace */ | ||
43 | #define MEM_OFFLINE (1<<2) /* exposed to userspace */ | ||
44 | |||
45 | /* | ||
46 | * All of these states are currently kernel-internal for notifying | ||
47 | * kernel components and architectures. | ||
48 | * | ||
49 | * For MEM_MAPPING_INVALID, all notifier chains with priority >0 | ||
50 | * are called before pfn_to_page() becomes invalid. The priority=0 | ||
51 | * entry is reserved for the function that actually makes | ||
52 | * pfn_to_page() stop working. Any notifiers that want to be called | ||
53 | * after that should have priority <0. | ||
54 | */ | ||
55 | #define MEM_MAPPING_INVALID (1<<3) | ||
56 | |||
57 | #ifndef CONFIG_MEMORY_HOTPLUG | ||
58 | static inline int memory_dev_init(void) | ||
59 | { | ||
60 | return 0; | ||
61 | } | ||
62 | static inline int register_memory_notifier(struct notifier_block *nb) | ||
63 | { | ||
64 | return 0; | ||
65 | } | ||
66 | static inline void unregister_memory_notifier(struct notifier_block *nb) | ||
67 | { | ||
68 | } | ||
69 | #else | ||
70 | extern int register_memory(struct memory_block *, struct mem_section *section, struct node *); | ||
71 | extern int register_new_memory(struct mem_section *); | ||
72 | extern int unregister_memory_section(struct mem_section *); | ||
73 | extern int memory_dev_init(void); | ||
74 | extern int register_memory_notifier(struct notifier_block *nb); | ||
75 | extern void unregister_memory_notifier(struct notifier_block *nb); | ||
76 | |||
77 | #define CONFIG_MEM_BLOCK_SIZE (PAGES_PER_SECTION<<PAGE_SHIFT) | ||
78 | |||
79 | extern int invalidate_phys_mapping(unsigned long, unsigned long); | ||
80 | struct notifier_block; | ||
81 | |||
82 | extern int register_memory_notifier(struct notifier_block *nb); | ||
83 | extern void unregister_memory_notifier(struct notifier_block *nb); | ||
84 | |||
85 | extern struct sysdev_class memory_sysdev_class; | ||
86 | #endif /* CONFIG_MEMORY_HOTPLUG */ | ||
87 | |||
88 | #define hotplug_memory_notifier(fn, pri) { \ | ||
89 | static struct notifier_block fn##_mem_nb = \ | ||
90 | { .notifier_call = fn, .priority = pri }; \ | ||
91 | register_memory_notifier(&fn##_mem_nb); \ | ||
92 | } | ||
93 | |||
94 | #endif /* _LINUX_MEMORY_H_ */ | ||
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h new file mode 100644 index 000000000000..01f03bc06eff --- /dev/null +++ b/include/linux/memory_hotplug.h | |||
@@ -0,0 +1,104 @@ | |||
1 | #ifndef __LINUX_MEMORY_HOTPLUG_H | ||
2 | #define __LINUX_MEMORY_HOTPLUG_H | ||
3 | |||
4 | #include <linux/mmzone.h> | ||
5 | #include <linux/spinlock.h> | ||
6 | #include <linux/mmzone.h> | ||
7 | #include <linux/notifier.h> | ||
8 | |||
9 | #ifdef CONFIG_MEMORY_HOTPLUG | ||
10 | /* | ||
11 | * pgdat resizing functions | ||
12 | */ | ||
13 | static inline | ||
14 | void pgdat_resize_lock(struct pglist_data *pgdat, unsigned long *flags) | ||
15 | { | ||
16 | spin_lock_irqsave(&pgdat->node_size_lock, *flags); | ||
17 | } | ||
18 | static inline | ||
19 | void pgdat_resize_unlock(struct pglist_data *pgdat, unsigned long *flags) | ||
20 | { | ||
21 | spin_unlock_irqrestore(&pgdat->node_size_lock, *flags); | ||
22 | } | ||
23 | static inline | ||
24 | void pgdat_resize_init(struct pglist_data *pgdat) | ||
25 | { | ||
26 | spin_lock_init(&pgdat->node_size_lock); | ||
27 | } | ||
28 | /* | ||
29 | * Zone resizing functions | ||
30 | */ | ||
31 | static inline unsigned zone_span_seqbegin(struct zone *zone) | ||
32 | { | ||
33 | return read_seqbegin(&zone->span_seqlock); | ||
34 | } | ||
35 | static inline int zone_span_seqretry(struct zone *zone, unsigned iv) | ||
36 | { | ||
37 | return read_seqretry(&zone->span_seqlock, iv); | ||
38 | } | ||
39 | static inline void zone_span_writelock(struct zone *zone) | ||
40 | { | ||
41 | write_seqlock(&zone->span_seqlock); | ||
42 | } | ||
43 | static inline void zone_span_writeunlock(struct zone *zone) | ||
44 | { | ||
45 | write_sequnlock(&zone->span_seqlock); | ||
46 | } | ||
47 | static inline void zone_seqlock_init(struct zone *zone) | ||
48 | { | ||
49 | seqlock_init(&zone->span_seqlock); | ||
50 | } | ||
51 | extern int zone_grow_free_lists(struct zone *zone, unsigned long new_nr_pages); | ||
52 | extern int zone_grow_waitqueues(struct zone *zone, unsigned long nr_pages); | ||
53 | extern int add_one_highpage(struct page *page, int pfn, int bad_ppro); | ||
54 | /* need some defines for these for archs that don't support it */ | ||
55 | extern void online_page(struct page *page); | ||
56 | /* VM interface that may be used by firmware interface */ | ||
57 | extern int add_memory(u64 start, u64 size); | ||
58 | extern int remove_memory(u64 start, u64 size); | ||
59 | extern int online_pages(unsigned long, unsigned long); | ||
60 | |||
61 | /* reasonably generic interface to expand the physical pages in a zone */ | ||
62 | extern int __add_pages(struct zone *zone, unsigned long start_pfn, | ||
63 | unsigned long nr_pages); | ||
64 | #else /* ! CONFIG_MEMORY_HOTPLUG */ | ||
65 | /* | ||
66 | * Stub functions for when hotplug is off | ||
67 | */ | ||
68 | static inline void pgdat_resize_lock(struct pglist_data *p, unsigned long *f) {} | ||
69 | static inline void pgdat_resize_unlock(struct pglist_data *p, unsigned long *f) {} | ||
70 | static inline void pgdat_resize_init(struct pglist_data *pgdat) {} | ||
71 | |||
72 | static inline unsigned zone_span_seqbegin(struct zone *zone) | ||
73 | { | ||
74 | return 0; | ||
75 | } | ||
76 | static inline int zone_span_seqretry(struct zone *zone, unsigned iv) | ||
77 | { | ||
78 | return 0; | ||
79 | } | ||
80 | static inline void zone_span_writelock(struct zone *zone) {} | ||
81 | static inline void zone_span_writeunlock(struct zone *zone) {} | ||
82 | static inline void zone_seqlock_init(struct zone *zone) {} | ||
83 | |||
84 | static inline int mhp_notimplemented(const char *func) | ||
85 | { | ||
86 | printk(KERN_WARNING "%s() called, with CONFIG_MEMORY_HOTPLUG disabled\n", func); | ||
87 | dump_stack(); | ||
88 | return -ENOSYS; | ||
89 | } | ||
90 | |||
91 | static inline int __add_pages(struct zone *zone, unsigned long start_pfn, | ||
92 | unsigned long nr_pages) | ||
93 | { | ||
94 | return mhp_notimplemented(__FUNCTION__); | ||
95 | } | ||
96 | #endif /* ! CONFIG_MEMORY_HOTPLUG */ | ||
97 | static inline int __remove_pages(struct zone *zone, unsigned long start_pfn, | ||
98 | unsigned long nr_pages) | ||
99 | { | ||
100 | printk(KERN_WARNING "%s() called, not yet supported\n", __FUNCTION__); | ||
101 | dump_stack(); | ||
102 | return -ENOSYS; | ||
103 | } | ||
104 | #endif /* __LINUX_MEMORY_HOTPLUG_H */ | ||
diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h index 58385ee1c0ac..8b67cf837ca9 100644 --- a/include/linux/mempolicy.h +++ b/include/linux/mempolicy.h | |||
@@ -27,10 +27,10 @@ | |||
27 | 27 | ||
28 | #include <linux/config.h> | 28 | #include <linux/config.h> |
29 | #include <linux/mmzone.h> | 29 | #include <linux/mmzone.h> |
30 | #include <linux/bitmap.h> | ||
31 | #include <linux/slab.h> | 30 | #include <linux/slab.h> |
32 | #include <linux/rbtree.h> | 31 | #include <linux/rbtree.h> |
33 | #include <linux/spinlock.h> | 32 | #include <linux/spinlock.h> |
33 | #include <linux/nodemask.h> | ||
34 | 34 | ||
35 | struct vm_area_struct; | 35 | struct vm_area_struct; |
36 | 36 | ||
@@ -47,8 +47,7 @@ struct vm_area_struct; | |||
47 | * Locking policy for interlave: | 47 | * Locking policy for interlave: |
48 | * In process context there is no locking because only the process accesses | 48 | * In process context there is no locking because only the process accesses |
49 | * its own state. All vma manipulation is somewhat protected by a down_read on | 49 | * its own state. All vma manipulation is somewhat protected by a down_read on |
50 | * mmap_sem. For allocating in the interleave policy the page_table_lock | 50 | * mmap_sem. |
51 | * must be also aquired to protect il_next. | ||
52 | * | 51 | * |
53 | * Freeing policy: | 52 | * Freeing policy: |
54 | * When policy is MPOL_BIND v.zonelist is kmalloc'ed and must be kfree'd. | 53 | * When policy is MPOL_BIND v.zonelist is kmalloc'ed and must be kfree'd. |
@@ -63,7 +62,7 @@ struct mempolicy { | |||
63 | union { | 62 | union { |
64 | struct zonelist *zonelist; /* bind */ | 63 | struct zonelist *zonelist; /* bind */ |
65 | short preferred_node; /* preferred */ | 64 | short preferred_node; /* preferred */ |
66 | DECLARE_BITMAP(nodes, MAX_NUMNODES); /* interleave */ | 65 | nodemask_t nodes; /* interleave */ |
67 | /* undefined for default */ | 66 | /* undefined for default */ |
68 | } v; | 67 | } v; |
69 | }; | 68 | }; |
@@ -155,6 +154,7 @@ struct mempolicy *get_vma_policy(struct task_struct *task, | |||
155 | 154 | ||
156 | extern void numa_default_policy(void); | 155 | extern void numa_default_policy(void); |
157 | extern void numa_policy_init(void); | 156 | extern void numa_policy_init(void); |
157 | extern void numa_policy_rebind(const nodemask_t *old, const nodemask_t *new); | ||
158 | extern struct mempolicy default_policy; | 158 | extern struct mempolicy default_policy; |
159 | 159 | ||
160 | #else | 160 | #else |
@@ -227,6 +227,11 @@ static inline void numa_default_policy(void) | |||
227 | { | 227 | { |
228 | } | 228 | } |
229 | 229 | ||
230 | static inline void numa_policy_rebind(const nodemask_t *old, | ||
231 | const nodemask_t *new) | ||
232 | { | ||
233 | } | ||
234 | |||
230 | #endif /* CONFIG_NUMA */ | 235 | #endif /* CONFIG_NUMA */ |
231 | #endif /* __KERNEL__ */ | 236 | #endif /* __KERNEL__ */ |
232 | 237 | ||
diff --git a/include/linux/mii.h b/include/linux/mii.h index 9b8d0476988a..68f5a0f392dd 100644 --- a/include/linux/mii.h +++ b/include/linux/mii.h | |||
@@ -158,6 +158,7 @@ extern int mii_link_ok (struct mii_if_info *mii); | |||
158 | extern int mii_nway_restart (struct mii_if_info *mii); | 158 | extern int mii_nway_restart (struct mii_if_info *mii); |
159 | extern int mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd); | 159 | extern int mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd); |
160 | extern int mii_ethtool_sset(struct mii_if_info *mii, struct ethtool_cmd *ecmd); | 160 | extern int mii_ethtool_sset(struct mii_if_info *mii, struct ethtool_cmd *ecmd); |
161 | extern int mii_check_gmii_support(struct mii_if_info *mii); | ||
161 | extern void mii_check_link (struct mii_if_info *mii); | 162 | extern void mii_check_link (struct mii_if_info *mii); |
162 | extern unsigned int mii_check_media (struct mii_if_info *mii, | 163 | extern unsigned int mii_check_media (struct mii_if_info *mii, |
163 | unsigned int ok_to_print, | 164 | unsigned int ok_to_print, |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 097b3a3c693d..5c1fb0a2e806 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -157,7 +157,7 @@ extern unsigned int kobjsize(const void *objp); | |||
157 | 157 | ||
158 | #define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */ | 158 | #define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */ |
159 | #define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */ | 159 | #define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */ |
160 | #define VM_RESERVED 0x00080000 /* Don't unmap it from swap_out */ | 160 | #define VM_RESERVED 0x00080000 /* Pages managed in a special way */ |
161 | #define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */ | 161 | #define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */ |
162 | #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ | 162 | #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ |
163 | #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */ | 163 | #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */ |
@@ -226,13 +226,18 @@ struct page { | |||
226 | * to show when page is mapped | 226 | * to show when page is mapped |
227 | * & limit reverse map searches. | 227 | * & limit reverse map searches. |
228 | */ | 228 | */ |
229 | unsigned long private; /* Mapping-private opaque data: | 229 | union { |
230 | unsigned long private; /* Mapping-private opaque data: | ||
230 | * usually used for buffer_heads | 231 | * usually used for buffer_heads |
231 | * if PagePrivate set; used for | 232 | * if PagePrivate set; used for |
232 | * swp_entry_t if PageSwapCache | 233 | * swp_entry_t if PageSwapCache |
233 | * When page is free, this indicates | 234 | * When page is free, this indicates |
234 | * order in the buddy system. | 235 | * order in the buddy system. |
235 | */ | 236 | */ |
237 | #if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS | ||
238 | spinlock_t ptl; | ||
239 | #endif | ||
240 | } u; | ||
236 | struct address_space *mapping; /* If low bit clear, points to | 241 | struct address_space *mapping; /* If low bit clear, points to |
237 | * inode address_space, or NULL. | 242 | * inode address_space, or NULL. |
238 | * If page mapped as anonymous | 243 | * If page mapped as anonymous |
@@ -260,6 +265,9 @@ struct page { | |||
260 | #endif /* WANT_PAGE_VIRTUAL */ | 265 | #endif /* WANT_PAGE_VIRTUAL */ |
261 | }; | 266 | }; |
262 | 267 | ||
268 | #define page_private(page) ((page)->u.private) | ||
269 | #define set_page_private(page, v) ((page)->u.private = (v)) | ||
270 | |||
263 | /* | 271 | /* |
264 | * FIXME: take this include out, include page-flags.h in | 272 | * FIXME: take this include out, include page-flags.h in |
265 | * files which need it (119 of them) | 273 | * files which need it (119 of them) |
@@ -311,17 +319,17 @@ extern void FASTCALL(__page_cache_release(struct page *)); | |||
311 | 319 | ||
312 | #ifdef CONFIG_HUGETLB_PAGE | 320 | #ifdef CONFIG_HUGETLB_PAGE |
313 | 321 | ||
314 | static inline int page_count(struct page *p) | 322 | static inline int page_count(struct page *page) |
315 | { | 323 | { |
316 | if (PageCompound(p)) | 324 | if (PageCompound(page)) |
317 | p = (struct page *)p->private; | 325 | page = (struct page *)page_private(page); |
318 | return atomic_read(&(p)->_count) + 1; | 326 | return atomic_read(&page->_count) + 1; |
319 | } | 327 | } |
320 | 328 | ||
321 | static inline void get_page(struct page *page) | 329 | static inline void get_page(struct page *page) |
322 | { | 330 | { |
323 | if (unlikely(PageCompound(page))) | 331 | if (unlikely(PageCompound(page))) |
324 | page = (struct page *)page->private; | 332 | page = (struct page *)page_private(page); |
325 | atomic_inc(&page->_count); | 333 | atomic_inc(&page->_count); |
326 | } | 334 | } |
327 | 335 | ||
@@ -338,7 +346,7 @@ static inline void get_page(struct page *page) | |||
338 | 346 | ||
339 | static inline void put_page(struct page *page) | 347 | static inline void put_page(struct page *page) |
340 | { | 348 | { |
341 | if (!PageReserved(page) && put_page_testzero(page)) | 349 | if (put_page_testzero(page)) |
342 | __page_cache_release(page); | 350 | __page_cache_release(page); |
343 | } | 351 | } |
344 | 352 | ||
@@ -587,7 +595,7 @@ static inline int PageAnon(struct page *page) | |||
587 | static inline pgoff_t page_index(struct page *page) | 595 | static inline pgoff_t page_index(struct page *page) |
588 | { | 596 | { |
589 | if (unlikely(PageSwapCache(page))) | 597 | if (unlikely(PageSwapCache(page))) |
590 | return page->private; | 598 | return page_private(page); |
591 | return page->index; | 599 | return page->index; |
592 | } | 600 | } |
593 | 601 | ||
@@ -682,7 +690,7 @@ struct zap_details { | |||
682 | 690 | ||
683 | unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address, | 691 | unsigned long zap_page_range(struct vm_area_struct *vma, unsigned long address, |
684 | unsigned long size, struct zap_details *); | 692 | unsigned long size, struct zap_details *); |
685 | unsigned long unmap_vmas(struct mmu_gather **tlb, struct mm_struct *mm, | 693 | unsigned long unmap_vmas(struct mmu_gather **tlb, |
686 | struct vm_area_struct *start_vma, unsigned long start_addr, | 694 | struct vm_area_struct *start_vma, unsigned long start_addr, |
687 | unsigned long end_addr, unsigned long *nr_accounted, | 695 | unsigned long end_addr, unsigned long *nr_accounted, |
688 | struct zap_details *); | 696 | struct zap_details *); |
@@ -704,10 +712,6 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping, | |||
704 | } | 712 | } |
705 | 713 | ||
706 | extern int vmtruncate(struct inode * inode, loff_t offset); | 714 | extern int vmtruncate(struct inode * inode, loff_t offset); |
707 | extern pud_t *FASTCALL(__pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)); | ||
708 | extern pmd_t *FASTCALL(__pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)); | ||
709 | extern pte_t *FASTCALL(pte_alloc_kernel(struct mm_struct *mm, pmd_t *pmd, unsigned long address)); | ||
710 | extern pte_t *FASTCALL(pte_alloc_map(struct mm_struct *mm, pmd_t *pmd, unsigned long address)); | ||
711 | extern int install_page(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, struct page *page, pgprot_t prot); | 715 | extern int install_page(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, struct page *page, pgprot_t prot); |
712 | extern int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, unsigned long pgoff, pgprot_t prot); | 716 | extern int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, unsigned long pgoff, pgprot_t prot); |
713 | extern int __handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access); | 717 | extern int __handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access); |
@@ -723,6 +727,7 @@ void install_arg_page(struct vm_area_struct *, struct page *, unsigned long); | |||
723 | 727 | ||
724 | int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long start, | 728 | int get_user_pages(struct task_struct *tsk, struct mm_struct *mm, unsigned long start, |
725 | int len, int write, int force, struct page **pages, struct vm_area_struct **vmas); | 729 | int len, int write, int force, struct page **pages, struct vm_area_struct **vmas); |
730 | void print_bad_pte(struct vm_area_struct *, pte_t, unsigned long); | ||
726 | 731 | ||
727 | int __set_page_dirty_buffers(struct page *page); | 732 | int __set_page_dirty_buffers(struct page *page); |
728 | int __set_page_dirty_nobuffers(struct page *page); | 733 | int __set_page_dirty_nobuffers(struct page *page); |
@@ -747,7 +752,7 @@ extern unsigned long do_mremap(unsigned long addr, | |||
747 | * The callback will be passed nr_to_scan == 0 when the VM is querying the | 752 | * The callback will be passed nr_to_scan == 0 when the VM is querying the |
748 | * cache size, so a fastpath for that case is appropriate. | 753 | * cache size, so a fastpath for that case is appropriate. |
749 | */ | 754 | */ |
750 | typedef int (*shrinker_t)(int nr_to_scan, unsigned int gfp_mask); | 755 | typedef int (*shrinker_t)(int nr_to_scan, gfp_t gfp_mask); |
751 | 756 | ||
752 | /* | 757 | /* |
753 | * Add an aging callback. The int is the number of 'seeks' it takes | 758 | * Add an aging callback. The int is the number of 'seeks' it takes |
@@ -759,38 +764,83 @@ struct shrinker; | |||
759 | extern struct shrinker *set_shrinker(int, shrinker_t); | 764 | extern struct shrinker *set_shrinker(int, shrinker_t); |
760 | extern void remove_shrinker(struct shrinker *shrinker); | 765 | extern void remove_shrinker(struct shrinker *shrinker); |
761 | 766 | ||
762 | /* | 767 | int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address); |
763 | * On a two-level or three-level page table, this ends up being trivial. Thus | 768 | int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address); |
764 | * the inlining and the symmetry break with pte_alloc_map() that does all | 769 | int __pte_alloc(struct mm_struct *mm, pmd_t *pmd, unsigned long address); |
765 | * of this out-of-line. | 770 | int __pte_alloc_kernel(pmd_t *pmd, unsigned long address); |
766 | */ | 771 | |
767 | /* | 772 | /* |
768 | * The following ifdef needed to get the 4level-fixup.h header to work. | 773 | * The following ifdef needed to get the 4level-fixup.h header to work. |
769 | * Remove it when 4level-fixup.h has been removed. | 774 | * Remove it when 4level-fixup.h has been removed. |
770 | */ | 775 | */ |
771 | #ifdef CONFIG_MMU | 776 | #if defined(CONFIG_MMU) && !defined(__ARCH_HAS_4LEVEL_HACK) |
772 | #ifndef __ARCH_HAS_4LEVEL_HACK | ||
773 | static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) | 777 | static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) |
774 | { | 778 | { |
775 | if (pgd_none(*pgd)) | 779 | return (unlikely(pgd_none(*pgd)) && __pud_alloc(mm, pgd, address))? |
776 | return __pud_alloc(mm, pgd, address); | 780 | NULL: pud_offset(pgd, address); |
777 | return pud_offset(pgd, address); | ||
778 | } | 781 | } |
779 | 782 | ||
780 | static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) | 783 | static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) |
781 | { | 784 | { |
782 | if (pud_none(*pud)) | 785 | return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))? |
783 | return __pmd_alloc(mm, pud, address); | 786 | NULL: pmd_offset(pud, address); |
784 | return pmd_offset(pud, address); | ||
785 | } | 787 | } |
786 | #endif | 788 | #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */ |
787 | #endif /* CONFIG_MMU */ | 789 | |
790 | #if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS | ||
791 | /* | ||
792 | * We tuck a spinlock to guard each pagetable page into its struct page, | ||
793 | * at page->private, with BUILD_BUG_ON to make sure that this will not | ||
794 | * overflow into the next struct page (as it might with DEBUG_SPINLOCK). | ||
795 | * When freeing, reset page->mapping so free_pages_check won't complain. | ||
796 | */ | ||
797 | #define __pte_lockptr(page) &((page)->u.ptl) | ||
798 | #define pte_lock_init(_page) do { \ | ||
799 | spin_lock_init(__pte_lockptr(_page)); \ | ||
800 | } while (0) | ||
801 | #define pte_lock_deinit(page) ((page)->mapping = NULL) | ||
802 | #define pte_lockptr(mm, pmd) ({(void)(mm); __pte_lockptr(pmd_page(*(pmd)));}) | ||
803 | #else | ||
804 | /* | ||
805 | * We use mm->page_table_lock to guard all pagetable pages of the mm. | ||
806 | */ | ||
807 | #define pte_lock_init(page) do {} while (0) | ||
808 | #define pte_lock_deinit(page) do {} while (0) | ||
809 | #define pte_lockptr(mm, pmd) ({(void)(pmd); &(mm)->page_table_lock;}) | ||
810 | #endif /* NR_CPUS < CONFIG_SPLIT_PTLOCK_CPUS */ | ||
811 | |||
812 | #define pte_offset_map_lock(mm, pmd, address, ptlp) \ | ||
813 | ({ \ | ||
814 | spinlock_t *__ptl = pte_lockptr(mm, pmd); \ | ||
815 | pte_t *__pte = pte_offset_map(pmd, address); \ | ||
816 | *(ptlp) = __ptl; \ | ||
817 | spin_lock(__ptl); \ | ||
818 | __pte; \ | ||
819 | }) | ||
820 | |||
821 | #define pte_unmap_unlock(pte, ptl) do { \ | ||
822 | spin_unlock(ptl); \ | ||
823 | pte_unmap(pte); \ | ||
824 | } while (0) | ||
825 | |||
826 | #define pte_alloc_map(mm, pmd, address) \ | ||
827 | ((unlikely(!pmd_present(*(pmd))) && __pte_alloc(mm, pmd, address))? \ | ||
828 | NULL: pte_offset_map(pmd, address)) | ||
829 | |||
830 | #define pte_alloc_map_lock(mm, pmd, address, ptlp) \ | ||
831 | ((unlikely(!pmd_present(*(pmd))) && __pte_alloc(mm, pmd, address))? \ | ||
832 | NULL: pte_offset_map_lock(mm, pmd, address, ptlp)) | ||
833 | |||
834 | #define pte_alloc_kernel(pmd, address) \ | ||
835 | ((unlikely(!pmd_present(*(pmd))) && __pte_alloc_kernel(pmd, address))? \ | ||
836 | NULL: pte_offset_kernel(pmd, address)) | ||
788 | 837 | ||
789 | extern void free_area_init(unsigned long * zones_size); | 838 | extern void free_area_init(unsigned long * zones_size); |
790 | extern void free_area_init_node(int nid, pg_data_t *pgdat, | 839 | extern void free_area_init_node(int nid, pg_data_t *pgdat, |
791 | unsigned long * zones_size, unsigned long zone_start_pfn, | 840 | unsigned long * zones_size, unsigned long zone_start_pfn, |
792 | unsigned long *zholes_size); | 841 | unsigned long *zholes_size); |
793 | extern void memmap_init_zone(unsigned long, int, unsigned long, unsigned long); | 842 | extern void memmap_init_zone(unsigned long, int, unsigned long, unsigned long); |
843 | extern void setup_per_zone_pages_min(void); | ||
794 | extern void mem_init(void); | 844 | extern void mem_init(void); |
795 | extern void show_mem(void); | 845 | extern void show_mem(void); |
796 | extern void si_meminfo(struct sysinfo * val); | 846 | extern void si_meminfo(struct sysinfo * val); |
@@ -834,6 +884,7 @@ extern int split_vma(struct mm_struct *, | |||
834 | extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); | 884 | extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); |
835 | extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *, | 885 | extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *, |
836 | struct rb_node **, struct rb_node *); | 886 | struct rb_node **, struct rb_node *); |
887 | extern void unlink_file_vma(struct vm_area_struct *); | ||
837 | extern struct vm_area_struct *copy_vma(struct vm_area_struct **, | 888 | extern struct vm_area_struct *copy_vma(struct vm_area_struct **, |
838 | unsigned long addr, unsigned long len, pgoff_t pgoff); | 889 | unsigned long addr, unsigned long len, pgoff_t pgoff); |
839 | extern void exit_mmap(struct mm_struct *); | 890 | extern void exit_mmap(struct mm_struct *); |
@@ -894,7 +945,8 @@ void handle_ra_miss(struct address_space *mapping, | |||
894 | unsigned long max_sane_readahead(unsigned long nr); | 945 | unsigned long max_sane_readahead(unsigned long nr); |
895 | 946 | ||
896 | /* Do stack extension */ | 947 | /* Do stack extension */ |
897 | extern int expand_stack(struct vm_area_struct * vma, unsigned long address); | 948 | extern int expand_stack(struct vm_area_struct *vma, unsigned long address); |
949 | extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); | ||
898 | 950 | ||
899 | /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ | 951 | /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ |
900 | extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); | 952 | extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); |
@@ -917,40 +969,28 @@ static inline unsigned long vma_pages(struct vm_area_struct *vma) | |||
917 | return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; | 969 | return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; |
918 | } | 970 | } |
919 | 971 | ||
920 | extern struct vm_area_struct *find_extend_vma(struct mm_struct *mm, unsigned long addr); | 972 | struct vm_area_struct *find_extend_vma(struct mm_struct *, unsigned long addr); |
973 | struct page *vmalloc_to_page(void *addr); | ||
974 | unsigned long vmalloc_to_pfn(void *addr); | ||
975 | int remap_pfn_range(struct vm_area_struct *, unsigned long addr, | ||
976 | unsigned long pfn, unsigned long size, pgprot_t); | ||
921 | 977 | ||
922 | extern struct page * vmalloc_to_page(void *addr); | 978 | struct page *follow_page(struct mm_struct *, unsigned long address, |
923 | extern unsigned long vmalloc_to_pfn(void *addr); | 979 | unsigned int foll_flags); |
924 | extern struct page * follow_page(struct mm_struct *mm, unsigned long address, | 980 | #define FOLL_WRITE 0x01 /* check pte is writable */ |
925 | int write); | 981 | #define FOLL_TOUCH 0x02 /* mark page accessed */ |
926 | extern int check_user_page_readable(struct mm_struct *mm, unsigned long address); | 982 | #define FOLL_GET 0x04 /* do get_page on page */ |
927 | int remap_pfn_range(struct vm_area_struct *, unsigned long, | 983 | #define FOLL_ANON 0x08 /* give ZERO_PAGE if no pgtable */ |
928 | unsigned long, unsigned long, pgprot_t); | ||
929 | 984 | ||
930 | #ifdef CONFIG_PROC_FS | 985 | #ifdef CONFIG_PROC_FS |
931 | void __vm_stat_account(struct mm_struct *, unsigned long, struct file *, long); | 986 | void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long); |
932 | #else | 987 | #else |
933 | static inline void __vm_stat_account(struct mm_struct *mm, | 988 | static inline void vm_stat_account(struct mm_struct *mm, |
934 | unsigned long flags, struct file *file, long pages) | 989 | unsigned long flags, struct file *file, long pages) |
935 | { | 990 | { |
936 | } | 991 | } |
937 | #endif /* CONFIG_PROC_FS */ | 992 | #endif /* CONFIG_PROC_FS */ |
938 | 993 | ||
939 | static inline void vm_stat_account(struct vm_area_struct *vma) | ||
940 | { | ||
941 | __vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file, | ||
942 | vma_pages(vma)); | ||
943 | } | ||
944 | |||
945 | static inline void vm_stat_unaccount(struct vm_area_struct *vma) | ||
946 | { | ||
947 | __vm_stat_account(vma->vm_mm, vma->vm_flags, vma->vm_file, | ||
948 | -vma_pages(vma)); | ||
949 | } | ||
950 | |||
951 | /* update per process rss and vm hiwater data */ | ||
952 | extern void update_mem_hiwater(struct task_struct *tsk); | ||
953 | |||
954 | #ifndef CONFIG_DEBUG_PAGEALLOC | 994 | #ifndef CONFIG_DEBUG_PAGEALLOC |
955 | static inline void | 995 | static inline void |
956 | kernel_map_pages(struct page *page, int numpages, int enable) | 996 | kernel_map_pages(struct page *page, int numpages, int enable) |
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index 1ab78e8d6c53..aef6042f8f0b 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h | |||
@@ -50,7 +50,7 @@ struct mmc_command { | |||
50 | #define MMC_ERR_INVALID 5 | 50 | #define MMC_ERR_INVALID 5 |
51 | 51 | ||
52 | struct mmc_data *data; /* data segment associated with cmd */ | 52 | struct mmc_data *data; /* data segment associated with cmd */ |
53 | struct mmc_request *mrq; /* assoicated request */ | 53 | struct mmc_request *mrq; /* associated request */ |
54 | }; | 54 | }; |
55 | 55 | ||
56 | struct mmc_data { | 56 | struct mmc_data { |
@@ -68,7 +68,7 @@ struct mmc_data { | |||
68 | unsigned int bytes_xfered; | 68 | unsigned int bytes_xfered; |
69 | 69 | ||
70 | struct mmc_command *stop; /* stop command */ | 70 | struct mmc_command *stop; /* stop command */ |
71 | struct mmc_request *mrq; /* assoicated request */ | 71 | struct mmc_request *mrq; /* associated request */ |
72 | 72 | ||
73 | unsigned int sg_len; /* size of scatter list */ | 73 | unsigned int sg_len; /* size of scatter list */ |
74 | struct scatterlist *sg; /* I/O scatter list */ | 74 | struct scatterlist *sg; /* I/O scatter list */ |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 5ed471b58f4f..f5fa3082fd6a 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/threads.h> | 12 | #include <linux/threads.h> |
13 | #include <linux/numa.h> | 13 | #include <linux/numa.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/seqlock.h> | ||
15 | #include <asm/atomic.h> | 16 | #include <asm/atomic.h> |
16 | 17 | ||
17 | /* Free memory management - zoned buddy allocator. */ | 18 | /* Free memory management - zoned buddy allocator. */ |
@@ -137,6 +138,10 @@ struct zone { | |||
137 | * free areas of different sizes | 138 | * free areas of different sizes |
138 | */ | 139 | */ |
139 | spinlock_t lock; | 140 | spinlock_t lock; |
141 | #ifdef CONFIG_MEMORY_HOTPLUG | ||
142 | /* see spanned/present_pages for more description */ | ||
143 | seqlock_t span_seqlock; | ||
144 | #endif | ||
140 | struct free_area free_area[MAX_ORDER]; | 145 | struct free_area free_area[MAX_ORDER]; |
141 | 146 | ||
142 | 147 | ||
@@ -220,6 +225,16 @@ struct zone { | |||
220 | /* zone_start_pfn == zone_start_paddr >> PAGE_SHIFT */ | 225 | /* zone_start_pfn == zone_start_paddr >> PAGE_SHIFT */ |
221 | unsigned long zone_start_pfn; | 226 | unsigned long zone_start_pfn; |
222 | 227 | ||
228 | /* | ||
229 | * zone_start_pfn, spanned_pages and present_pages are all | ||
230 | * protected by span_seqlock. It is a seqlock because it has | ||
231 | * to be read outside of zone->lock, and it is done in the main | ||
232 | * allocator path. But, it is written quite infrequently. | ||
233 | * | ||
234 | * The lock is declared along with zone->lock because it is | ||
235 | * frequently read in proximity to zone->lock. It's good to | ||
236 | * give them a chance of being in the same cacheline. | ||
237 | */ | ||
223 | unsigned long spanned_pages; /* total size, including holes */ | 238 | unsigned long spanned_pages; /* total size, including holes */ |
224 | unsigned long present_pages; /* amount of memory (excluding holes) */ | 239 | unsigned long present_pages; /* amount of memory (excluding holes) */ |
225 | 240 | ||
@@ -273,6 +288,16 @@ typedef struct pglist_data { | |||
273 | struct page *node_mem_map; | 288 | struct page *node_mem_map; |
274 | #endif | 289 | #endif |
275 | struct bootmem_data *bdata; | 290 | struct bootmem_data *bdata; |
291 | #ifdef CONFIG_MEMORY_HOTPLUG | ||
292 | /* | ||
293 | * Must be held any time you expect node_start_pfn, node_present_pages | ||
294 | * or node_spanned_pages stay constant. Holding this will also | ||
295 | * guarantee that any pfn_valid() stays that way. | ||
296 | * | ||
297 | * Nests above zone->lock and zone->size_seqlock. | ||
298 | */ | ||
299 | spinlock_t node_size_lock; | ||
300 | #endif | ||
276 | unsigned long node_start_pfn; | 301 | unsigned long node_start_pfn; |
277 | unsigned long node_present_pages; /* total number of physical pages */ | 302 | unsigned long node_present_pages; /* total number of physical pages */ |
278 | unsigned long node_spanned_pages; /* total size of physical page | 303 | unsigned long node_spanned_pages; /* total size of physical page |
@@ -293,6 +318,8 @@ typedef struct pglist_data { | |||
293 | #endif | 318 | #endif |
294 | #define nid_page_nr(nid, pagenr) pgdat_page_nr(NODE_DATA(nid),(pagenr)) | 319 | #define nid_page_nr(nid, pagenr) pgdat_page_nr(NODE_DATA(nid),(pagenr)) |
295 | 320 | ||
321 | #include <linux/memory_hotplug.h> | ||
322 | |||
296 | extern struct pglist_data *pgdat_list; | 323 | extern struct pglist_data *pgdat_list; |
297 | 324 | ||
298 | void __get_zone_counts(unsigned long *active, unsigned long *inactive, | 325 | void __get_zone_counts(unsigned long *active, unsigned long *inactive, |
@@ -302,7 +329,7 @@ void get_zone_counts(unsigned long *active, unsigned long *inactive, | |||
302 | void build_all_zonelists(void); | 329 | void build_all_zonelists(void); |
303 | void wakeup_kswapd(struct zone *zone, int order); | 330 | void wakeup_kswapd(struct zone *zone, int order); |
304 | int zone_watermark_ok(struct zone *z, int order, unsigned long mark, | 331 | int zone_watermark_ok(struct zone *z, int order, unsigned long mark, |
305 | int alloc_type, int can_try_harder, int gfp_high); | 332 | int alloc_type, int can_try_harder, gfp_t gfp_high); |
306 | 333 | ||
307 | #ifdef CONFIG_HAVE_MEMORY_PRESENT | 334 | #ifdef CONFIG_HAVE_MEMORY_PRESENT |
308 | void memory_present(int nid, unsigned long start, unsigned long end); | 335 | void memory_present(int nid, unsigned long start, unsigned long end); |
@@ -509,6 +536,7 @@ static inline struct mem_section *__nr_to_section(unsigned long nr) | |||
509 | return NULL; | 536 | return NULL; |
510 | return &mem_section[SECTION_NR_TO_ROOT(nr)][nr & SECTION_ROOT_MASK]; | 537 | return &mem_section[SECTION_NR_TO_ROOT(nr)][nr & SECTION_ROOT_MASK]; |
511 | } | 538 | } |
539 | extern int __section_nr(struct mem_section* ms); | ||
512 | 540 | ||
513 | /* | 541 | /* |
514 | * We use the lower bits of the mem_map pointer to store | 542 | * We use the lower bits of the mem_map pointer to store |
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 2f0299a448f6..7b08c11ec4cc 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h | |||
@@ -244,4 +244,9 @@ struct pcmcia_device_id { | |||
244 | #define PCMCIA_DEV_ID_MATCH_FAKE_CIS 0x0200 | 244 | #define PCMCIA_DEV_ID_MATCH_FAKE_CIS 0x0200 |
245 | #define PCMCIA_DEV_ID_MATCH_ANONYMOUS 0x0400 | 245 | #define PCMCIA_DEV_ID_MATCH_ANONYMOUS 0x0400 |
246 | 246 | ||
247 | /* I2C */ | ||
248 | struct i2c_device_id { | ||
249 | __u16 id; | ||
250 | }; | ||
251 | |||
247 | #endif /* LINUX_MOD_DEVICETABLE_H */ | 252 | #endif /* LINUX_MOD_DEVICETABLE_H */ |
diff --git a/include/linux/module.h b/include/linux/module.h index f05372b7fe77..84d75f3a8aca 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
@@ -554,7 +554,9 @@ static inline void MODULE_PARM_(void) { } | |||
554 | #ifdef MODULE | 554 | #ifdef MODULE |
555 | /* DEPRECATED: Do not use. */ | 555 | /* DEPRECATED: Do not use. */ |
556 | #define MODULE_PARM(var,type) \ | 556 | #define MODULE_PARM(var,type) \ |
557 | struct obsolete_modparm __parm_##var __attribute__((section("__obsparm"))) = \ | 557 | extern struct obsolete_modparm __parm_##var \ |
558 | __attribute__((section("__obsparm"))); \ | ||
559 | struct obsolete_modparm __parm_##var = \ | ||
558 | { __stringify(var), type, &MODULE_PARM_ }; \ | 560 | { __stringify(var), type, &MODULE_PARM_ }; \ |
559 | __MODULE_PARM_TYPE(var, type); | 561 | __MODULE_PARM_TYPE(var, type); |
560 | #else | 562 | #else |
diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h index 9a3d27257984..941da5c016a0 100644 --- a/include/linux/msdos_fs.h +++ b/include/linux/msdos_fs.h | |||
@@ -282,6 +282,17 @@ static inline u8 fat_attr(struct inode *inode) | |||
282 | MSDOS_I(inode)->i_attrs; | 282 | MSDOS_I(inode)->i_attrs; |
283 | } | 283 | } |
284 | 284 | ||
285 | static inline unsigned char fat_checksum(const __u8 *name) | ||
286 | { | ||
287 | unsigned char s = name[0]; | ||
288 | s = (s<<7) + (s>>1) + name[1]; s = (s<<7) + (s>>1) + name[2]; | ||
289 | s = (s<<7) + (s>>1) + name[3]; s = (s<<7) + (s>>1) + name[4]; | ||
290 | s = (s<<7) + (s>>1) + name[5]; s = (s<<7) + (s>>1) + name[6]; | ||
291 | s = (s<<7) + (s>>1) + name[7]; s = (s<<7) + (s>>1) + name[8]; | ||
292 | s = (s<<7) + (s>>1) + name[9]; s = (s<<7) + (s>>1) + name[10]; | ||
293 | return s; | ||
294 | } | ||
295 | |||
285 | static inline sector_t fat_clus_to_blknr(struct msdos_sb_info *sbi, int clus) | 296 | static inline sector_t fat_clus_to_blknr(struct msdos_sb_info *sbi, int clus) |
286 | { | 297 | { |
287 | return ((sector_t)clus - FAT_START_ENT) * sbi->sec_per_clus | 298 | return ((sector_t)clus - FAT_START_ENT) * sbi->sec_per_clus |
diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h index 142963f01d29..fc28841f3409 100644 --- a/include/linux/mtd/map.h +++ b/include/linux/mtd/map.h | |||
@@ -8,7 +8,10 @@ | |||
8 | #include <linux/config.h> | 8 | #include <linux/config.h> |
9 | #include <linux/types.h> | 9 | #include <linux/types.h> |
10 | #include <linux/list.h> | 10 | #include <linux/list.h> |
11 | #include <linux/string.h> | ||
12 | |||
11 | #include <linux/mtd/compatmac.h> | 13 | #include <linux/mtd/compatmac.h> |
14 | |||
12 | #include <asm/unaligned.h> | 15 | #include <asm/unaligned.h> |
13 | #include <asm/system.h> | 16 | #include <asm/system.h> |
14 | #include <asm/io.h> | 17 | #include <asm/io.h> |
diff --git a/include/linux/namei.h b/include/linux/namei.h index 7db67b008cac..1c975d0d9e94 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h | |||
@@ -8,6 +8,7 @@ struct vfsmount; | |||
8 | struct open_intent { | 8 | struct open_intent { |
9 | int flags; | 9 | int flags; |
10 | int create_mode; | 10 | int create_mode; |
11 | struct file *file; | ||
11 | }; | 12 | }; |
12 | 13 | ||
13 | enum { MAX_NESTED_LINKS = 5 }; | 14 | enum { MAX_NESTED_LINKS = 5 }; |
@@ -65,6 +66,13 @@ extern int FASTCALL(link_path_walk(const char *, struct nameidata *)); | |||
65 | extern void path_release(struct nameidata *); | 66 | extern void path_release(struct nameidata *); |
66 | extern void path_release_on_umount(struct nameidata *); | 67 | extern void path_release_on_umount(struct nameidata *); |
67 | 68 | ||
69 | extern int __user_path_lookup_open(const char __user *, unsigned lookup_flags, struct nameidata *nd, int open_flags); | ||
70 | extern int path_lookup_open(const char *, unsigned lookup_flags, struct nameidata *, int open_flags); | ||
71 | extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry, | ||
72 | int (*open)(struct inode *, struct file *)); | ||
73 | extern struct file *nameidata_to_filp(struct nameidata *nd, int flags); | ||
74 | extern void release_open_intent(struct nameidata *); | ||
75 | |||
68 | extern struct dentry * lookup_one_len(const char *, struct dentry *, int); | 76 | extern struct dentry * lookup_one_len(const char *, struct dentry *, int); |
69 | extern struct dentry * lookup_hash(struct qstr *, struct dentry *); | 77 | extern struct dentry * lookup_hash(struct qstr *, struct dentry *); |
70 | 78 | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 368e4c825ff1..c6efce4a04a4 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -308,6 +308,7 @@ struct net_device | |||
308 | #define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */ | 308 | #define NETIF_F_VLAN_CHALLENGED 1024 /* Device cannot handle VLAN packets */ |
309 | #define NETIF_F_TSO 2048 /* Can offload TCP/IP segmentation */ | 309 | #define NETIF_F_TSO 2048 /* Can offload TCP/IP segmentation */ |
310 | #define NETIF_F_LLTX 4096 /* LockLess TX */ | 310 | #define NETIF_F_LLTX 4096 /* LockLess TX */ |
311 | #define NETIF_F_UFO 8192 /* Can offload UDP Large Send*/ | ||
311 | 312 | ||
312 | struct net_device *next_sched; | 313 | struct net_device *next_sched; |
313 | 314 | ||
@@ -873,11 +874,9 @@ static inline void netif_rx_complete(struct net_device *dev) | |||
873 | 874 | ||
874 | static inline void netif_poll_disable(struct net_device *dev) | 875 | static inline void netif_poll_disable(struct net_device *dev) |
875 | { | 876 | { |
876 | while (test_and_set_bit(__LINK_STATE_RX_SCHED, &dev->state)) { | 877 | while (test_and_set_bit(__LINK_STATE_RX_SCHED, &dev->state)) |
877 | /* No hurry. */ | 878 | /* No hurry. */ |
878 | current->state = TASK_INTERRUPTIBLE; | 879 | schedule_timeout_interruptible(1); |
879 | schedule_timeout(1); | ||
880 | } | ||
881 | } | 880 | } |
882 | 881 | ||
883 | static inline void netif_poll_enable(struct net_device *dev) | 882 | static inline void netif_poll_enable(struct net_device *dev) |
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 9a6047ff1b25..325fe7ae49bb 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
@@ -41,6 +41,10 @@ | |||
41 | #define NFS_MAX_FILE_IO_BUFFER_SIZE 32768 | 41 | #define NFS_MAX_FILE_IO_BUFFER_SIZE 32768 |
42 | #define NFS_DEF_FILE_IO_BUFFER_SIZE 4096 | 42 | #define NFS_DEF_FILE_IO_BUFFER_SIZE 4096 |
43 | 43 | ||
44 | /* Default timeout values */ | ||
45 | #define NFS_MAX_UDP_TIMEOUT (60*HZ) | ||
46 | #define NFS_MAX_TCP_TIMEOUT (600*HZ) | ||
47 | |||
44 | /* | 48 | /* |
45 | * superblock magic number for NFS | 49 | * superblock magic number for NFS |
46 | */ | 50 | */ |
@@ -137,6 +141,7 @@ struct nfs_inode { | |||
137 | unsigned long attrtimeo_timestamp; | 141 | unsigned long attrtimeo_timestamp; |
138 | __u64 change_attr; /* v4 only */ | 142 | __u64 change_attr; /* v4 only */ |
139 | 143 | ||
144 | unsigned long last_updated; | ||
140 | /* "Generation counter" for the attribute cache. This is | 145 | /* "Generation counter" for the attribute cache. This is |
141 | * bumped whenever we update the metadata on the | 146 | * bumped whenever we update the metadata on the |
142 | * server. | 147 | * server. |
@@ -236,13 +241,17 @@ static inline int nfs_caches_unstable(struct inode *inode) | |||
236 | return atomic_read(&NFS_I(inode)->data_updates) != 0; | 241 | return atomic_read(&NFS_I(inode)->data_updates) != 0; |
237 | } | 242 | } |
238 | 243 | ||
244 | static inline void nfs_mark_for_revalidate(struct inode *inode) | ||
245 | { | ||
246 | spin_lock(&inode->i_lock); | ||
247 | NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS; | ||
248 | spin_unlock(&inode->i_lock); | ||
249 | } | ||
250 | |||
239 | static inline void NFS_CACHEINV(struct inode *inode) | 251 | static inline void NFS_CACHEINV(struct inode *inode) |
240 | { | 252 | { |
241 | if (!nfs_caches_unstable(inode)) { | 253 | if (!nfs_caches_unstable(inode)) |
242 | spin_lock(&inode->i_lock); | 254 | nfs_mark_for_revalidate(inode); |
243 | NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS; | ||
244 | spin_unlock(&inode->i_lock); | ||
245 | } | ||
246 | } | 255 | } |
247 | 256 | ||
248 | static inline int nfs_server_capable(struct inode *inode, int cap) | 257 | static inline int nfs_server_capable(struct inode *inode, int cap) |
@@ -276,7 +285,7 @@ static inline long nfs_save_change_attribute(struct inode *inode) | |||
276 | static inline int nfs_verify_change_attribute(struct inode *inode, unsigned long chattr) | 285 | static inline int nfs_verify_change_attribute(struct inode *inode, unsigned long chattr) |
277 | { | 286 | { |
278 | return !nfs_caches_unstable(inode) | 287 | return !nfs_caches_unstable(inode) |
279 | && chattr == NFS_I(inode)->cache_change_attribute; | 288 | && time_after_eq(chattr, NFS_I(inode)->cache_change_attribute); |
280 | } | 289 | } |
281 | 290 | ||
282 | /* | 291 | /* |
@@ -286,6 +295,7 @@ extern void nfs_zap_caches(struct inode *); | |||
286 | extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *, | 295 | extern struct inode *nfs_fhget(struct super_block *, struct nfs_fh *, |
287 | struct nfs_fattr *); | 296 | struct nfs_fattr *); |
288 | extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *); | 297 | extern int nfs_refresh_inode(struct inode *, struct nfs_fattr *); |
298 | extern int nfs_post_op_update_inode(struct inode *inode, struct nfs_fattr *fattr); | ||
289 | extern int nfs_getattr(struct vfsmount *, struct dentry *, struct kstat *); | 299 | extern int nfs_getattr(struct vfsmount *, struct dentry *, struct kstat *); |
290 | extern int nfs_permission(struct inode *, int, struct nameidata *); | 300 | extern int nfs_permission(struct inode *, int, struct nameidata *); |
291 | extern int nfs_access_get_cached(struct inode *, struct rpc_cred *, struct nfs_access_entry *); | 301 | extern int nfs_access_get_cached(struct inode *, struct rpc_cred *, struct nfs_access_entry *); |
@@ -312,6 +322,12 @@ extern void nfs_file_clear_open_context(struct file *filp); | |||
312 | /* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */ | 322 | /* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */ |
313 | extern u32 root_nfs_parse_addr(char *name); /*__init*/ | 323 | extern u32 root_nfs_parse_addr(char *name); /*__init*/ |
314 | 324 | ||
325 | static inline void nfs_fattr_init(struct nfs_fattr *fattr) | ||
326 | { | ||
327 | fattr->valid = 0; | ||
328 | fattr->time_start = jiffies; | ||
329 | } | ||
330 | |||
315 | /* | 331 | /* |
316 | * linux/fs/nfs/file.c | 332 | * linux/fs/nfs/file.c |
317 | */ | 333 | */ |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index a2bf6914ff1b..40718669b9c8 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -41,7 +41,7 @@ struct nfs_fattr { | |||
41 | __u32 bitmap[2]; /* NFSv4 returned attribute bitmap */ | 41 | __u32 bitmap[2]; /* NFSv4 returned attribute bitmap */ |
42 | __u64 change_attr; /* NFSv4 change attribute */ | 42 | __u64 change_attr; /* NFSv4 change attribute */ |
43 | __u64 pre_change_attr;/* pre-op NFSv4 change attribute */ | 43 | __u64 pre_change_attr;/* pre-op NFSv4 change attribute */ |
44 | unsigned long timestamp; | 44 | unsigned long time_start; |
45 | }; | 45 | }; |
46 | 46 | ||
47 | #define NFS_ATTR_WCC 0x0001 /* pre-op WCC data */ | 47 | #define NFS_ATTR_WCC 0x0001 /* pre-op WCC data */ |
@@ -96,12 +96,13 @@ struct nfs4_change_info { | |||
96 | u64 after; | 96 | u64 after; |
97 | }; | 97 | }; |
98 | 98 | ||
99 | struct nfs_seqid; | ||
99 | /* | 100 | /* |
100 | * Arguments to the open call. | 101 | * Arguments to the open call. |
101 | */ | 102 | */ |
102 | struct nfs_openargs { | 103 | struct nfs_openargs { |
103 | const struct nfs_fh * fh; | 104 | const struct nfs_fh * fh; |
104 | __u32 seqid; | 105 | struct nfs_seqid * seqid; |
105 | int open_flags; | 106 | int open_flags; |
106 | __u64 clientid; | 107 | __u64 clientid; |
107 | __u32 id; | 108 | __u32 id; |
@@ -123,6 +124,7 @@ struct nfs_openres { | |||
123 | struct nfs4_change_info cinfo; | 124 | struct nfs4_change_info cinfo; |
124 | __u32 rflags; | 125 | __u32 rflags; |
125 | struct nfs_fattr * f_attr; | 126 | struct nfs_fattr * f_attr; |
127 | struct nfs_fattr * dir_attr; | ||
126 | const struct nfs_server *server; | 128 | const struct nfs_server *server; |
127 | int delegation_type; | 129 | int delegation_type; |
128 | nfs4_stateid delegation; | 130 | nfs4_stateid delegation; |
@@ -136,7 +138,7 @@ struct nfs_openres { | |||
136 | struct nfs_open_confirmargs { | 138 | struct nfs_open_confirmargs { |
137 | const struct nfs_fh * fh; | 139 | const struct nfs_fh * fh; |
138 | nfs4_stateid stateid; | 140 | nfs4_stateid stateid; |
139 | __u32 seqid; | 141 | struct nfs_seqid * seqid; |
140 | }; | 142 | }; |
141 | 143 | ||
142 | struct nfs_open_confirmres { | 144 | struct nfs_open_confirmres { |
@@ -148,13 +150,16 @@ struct nfs_open_confirmres { | |||
148 | */ | 150 | */ |
149 | struct nfs_closeargs { | 151 | struct nfs_closeargs { |
150 | struct nfs_fh * fh; | 152 | struct nfs_fh * fh; |
151 | nfs4_stateid stateid; | 153 | nfs4_stateid * stateid; |
152 | __u32 seqid; | 154 | struct nfs_seqid * seqid; |
153 | int open_flags; | 155 | int open_flags; |
156 | const u32 * bitmask; | ||
154 | }; | 157 | }; |
155 | 158 | ||
156 | struct nfs_closeres { | 159 | struct nfs_closeres { |
157 | nfs4_stateid stateid; | 160 | nfs4_stateid stateid; |
161 | struct nfs_fattr * fattr; | ||
162 | const struct nfs_server *server; | ||
158 | }; | 163 | }; |
159 | /* | 164 | /* |
160 | * * Arguments to the lock,lockt, and locku call. | 165 | * * Arguments to the lock,lockt, and locku call. |
@@ -164,30 +169,19 @@ struct nfs_lowner { | |||
164 | u32 id; | 169 | u32 id; |
165 | }; | 170 | }; |
166 | 171 | ||
167 | struct nfs_open_to_lock { | ||
168 | __u32 open_seqid; | ||
169 | nfs4_stateid open_stateid; | ||
170 | __u32 lock_seqid; | ||
171 | struct nfs_lowner lock_owner; | ||
172 | }; | ||
173 | |||
174 | struct nfs_exist_lock { | ||
175 | nfs4_stateid stateid; | ||
176 | __u32 seqid; | ||
177 | }; | ||
178 | |||
179 | struct nfs_lock_opargs { | 172 | struct nfs_lock_opargs { |
173 | struct nfs_seqid * lock_seqid; | ||
174 | nfs4_stateid * lock_stateid; | ||
175 | struct nfs_seqid * open_seqid; | ||
176 | nfs4_stateid * open_stateid; | ||
177 | struct nfs_lowner lock_owner; | ||
180 | __u32 reclaim; | 178 | __u32 reclaim; |
181 | __u32 new_lock_owner; | 179 | __u32 new_lock_owner; |
182 | union { | ||
183 | struct nfs_open_to_lock *open_lock; | ||
184 | struct nfs_exist_lock *exist_lock; | ||
185 | } u; | ||
186 | }; | 180 | }; |
187 | 181 | ||
188 | struct nfs_locku_opargs { | 182 | struct nfs_locku_opargs { |
189 | __u32 seqid; | 183 | struct nfs_seqid * seqid; |
190 | nfs4_stateid stateid; | 184 | nfs4_stateid * stateid; |
191 | }; | 185 | }; |
192 | 186 | ||
193 | struct nfs_lockargs { | 187 | struct nfs_lockargs { |
@@ -262,6 +256,7 @@ struct nfs_writeargs { | |||
262 | enum nfs3_stable_how stable; | 256 | enum nfs3_stable_how stable; |
263 | unsigned int pgbase; | 257 | unsigned int pgbase; |
264 | struct page ** pages; | 258 | struct page ** pages; |
259 | const u32 * bitmask; | ||
265 | }; | 260 | }; |
266 | 261 | ||
267 | struct nfs_writeverf { | 262 | struct nfs_writeverf { |
@@ -273,6 +268,7 @@ struct nfs_writeres { | |||
273 | struct nfs_fattr * fattr; | 268 | struct nfs_fattr * fattr; |
274 | struct nfs_writeverf * verf; | 269 | struct nfs_writeverf * verf; |
275 | __u32 count; | 270 | __u32 count; |
271 | const struct nfs_server *server; | ||
276 | }; | 272 | }; |
277 | 273 | ||
278 | /* | 274 | /* |
@@ -550,6 +546,7 @@ struct nfs4_create_res { | |||
550 | struct nfs_fh * fh; | 546 | struct nfs_fh * fh; |
551 | struct nfs_fattr * fattr; | 547 | struct nfs_fattr * fattr; |
552 | struct nfs4_change_info dir_cinfo; | 548 | struct nfs4_change_info dir_cinfo; |
549 | struct nfs_fattr * dir_fattr; | ||
553 | }; | 550 | }; |
554 | 551 | ||
555 | struct nfs4_fsinfo_arg { | 552 | struct nfs4_fsinfo_arg { |
@@ -571,8 +568,17 @@ struct nfs4_link_arg { | |||
571 | const struct nfs_fh * fh; | 568 | const struct nfs_fh * fh; |
572 | const struct nfs_fh * dir_fh; | 569 | const struct nfs_fh * dir_fh; |
573 | const struct qstr * name; | 570 | const struct qstr * name; |
571 | const u32 * bitmask; | ||
572 | }; | ||
573 | |||
574 | struct nfs4_link_res { | ||
575 | const struct nfs_server * server; | ||
576 | struct nfs_fattr * fattr; | ||
577 | struct nfs4_change_info cinfo; | ||
578 | struct nfs_fattr * dir_attr; | ||
574 | }; | 579 | }; |
575 | 580 | ||
581 | |||
576 | struct nfs4_lookup_arg { | 582 | struct nfs4_lookup_arg { |
577 | const struct nfs_fh * dir_fh; | 583 | const struct nfs_fh * dir_fh; |
578 | const struct qstr * name; | 584 | const struct qstr * name; |
@@ -619,6 +625,13 @@ struct nfs4_readlink { | |||
619 | struct nfs4_remove_arg { | 625 | struct nfs4_remove_arg { |
620 | const struct nfs_fh * fh; | 626 | const struct nfs_fh * fh; |
621 | const struct qstr * name; | 627 | const struct qstr * name; |
628 | const u32 * bitmask; | ||
629 | }; | ||
630 | |||
631 | struct nfs4_remove_res { | ||
632 | const struct nfs_server * server; | ||
633 | struct nfs4_change_info cinfo; | ||
634 | struct nfs_fattr * dir_attr; | ||
622 | }; | 635 | }; |
623 | 636 | ||
624 | struct nfs4_rename_arg { | 637 | struct nfs4_rename_arg { |
@@ -626,11 +639,15 @@ struct nfs4_rename_arg { | |||
626 | const struct nfs_fh * new_dir; | 639 | const struct nfs_fh * new_dir; |
627 | const struct qstr * old_name; | 640 | const struct qstr * old_name; |
628 | const struct qstr * new_name; | 641 | const struct qstr * new_name; |
642 | const u32 * bitmask; | ||
629 | }; | 643 | }; |
630 | 644 | ||
631 | struct nfs4_rename_res { | 645 | struct nfs4_rename_res { |
646 | const struct nfs_server * server; | ||
632 | struct nfs4_change_info old_cinfo; | 647 | struct nfs4_change_info old_cinfo; |
648 | struct nfs_fattr * old_fattr; | ||
633 | struct nfs4_change_info new_cinfo; | 649 | struct nfs4_change_info new_cinfo; |
650 | struct nfs_fattr * new_fattr; | ||
634 | }; | 651 | }; |
635 | 652 | ||
636 | struct nfs4_setclientid { | 653 | struct nfs4_setclientid { |
@@ -722,7 +739,7 @@ struct nfs_rpc_ops { | |||
722 | int (*write) (struct nfs_write_data *); | 739 | int (*write) (struct nfs_write_data *); |
723 | int (*commit) (struct nfs_write_data *); | 740 | int (*commit) (struct nfs_write_data *); |
724 | int (*create) (struct inode *, struct dentry *, | 741 | int (*create) (struct inode *, struct dentry *, |
725 | struct iattr *, int); | 742 | struct iattr *, int, struct nameidata *); |
726 | int (*remove) (struct inode *, struct qstr *); | 743 | int (*remove) (struct inode *, struct qstr *); |
727 | int (*unlink_setup) (struct rpc_message *, | 744 | int (*unlink_setup) (struct rpc_message *, |
728 | struct dentry *, struct qstr *); | 745 | struct dentry *, struct qstr *); |
diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h index e96fe9062500..4726ef7ba8e8 100644 --- a/include/linux/nodemask.h +++ b/include/linux/nodemask.h | |||
@@ -12,6 +12,8 @@ | |||
12 | * see bitmap_scnprintf() and bitmap_parse() in lib/bitmap.c. | 12 | * see bitmap_scnprintf() and bitmap_parse() in lib/bitmap.c. |
13 | * For details of nodelist_scnprintf() and nodelist_parse(), see | 13 | * For details of nodelist_scnprintf() and nodelist_parse(), see |
14 | * bitmap_scnlistprintf() and bitmap_parselist(), also in bitmap.c. | 14 | * bitmap_scnlistprintf() and bitmap_parselist(), also in bitmap.c. |
15 | * For details of node_remap(), see bitmap_bitremap in lib/bitmap.c. | ||
16 | * For details of nodes_remap(), see bitmap_remap in lib/bitmap.c. | ||
15 | * | 17 | * |
16 | * The available nodemask operations are: | 18 | * The available nodemask operations are: |
17 | * | 19 | * |
@@ -52,6 +54,8 @@ | |||
52 | * int nodemask_parse(ubuf, ulen, mask) Parse ascii string as nodemask | 54 | * int nodemask_parse(ubuf, ulen, mask) Parse ascii string as nodemask |
53 | * int nodelist_scnprintf(buf, len, mask) Format nodemask as list for printing | 55 | * int nodelist_scnprintf(buf, len, mask) Format nodemask as list for printing |
54 | * int nodelist_parse(buf, map) Parse ascii string as nodelist | 56 | * int nodelist_parse(buf, map) Parse ascii string as nodelist |
57 | * int node_remap(oldbit, old, new) newbit = map(old, new)(oldbit) | ||
58 | * int nodes_remap(dst, src, old, new) *dst = map(old, new)(dst) | ||
55 | * | 59 | * |
56 | * for_each_node_mask(node, mask) for-loop node over mask | 60 | * for_each_node_mask(node, mask) for-loop node over mask |
57 | * | 61 | * |
@@ -307,6 +311,22 @@ static inline int __nodelist_parse(const char *buf, nodemask_t *dstp, int nbits) | |||
307 | return bitmap_parselist(buf, dstp->bits, nbits); | 311 | return bitmap_parselist(buf, dstp->bits, nbits); |
308 | } | 312 | } |
309 | 313 | ||
314 | #define node_remap(oldbit, old, new) \ | ||
315 | __node_remap((oldbit), &(old), &(new), MAX_NUMNODES) | ||
316 | static inline int __node_remap(int oldbit, | ||
317 | const nodemask_t *oldp, const nodemask_t *newp, int nbits) | ||
318 | { | ||
319 | return bitmap_bitremap(oldbit, oldp->bits, newp->bits, nbits); | ||
320 | } | ||
321 | |||
322 | #define nodes_remap(dst, src, old, new) \ | ||
323 | __nodes_remap(&(dst), &(src), &(old), &(new), MAX_NUMNODES) | ||
324 | static inline void __nodes_remap(nodemask_t *dstp, const nodemask_t *srcp, | ||
325 | const nodemask_t *oldp, const nodemask_t *newp, int nbits) | ||
326 | { | ||
327 | bitmap_remap(dstp->bits, srcp->bits, oldp->bits, newp->bits, nbits); | ||
328 | } | ||
329 | |||
310 | #if MAX_NUMNODES > 1 | 330 | #if MAX_NUMNODES > 1 |
311 | #define for_each_node_mask(node, mask) \ | 331 | #define for_each_node_mask(node, mask) \ |
312 | for ((node) = first_node(mask); \ | 332 | for ((node) = first_node(mask); \ |
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index acbf31c154f8..ba6c310a055f 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
@@ -21,16 +21,17 @@ | |||
21 | 21 | ||
22 | static inline gfp_t mapping_gfp_mask(struct address_space * mapping) | 22 | static inline gfp_t mapping_gfp_mask(struct address_space * mapping) |
23 | { | 23 | { |
24 | return mapping->flags & __GFP_BITS_MASK; | 24 | return (__force gfp_t)mapping->flags & __GFP_BITS_MASK; |
25 | } | 25 | } |
26 | 26 | ||
27 | /* | 27 | /* |
28 | * This is non-atomic. Only to be used before the mapping is activated. | 28 | * This is non-atomic. Only to be used before the mapping is activated. |
29 | * Probably needs a barrier... | 29 | * Probably needs a barrier... |
30 | */ | 30 | */ |
31 | static inline void mapping_set_gfp_mask(struct address_space *m, int mask) | 31 | static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask) |
32 | { | 32 | { |
33 | m->flags = (m->flags & ~__GFP_BITS_MASK) | mask; | 33 | m->flags = (m->flags & ~(__force unsigned long)__GFP_BITS_MASK) | |
34 | (__force unsigned long)mask; | ||
34 | } | 35 | } |
35 | 36 | ||
36 | /* | 37 | /* |
@@ -69,7 +70,7 @@ extern struct page * find_lock_page(struct address_space *mapping, | |||
69 | extern struct page * find_trylock_page(struct address_space *mapping, | 70 | extern struct page * find_trylock_page(struct address_space *mapping, |
70 | unsigned long index); | 71 | unsigned long index); |
71 | extern struct page * find_or_create_page(struct address_space *mapping, | 72 | extern struct page * find_or_create_page(struct address_space *mapping, |
72 | unsigned long index, unsigned int gfp_mask); | 73 | unsigned long index, gfp_t gfp_mask); |
73 | unsigned find_get_pages(struct address_space *mapping, pgoff_t start, | 74 | unsigned find_get_pages(struct address_space *mapping, pgoff_t start, |
74 | unsigned int nr_pages, struct page **pages); | 75 | unsigned int nr_pages, struct page **pages); |
75 | unsigned find_get_pages_tag(struct address_space *mapping, pgoff_t *index, | 76 | unsigned find_get_pages_tag(struct address_space *mapping, pgoff_t *index, |
@@ -92,9 +93,9 @@ extern int read_cache_pages(struct address_space *mapping, | |||
92 | struct list_head *pages, filler_t *filler, void *data); | 93 | struct list_head *pages, filler_t *filler, void *data); |
93 | 94 | ||
94 | int add_to_page_cache(struct page *page, struct address_space *mapping, | 95 | int add_to_page_cache(struct page *page, struct address_space *mapping, |
95 | unsigned long index, int gfp_mask); | 96 | unsigned long index, gfp_t gfp_mask); |
96 | int add_to_page_cache_lru(struct page *page, struct address_space *mapping, | 97 | int add_to_page_cache_lru(struct page *page, struct address_space *mapping, |
97 | unsigned long index, int gfp_mask); | 98 | unsigned long index, gfp_t gfp_mask); |
98 | extern void remove_from_page_cache(struct page *page); | 99 | extern void remove_from_page_cache(struct page *page); |
99 | extern void __remove_from_page_cache(struct page *page); | 100 | extern void __remove_from_page_cache(struct page *page); |
100 | 101 | ||
diff --git a/include/linux/pci.h b/include/linux/pci.h index 7349058ed778..3596ac94ecff 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -132,6 +132,7 @@ struct pci_dev { | |||
132 | unsigned int is_enabled:1; /* pci_enable_device has been called */ | 132 | unsigned int is_enabled:1; /* pci_enable_device has been called */ |
133 | unsigned int is_busmaster:1; /* device is busmaster */ | 133 | unsigned int is_busmaster:1; /* device is busmaster */ |
134 | unsigned int no_msi:1; /* device may not use msi */ | 134 | unsigned int no_msi:1; /* device may not use msi */ |
135 | unsigned int block_ucfg_access:1; /* userspace config space access is blocked */ | ||
135 | 136 | ||
136 | u32 saved_config_space[16]; /* config space saved at suspend time */ | 137 | u32 saved_config_space[16]; /* config space saved at suspend time */ |
137 | struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */ | 138 | struct bin_attribute *rom_attr; /* attribute descriptor for sysfs ROM entry */ |
@@ -490,6 +491,9 @@ extern void pci_disable_msix(struct pci_dev *dev); | |||
490 | extern void msi_remove_pci_irq_vectors(struct pci_dev *dev); | 491 | extern void msi_remove_pci_irq_vectors(struct pci_dev *dev); |
491 | #endif | 492 | #endif |
492 | 493 | ||
494 | extern void pci_block_user_cfg_access(struct pci_dev *dev); | ||
495 | extern void pci_unblock_user_cfg_access(struct pci_dev *dev); | ||
496 | |||
493 | /* | 497 | /* |
494 | * PCI domain support. Sometimes called PCI segment (eg by ACPI), | 498 | * PCI domain support. Sometimes called PCI segment (eg by ACPI), |
495 | * a PCI domain is defined to be a set of PCI busses which share | 499 | * a PCI domain is defined to be a set of PCI busses which share |
@@ -560,6 +564,9 @@ static inline int pci_enable_wake(struct pci_dev *dev, pci_power_t state, int en | |||
560 | 564 | ||
561 | #define pci_dma_burst_advice(pdev, strat, strategy_parameter) do { } while (0) | 565 | #define pci_dma_burst_advice(pdev, strat, strategy_parameter) do { } while (0) |
562 | 566 | ||
567 | static inline void pci_block_user_cfg_access(struct pci_dev *dev) { } | ||
568 | static inline void pci_unblock_user_cfg_access(struct pci_dev *dev) { } | ||
569 | |||
563 | #endif /* CONFIG_PCI */ | 570 | #endif /* CONFIG_PCI */ |
564 | 571 | ||
565 | /* Include architecture-dependent settings and functions */ | 572 | /* Include architecture-dependent settings and functions */ |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index f74ed9462475..56192005fa4d 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -96,6 +96,9 @@ | |||
96 | #define PCI_CLASS_SERIAL_ACCESS 0x0c01 | 96 | #define PCI_CLASS_SERIAL_ACCESS 0x0c01 |
97 | #define PCI_CLASS_SERIAL_SSA 0x0c02 | 97 | #define PCI_CLASS_SERIAL_SSA 0x0c02 |
98 | #define PCI_CLASS_SERIAL_USB 0x0c03 | 98 | #define PCI_CLASS_SERIAL_USB 0x0c03 |
99 | #define PCI_CLASS_SERIAL_USB_UHCI 0x0c0300 | ||
100 | #define PCI_CLASS_SERIAL_USB_OHCI 0x0c0310 | ||
101 | #define PCI_CLASS_SERIAL_USB_EHCI 0x0c0320 | ||
99 | #define PCI_CLASS_SERIAL_FIBER 0x0c04 | 102 | #define PCI_CLASS_SERIAL_FIBER 0x0c04 |
100 | #define PCI_CLASS_SERIAL_SMBUS 0x0c05 | 103 | #define PCI_CLASS_SERIAL_SMBUS 0x0c05 |
101 | 104 | ||
@@ -132,9 +135,6 @@ | |||
132 | 135 | ||
133 | #define PCI_VENDOR_ID_COMPAQ 0x0e11 | 136 | #define PCI_VENDOR_ID_COMPAQ 0x0e11 |
134 | #define PCI_DEVICE_ID_COMPAQ_TOKENRING 0x0508 | 137 | #define PCI_DEVICE_ID_COMPAQ_TOKENRING 0x0508 |
135 | #define PCI_DEVICE_ID_COMPAQ_1280 0x3033 | ||
136 | #define PCI_DEVICE_ID_COMPAQ_TRIFLEX 0x4000 | ||
137 | #define PCI_DEVICE_ID_COMPAQ_6010 0x6010 | ||
138 | #define PCI_DEVICE_ID_COMPAQ_TACHYON 0xa0fc | 138 | #define PCI_DEVICE_ID_COMPAQ_TACHYON 0xa0fc |
139 | #define PCI_DEVICE_ID_COMPAQ_SMART2P 0xae10 | 139 | #define PCI_DEVICE_ID_COMPAQ_SMART2P 0xae10 |
140 | #define PCI_DEVICE_ID_COMPAQ_NETEL100 0xae32 | 140 | #define PCI_DEVICE_ID_COMPAQ_NETEL100 0xae32 |
@@ -274,7 +274,6 @@ | |||
274 | #define PCI_DEVICE_ID_ATI_RAGE128_PP 0x5050 | 274 | #define PCI_DEVICE_ID_ATI_RAGE128_PP 0x5050 |
275 | #define PCI_DEVICE_ID_ATI_RAGE128_PQ 0x5051 | 275 | #define PCI_DEVICE_ID_ATI_RAGE128_PQ 0x5051 |
276 | #define PCI_DEVICE_ID_ATI_RAGE128_PR 0x5052 | 276 | #define PCI_DEVICE_ID_ATI_RAGE128_PR 0x5052 |
277 | #define PCI_DEVICE_ID_ATI_RAGE128_TR 0x5452 | ||
278 | #define PCI_DEVICE_ID_ATI_RAGE128_PS 0x5053 | 277 | #define PCI_DEVICE_ID_ATI_RAGE128_PS 0x5053 |
279 | #define PCI_DEVICE_ID_ATI_RAGE128_PT 0x5054 | 278 | #define PCI_DEVICE_ID_ATI_RAGE128_PT 0x5054 |
280 | #define PCI_DEVICE_ID_ATI_RAGE128_PU 0x5055 | 279 | #define PCI_DEVICE_ID_ATI_RAGE128_PU 0x5055 |
@@ -282,8 +281,6 @@ | |||
282 | #define PCI_DEVICE_ID_ATI_RAGE128_PW 0x5057 | 281 | #define PCI_DEVICE_ID_ATI_RAGE128_PW 0x5057 |
283 | #define PCI_DEVICE_ID_ATI_RAGE128_PX 0x5058 | 282 | #define PCI_DEVICE_ID_ATI_RAGE128_PX 0x5058 |
284 | /* Rage128 M4 */ | 283 | /* Rage128 M4 */ |
285 | #define PCI_DEVICE_ID_ATI_RADEON_LE 0x4d45 | ||
286 | #define PCI_DEVICE_ID_ATI_RADEON_LF 0x4d46 | ||
287 | /* Radeon R100 */ | 284 | /* Radeon R100 */ |
288 | #define PCI_DEVICE_ID_ATI_RADEON_QD 0x5144 | 285 | #define PCI_DEVICE_ID_ATI_RADEON_QD 0x5144 |
289 | #define PCI_DEVICE_ID_ATI_RADEON_QE 0x5145 | 286 | #define PCI_DEVICE_ID_ATI_RADEON_QE 0x5145 |
@@ -304,32 +301,22 @@ | |||
304 | #define PCI_DEVICE_ID_ATI_RADEON_QW 0x5157 | 301 | #define PCI_DEVICE_ID_ATI_RADEON_QW 0x5157 |
305 | #define PCI_DEVICE_ID_ATI_RADEON_QX 0x5158 | 302 | #define PCI_DEVICE_ID_ATI_RADEON_QX 0x5158 |
306 | /* Radeon NV-100 */ | 303 | /* Radeon NV-100 */ |
307 | #define PCI_DEVICE_ID_ATI_RADEON_N1 0x5159 | ||
308 | #define PCI_DEVICE_ID_ATI_RADEON_N2 0x515a | ||
309 | /* Radeon RV250 (9000) */ | 304 | /* Radeon RV250 (9000) */ |
310 | #define PCI_DEVICE_ID_ATI_RADEON_Id 0x4964 | 305 | #define PCI_DEVICE_ID_ATI_RADEON_Id 0x4964 |
311 | #define PCI_DEVICE_ID_ATI_RADEON_Ie 0x4965 | 306 | #define PCI_DEVICE_ID_ATI_RADEON_Ie 0x4965 |
312 | #define PCI_DEVICE_ID_ATI_RADEON_If 0x4966 | 307 | #define PCI_DEVICE_ID_ATI_RADEON_If 0x4966 |
313 | #define PCI_DEVICE_ID_ATI_RADEON_Ig 0x4967 | 308 | #define PCI_DEVICE_ID_ATI_RADEON_Ig 0x4967 |
314 | /* Radeon RV280 (9200) */ | 309 | /* Radeon RV280 (9200) */ |
315 | #define PCI_DEVICE_ID_ATI_RADEON_Y_ 0x5960 | ||
316 | #define PCI_DEVICE_ID_ATI_RADEON_Ya 0x5961 | 310 | #define PCI_DEVICE_ID_ATI_RADEON_Ya 0x5961 |
317 | #define PCI_DEVICE_ID_ATI_RADEON_Yd 0x5964 | 311 | #define PCI_DEVICE_ID_ATI_RADEON_Yd 0x5964 |
318 | /* Radeon R300 (9500) */ | 312 | /* Radeon R300 (9500) */ |
319 | #define PCI_DEVICE_ID_ATI_RADEON_AD 0x4144 | ||
320 | /* Radeon R300 (9700) */ | 313 | /* Radeon R300 (9700) */ |
321 | #define PCI_DEVICE_ID_ATI_RADEON_ND 0x4e44 | 314 | #define PCI_DEVICE_ID_ATI_RADEON_ND 0x4e44 |
322 | #define PCI_DEVICE_ID_ATI_RADEON_NE 0x4e45 | 315 | #define PCI_DEVICE_ID_ATI_RADEON_NE 0x4e45 |
323 | #define PCI_DEVICE_ID_ATI_RADEON_NF 0x4e46 | 316 | #define PCI_DEVICE_ID_ATI_RADEON_NF 0x4e46 |
324 | #define PCI_DEVICE_ID_ATI_RADEON_NG 0x4e47 | 317 | #define PCI_DEVICE_ID_ATI_RADEON_NG 0x4e47 |
325 | #define PCI_DEVICE_ID_ATI_RADEON_AE 0x4145 | ||
326 | #define PCI_DEVICE_ID_ATI_RADEON_AF 0x4146 | ||
327 | /* Radeon R350 (9800) */ | 318 | /* Radeon R350 (9800) */ |
328 | #define PCI_DEVICE_ID_ATI_RADEON_NH 0x4e48 | ||
329 | #define PCI_DEVICE_ID_ATI_RADEON_NI 0x4e49 | ||
330 | /* Radeon RV350 (9600) */ | 319 | /* Radeon RV350 (9600) */ |
331 | #define PCI_DEVICE_ID_ATI_RADEON_AP 0x4150 | ||
332 | #define PCI_DEVICE_ID_ATI_RADEON_AR 0x4152 | ||
333 | /* Radeon M6 */ | 320 | /* Radeon M6 */ |
334 | #define PCI_DEVICE_ID_ATI_RADEON_LY 0x4c59 | 321 | #define PCI_DEVICE_ID_ATI_RADEON_LY 0x4c59 |
335 | #define PCI_DEVICE_ID_ATI_RADEON_LZ 0x4c5a | 322 | #define PCI_DEVICE_ID_ATI_RADEON_LZ 0x4c5a |
@@ -342,10 +329,6 @@ | |||
342 | #define PCI_DEVICE_ID_ATI_RADEON_Lf 0x4c66 | 329 | #define PCI_DEVICE_ID_ATI_RADEON_Lf 0x4c66 |
343 | #define PCI_DEVICE_ID_ATI_RADEON_Lg 0x4c67 | 330 | #define PCI_DEVICE_ID_ATI_RADEON_Lg 0x4c67 |
344 | /* Radeon */ | 331 | /* Radeon */ |
345 | #define PCI_DEVICE_ID_ATI_RADEON_RA 0x5144 | ||
346 | #define PCI_DEVICE_ID_ATI_RADEON_RB 0x5145 | ||
347 | #define PCI_DEVICE_ID_ATI_RADEON_RC 0x5146 | ||
348 | #define PCI_DEVICE_ID_ATI_RADEON_RD 0x5147 | ||
349 | /* RadeonIGP */ | 332 | /* RadeonIGP */ |
350 | #define PCI_DEVICE_ID_ATI_RS100 0xcab0 | 333 | #define PCI_DEVICE_ID_ATI_RS100 0xcab0 |
351 | #define PCI_DEVICE_ID_ATI_RS200 0xcab2 | 334 | #define PCI_DEVICE_ID_ATI_RS200 0xcab2 |
@@ -446,45 +429,28 @@ | |||
446 | #define PCI_DEVICE_ID_CIRRUS_5465 0x00d6 | 429 | #define PCI_DEVICE_ID_CIRRUS_5465 0x00d6 |
447 | #define PCI_DEVICE_ID_CIRRUS_6729 0x1100 | 430 | #define PCI_DEVICE_ID_CIRRUS_6729 0x1100 |
448 | #define PCI_DEVICE_ID_CIRRUS_6832 0x1110 | 431 | #define PCI_DEVICE_ID_CIRRUS_6832 0x1110 |
449 | #define PCI_DEVICE_ID_CIRRUS_7542 0x1200 | ||
450 | #define PCI_DEVICE_ID_CIRRUS_7543 0x1202 | 432 | #define PCI_DEVICE_ID_CIRRUS_7543 0x1202 |
451 | #define PCI_DEVICE_ID_CIRRUS_7541 0x1204 | ||
452 | #define PCI_DEVICE_ID_CIRRUS_4610 0x6001 | 433 | #define PCI_DEVICE_ID_CIRRUS_4610 0x6001 |
453 | #define PCI_DEVICE_ID_CIRRUS_4612 0x6003 | 434 | #define PCI_DEVICE_ID_CIRRUS_4612 0x6003 |
454 | #define PCI_DEVICE_ID_CIRRUS_4615 0x6004 | 435 | #define PCI_DEVICE_ID_CIRRUS_4615 0x6004 |
455 | #define PCI_DEVICE_ID_CIRRUS_4281 0x6005 | ||
456 | 436 | ||
457 | #define PCI_VENDOR_ID_IBM 0x1014 | 437 | #define PCI_VENDOR_ID_IBM 0x1014 |
458 | #define PCI_DEVICE_ID_IBM_FIRE_CORAL 0x000a | ||
459 | #define PCI_DEVICE_ID_IBM_TR 0x0018 | 438 | #define PCI_DEVICE_ID_IBM_TR 0x0018 |
460 | #define PCI_DEVICE_ID_IBM_82G2675 0x001d | ||
461 | #define PCI_DEVICE_ID_IBM_MCA 0x0020 | ||
462 | #define PCI_DEVICE_ID_IBM_82351 0x0022 | ||
463 | #define PCI_DEVICE_ID_IBM_PYTHON 0x002d | ||
464 | #define PCI_DEVICE_ID_IBM_SERVERAID 0x002e | ||
465 | #define PCI_DEVICE_ID_IBM_TR_WAKE 0x003e | 439 | #define PCI_DEVICE_ID_IBM_TR_WAKE 0x003e |
466 | #define PCI_DEVICE_ID_IBM_MPIC 0x0046 | ||
467 | #define PCI_DEVICE_ID_IBM_3780IDSP 0x007d | ||
468 | #define PCI_DEVICE_ID_IBM_CHUKAR 0x0096 | ||
469 | #define PCI_DEVICE_ID_IBM_CPC710_PCI64 0x00fc | 440 | #define PCI_DEVICE_ID_IBM_CPC710_PCI64 0x00fc |
470 | #define PCI_DEVICE_ID_IBM_CPC710_PCI32 0x0105 | ||
471 | #define PCI_DEVICE_ID_IBM_405GP 0x0156 | ||
472 | #define PCI_DEVICE_ID_IBM_SNIPE 0x0180 | 441 | #define PCI_DEVICE_ID_IBM_SNIPE 0x0180 |
473 | #define PCI_DEVICE_ID_IBM_SERVERAIDI960 0x01bd | ||
474 | #define PCI_DEVICE_ID_IBM_CITRINE 0x028C | 442 | #define PCI_DEVICE_ID_IBM_CITRINE 0x028C |
475 | #define PCI_DEVICE_ID_IBM_GEMSTONE 0xB166 | 443 | #define PCI_DEVICE_ID_IBM_GEMSTONE 0xB166 |
476 | #define PCI_DEVICE_ID_IBM_MPIC_2 0xffff | ||
477 | #define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_1 0x0031 | 444 | #define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_1 0x0031 |
478 | #define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2 0x0219 | 445 | #define PCI_DEVICE_ID_IBM_ICOM_DEV_ID_2 0x0219 |
479 | #define PCI_DEVICE_ID_IBM_ICOM_V2_TWO_PORTS_RVX 0x021A | 446 | #define PCI_DEVICE_ID_IBM_ICOM_V2_TWO_PORTS_RVX 0x021A |
480 | #define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM 0x0251 | 447 | #define PCI_DEVICE_ID_IBM_ICOM_V2_ONE_PORT_RVX_ONE_PORT_MDM 0x0251 |
481 | #define PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL 0x252 | 448 | #define PCI_DEVICE_ID_IBM_ICOM_FOUR_PORT_MODEL 0x252 |
482 | 449 | ||
483 | #define PCI_VENDOR_ID_COMPEX2 0x101a // pci.ids says "AT&T GIS (NCR)" | 450 | #define PCI_VENDOR_ID_COMPEX2 0x101a /* pci.ids says "AT&T GIS (NCR)" */ |
484 | #define PCI_DEVICE_ID_COMPEX2_100VG 0x0005 | 451 | #define PCI_DEVICE_ID_COMPEX2_100VG 0x0005 |
485 | 452 | ||
486 | #define PCI_VENDOR_ID_WD 0x101c | 453 | #define PCI_VENDOR_ID_WD 0x101c |
487 | #define PCI_DEVICE_ID_WD_7197 0x3296 | ||
488 | #define PCI_DEVICE_ID_WD_90C 0xc24a | 454 | #define PCI_DEVICE_ID_WD_90C 0xc24a |
489 | 455 | ||
490 | #define PCI_VENDOR_ID_AMI 0x101e | 456 | #define PCI_VENDOR_ID_AMI 0x101e |
@@ -501,33 +467,18 @@ | |||
501 | #define PCI_DEVICE_ID_AMD_FE_GATE_7006 0x7006 | 467 | #define PCI_DEVICE_ID_AMD_FE_GATE_7006 0x7006 |
502 | #define PCI_DEVICE_ID_AMD_FE_GATE_7007 0x7007 | 468 | #define PCI_DEVICE_ID_AMD_FE_GATE_7007 0x7007 |
503 | #define PCI_DEVICE_ID_AMD_FE_GATE_700C 0x700C | 469 | #define PCI_DEVICE_ID_AMD_FE_GATE_700C 0x700C |
504 | #define PCI_DEVICE_ID_AMD_FE_GATE_700D 0x700D | ||
505 | #define PCI_DEVICE_ID_AMD_FE_GATE_700E 0x700E | 470 | #define PCI_DEVICE_ID_AMD_FE_GATE_700E 0x700E |
506 | #define PCI_DEVICE_ID_AMD_FE_GATE_700F 0x700F | ||
507 | #define PCI_DEVICE_ID_AMD_COBRA_7400 0x7400 | ||
508 | #define PCI_DEVICE_ID_AMD_COBRA_7401 0x7401 | 471 | #define PCI_DEVICE_ID_AMD_COBRA_7401 0x7401 |
509 | #define PCI_DEVICE_ID_AMD_COBRA_7403 0x7403 | ||
510 | #define PCI_DEVICE_ID_AMD_COBRA_7404 0x7404 | ||
511 | #define PCI_DEVICE_ID_AMD_VIPER_7408 0x7408 | ||
512 | #define PCI_DEVICE_ID_AMD_VIPER_7409 0x7409 | 472 | #define PCI_DEVICE_ID_AMD_VIPER_7409 0x7409 |
513 | #define PCI_DEVICE_ID_AMD_VIPER_740B 0x740B | 473 | #define PCI_DEVICE_ID_AMD_VIPER_740B 0x740B |
514 | #define PCI_DEVICE_ID_AMD_VIPER_740C 0x740C | ||
515 | #define PCI_DEVICE_ID_AMD_VIPER_7410 0x7410 | 474 | #define PCI_DEVICE_ID_AMD_VIPER_7410 0x7410 |
516 | #define PCI_DEVICE_ID_AMD_VIPER_7411 0x7411 | 475 | #define PCI_DEVICE_ID_AMD_VIPER_7411 0x7411 |
517 | #define PCI_DEVICE_ID_AMD_VIPER_7413 0x7413 | 476 | #define PCI_DEVICE_ID_AMD_VIPER_7413 0x7413 |
518 | #define PCI_DEVICE_ID_AMD_VIPER_7414 0x7414 | 477 | #define PCI_DEVICE_ID_AMD_VIPER_7440 0x7440 |
519 | #define PCI_DEVICE_ID_AMD_OPUS_7440 0x7440 | ||
520 | # define PCI_DEVICE_ID_AMD_VIPER_7440 PCI_DEVICE_ID_AMD_OPUS_7440 | ||
521 | #define PCI_DEVICE_ID_AMD_OPUS_7441 0x7441 | 478 | #define PCI_DEVICE_ID_AMD_OPUS_7441 0x7441 |
522 | # define PCI_DEVICE_ID_AMD_VIPER_7441 PCI_DEVICE_ID_AMD_OPUS_7441 | ||
523 | #define PCI_DEVICE_ID_AMD_OPUS_7443 0x7443 | 479 | #define PCI_DEVICE_ID_AMD_OPUS_7443 0x7443 |
524 | # define PCI_DEVICE_ID_AMD_VIPER_7443 PCI_DEVICE_ID_AMD_OPUS_7443 | 480 | #define PCI_DEVICE_ID_AMD_VIPER_7443 0x7443 |
525 | #define PCI_DEVICE_ID_AMD_OPUS_7445 0x7445 | 481 | #define PCI_DEVICE_ID_AMD_OPUS_7445 0x7445 |
526 | #define PCI_DEVICE_ID_AMD_OPUS_7448 0x7448 | ||
527 | # define PCI_DEVICE_ID_AMD_VIPER_7448 PCI_DEVICE_ID_AMD_OPUS_7448 | ||
528 | #define PCI_DEVICE_ID_AMD_OPUS_7449 0x7449 | ||
529 | # define PCI_DEVICE_ID_AMD_VIPER_7449 PCI_DEVICE_ID_AMD_OPUS_7449 | ||
530 | #define PCI_DEVICE_ID_AMD_8111_LAN 0x7462 | ||
531 | #define PCI_DEVICE_ID_AMD_8111_LPC 0x7468 | 482 | #define PCI_DEVICE_ID_AMD_8111_LPC 0x7468 |
532 | #define PCI_DEVICE_ID_AMD_8111_IDE 0x7469 | 483 | #define PCI_DEVICE_ID_AMD_8111_IDE 0x7469 |
533 | #define PCI_DEVICE_ID_AMD_8111_SMBUS2 0x746a | 484 | #define PCI_DEVICE_ID_AMD_8111_SMBUS2 0x746a |
@@ -585,7 +536,6 @@ | |||
585 | #define PCI_DEVICE_ID_CT_65550 0x00e0 | 536 | #define PCI_DEVICE_ID_CT_65550 0x00e0 |
586 | #define PCI_DEVICE_ID_CT_65554 0x00e4 | 537 | #define PCI_DEVICE_ID_CT_65554 0x00e4 |
587 | #define PCI_DEVICE_ID_CT_65555 0x00e5 | 538 | #define PCI_DEVICE_ID_CT_65555 0x00e5 |
588 | #define PCI_DEVICE_ID_CT_69000 0x00c0 | ||
589 | 539 | ||
590 | #define PCI_VENDOR_ID_MIRO 0x1031 | 540 | #define PCI_VENDOR_ID_MIRO 0x1031 |
591 | #define PCI_DEVICE_ID_MIRO_36050 0x5601 | 541 | #define PCI_DEVICE_ID_MIRO_36050 0x5601 |
@@ -639,7 +589,6 @@ | |||
639 | #define PCI_DEVICE_ID_SI_550 0x0550 | 589 | #define PCI_DEVICE_ID_SI_550 0x0550 |
640 | #define PCI_DEVICE_ID_SI_540_VGA 0x5300 | 590 | #define PCI_DEVICE_ID_SI_540_VGA 0x5300 |
641 | #define PCI_DEVICE_ID_SI_550_VGA 0x5315 | 591 | #define PCI_DEVICE_ID_SI_550_VGA 0x5315 |
642 | #define PCI_DEVICE_ID_SI_601 0x0601 | ||
643 | #define PCI_DEVICE_ID_SI_620 0x0620 | 592 | #define PCI_DEVICE_ID_SI_620 0x0620 |
644 | #define PCI_DEVICE_ID_SI_630 0x0630 | 593 | #define PCI_DEVICE_ID_SI_630 0x0630 |
645 | #define PCI_DEVICE_ID_SI_633 0x0633 | 594 | #define PCI_DEVICE_ID_SI_633 0x0633 |
@@ -650,30 +599,22 @@ | |||
650 | #define PCI_DEVICE_ID_SI_648 0x0648 | 599 | #define PCI_DEVICE_ID_SI_648 0x0648 |
651 | #define PCI_DEVICE_ID_SI_650 0x0650 | 600 | #define PCI_DEVICE_ID_SI_650 0x0650 |
652 | #define PCI_DEVICE_ID_SI_651 0x0651 | 601 | #define PCI_DEVICE_ID_SI_651 0x0651 |
653 | #define PCI_DEVICE_ID_SI_652 0x0652 | ||
654 | #define PCI_DEVICE_ID_SI_655 0x0655 | 602 | #define PCI_DEVICE_ID_SI_655 0x0655 |
655 | #define PCI_DEVICE_ID_SI_661 0x0661 | 603 | #define PCI_DEVICE_ID_SI_661 0x0661 |
656 | #define PCI_DEVICE_ID_SI_730 0x0730 | 604 | #define PCI_DEVICE_ID_SI_730 0x0730 |
657 | #define PCI_DEVICE_ID_SI_733 0x0733 | 605 | #define PCI_DEVICE_ID_SI_733 0x0733 |
658 | #define PCI_DEVICE_ID_SI_630_VGA 0x6300 | 606 | #define PCI_DEVICE_ID_SI_630_VGA 0x6300 |
659 | #define PCI_DEVICE_ID_SI_730_VGA 0x7300 | ||
660 | #define PCI_DEVICE_ID_SI_735 0x0735 | 607 | #define PCI_DEVICE_ID_SI_735 0x0735 |
661 | #define PCI_DEVICE_ID_SI_740 0x0740 | 608 | #define PCI_DEVICE_ID_SI_740 0x0740 |
662 | #define PCI_DEVICE_ID_SI_741 0x0741 | 609 | #define PCI_DEVICE_ID_SI_741 0x0741 |
663 | #define PCI_DEVICE_ID_SI_745 0x0745 | 610 | #define PCI_DEVICE_ID_SI_745 0x0745 |
664 | #define PCI_DEVICE_ID_SI_746 0x0746 | 611 | #define PCI_DEVICE_ID_SI_746 0x0746 |
665 | #define PCI_DEVICE_ID_SI_748 0x0748 | ||
666 | #define PCI_DEVICE_ID_SI_750 0x0750 | ||
667 | #define PCI_DEVICE_ID_SI_751 0x0751 | ||
668 | #define PCI_DEVICE_ID_SI_752 0x0752 | ||
669 | #define PCI_DEVICE_ID_SI_755 0x0755 | 612 | #define PCI_DEVICE_ID_SI_755 0x0755 |
670 | #define PCI_DEVICE_ID_SI_760 0x0760 | 613 | #define PCI_DEVICE_ID_SI_760 0x0760 |
671 | #define PCI_DEVICE_ID_SI_900 0x0900 | 614 | #define PCI_DEVICE_ID_SI_900 0x0900 |
672 | #define PCI_DEVICE_ID_SI_961 0x0961 | 615 | #define PCI_DEVICE_ID_SI_961 0x0961 |
673 | #define PCI_DEVICE_ID_SI_962 0x0962 | 616 | #define PCI_DEVICE_ID_SI_962 0x0962 |
674 | #define PCI_DEVICE_ID_SI_963 0x0963 | 617 | #define PCI_DEVICE_ID_SI_963 0x0963 |
675 | #define PCI_DEVICE_ID_SI_5107 0x5107 | ||
676 | #define PCI_DEVICE_ID_SI_5300 0x5300 | ||
677 | #define PCI_DEVICE_ID_SI_5511 0x5511 | 618 | #define PCI_DEVICE_ID_SI_5511 0x5511 |
678 | #define PCI_DEVICE_ID_SI_5513 0x5513 | 619 | #define PCI_DEVICE_ID_SI_5513 0x5513 |
679 | #define PCI_DEVICE_ID_SI_5518 0x5518 | 620 | #define PCI_DEVICE_ID_SI_5518 0x5518 |
@@ -685,10 +626,6 @@ | |||
685 | #define PCI_DEVICE_ID_SI_5597 0x5597 | 626 | #define PCI_DEVICE_ID_SI_5597 0x5597 |
686 | #define PCI_DEVICE_ID_SI_5598 0x5598 | 627 | #define PCI_DEVICE_ID_SI_5598 0x5598 |
687 | #define PCI_DEVICE_ID_SI_5600 0x5600 | 628 | #define PCI_DEVICE_ID_SI_5600 0x5600 |
688 | #define PCI_DEVICE_ID_SI_6300 0x6300 | ||
689 | #define PCI_DEVICE_ID_SI_6306 0x6306 | ||
690 | #define PCI_DEVICE_ID_SI_6326 0x6326 | ||
691 | #define PCI_DEVICE_ID_SI_7001 0x7001 | ||
692 | #define PCI_DEVICE_ID_SI_7012 0x7012 | 629 | #define PCI_DEVICE_ID_SI_7012 0x7012 |
693 | #define PCI_DEVICE_ID_SI_7013 0x7013 | 630 | #define PCI_DEVICE_ID_SI_7013 0x7013 |
694 | #define PCI_DEVICE_ID_SI_7016 0x7016 | 631 | #define PCI_DEVICE_ID_SI_7016 0x7016 |
@@ -709,23 +646,19 @@ | |||
709 | #define PCI_DEVICE_ID_HP_DIVA_TOSCA1 0x1049 | 646 | #define PCI_DEVICE_ID_HP_DIVA_TOSCA1 0x1049 |
710 | #define PCI_DEVICE_ID_HP_DIVA_TOSCA2 0x104A | 647 | #define PCI_DEVICE_ID_HP_DIVA_TOSCA2 0x104A |
711 | #define PCI_DEVICE_ID_HP_DIVA_MAESTRO 0x104B | 648 | #define PCI_DEVICE_ID_HP_DIVA_MAESTRO 0x104B |
712 | #define PCI_DEVICE_ID_HP_PCI_LBA 0x1054 | ||
713 | #define PCI_DEVICE_ID_HP_REO_SBA 0x10f0 | ||
714 | #define PCI_DEVICE_ID_HP_REO_IOC 0x10f1 | 649 | #define PCI_DEVICE_ID_HP_REO_IOC 0x10f1 |
715 | #define PCI_DEVICE_ID_HP_VISUALIZE_FXE 0x108b | 650 | #define PCI_DEVICE_ID_HP_VISUALIZE_FXE 0x108b |
716 | #define PCI_DEVICE_ID_HP_DIVA_HALFDOME 0x1223 | 651 | #define PCI_DEVICE_ID_HP_DIVA_HALFDOME 0x1223 |
717 | #define PCI_DEVICE_ID_HP_DIVA_KEYSTONE 0x1226 | 652 | #define PCI_DEVICE_ID_HP_DIVA_KEYSTONE 0x1226 |
718 | #define PCI_DEVICE_ID_HP_DIVA_POWERBAR 0x1227 | 653 | #define PCI_DEVICE_ID_HP_DIVA_POWERBAR 0x1227 |
719 | #define PCI_DEVICE_ID_HP_ZX1_SBA 0x1229 | ||
720 | #define PCI_DEVICE_ID_HP_ZX1_IOC 0x122a | 654 | #define PCI_DEVICE_ID_HP_ZX1_IOC 0x122a |
721 | #define PCI_DEVICE_ID_HP_PCIX_LBA 0x122e | 655 | #define PCI_DEVICE_ID_HP_PCIX_LBA 0x122e |
722 | #define PCI_DEVICE_ID_HP_SX1000_IOC 0x127c | 656 | #define PCI_DEVICE_ID_HP_SX1000_IOC 0x127c |
723 | #define PCI_DEVICE_ID_HP_DIVA_EVEREST 0x1282 | 657 | #define PCI_DEVICE_ID_HP_DIVA_EVEREST 0x1282 |
724 | #define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290 | 658 | #define PCI_DEVICE_ID_HP_DIVA_AUX 0x1290 |
725 | #define PCI_DEVICE_ID_HP_DIVA_RMP3 0x1301 | 659 | #define PCI_DEVICE_ID_HP_DIVA_RMP3 0x1301 |
726 | #define PCI_DEVICE_ID_HP_CISS 0x3210 | 660 | #define PCI_DEVICE_ID_HP_DIVA_HURRICANE 0x132a |
727 | #define PCI_DEVICE_ID_HP_CISSA 0x3220 | 661 | #define PCI_DEVICE_ID_HP_CISSA 0x3220 |
728 | #define PCI_DEVICE_ID_HP_CISSB 0x3222 | ||
729 | #define PCI_DEVICE_ID_HP_CISSC 0x3230 | 662 | #define PCI_DEVICE_ID_HP_CISSC 0x3230 |
730 | #define PCI_DEVICE_ID_HP_CISSD 0x3238 | 663 | #define PCI_DEVICE_ID_HP_CISSD 0x3238 |
731 | #define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031 | 664 | #define PCI_DEVICE_ID_HP_ZX2_IOC 0x4031 |
@@ -733,8 +666,6 @@ | |||
733 | #define PCI_VENDOR_ID_PCTECH 0x1042 | 666 | #define PCI_VENDOR_ID_PCTECH 0x1042 |
734 | #define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000 | 667 | #define PCI_DEVICE_ID_PCTECH_RZ1000 0x1000 |
735 | #define PCI_DEVICE_ID_PCTECH_RZ1001 0x1001 | 668 | #define PCI_DEVICE_ID_PCTECH_RZ1001 0x1001 |
736 | #define PCI_DEVICE_ID_PCTECH_SAMURAI_0 0x3000 | ||
737 | #define PCI_DEVICE_ID_PCTECH_SAMURAI_1 0x3010 | ||
738 | #define PCI_DEVICE_ID_PCTECH_SAMURAI_IDE 0x3020 | 669 | #define PCI_DEVICE_ID_PCTECH_SAMURAI_IDE 0x3020 |
739 | 670 | ||
740 | #define PCI_VENDOR_ID_ASUSTEK 0x1043 | 671 | #define PCI_VENDOR_ID_ASUSTEK 0x1043 |
@@ -744,24 +675,15 @@ | |||
744 | #define PCI_DEVICE_ID_DPT 0xa400 | 675 | #define PCI_DEVICE_ID_DPT 0xa400 |
745 | 676 | ||
746 | #define PCI_VENDOR_ID_OPTI 0x1045 | 677 | #define PCI_VENDOR_ID_OPTI 0x1045 |
747 | #define PCI_DEVICE_ID_OPTI_92C178 0xc178 | ||
748 | #define PCI_DEVICE_ID_OPTI_82C557 0xc557 | ||
749 | #define PCI_DEVICE_ID_OPTI_82C558 0xc558 | 678 | #define PCI_DEVICE_ID_OPTI_82C558 0xc558 |
750 | #define PCI_DEVICE_ID_OPTI_82C621 0xc621 | 679 | #define PCI_DEVICE_ID_OPTI_82C621 0xc621 |
751 | #define PCI_DEVICE_ID_OPTI_82C700 0xc700 | 680 | #define PCI_DEVICE_ID_OPTI_82C700 0xc700 |
752 | #define PCI_DEVICE_ID_OPTI_82C701 0xc701 | ||
753 | #define PCI_DEVICE_ID_OPTI_82C814 0xc814 | ||
754 | #define PCI_DEVICE_ID_OPTI_82C822 0xc822 | ||
755 | #define PCI_DEVICE_ID_OPTI_82C861 0xc861 | ||
756 | #define PCI_DEVICE_ID_OPTI_82C825 0xd568 | 681 | #define PCI_DEVICE_ID_OPTI_82C825 0xd568 |
757 | 682 | ||
758 | #define PCI_VENDOR_ID_ELSA 0x1048 | 683 | #define PCI_VENDOR_ID_ELSA 0x1048 |
759 | #define PCI_DEVICE_ID_ELSA_MICROLINK 0x1000 | 684 | #define PCI_DEVICE_ID_ELSA_MICROLINK 0x1000 |
760 | #define PCI_DEVICE_ID_ELSA_QS3000 0x3000 | 685 | #define PCI_DEVICE_ID_ELSA_QS3000 0x3000 |
761 | 686 | ||
762 | #define PCI_VENDOR_ID_SGS 0x104a | ||
763 | #define PCI_DEVICE_ID_SGS_2000 0x0008 | ||
764 | #define PCI_DEVICE_ID_SGS_1764 0x0009 | ||
765 | 687 | ||
766 | #define PCI_VENDOR_ID_BUSLOGIC 0x104B | 688 | #define PCI_VENDOR_ID_BUSLOGIC 0x104B |
767 | #define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC 0x0140 | 689 | #define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC 0x0140 |
@@ -769,7 +691,6 @@ | |||
769 | #define PCI_DEVICE_ID_BUSLOGIC_FLASHPOINT 0x8130 | 691 | #define PCI_DEVICE_ID_BUSLOGIC_FLASHPOINT 0x8130 |
770 | 692 | ||
771 | #define PCI_VENDOR_ID_TI 0x104c | 693 | #define PCI_VENDOR_ID_TI 0x104c |
772 | #define PCI_DEVICE_ID_TI_TVP4010 0x3d04 | ||
773 | #define PCI_DEVICE_ID_TI_TVP4020 0x3d07 | 694 | #define PCI_DEVICE_ID_TI_TVP4020 0x3d07 |
774 | #define PCI_DEVICE_ID_TI_4450 0x8011 | 695 | #define PCI_DEVICE_ID_TI_4450 0x8011 |
775 | #define PCI_DEVICE_ID_TI_XX21_XX11 0x8031 | 696 | #define PCI_DEVICE_ID_TI_XX21_XX11 0x8031 |
@@ -803,14 +724,10 @@ | |||
803 | #define PCI_DEVICE_ID_TI_X420 0xac8e | 724 | #define PCI_DEVICE_ID_TI_X420 0xac8e |
804 | 725 | ||
805 | #define PCI_VENDOR_ID_SONY 0x104d | 726 | #define PCI_VENDOR_ID_SONY 0x104d |
806 | #define PCI_DEVICE_ID_SONY_CXD3222 0x8039 | ||
807 | 727 | ||
808 | #define PCI_VENDOR_ID_OAK 0x104e | ||
809 | #define PCI_DEVICE_ID_OAK_OTI107 0x0107 | ||
810 | 728 | ||
811 | /* Winbond have two vendor IDs! See 0x10ad as well */ | 729 | /* Winbond have two vendor IDs! See 0x10ad as well */ |
812 | #define PCI_VENDOR_ID_WINBOND2 0x1050 | 730 | #define PCI_VENDOR_ID_WINBOND2 0x1050 |
813 | #define PCI_DEVICE_ID_WINBOND2_89C940 0x0940 | ||
814 | #define PCI_DEVICE_ID_WINBOND2_89C940F 0x5a5a | 731 | #define PCI_DEVICE_ID_WINBOND2_89C940F 0x5a5a |
815 | #define PCI_DEVICE_ID_WINBOND2_6692 0x6692 | 732 | #define PCI_DEVICE_ID_WINBOND2_6692 0x6692 |
816 | 733 | ||
@@ -819,19 +736,15 @@ | |||
819 | 736 | ||
820 | #define PCI_VENDOR_ID_EFAR 0x1055 | 737 | #define PCI_VENDOR_ID_EFAR 0x1055 |
821 | #define PCI_DEVICE_ID_EFAR_SLC90E66_1 0x9130 | 738 | #define PCI_DEVICE_ID_EFAR_SLC90E66_1 0x9130 |
822 | #define PCI_DEVICE_ID_EFAR_SLC90E66_0 0x9460 | ||
823 | #define PCI_DEVICE_ID_EFAR_SLC90E66_2 0x9462 | ||
824 | #define PCI_DEVICE_ID_EFAR_SLC90E66_3 0x9463 | 739 | #define PCI_DEVICE_ID_EFAR_SLC90E66_3 0x9463 |
825 | 740 | ||
826 | #define PCI_VENDOR_ID_MOTOROLA 0x1057 | 741 | #define PCI_VENDOR_ID_MOTOROLA 0x1057 |
827 | #define PCI_VENDOR_ID_MOTOROLA_OOPS 0x1507 | ||
828 | #define PCI_DEVICE_ID_MOTOROLA_MPC105 0x0001 | 742 | #define PCI_DEVICE_ID_MOTOROLA_MPC105 0x0001 |
829 | #define PCI_DEVICE_ID_MOTOROLA_MPC106 0x0002 | 743 | #define PCI_DEVICE_ID_MOTOROLA_MPC106 0x0002 |
830 | #define PCI_DEVICE_ID_MOTOROLA_MPC107 0x0004 | 744 | #define PCI_DEVICE_ID_MOTOROLA_MPC107 0x0004 |
831 | #define PCI_DEVICE_ID_MOTOROLA_RAVEN 0x4801 | 745 | #define PCI_DEVICE_ID_MOTOROLA_RAVEN 0x4801 |
832 | #define PCI_DEVICE_ID_MOTOROLA_FALCON 0x4802 | 746 | #define PCI_DEVICE_ID_MOTOROLA_FALCON 0x4802 |
833 | #define PCI_DEVICE_ID_MOTOROLA_HAWK 0x4803 | 747 | #define PCI_DEVICE_ID_MOTOROLA_HAWK 0x4803 |
834 | #define PCI_DEVICE_ID_MOTOROLA_CPX8216 0x4806 | ||
835 | #define PCI_DEVICE_ID_MOTOROLA_HARRIER 0x480b | 748 | #define PCI_DEVICE_ID_MOTOROLA_HARRIER 0x480b |
836 | #define PCI_DEVICE_ID_MOTOROLA_MPC5200 0x5803 | 749 | #define PCI_DEVICE_ID_MOTOROLA_MPC5200 0x5803 |
837 | 750 | ||
@@ -842,33 +755,19 @@ | |||
842 | #define PCI_DEVICE_ID_PROMISE_20262 0x4d38 | 755 | #define PCI_DEVICE_ID_PROMISE_20262 0x4d38 |
843 | #define PCI_DEVICE_ID_PROMISE_20263 0x0D38 | 756 | #define PCI_DEVICE_ID_PROMISE_20263 0x0D38 |
844 | #define PCI_DEVICE_ID_PROMISE_20268 0x4d68 | 757 | #define PCI_DEVICE_ID_PROMISE_20268 0x4d68 |
845 | #define PCI_DEVICE_ID_PROMISE_20268R 0x6268 | ||
846 | #define PCI_DEVICE_ID_PROMISE_20269 0x4d69 | 758 | #define PCI_DEVICE_ID_PROMISE_20269 0x4d69 |
847 | #define PCI_DEVICE_ID_PROMISE_20270 0x6268 | 759 | #define PCI_DEVICE_ID_PROMISE_20270 0x6268 |
848 | #define PCI_DEVICE_ID_PROMISE_20271 0x6269 | 760 | #define PCI_DEVICE_ID_PROMISE_20271 0x6269 |
849 | #define PCI_DEVICE_ID_PROMISE_20275 0x1275 | 761 | #define PCI_DEVICE_ID_PROMISE_20275 0x1275 |
850 | #define PCI_DEVICE_ID_PROMISE_20276 0x5275 | 762 | #define PCI_DEVICE_ID_PROMISE_20276 0x5275 |
851 | #define PCI_DEVICE_ID_PROMISE_20277 0x7275 | 763 | #define PCI_DEVICE_ID_PROMISE_20277 0x7275 |
852 | #define PCI_DEVICE_ID_PROMISE_5300 0x5300 | ||
853 | 764 | ||
854 | #define PCI_VENDOR_ID_N9 0x105d | ||
855 | #define PCI_DEVICE_ID_N9_I128 0x2309 | ||
856 | #define PCI_DEVICE_ID_N9_I128_2 0x2339 | ||
857 | #define PCI_DEVICE_ID_N9_I128_T2R 0x493d | ||
858 | 765 | ||
859 | #define PCI_VENDOR_ID_UMC 0x1060 | 766 | #define PCI_VENDOR_ID_UMC 0x1060 |
860 | #define PCI_DEVICE_ID_UMC_UM8673F 0x0101 | 767 | #define PCI_DEVICE_ID_UMC_UM8673F 0x0101 |
861 | #define PCI_DEVICE_ID_UMC_UM8891A 0x0891 | ||
862 | #define PCI_DEVICE_ID_UMC_UM8886BF 0x673a | 768 | #define PCI_DEVICE_ID_UMC_UM8886BF 0x673a |
863 | #define PCI_DEVICE_ID_UMC_UM8886A 0x886a | 769 | #define PCI_DEVICE_ID_UMC_UM8886A 0x886a |
864 | #define PCI_DEVICE_ID_UMC_UM8881F 0x8881 | ||
865 | #define PCI_DEVICE_ID_UMC_UM8886F 0x8886 | ||
866 | #define PCI_DEVICE_ID_UMC_UM9017F 0x9017 | ||
867 | #define PCI_DEVICE_ID_UMC_UM8886N 0xe886 | ||
868 | #define PCI_DEVICE_ID_UMC_UM8891N 0xe891 | ||
869 | 770 | ||
870 | #define PCI_VENDOR_ID_X 0x1061 | ||
871 | #define PCI_DEVICE_ID_X_AGX016 0x0001 | ||
872 | 771 | ||
873 | #define PCI_VENDOR_ID_MYLEX 0x1069 | 772 | #define PCI_VENDOR_ID_MYLEX 0x1069 |
874 | #define PCI_DEVICE_ID_MYLEX_DAC960_P 0x0001 | 773 | #define PCI_DEVICE_ID_MYLEX_DAC960_P 0x0001 |
@@ -879,37 +778,26 @@ | |||
879 | #define PCI_DEVICE_ID_MYLEX_DAC960_BA 0xBA56 | 778 | #define PCI_DEVICE_ID_MYLEX_DAC960_BA 0xBA56 |
880 | #define PCI_DEVICE_ID_MYLEX_DAC960_GEM 0xB166 | 779 | #define PCI_DEVICE_ID_MYLEX_DAC960_GEM 0xB166 |
881 | 780 | ||
882 | #define PCI_VENDOR_ID_PICOP 0x1066 | ||
883 | #define PCI_DEVICE_ID_PICOP_PT86C52X 0x0001 | ||
884 | #define PCI_DEVICE_ID_PICOP_PT80C524 0x8002 | ||
885 | 781 | ||
886 | #define PCI_VENDOR_ID_APPLE 0x106b | 782 | #define PCI_VENDOR_ID_APPLE 0x106b |
887 | #define PCI_DEVICE_ID_APPLE_BANDIT 0x0001 | 783 | #define PCI_DEVICE_ID_APPLE_BANDIT 0x0001 |
888 | #define PCI_DEVICE_ID_APPLE_GC 0x0002 | ||
889 | #define PCI_DEVICE_ID_APPLE_HYDRA 0x000e | 784 | #define PCI_DEVICE_ID_APPLE_HYDRA 0x000e |
890 | #define PCI_DEVICE_ID_APPLE_UNI_N_FW 0x0018 | 785 | #define PCI_DEVICE_ID_APPLE_UNI_N_FW 0x0018 |
891 | #define PCI_DEVICE_ID_APPLE_KL_USB 0x0019 | ||
892 | #define PCI_DEVICE_ID_APPLE_UNI_N_AGP 0x0020 | 786 | #define PCI_DEVICE_ID_APPLE_UNI_N_AGP 0x0020 |
893 | #define PCI_DEVICE_ID_APPLE_UNI_N_GMAC 0x0021 | 787 | #define PCI_DEVICE_ID_APPLE_UNI_N_GMAC 0x0021 |
894 | #define PCI_DEVICE_ID_APPLE_KEYLARGO 0x0022 | ||
895 | #define PCI_DEVICE_ID_APPLE_UNI_N_GMACP 0x0024 | 788 | #define PCI_DEVICE_ID_APPLE_UNI_N_GMACP 0x0024 |
896 | #define PCI_DEVICE_ID_APPLE_KEYLARGO_P 0x0025 | ||
897 | #define PCI_DEVICE_ID_APPLE_KL_USB_P 0x0026 | ||
898 | #define PCI_DEVICE_ID_APPLE_UNI_N_AGP_P 0x0027 | 789 | #define PCI_DEVICE_ID_APPLE_UNI_N_AGP_P 0x0027 |
899 | #define PCI_DEVICE_ID_APPLE_UNI_N_AGP15 0x002d | 790 | #define PCI_DEVICE_ID_APPLE_UNI_N_AGP15 0x002d |
900 | #define PCI_DEVICE_ID_APPLE_UNI_N_PCI15 0x002e | 791 | #define PCI_DEVICE_ID_APPLE_UNI_N_PCI15 0x002e |
901 | #define PCI_DEVICE_ID_APPLE_UNI_N_FW2 0x0030 | ||
902 | #define PCI_DEVICE_ID_APPLE_UNI_N_GMAC2 0x0032 | 792 | #define PCI_DEVICE_ID_APPLE_UNI_N_GMAC2 0x0032 |
903 | #define PCI_DEVICE_ID_APPLE_UNI_N_ATA 0x0033 | 793 | #define PCI_DEVICE_ID_APPLE_UNI_N_ATA 0x0033 |
904 | #define PCI_DEVICE_ID_APPLE_UNI_N_AGP2 0x0034 | 794 | #define PCI_DEVICE_ID_APPLE_UNI_N_AGP2 0x0034 |
905 | #define PCI_DEVICE_ID_APPLE_IPID_ATA100 0x003b | 795 | #define PCI_DEVICE_ID_APPLE_IPID_ATA100 0x003b |
906 | #define PCI_DEVICE_ID_APPLE_KEYLARGO_I 0x003e | ||
907 | #define PCI_DEVICE_ID_APPLE_K2_ATA100 0x0043 | 796 | #define PCI_DEVICE_ID_APPLE_K2_ATA100 0x0043 |
908 | #define PCI_DEVICE_ID_APPLE_U3_AGP 0x004b | 797 | #define PCI_DEVICE_ID_APPLE_U3_AGP 0x004b |
909 | #define PCI_DEVICE_ID_APPLE_K2_GMAC 0x004c | 798 | #define PCI_DEVICE_ID_APPLE_K2_GMAC 0x004c |
910 | #define PCI_DEVICE_ID_APPLE_SH_ATA 0x0050 | 799 | #define PCI_DEVICE_ID_APPLE_SH_ATA 0x0050 |
911 | #define PCI_DEVICE_ID_APPLE_SH_SUNGEM 0x0051 | 800 | #define PCI_DEVICE_ID_APPLE_SH_SUNGEM 0x0051 |
912 | #define PCI_DEVICE_ID_APPLE_SH_FW 0x0052 | ||
913 | #define PCI_DEVICE_ID_APPLE_U3L_AGP 0x0058 | 801 | #define PCI_DEVICE_ID_APPLE_U3L_AGP 0x0058 |
914 | #define PCI_DEVICE_ID_APPLE_U3H_AGP 0x0059 | 802 | #define PCI_DEVICE_ID_APPLE_U3H_AGP 0x0059 |
915 | #define PCI_DEVICE_ID_APPLE_TIGON3 0x1645 | 803 | #define PCI_DEVICE_ID_APPLE_TIGON3 0x1645 |
@@ -922,12 +810,9 @@ | |||
922 | #define PCI_DEVICE_ID_YAMAHA_744 0x0010 | 810 | #define PCI_DEVICE_ID_YAMAHA_744 0x0010 |
923 | #define PCI_DEVICE_ID_YAMAHA_754 0x0012 | 811 | #define PCI_DEVICE_ID_YAMAHA_754 0x0012 |
924 | 812 | ||
925 | #define PCI_VENDOR_ID_NEXGEN 0x1074 | ||
926 | #define PCI_DEVICE_ID_NEXGEN_82C501 0x4e78 | ||
927 | 813 | ||
928 | #define PCI_VENDOR_ID_QLOGIC 0x1077 | 814 | #define PCI_VENDOR_ID_QLOGIC 0x1077 |
929 | #define PCI_DEVICE_ID_QLOGIC_ISP1020 0x1020 | 815 | #define PCI_DEVICE_ID_QLOGIC_ISP1020 0x1020 |
930 | #define PCI_DEVICE_ID_QLOGIC_ISP1022 0x1022 | ||
931 | #define PCI_DEVICE_ID_QLOGIC_ISP2100 0x2100 | 816 | #define PCI_DEVICE_ID_QLOGIC_ISP2100 0x2100 |
932 | #define PCI_DEVICE_ID_QLOGIC_ISP2200 0x2200 | 817 | #define PCI_DEVICE_ID_QLOGIC_ISP2200 0x2200 |
933 | #define PCI_DEVICE_ID_QLOGIC_ISP2300 0x2300 | 818 | #define PCI_DEVICE_ID_QLOGIC_ISP2300 0x2300 |
@@ -945,32 +830,20 @@ | |||
945 | #define PCI_DEVICE_ID_CYRIX_PCI_MASTER 0x0001 | 830 | #define PCI_DEVICE_ID_CYRIX_PCI_MASTER 0x0001 |
946 | #define PCI_DEVICE_ID_CYRIX_5520 0x0002 | 831 | #define PCI_DEVICE_ID_CYRIX_5520 0x0002 |
947 | #define PCI_DEVICE_ID_CYRIX_5530_LEGACY 0x0100 | 832 | #define PCI_DEVICE_ID_CYRIX_5530_LEGACY 0x0100 |
948 | #define PCI_DEVICE_ID_CYRIX_5530_SMI 0x0101 | ||
949 | #define PCI_DEVICE_ID_CYRIX_5530_IDE 0x0102 | 833 | #define PCI_DEVICE_ID_CYRIX_5530_IDE 0x0102 |
950 | #define PCI_DEVICE_ID_CYRIX_5530_AUDIO 0x0103 | 834 | #define PCI_DEVICE_ID_CYRIX_5530_AUDIO 0x0103 |
951 | #define PCI_DEVICE_ID_CYRIX_5530_VIDEO 0x0104 | 835 | #define PCI_DEVICE_ID_CYRIX_5530_VIDEO 0x0104 |
952 | 836 | ||
953 | #define PCI_VENDOR_ID_LEADTEK 0x107d | ||
954 | #define PCI_DEVICE_ID_LEADTEK_805 0x0000 | ||
955 | 837 | ||
956 | #define PCI_VENDOR_ID_INTERPHASE 0x107e | ||
957 | #define PCI_DEVICE_ID_INTERPHASE_5526 0x0004 | ||
958 | #define PCI_DEVICE_ID_INTERPHASE_55x6 0x0005 | ||
959 | #define PCI_DEVICE_ID_INTERPHASE_5575 0x0008 | ||
960 | 838 | ||
961 | #define PCI_VENDOR_ID_CONTAQ 0x1080 | 839 | #define PCI_VENDOR_ID_CONTAQ 0x1080 |
962 | #define PCI_DEVICE_ID_CONTAQ_82C599 0x0600 | ||
963 | #define PCI_DEVICE_ID_CONTAQ_82C693 0xc693 | 840 | #define PCI_DEVICE_ID_CONTAQ_82C693 0xc693 |
964 | 841 | ||
965 | #define PCI_VENDOR_ID_FOREX 0x1083 | ||
966 | 842 | ||
967 | #define PCI_VENDOR_ID_OLICOM 0x108d | 843 | #define PCI_VENDOR_ID_OLICOM 0x108d |
968 | #define PCI_DEVICE_ID_OLICOM_OC3136 0x0001 | ||
969 | #define PCI_DEVICE_ID_OLICOM_OC2315 0x0011 | ||
970 | #define PCI_DEVICE_ID_OLICOM_OC2325 0x0012 | 844 | #define PCI_DEVICE_ID_OLICOM_OC2325 0x0012 |
971 | #define PCI_DEVICE_ID_OLICOM_OC2183 0x0013 | 845 | #define PCI_DEVICE_ID_OLICOM_OC2183 0x0013 |
972 | #define PCI_DEVICE_ID_OLICOM_OC2326 0x0014 | 846 | #define PCI_DEVICE_ID_OLICOM_OC2326 0x0014 |
973 | #define PCI_DEVICE_ID_OLICOM_OC6151 0x0021 | ||
974 | 847 | ||
975 | #define PCI_VENDOR_ID_SUN 0x108e | 848 | #define PCI_VENDOR_ID_SUN 0x108e |
976 | #define PCI_DEVICE_ID_SUN_EBUS 0x1000 | 849 | #define PCI_DEVICE_ID_SUN_EBUS 0x1000 |
@@ -989,49 +862,31 @@ | |||
989 | #define PCI_DEVICE_ID_SUN_CASSINI 0xabba | 862 | #define PCI_DEVICE_ID_SUN_CASSINI 0xabba |
990 | 863 | ||
991 | #define PCI_VENDOR_ID_CMD 0x1095 | 864 | #define PCI_VENDOR_ID_CMD 0x1095 |
992 | #define PCI_DEVICE_ID_CMD_640 0x0640 | ||
993 | #define PCI_DEVICE_ID_CMD_643 0x0643 | 865 | #define PCI_DEVICE_ID_CMD_643 0x0643 |
994 | #define PCI_DEVICE_ID_CMD_646 0x0646 | 866 | #define PCI_DEVICE_ID_CMD_646 0x0646 |
995 | #define PCI_DEVICE_ID_CMD_647 0x0647 | ||
996 | #define PCI_DEVICE_ID_CMD_648 0x0648 | 867 | #define PCI_DEVICE_ID_CMD_648 0x0648 |
997 | #define PCI_DEVICE_ID_CMD_649 0x0649 | 868 | #define PCI_DEVICE_ID_CMD_649 0x0649 |
998 | #define PCI_DEVICE_ID_CMD_670 0x0670 | ||
999 | #define PCI_DEVICE_ID_CMD_680 0x0680 | ||
1000 | 869 | ||
1001 | #define PCI_DEVICE_ID_SII_680 0x0680 | 870 | #define PCI_DEVICE_ID_SII_680 0x0680 |
1002 | #define PCI_DEVICE_ID_SII_3112 0x3112 | 871 | #define PCI_DEVICE_ID_SII_3112 0x3112 |
1003 | #define PCI_DEVICE_ID_SII_1210SA 0x0240 | 872 | #define PCI_DEVICE_ID_SII_1210SA 0x0240 |
1004 | 873 | ||
1005 | #define PCI_VENDOR_ID_VISION 0x1098 | ||
1006 | #define PCI_DEVICE_ID_VISION_QD8500 0x0001 | ||
1007 | #define PCI_DEVICE_ID_VISION_QD8580 0x0002 | ||
1008 | 874 | ||
1009 | #define PCI_VENDOR_ID_BROOKTREE 0x109e | 875 | #define PCI_VENDOR_ID_BROOKTREE 0x109e |
1010 | #define PCI_DEVICE_ID_BROOKTREE_848 0x0350 | ||
1011 | #define PCI_DEVICE_ID_BROOKTREE_849A 0x0351 | ||
1012 | #define PCI_DEVICE_ID_BROOKTREE_878_1 0x036e | ||
1013 | #define PCI_DEVICE_ID_BROOKTREE_878 0x0878 | 876 | #define PCI_DEVICE_ID_BROOKTREE_878 0x0878 |
1014 | #define PCI_DEVICE_ID_BROOKTREE_879 0x0879 | 877 | #define PCI_DEVICE_ID_BROOKTREE_879 0x0879 |
1015 | #define PCI_DEVICE_ID_BROOKTREE_8474 0x8474 | ||
1016 | 878 | ||
1017 | #define PCI_VENDOR_ID_SIERRA 0x10a8 | ||
1018 | #define PCI_DEVICE_ID_SIERRA_STB 0x0000 | ||
1019 | 879 | ||
1020 | #define PCI_VENDOR_ID_SGI 0x10a9 | 880 | #define PCI_VENDOR_ID_SGI 0x10a9 |
1021 | #define PCI_DEVICE_ID_SGI_IOC3 0x0003 | 881 | #define PCI_DEVICE_ID_SGI_IOC3 0x0003 |
1022 | #define PCI_DEVICE_ID_SGI_IOC4 0x100a | 882 | #define PCI_DEVICE_ID_SGI_IOC4 0x100a |
1023 | #define PCI_VENDOR_ID_SGI_LITHIUM 0x1002 | 883 | #define PCI_VENDOR_ID_SGI_LITHIUM 0x1002 |
1024 | 884 | ||
1025 | #define PCI_VENDOR_ID_ACC 0x10aa | ||
1026 | #define PCI_DEVICE_ID_ACC_2056 0x0000 | ||
1027 | 885 | ||
1028 | #define PCI_VENDOR_ID_WINBOND 0x10ad | 886 | #define PCI_VENDOR_ID_WINBOND 0x10ad |
1029 | #define PCI_DEVICE_ID_WINBOND_83769 0x0001 | ||
1030 | #define PCI_DEVICE_ID_WINBOND_82C105 0x0105 | 887 | #define PCI_DEVICE_ID_WINBOND_82C105 0x0105 |
1031 | #define PCI_DEVICE_ID_WINBOND_83C553 0x0565 | 888 | #define PCI_DEVICE_ID_WINBOND_83C553 0x0565 |
1032 | 889 | ||
1033 | #define PCI_VENDOR_ID_DATABOOK 0x10b3 | ||
1034 | #define PCI_DEVICE_ID_DATABOOK_87144 0xb106 | ||
1035 | 890 | ||
1036 | #define PCI_VENDOR_ID_PLX 0x10b5 | 891 | #define PCI_VENDOR_ID_PLX 0x10b5 |
1037 | #define PCI_DEVICE_ID_PLX_R685 0x1030 | 892 | #define PCI_DEVICE_ID_PLX_R685 0x1030 |
@@ -1042,33 +897,19 @@ | |||
1042 | #define PCI_DEVICE_ID_PLX_DJINN_ITOO 0x1151 | 897 | #define PCI_DEVICE_ID_PLX_DJINN_ITOO 0x1151 |
1043 | #define PCI_DEVICE_ID_PLX_R753 0x1152 | 898 | #define PCI_DEVICE_ID_PLX_R753 0x1152 |
1044 | #define PCI_DEVICE_ID_PLX_OLITEC 0x1187 | 899 | #define PCI_DEVICE_ID_PLX_OLITEC 0x1187 |
1045 | #define PCI_DEVICE_ID_PLX_9030 0x9030 | ||
1046 | #define PCI_DEVICE_ID_PLX_9050 0x9050 | 900 | #define PCI_DEVICE_ID_PLX_9050 0x9050 |
1047 | #define PCI_DEVICE_ID_PLX_9060 0x9060 | ||
1048 | #define PCI_DEVICE_ID_PLX_9060ES 0x906E | ||
1049 | #define PCI_DEVICE_ID_PLX_9060SD 0x906D | ||
1050 | #define PCI_DEVICE_ID_PLX_9080 0x9080 | 901 | #define PCI_DEVICE_ID_PLX_9080 0x9080 |
1051 | #define PCI_DEVICE_ID_PLX_GTEK_SERIAL2 0xa001 | 902 | #define PCI_DEVICE_ID_PLX_GTEK_SERIAL2 0xa001 |
1052 | 903 | ||
1053 | #define PCI_VENDOR_ID_MADGE 0x10b6 | 904 | #define PCI_VENDOR_ID_MADGE 0x10b6 |
1054 | #define PCI_DEVICE_ID_MADGE_MK2 0x0002 | 905 | #define PCI_DEVICE_ID_MADGE_MK2 0x0002 |
1055 | #define PCI_DEVICE_ID_MADGE_C155S 0x1001 | ||
1056 | 906 | ||
1057 | #define PCI_VENDOR_ID_3COM 0x10b7 | 907 | #define PCI_VENDOR_ID_3COM 0x10b7 |
1058 | #define PCI_DEVICE_ID_3COM_3C985 0x0001 | 908 | #define PCI_DEVICE_ID_3COM_3C985 0x0001 |
1059 | #define PCI_DEVICE_ID_3COM_3C940 0x1700 | 909 | #define PCI_DEVICE_ID_3COM_3C940 0x1700 |
1060 | #define PCI_DEVICE_ID_3COM_3C339 0x3390 | 910 | #define PCI_DEVICE_ID_3COM_3C339 0x3390 |
1061 | #define PCI_DEVICE_ID_3COM_3C359 0x3590 | 911 | #define PCI_DEVICE_ID_3COM_3C359 0x3590 |
1062 | #define PCI_DEVICE_ID_3COM_3C590 0x5900 | ||
1063 | #define PCI_DEVICE_ID_3COM_3C595TX 0x5950 | ||
1064 | #define PCI_DEVICE_ID_3COM_3C595T4 0x5951 | ||
1065 | #define PCI_DEVICE_ID_3COM_3C595MII 0x5952 | ||
1066 | #define PCI_DEVICE_ID_3COM_3C940B 0x80eb | 912 | #define PCI_DEVICE_ID_3COM_3C940B 0x80eb |
1067 | #define PCI_DEVICE_ID_3COM_3C900TPO 0x9000 | ||
1068 | #define PCI_DEVICE_ID_3COM_3C900COMBO 0x9001 | ||
1069 | #define PCI_DEVICE_ID_3COM_3C905TX 0x9050 | ||
1070 | #define PCI_DEVICE_ID_3COM_3C905T4 0x9051 | ||
1071 | #define PCI_DEVICE_ID_3COM_3C905B_TX 0x9055 | ||
1072 | #define PCI_DEVICE_ID_3COM_3CR990 0x9900 | 913 | #define PCI_DEVICE_ID_3COM_3CR990 0x9900 |
1073 | #define PCI_DEVICE_ID_3COM_3CR990_TX_95 0x9902 | 914 | #define PCI_DEVICE_ID_3COM_3CR990_TX_95 0x9902 |
1074 | #define PCI_DEVICE_ID_3COM_3CR990_TX_97 0x9903 | 915 | #define PCI_DEVICE_ID_3COM_3CR990_TX_97 0x9903 |
@@ -1078,24 +919,11 @@ | |||
1078 | #define PCI_DEVICE_ID_3COM_3CR990SVR97 0x9909 | 919 | #define PCI_DEVICE_ID_3COM_3CR990SVR97 0x9909 |
1079 | #define PCI_DEVICE_ID_3COM_3CR990SVR 0x990a | 920 | #define PCI_DEVICE_ID_3COM_3CR990SVR 0x990a |
1080 | 921 | ||
1081 | #define PCI_VENDOR_ID_SMC 0x10b8 | ||
1082 | #define PCI_DEVICE_ID_SMC_EPIC100 0x0005 | ||
1083 | 922 | ||
1084 | #define PCI_VENDOR_ID_AL 0x10b9 | 923 | #define PCI_VENDOR_ID_AL 0x10b9 |
1085 | #define PCI_DEVICE_ID_AL_M1445 0x1445 | ||
1086 | #define PCI_DEVICE_ID_AL_M1449 0x1449 | ||
1087 | #define PCI_DEVICE_ID_AL_M1451 0x1451 | ||
1088 | #define PCI_DEVICE_ID_AL_M1461 0x1461 | ||
1089 | #define PCI_DEVICE_ID_AL_M1489 0x1489 | ||
1090 | #define PCI_DEVICE_ID_AL_M1511 0x1511 | ||
1091 | #define PCI_DEVICE_ID_AL_M1513 0x1513 | ||
1092 | #define PCI_DEVICE_ID_AL_M1521 0x1521 | ||
1093 | #define PCI_DEVICE_ID_AL_M1523 0x1523 | ||
1094 | #define PCI_DEVICE_ID_AL_M1531 0x1531 | ||
1095 | #define PCI_DEVICE_ID_AL_M1533 0x1533 | 924 | #define PCI_DEVICE_ID_AL_M1533 0x1533 |
1096 | #define PCI_DEVICE_ID_AL_M1535 0x1535 | 925 | #define PCI_DEVICE_ID_AL_M1535 0x1535 |
1097 | #define PCI_DEVICE_ID_AL_M1541 0x1541 | 926 | #define PCI_DEVICE_ID_AL_M1541 0x1541 |
1098 | #define PCI_DEVICE_ID_AL_M1543 0x1543 | ||
1099 | #define PCI_DEVICE_ID_AL_M1563 0x1563 | 927 | #define PCI_DEVICE_ID_AL_M1563 0x1563 |
1100 | #define PCI_DEVICE_ID_AL_M1621 0x1621 | 928 | #define PCI_DEVICE_ID_AL_M1621 0x1621 |
1101 | #define PCI_DEVICE_ID_AL_M1631 0x1631 | 929 | #define PCI_DEVICE_ID_AL_M1631 0x1631 |
@@ -1108,49 +936,23 @@ | |||
1108 | #define PCI_DEVICE_ID_AL_M1681 0x1681 | 936 | #define PCI_DEVICE_ID_AL_M1681 0x1681 |
1109 | #define PCI_DEVICE_ID_AL_M1683 0x1683 | 937 | #define PCI_DEVICE_ID_AL_M1683 0x1683 |
1110 | #define PCI_DEVICE_ID_AL_M1689 0x1689 | 938 | #define PCI_DEVICE_ID_AL_M1689 0x1689 |
1111 | #define PCI_DEVICE_ID_AL_M3307 0x3307 | ||
1112 | #define PCI_DEVICE_ID_AL_M4803 0x5215 | ||
1113 | #define PCI_DEVICE_ID_AL_M5219 0x5219 | 939 | #define PCI_DEVICE_ID_AL_M5219 0x5219 |
1114 | #define PCI_DEVICE_ID_AL_M5228 0x5228 | 940 | #define PCI_DEVICE_ID_AL_M5228 0x5228 |
1115 | #define PCI_DEVICE_ID_AL_M5229 0x5229 | 941 | #define PCI_DEVICE_ID_AL_M5229 0x5229 |
1116 | #define PCI_DEVICE_ID_AL_M5237 0x5237 | ||
1117 | #define PCI_DEVICE_ID_AL_M5243 0x5243 | ||
1118 | #define PCI_DEVICE_ID_AL_M5451 0x5451 | 942 | #define PCI_DEVICE_ID_AL_M5451 0x5451 |
1119 | #define PCI_DEVICE_ID_AL_M7101 0x7101 | 943 | #define PCI_DEVICE_ID_AL_M7101 0x7101 |
1120 | 944 | ||
1121 | #define PCI_VENDOR_ID_MITSUBISHI 0x10ba | ||
1122 | 945 | ||
1123 | #define PCI_VENDOR_ID_SURECOM 0x10bd | ||
1124 | #define PCI_DEVICE_ID_SURECOM_NE34 0x0e34 | ||
1125 | 946 | ||
1126 | #define PCI_VENDOR_ID_NEOMAGIC 0x10c8 | 947 | #define PCI_VENDOR_ID_NEOMAGIC 0x10c8 |
1127 | #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_NM2070 0x0001 | ||
1128 | #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_128V 0x0002 | ||
1129 | #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_128ZV 0x0003 | ||
1130 | #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_NM2160 0x0004 | ||
1131 | #define PCI_DEVICE_ID_NEOMAGIC_MAGICMEDIA_256AV 0x0005 | ||
1132 | #define PCI_DEVICE_ID_NEOMAGIC_MAGICGRAPH_128ZVPLUS 0x0083 | ||
1133 | #define PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO 0x8005 | 948 | #define PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO 0x8005 |
1134 | #define PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO 0x8006 | 949 | #define PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO 0x8006 |
1135 | #define PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO 0x8016 | 950 | #define PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO 0x8016 |
1136 | 951 | ||
1137 | #define PCI_VENDOR_ID_ASP 0x10cd | ||
1138 | #define PCI_DEVICE_ID_ASP_ABP940 0x1200 | ||
1139 | #define PCI_DEVICE_ID_ASP_ABP940U 0x1300 | ||
1140 | #define PCI_DEVICE_ID_ASP_ABP940UW 0x2300 | ||
1141 | |||
1142 | #define PCI_VENDOR_ID_MACRONIX 0x10d9 | ||
1143 | #define PCI_DEVICE_ID_MACRONIX_MX98713 0x0512 | ||
1144 | #define PCI_DEVICE_ID_MACRONIX_MX987x5 0x0531 | ||
1145 | 952 | ||
1146 | #define PCI_VENDOR_ID_TCONRAD 0x10da | 953 | #define PCI_VENDOR_ID_TCONRAD 0x10da |
1147 | #define PCI_DEVICE_ID_TCONRAD_TOKENRING 0x0508 | 954 | #define PCI_DEVICE_ID_TCONRAD_TOKENRING 0x0508 |
1148 | 955 | ||
1149 | #define PCI_VENDOR_ID_CERN 0x10dc | ||
1150 | #define PCI_DEVICE_ID_CERN_SPSB_PMC 0x0001 | ||
1151 | #define PCI_DEVICE_ID_CERN_SPSB_PCI 0x0002 | ||
1152 | #define PCI_DEVICE_ID_CERN_HIPPI_DST 0x0021 | ||
1153 | #define PCI_DEVICE_ID_CERN_HIPPI_SRC 0x0022 | ||
1154 | 956 | ||
1155 | #define PCI_VENDOR_ID_NVIDIA 0x10de | 957 | #define PCI_VENDOR_ID_NVIDIA 0x10de |
1156 | #define PCI_DEVICE_ID_NVIDIA_TNT 0x0020 | 958 | #define PCI_DEVICE_ID_NVIDIA_TNT 0x0020 |
@@ -1196,7 +998,6 @@ | |||
1196 | #define PCI_DEVICE_ID_QUADRO_FX_GO1400 0x00cc | 998 | #define PCI_DEVICE_ID_QUADRO_FX_GO1400 0x00cc |
1197 | #define PCI_DEVICE_ID_QUADRO_FX_1400 0x00ce | 999 | #define PCI_DEVICE_ID_QUADRO_FX_1400 0x00ce |
1198 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3 0x00d1 | 1000 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3 0x00d1 |
1199 | #define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO 0x00da | ||
1200 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3_SMBUS 0x00d4 | 1001 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3_SMBUS 0x00d4 |
1201 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5 | 1002 | #define PCI_DEVICE_ID_NVIDIA_NFORCE3_IDE 0x00d5 |
1202 | #define PCI_DEVICE_ID_NVIDIA_NVENET_3 0x00d6 | 1003 | #define PCI_DEVICE_ID_NVIDIA_NVENET_3 0x00d6 |
@@ -1283,7 +1084,6 @@ | |||
1283 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2 0x037F | 1084 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2 0x037F |
1284 | #define PCI_DEVICE_ID_NVIDIA_NVENET_12 0x0268 | 1085 | #define PCI_DEVICE_ID_NVIDIA_NVENET_12 0x0268 |
1285 | #define PCI_DEVICE_ID_NVIDIA_NVENET_13 0x0269 | 1086 | #define PCI_DEVICE_ID_NVIDIA_NVENET_13 0x0269 |
1286 | #define PCI_DEVICE_ID_NVIDIA_MCP51_AUDIO 0x026B | ||
1287 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800 0x0280 | 1087 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800 0x0280 |
1288 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800_8X 0x0281 | 1088 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800_8X 0x0281 |
1289 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800SE 0x0282 | 1089 | #define PCI_DEVICE_ID_NVIDIA_GEFORCE4_TI_4800SE 0x0282 |
@@ -1334,24 +1134,13 @@ | |||
1334 | #define PCI_DEVICE_ID_NVIDIA_NVENET_15 0x0373 | 1134 | #define PCI_DEVICE_ID_NVIDIA_NVENET_15 0x0373 |
1335 | 1135 | ||
1336 | #define PCI_VENDOR_ID_IMS 0x10e0 | 1136 | #define PCI_VENDOR_ID_IMS 0x10e0 |
1337 | #define PCI_DEVICE_ID_IMS_8849 0x8849 | ||
1338 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 | 1137 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 |
1339 | #define PCI_DEVICE_ID_IMS_TT3D 0x9135 | 1138 | #define PCI_DEVICE_ID_IMS_TT3D 0x9135 |
1340 | 1139 | ||
1341 | #define PCI_VENDOR_ID_TEKRAM2 0x10e1 | ||
1342 | #define PCI_DEVICE_ID_TEKRAM2_690c 0x690c | ||
1343 | 1140 | ||
1344 | #define PCI_VENDOR_ID_TUNDRA 0x10e3 | ||
1345 | #define PCI_DEVICE_ID_TUNDRA_CA91C042 0x0000 | ||
1346 | 1141 | ||
1347 | #define PCI_VENDOR_ID_AMCC 0x10e8 | ||
1348 | #define PCI_DEVICE_ID_AMCC_MYRINET 0x8043 | ||
1349 | #define PCI_DEVICE_ID_AMCC_PARASTATION 0x8062 | ||
1350 | #define PCI_DEVICE_ID_AMCC_S5933 0x807d | ||
1351 | #define PCI_DEVICE_ID_AMCC_S5933_HEPC3 0x809c | ||
1352 | 1142 | ||
1353 | #define PCI_VENDOR_ID_INTERG 0x10ea | 1143 | #define PCI_VENDOR_ID_INTERG 0x10ea |
1354 | #define PCI_DEVICE_ID_INTERG_1680 0x1680 | ||
1355 | #define PCI_DEVICE_ID_INTERG_1682 0x1682 | 1144 | #define PCI_DEVICE_ID_INTERG_1682 0x1682 |
1356 | #define PCI_DEVICE_ID_INTERG_2000 0x2000 | 1145 | #define PCI_DEVICE_ID_INTERG_2000 0x2000 |
1357 | #define PCI_DEVICE_ID_INTERG_2010 0x2010 | 1146 | #define PCI_DEVICE_ID_INTERG_2010 0x2010 |
@@ -1359,32 +1148,23 @@ | |||
1359 | #define PCI_DEVICE_ID_INTERG_5050 0x5050 | 1148 | #define PCI_DEVICE_ID_INTERG_5050 0x5050 |
1360 | 1149 | ||
1361 | #define PCI_VENDOR_ID_REALTEK 0x10ec | 1150 | #define PCI_VENDOR_ID_REALTEK 0x10ec |
1362 | #define PCI_DEVICE_ID_REALTEK_8029 0x8029 | ||
1363 | #define PCI_DEVICE_ID_REALTEK_8129 0x8129 | ||
1364 | #define PCI_DEVICE_ID_REALTEK_8139 0x8139 | 1151 | #define PCI_DEVICE_ID_REALTEK_8139 0x8139 |
1365 | #define PCI_DEVICE_ID_REALTEK_8169 0x8169 | ||
1366 | 1152 | ||
1367 | #define PCI_VENDOR_ID_XILINX 0x10ee | 1153 | #define PCI_VENDOR_ID_XILINX 0x10ee |
1368 | #define PCI_DEVICE_ID_RME_DIGI96 0x3fc0 | 1154 | #define PCI_DEVICE_ID_RME_DIGI96 0x3fc0 |
1369 | #define PCI_DEVICE_ID_RME_DIGI96_8 0x3fc1 | 1155 | #define PCI_DEVICE_ID_RME_DIGI96_8 0x3fc1 |
1370 | #define PCI_DEVICE_ID_RME_DIGI96_8_PRO 0x3fc2 | 1156 | #define PCI_DEVICE_ID_RME_DIGI96_8_PRO 0x3fc2 |
1371 | #define PCI_DEVICE_ID_RME_DIGI96_8_PAD_OR_PST 0x3fc3 | 1157 | #define PCI_DEVICE_ID_RME_DIGI96_8_PAD_OR_PST 0x3fc3 |
1372 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL 0x3fc4 | ||
1373 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP 0x3fc5 | 1158 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP 0x3fc5 |
1374 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI 0x3fc6 | 1159 | #define PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP_MADI 0x3fc6 |
1375 | #define PCI_DEVICE_ID_TURBOPAM 0x4020 | ||
1376 | 1160 | ||
1377 | #define PCI_VENDOR_ID_TRUEVISION 0x10fa | ||
1378 | #define PCI_DEVICE_ID_TRUEVISION_T1000 0x000c | ||
1379 | 1161 | ||
1380 | #define PCI_VENDOR_ID_INIT 0x1101 | 1162 | #define PCI_VENDOR_ID_INIT 0x1101 |
1381 | #define PCI_DEVICE_ID_INIT_320P 0x9100 | ||
1382 | #define PCI_DEVICE_ID_INIT_360P 0x9500 | ||
1383 | 1163 | ||
1384 | #define PCI_VENDOR_ID_CREATIVE 0x1102 // duplicate: ECTIVA | 1164 | #define PCI_VENDOR_ID_CREATIVE 0x1102 /* duplicate: ECTIVA */ |
1385 | #define PCI_DEVICE_ID_CREATIVE_EMU10K1 0x0002 | 1165 | #define PCI_DEVICE_ID_CREATIVE_EMU10K1 0x0002 |
1386 | 1166 | ||
1387 | #define PCI_VENDOR_ID_ECTIVA 0x1102 // duplicate: CREATIVE | 1167 | #define PCI_VENDOR_ID_ECTIVA 0x1102 /* duplicate: CREATIVE */ |
1388 | #define PCI_DEVICE_ID_ECTIVA_EV1938 0x8938 | 1168 | #define PCI_DEVICE_ID_ECTIVA_EV1938 0x8938 |
1389 | 1169 | ||
1390 | #define PCI_VENDOR_ID_TTI 0x1103 | 1170 | #define PCI_VENDOR_ID_TTI 0x1103 |
@@ -1394,7 +1174,7 @@ | |||
1394 | #define PCI_DEVICE_ID_TTI_HPT302 0x0006 | 1174 | #define PCI_DEVICE_ID_TTI_HPT302 0x0006 |
1395 | #define PCI_DEVICE_ID_TTI_HPT371 0x0007 | 1175 | #define PCI_DEVICE_ID_TTI_HPT371 0x0007 |
1396 | #define PCI_DEVICE_ID_TTI_HPT374 0x0008 | 1176 | #define PCI_DEVICE_ID_TTI_HPT374 0x0008 |
1397 | #define PCI_DEVICE_ID_TTI_HPT372N 0x0009 // apparently a 372N variant? | 1177 | #define PCI_DEVICE_ID_TTI_HPT372N 0x0009 /* apparently a 372N variant? */ |
1398 | 1178 | ||
1399 | #define PCI_VENDOR_ID_VIA 0x1106 | 1179 | #define PCI_VENDOR_ID_VIA 0x1106 |
1400 | #define PCI_DEVICE_ID_VIA_8763_0 0x0198 | 1180 | #define PCI_DEVICE_ID_VIA_8763_0 0x0198 |
@@ -1407,36 +1187,25 @@ | |||
1407 | #define PCI_DEVICE_ID_VIA_8363_0 0x0305 | 1187 | #define PCI_DEVICE_ID_VIA_8363_0 0x0305 |
1408 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 | 1188 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 |
1409 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 | 1189 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 |
1410 | #define PCI_DEVICE_ID_VIA_82C505 0x0505 | ||
1411 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 | 1190 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 |
1412 | #define PCI_DEVICE_ID_VIA_82C586_1 0x0571 | 1191 | #define PCI_DEVICE_ID_VIA_82C586_1 0x0571 |
1413 | #define PCI_DEVICE_ID_VIA_82C576 0x0576 | 1192 | #define PCI_DEVICE_ID_VIA_82C576 0x0576 |
1414 | #define PCI_DEVICE_ID_VIA_82C585 0x0585 | ||
1415 | #define PCI_DEVICE_ID_VIA_82C586_0 0x0586 | 1193 | #define PCI_DEVICE_ID_VIA_82C586_0 0x0586 |
1416 | #define PCI_DEVICE_ID_VIA_82C595 0x0595 | ||
1417 | #define PCI_DEVICE_ID_VIA_82C596 0x0596 | 1194 | #define PCI_DEVICE_ID_VIA_82C596 0x0596 |
1418 | #define PCI_DEVICE_ID_VIA_82C597_0 0x0597 | 1195 | #define PCI_DEVICE_ID_VIA_82C597_0 0x0597 |
1419 | #define PCI_DEVICE_ID_VIA_82C598_0 0x0598 | 1196 | #define PCI_DEVICE_ID_VIA_82C598_0 0x0598 |
1420 | #define PCI_DEVICE_ID_VIA_8601_0 0x0601 | 1197 | #define PCI_DEVICE_ID_VIA_8601_0 0x0601 |
1421 | #define PCI_DEVICE_ID_VIA_8605_0 0x0605 | 1198 | #define PCI_DEVICE_ID_VIA_8605_0 0x0605 |
1422 | #define PCI_DEVICE_ID_VIA_82C680 0x0680 | ||
1423 | #define PCI_DEVICE_ID_VIA_82C686 0x0686 | 1199 | #define PCI_DEVICE_ID_VIA_82C686 0x0686 |
1424 | #define PCI_DEVICE_ID_VIA_82C691_0 0x0691 | 1200 | #define PCI_DEVICE_ID_VIA_82C691_0 0x0691 |
1425 | #define PCI_DEVICE_ID_VIA_82C693 0x0693 | ||
1426 | #define PCI_DEVICE_ID_VIA_82C693_1 0x0698 | ||
1427 | #define PCI_DEVICE_ID_VIA_82C926 0x0926 | ||
1428 | #define PCI_DEVICE_ID_VIA_82C576_1 0x1571 | 1201 | #define PCI_DEVICE_ID_VIA_82C576_1 0x1571 |
1429 | #define PCI_DEVICE_ID_VIA_82C595_97 0x1595 | ||
1430 | #define PCI_DEVICE_ID_VIA_82C586_2 0x3038 | 1202 | #define PCI_DEVICE_ID_VIA_82C586_2 0x3038 |
1431 | #define PCI_DEVICE_ID_VIA_82C586_3 0x3040 | 1203 | #define PCI_DEVICE_ID_VIA_82C586_3 0x3040 |
1432 | #define PCI_DEVICE_ID_VIA_6305 0x3044 | ||
1433 | #define PCI_DEVICE_ID_VIA_82C596_3 0x3050 | 1204 | #define PCI_DEVICE_ID_VIA_82C596_3 0x3050 |
1434 | #define PCI_DEVICE_ID_VIA_82C596B_3 0x3051 | 1205 | #define PCI_DEVICE_ID_VIA_82C596B_3 0x3051 |
1435 | #define PCI_DEVICE_ID_VIA_82C686_4 0x3057 | 1206 | #define PCI_DEVICE_ID_VIA_82C686_4 0x3057 |
1436 | #define PCI_DEVICE_ID_VIA_82C686_5 0x3058 | 1207 | #define PCI_DEVICE_ID_VIA_82C686_5 0x3058 |
1437 | #define PCI_DEVICE_ID_VIA_8233_5 0x3059 | 1208 | #define PCI_DEVICE_ID_VIA_8233_5 0x3059 |
1438 | #define PCI_DEVICE_ID_VIA_8233_7 0x3065 | ||
1439 | #define PCI_DEVICE_ID_VIA_82C686_6 0x3068 | ||
1440 | #define PCI_DEVICE_ID_VIA_8233_0 0x3074 | 1209 | #define PCI_DEVICE_ID_VIA_8233_0 0x3074 |
1441 | #define PCI_DEVICE_ID_VIA_8633_0 0x3091 | 1210 | #define PCI_DEVICE_ID_VIA_8633_0 0x3091 |
1442 | #define PCI_DEVICE_ID_VIA_8367_0 0x3099 | 1211 | #define PCI_DEVICE_ID_VIA_8367_0 0x3099 |
@@ -1454,38 +1223,23 @@ | |||
1454 | #define PCI_DEVICE_ID_VIA_XN266 0x3156 | 1223 | #define PCI_DEVICE_ID_VIA_XN266 0x3156 |
1455 | #define PCI_DEVICE_ID_VIA_8754C_0 0x3168 | 1224 | #define PCI_DEVICE_ID_VIA_8754C_0 0x3168 |
1456 | #define PCI_DEVICE_ID_VIA_8235 0x3177 | 1225 | #define PCI_DEVICE_ID_VIA_8235 0x3177 |
1457 | #define PCI_DEVICE_ID_VIA_P4N333 0x3178 | ||
1458 | #define PCI_DEVICE_ID_VIA_8385_0 0x3188 | 1226 | #define PCI_DEVICE_ID_VIA_8385_0 0x3188 |
1459 | #define PCI_DEVICE_ID_VIA_8377_0 0x3189 | 1227 | #define PCI_DEVICE_ID_VIA_8377_0 0x3189 |
1460 | #define PCI_DEVICE_ID_VIA_8378_0 0x3205 | 1228 | #define PCI_DEVICE_ID_VIA_8378_0 0x3205 |
1461 | #define PCI_DEVICE_ID_VIA_8783_0 0x3208 | 1229 | #define PCI_DEVICE_ID_VIA_8783_0 0x3208 |
1462 | #define PCI_DEVICE_ID_VIA_P4M400 0x3209 | ||
1463 | #define PCI_DEVICE_ID_VIA_8237 0x3227 | 1230 | #define PCI_DEVICE_ID_VIA_8237 0x3227 |
1464 | #define PCI_DEVICE_ID_VIA_3296_0 0x0296 | 1231 | #define PCI_DEVICE_ID_VIA_3296_0 0x0296 |
1465 | #define PCI_DEVICE_ID_VIA_86C100A 0x6100 | ||
1466 | #define PCI_DEVICE_ID_VIA_8231 0x8231 | 1232 | #define PCI_DEVICE_ID_VIA_8231 0x8231 |
1467 | #define PCI_DEVICE_ID_VIA_8231_4 0x8235 | 1233 | #define PCI_DEVICE_ID_VIA_8231_4 0x8235 |
1468 | #define PCI_DEVICE_ID_VIA_8365_1 0x8305 | 1234 | #define PCI_DEVICE_ID_VIA_8365_1 0x8305 |
1469 | #define PCI_DEVICE_ID_VIA_8371_1 0x8391 | 1235 | #define PCI_DEVICE_ID_VIA_8371_1 0x8391 |
1470 | #define PCI_DEVICE_ID_VIA_8501_1 0x8501 | ||
1471 | #define PCI_DEVICE_ID_VIA_82C597_1 0x8597 | ||
1472 | #define PCI_DEVICE_ID_VIA_82C598_1 0x8598 | 1236 | #define PCI_DEVICE_ID_VIA_82C598_1 0x8598 |
1473 | #define PCI_DEVICE_ID_VIA_8601_1 0x8601 | ||
1474 | #define PCI_DEVICE_ID_VIA_8505_1 0x8605 | ||
1475 | #define PCI_DEVICE_ID_VIA_8633_1 0xB091 | ||
1476 | #define PCI_DEVICE_ID_VIA_8367_1 0xB099 | ||
1477 | #define PCI_DEVICE_ID_VIA_P4X266_1 0xB101 | ||
1478 | #define PCI_DEVICE_ID_VIA_8615_1 0xB103 | ||
1479 | #define PCI_DEVICE_ID_VIA_8361_1 0xB112 | ||
1480 | #define PCI_DEVICE_ID_VIA_8235_1 0xB168 | ||
1481 | #define PCI_DEVICE_ID_VIA_838X_1 0xB188 | 1237 | #define PCI_DEVICE_ID_VIA_838X_1 0xB188 |
1482 | #define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198 | 1238 | #define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198 |
1483 | 1239 | ||
1484 | #define PCI_VENDOR_ID_SIEMENS 0x110A | 1240 | #define PCI_VENDOR_ID_SIEMENS 0x110A |
1485 | #define PCI_DEVICE_ID_SIEMENS_DSCC4 0x2102 | 1241 | #define PCI_DEVICE_ID_SIEMENS_DSCC4 0x2102 |
1486 | 1242 | ||
1487 | #define PCI_VENDOR_ID_SMC2 0x1113 | ||
1488 | #define PCI_DEVICE_ID_SMC2_1211TX 0x1211 | ||
1489 | 1243 | ||
1490 | #define PCI_VENDOR_ID_VORTEX 0x1119 | 1244 | #define PCI_VENDOR_ID_VORTEX 0x1119 |
1491 | #define PCI_DEVICE_ID_VORTEX_GDT60x0 0x0000 | 1245 | #define PCI_DEVICE_ID_VORTEX_GDT60x0 0x0000 |
@@ -1508,18 +1262,6 @@ | |||
1508 | #define PCI_DEVICE_ID_VORTEX_GDT6557RP 0x0103 | 1262 | #define PCI_DEVICE_ID_VORTEX_GDT6557RP 0x0103 |
1509 | #define PCI_DEVICE_ID_VORTEX_GDT6x11RP 0x0104 | 1263 | #define PCI_DEVICE_ID_VORTEX_GDT6x11RP 0x0104 |
1510 | #define PCI_DEVICE_ID_VORTEX_GDT6x21RP 0x0105 | 1264 | #define PCI_DEVICE_ID_VORTEX_GDT6x21RP 0x0105 |
1511 | #define PCI_DEVICE_ID_VORTEX_GDT6x17RP1 0x0110 | ||
1512 | #define PCI_DEVICE_ID_VORTEX_GDT6x27RP1 0x0111 | ||
1513 | #define PCI_DEVICE_ID_VORTEX_GDT6537RP1 0x0112 | ||
1514 | #define PCI_DEVICE_ID_VORTEX_GDT6557RP1 0x0113 | ||
1515 | #define PCI_DEVICE_ID_VORTEX_GDT6x11RP1 0x0114 | ||
1516 | #define PCI_DEVICE_ID_VORTEX_GDT6x21RP1 0x0115 | ||
1517 | #define PCI_DEVICE_ID_VORTEX_GDT6x17RP2 0x0120 | ||
1518 | #define PCI_DEVICE_ID_VORTEX_GDT6x27RP2 0x0121 | ||
1519 | #define PCI_DEVICE_ID_VORTEX_GDT6537RP2 0x0122 | ||
1520 | #define PCI_DEVICE_ID_VORTEX_GDT6557RP2 0x0123 | ||
1521 | #define PCI_DEVICE_ID_VORTEX_GDT6x11RP2 0x0124 | ||
1522 | #define PCI_DEVICE_ID_VORTEX_GDT6x21RP2 0x0125 | ||
1523 | 1265 | ||
1524 | #define PCI_VENDOR_ID_EF 0x111a | 1266 | #define PCI_VENDOR_ID_EF 0x111a |
1525 | #define PCI_DEVICE_ID_EF_ATM_FPGA 0x0000 | 1267 | #define PCI_DEVICE_ID_EF_ATM_FPGA 0x0000 |
@@ -1531,21 +1273,15 @@ | |||
1531 | #define PCI_DEVICE_ID_IDT_IDT77201 0x0001 | 1273 | #define PCI_DEVICE_ID_IDT_IDT77201 0x0001 |
1532 | 1274 | ||
1533 | #define PCI_VENDOR_ID_FORE 0x1127 | 1275 | #define PCI_VENDOR_ID_FORE 0x1127 |
1534 | #define PCI_DEVICE_ID_FORE_PCA200PC 0x0210 | ||
1535 | #define PCI_DEVICE_ID_FORE_PCA200E 0x0300 | 1276 | #define PCI_DEVICE_ID_FORE_PCA200E 0x0300 |
1536 | 1277 | ||
1537 | #define PCI_VENDOR_ID_IMAGINGTECH 0x112f | ||
1538 | #define PCI_DEVICE_ID_IMAGINGTECH_ICPCI 0x0000 | ||
1539 | 1278 | ||
1540 | #define PCI_VENDOR_ID_PHILIPS 0x1131 | 1279 | #define PCI_VENDOR_ID_PHILIPS 0x1131 |
1541 | #define PCI_DEVICE_ID_PHILIPS_SAA7145 0x7145 | ||
1542 | #define PCI_DEVICE_ID_PHILIPS_SAA7146 0x7146 | 1280 | #define PCI_DEVICE_ID_PHILIPS_SAA7146 0x7146 |
1543 | #define PCI_DEVICE_ID_PHILIPS_SAA9730 0x9730 | 1281 | #define PCI_DEVICE_ID_PHILIPS_SAA9730 0x9730 |
1544 | 1282 | ||
1545 | #define PCI_VENDOR_ID_EICON 0x1133 | 1283 | #define PCI_VENDOR_ID_EICON 0x1133 |
1546 | #define PCI_DEVICE_ID_EICON_DIVA20PRO 0xe001 | ||
1547 | #define PCI_DEVICE_ID_EICON_DIVA20 0xe002 | 1284 | #define PCI_DEVICE_ID_EICON_DIVA20 0xe002 |
1548 | #define PCI_DEVICE_ID_EICON_DIVA20PRO_U 0xe003 | ||
1549 | #define PCI_DEVICE_ID_EICON_DIVA20_U 0xe004 | 1285 | #define PCI_DEVICE_ID_EICON_DIVA20_U 0xe004 |
1550 | #define PCI_DEVICE_ID_EICON_DIVA201 0xe005 | 1286 | #define PCI_DEVICE_ID_EICON_DIVA201 0xe005 |
1551 | #define PCI_DEVICE_ID_EICON_DIVA202 0xe00b | 1287 | #define PCI_DEVICE_ID_EICON_DIVA202 0xe00b |
@@ -1557,35 +1293,17 @@ | |||
1557 | #define PCI_VENDOR_ID_ZIATECH 0x1138 | 1293 | #define PCI_VENDOR_ID_ZIATECH 0x1138 |
1558 | #define PCI_DEVICE_ID_ZIATECH_5550_HC 0x5550 | 1294 | #define PCI_DEVICE_ID_ZIATECH_5550_HC 0x5550 |
1559 | 1295 | ||
1560 | #define PCI_VENDOR_ID_CYCLONE 0x113c | ||
1561 | #define PCI_DEVICE_ID_CYCLONE_SDK 0x0001 | ||
1562 | 1296 | ||
1563 | #define PCI_VENDOR_ID_ALLIANCE 0x1142 | ||
1564 | #define PCI_DEVICE_ID_ALLIANCE_PROMOTIO 0x3210 | ||
1565 | #define PCI_DEVICE_ID_ALLIANCE_PROVIDEO 0x6422 | ||
1566 | #define PCI_DEVICE_ID_ALLIANCE_AT24 0x6424 | ||
1567 | #define PCI_DEVICE_ID_ALLIANCE_AT3D 0x643d | ||
1568 | 1297 | ||
1569 | #define PCI_VENDOR_ID_SYSKONNECT 0x1148 | 1298 | #define PCI_VENDOR_ID_SYSKONNECT 0x1148 |
1570 | #define PCI_DEVICE_ID_SYSKONNECT_FP 0x4000 | ||
1571 | #define PCI_DEVICE_ID_SYSKONNECT_TR 0x4200 | 1299 | #define PCI_DEVICE_ID_SYSKONNECT_TR 0x4200 |
1572 | #define PCI_DEVICE_ID_SYSKONNECT_GE 0x4300 | 1300 | #define PCI_DEVICE_ID_SYSKONNECT_GE 0x4300 |
1573 | #define PCI_DEVICE_ID_SYSKONNECT_YU 0x4320 | 1301 | #define PCI_DEVICE_ID_SYSKONNECT_YU 0x4320 |
1574 | #define PCI_DEVICE_ID_SYSKONNECT_9DXX 0x4400 | 1302 | #define PCI_DEVICE_ID_SYSKONNECT_9DXX 0x4400 |
1575 | #define PCI_DEVICE_ID_SYSKONNECT_9MXX 0x4500 | 1303 | #define PCI_DEVICE_ID_SYSKONNECT_9MXX 0x4500 |
1576 | 1304 | ||
1577 | #define PCI_VENDOR_ID_VMIC 0x114a | ||
1578 | #define PCI_DEVICE_ID_VMIC_VME 0x7587 | ||
1579 | 1305 | ||
1580 | #define PCI_VENDOR_ID_DIGI 0x114f | 1306 | #define PCI_VENDOR_ID_DIGI 0x114f |
1581 | #define PCI_DEVICE_ID_DIGI_EPC 0x0002 | ||
1582 | #define PCI_DEVICE_ID_DIGI_RIGHTSWITCH 0x0003 | ||
1583 | #define PCI_DEVICE_ID_DIGI_XEM 0x0004 | ||
1584 | #define PCI_DEVICE_ID_DIGI_XR 0x0005 | ||
1585 | #define PCI_DEVICE_ID_DIGI_CX 0x0006 | ||
1586 | #define PCI_DEVICE_ID_DIGI_XRJ 0x0009 | ||
1587 | #define PCI_DEVICE_ID_DIGI_EPCJ 0x000a | ||
1588 | #define PCI_DEVICE_ID_DIGI_XR_920 0x0027 | ||
1589 | #define PCI_DEVICE_ID_DIGI_DF_M_IOM2_E 0x0070 | 1307 | #define PCI_DEVICE_ID_DIGI_DF_M_IOM2_E 0x0070 |
1590 | #define PCI_DEVICE_ID_DIGI_DF_M_E 0x0071 | 1308 | #define PCI_DEVICE_ID_DIGI_DF_M_E 0x0071 |
1591 | #define PCI_DEVICE_ID_DIGI_DF_M_IOM2_A 0x0072 | 1309 | #define PCI_DEVICE_ID_DIGI_DF_M_IOM2_A 0x0072 |
@@ -1595,23 +1313,15 @@ | |||
1595 | #define PCI_DEVICE_ID_NEO_2RJ45 0x00CA | 1313 | #define PCI_DEVICE_ID_NEO_2RJ45 0x00CA |
1596 | #define PCI_DEVICE_ID_NEO_2RJ45PRI 0x00CB | 1314 | #define PCI_DEVICE_ID_NEO_2RJ45PRI 0x00CB |
1597 | 1315 | ||
1598 | #define PCI_VENDOR_ID_MUTECH 0x1159 | ||
1599 | #define PCI_DEVICE_ID_MUTECH_MV1000 0x0001 | ||
1600 | 1316 | ||
1601 | #define PCI_VENDOR_ID_XIRCOM 0x115d | 1317 | #define PCI_VENDOR_ID_XIRCOM 0x115d |
1602 | #define PCI_DEVICE_ID_XIRCOM_X3201_ETH 0x0003 | ||
1603 | #define PCI_DEVICE_ID_XIRCOM_RBM56G 0x0101 | 1318 | #define PCI_DEVICE_ID_XIRCOM_RBM56G 0x0101 |
1604 | #define PCI_DEVICE_ID_XIRCOM_X3201_MDM 0x0103 | 1319 | #define PCI_DEVICE_ID_XIRCOM_X3201_MDM 0x0103 |
1605 | 1320 | ||
1606 | #define PCI_VENDOR_ID_RENDITION 0x1163 | ||
1607 | #define PCI_DEVICE_ID_RENDITION_VERITE 0x0001 | ||
1608 | #define PCI_DEVICE_ID_RENDITION_VERITE2100 0x2000 | ||
1609 | 1321 | ||
1610 | #define PCI_VENDOR_ID_SERVERWORKS 0x1166 | 1322 | #define PCI_VENDOR_ID_SERVERWORKS 0x1166 |
1611 | #define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008 | 1323 | #define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008 |
1612 | #define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 | 1324 | #define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 |
1613 | #define PCI_DEVICE_ID_SERVERWORKS_CIOB30 0x0010 | ||
1614 | #define PCI_DEVICE_ID_SERVERWORKS_CMIC_HE 0x0011 | ||
1615 | #define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017 | 1325 | #define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017 |
1616 | #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200 | 1326 | #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200 |
1617 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 | 1327 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 |
@@ -1621,13 +1331,7 @@ | |||
1621 | #define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE 0x0213 | 1331 | #define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE 0x0213 |
1622 | #define PCI_DEVICE_ID_SERVERWORKS_HT1000IDE 0x0214 | 1332 | #define PCI_DEVICE_ID_SERVERWORKS_HT1000IDE 0x0214 |
1623 | #define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2 0x0217 | 1333 | #define PCI_DEVICE_ID_SERVERWORKS_CSB6IDE2 0x0217 |
1624 | #define PCI_DEVICE_ID_SERVERWORKS_OSB4USB 0x0220 | ||
1625 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5USB PCI_DEVICE_ID_SERVERWORKS_OSB4USB | ||
1626 | #define PCI_DEVICE_ID_SERVERWORKS_CSB6USB 0x0221 | ||
1627 | #define PCI_DEVICE_ID_SERVERWORKS_CSB6LPC 0x0227 | 1334 | #define PCI_DEVICE_ID_SERVERWORKS_CSB6LPC 0x0227 |
1628 | #define PCI_DEVICE_ID_SERVERWORKS_GCLE 0x0225 | ||
1629 | #define PCI_DEVICE_ID_SERVERWORKS_GCLE2 0x0227 | ||
1630 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5ISA 0x0230 | ||
1631 | 1335 | ||
1632 | #define PCI_VENDOR_ID_SBE 0x1176 | 1336 | #define PCI_VENDOR_ID_SBE 0x1176 |
1633 | #define PCI_DEVICE_ID_SBE_WANXL100 0x0301 | 1337 | #define PCI_DEVICE_ID_SBE_WANXL100 0x0301 |
@@ -1638,17 +1342,12 @@ | |||
1638 | #define PCI_DEVICE_ID_TOSHIBA_PICCOLO 0x0102 | 1342 | #define PCI_DEVICE_ID_TOSHIBA_PICCOLO 0x0102 |
1639 | #define PCI_DEVICE_ID_TOSHIBA_PICCOLO_1 0x0103 | 1343 | #define PCI_DEVICE_ID_TOSHIBA_PICCOLO_1 0x0103 |
1640 | #define PCI_DEVICE_ID_TOSHIBA_PICCOLO_2 0x0105 | 1344 | #define PCI_DEVICE_ID_TOSHIBA_PICCOLO_2 0x0105 |
1641 | #define PCI_DEVICE_ID_TOSHIBA_601 0x0601 | ||
1642 | #define PCI_DEVICE_ID_TOSHIBA_TOPIC95 0x060a | 1345 | #define PCI_DEVICE_ID_TOSHIBA_TOPIC95 0x060a |
1643 | #define PCI_DEVICE_ID_TOSHIBA_TOPIC95_A 0x0603 | ||
1644 | #define PCI_DEVICE_ID_TOSHIBA_TOPIC95_B 0x060a | ||
1645 | #define PCI_DEVICE_ID_TOSHIBA_TOPIC97 0x060f | 1346 | #define PCI_DEVICE_ID_TOSHIBA_TOPIC97 0x060f |
1646 | #define PCI_DEVICE_ID_TOSHIBA_TOPIC100 0x0617 | 1347 | #define PCI_DEVICE_ID_TOSHIBA_TOPIC100 0x0617 |
1647 | 1348 | ||
1648 | #define PCI_VENDOR_ID_TOSHIBA_2 0x102f | 1349 | #define PCI_VENDOR_ID_TOSHIBA_2 0x102f |
1649 | #define PCI_DEVICE_ID_TOSHIBA_TX3927 0x000a | ||
1650 | #define PCI_DEVICE_ID_TOSHIBA_TC35815CF 0x0030 | 1350 | #define PCI_DEVICE_ID_TOSHIBA_TC35815CF 0x0030 |
1651 | #define PCI_DEVICE_ID_TOSHIBA_TX4927 0x0180 | ||
1652 | #define PCI_DEVICE_ID_TOSHIBA_TC86C001_MISC 0x0108 | 1351 | #define PCI_DEVICE_ID_TOSHIBA_TC86C001_MISC 0x0108 |
1653 | #define PCI_DEVICE_ID_TOSHIBA_SPIDER_NET 0x01b3 | 1352 | #define PCI_DEVICE_ID_TOSHIBA_SPIDER_NET 0x01b3 |
1654 | 1353 | ||
@@ -1663,7 +1362,6 @@ | |||
1663 | #define PCI_DEVICE_ID_DLINK_DGE510T 0x4c00 | 1362 | #define PCI_DEVICE_ID_DLINK_DGE510T 0x4c00 |
1664 | 1363 | ||
1665 | #define PCI_VENDOR_ID_ARTOP 0x1191 | 1364 | #define PCI_VENDOR_ID_ARTOP 0x1191 |
1666 | #define PCI_DEVICE_ID_ARTOP_ATP8400 0x0004 | ||
1667 | #define PCI_DEVICE_ID_ARTOP_ATP850UF 0x0005 | 1365 | #define PCI_DEVICE_ID_ARTOP_ATP850UF 0x0005 |
1668 | #define PCI_DEVICE_ID_ARTOP_ATP860 0x0006 | 1366 | #define PCI_DEVICE_ID_ARTOP_ATP860 0x0006 |
1669 | #define PCI_DEVICE_ID_ARTOP_ATP860R 0x0007 | 1367 | #define PCI_DEVICE_ID_ARTOP_ATP860R 0x0007 |
@@ -1676,16 +1374,11 @@ | |||
1676 | #define PCI_DEVICE_ID_ARTOP_AEC7612D 0x8040 | 1374 | #define PCI_DEVICE_ID_ARTOP_AEC7612D 0x8040 |
1677 | #define PCI_DEVICE_ID_ARTOP_AEC7612SUW 0x8050 | 1375 | #define PCI_DEVICE_ID_ARTOP_AEC7612SUW 0x8050 |
1678 | #define PCI_DEVICE_ID_ARTOP_8060 0x8060 | 1376 | #define PCI_DEVICE_ID_ARTOP_8060 0x8060 |
1679 | #define PCI_DEVICE_ID_ARTOP_AEC67160 0x8080 | ||
1680 | #define PCI_DEVICE_ID_ARTOP_AEC67160_2 0x8081 | ||
1681 | #define PCI_DEVICE_ID_ARTOP_AEC67162 0x808a | ||
1682 | 1377 | ||
1683 | #define PCI_VENDOR_ID_ZEITNET 0x1193 | 1378 | #define PCI_VENDOR_ID_ZEITNET 0x1193 |
1684 | #define PCI_DEVICE_ID_ZEITNET_1221 0x0001 | 1379 | #define PCI_DEVICE_ID_ZEITNET_1221 0x0001 |
1685 | #define PCI_DEVICE_ID_ZEITNET_1225 0x0002 | 1380 | #define PCI_DEVICE_ID_ZEITNET_1225 0x0002 |
1686 | 1381 | ||
1687 | #define PCI_VENDOR_ID_OMEGA 0x119b | ||
1688 | #define PCI_DEVICE_ID_OMEGA_82C092G 0x1221 | ||
1689 | 1382 | ||
1690 | #define PCI_VENDOR_ID_FUJITSU_ME 0x119e | 1383 | #define PCI_VENDOR_ID_FUJITSU_ME 0x119e |
1691 | #define PCI_DEVICE_ID_FUJITSU_FS155 0x0001 | 1384 | #define PCI_DEVICE_ID_FUJITSU_FS155 0x0001 |
@@ -1695,61 +1388,41 @@ | |||
1695 | #define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334 | 1388 | #define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334 |
1696 | 1389 | ||
1697 | #define PCI_VENDOR_ID_MARVELL 0x11ab | 1390 | #define PCI_VENDOR_ID_MARVELL 0x11ab |
1698 | #define PCI_DEVICE_ID_MARVELL_GT64011 0x4146 | ||
1699 | #define PCI_DEVICE_ID_MARVELL_GT64111 0x4146 | ||
1700 | #define PCI_DEVICE_ID_MARVELL_GT64260 0x6430 | 1391 | #define PCI_DEVICE_ID_MARVELL_GT64260 0x6430 |
1701 | #define PCI_DEVICE_ID_MARVELL_MV64360 0x6460 | 1392 | #define PCI_DEVICE_ID_MARVELL_MV64360 0x6460 |
1702 | #define PCI_DEVICE_ID_MARVELL_MV64460 0x6480 | 1393 | #define PCI_DEVICE_ID_MARVELL_MV64460 0x6480 |
1703 | #define PCI_DEVICE_ID_MARVELL_GT96100 0x9652 | 1394 | #define PCI_DEVICE_ID_MARVELL_GT96100 0x9652 |
1704 | #define PCI_DEVICE_ID_MARVELL_GT96100A 0x9653 | 1395 | #define PCI_DEVICE_ID_MARVELL_GT96100A 0x9653 |
1705 | 1396 | ||
1706 | #define PCI_VENDOR_ID_LITEON 0x11ad | ||
1707 | #define PCI_DEVICE_ID_LITEON_LNE100TX 0x0002 | ||
1708 | 1397 | ||
1709 | #define PCI_VENDOR_ID_V3 0x11b0 | 1398 | #define PCI_VENDOR_ID_V3 0x11b0 |
1710 | #define PCI_DEVICE_ID_V3_V960 0x0001 | 1399 | #define PCI_DEVICE_ID_V3_V960 0x0001 |
1711 | #define PCI_DEVICE_ID_V3_V350 0x0001 | ||
1712 | #define PCI_DEVICE_ID_V3_V961 0x0002 | ||
1713 | #define PCI_DEVICE_ID_V3_V351 0x0002 | 1400 | #define PCI_DEVICE_ID_V3_V351 0x0002 |
1714 | 1401 | ||
1715 | #define PCI_VENDOR_ID_NP 0x11bc | ||
1716 | #define PCI_DEVICE_ID_NP_PCI_FDDI 0x0001 | ||
1717 | 1402 | ||
1718 | #define PCI_VENDOR_ID_ATT 0x11c1 | 1403 | #define PCI_VENDOR_ID_ATT 0x11c1 |
1719 | #define PCI_DEVICE_ID_ATT_L56XMF 0x0440 | ||
1720 | #define PCI_DEVICE_ID_ATT_VENUS_MODEM 0x480 | 1404 | #define PCI_DEVICE_ID_ATT_VENUS_MODEM 0x480 |
1721 | 1405 | ||
1722 | #define PCI_VENDOR_ID_NEC2 0x11c3 /* NEC (2nd) */ | ||
1723 | 1406 | ||
1724 | #define PCI_VENDOR_ID_SPECIALIX 0x11cb | 1407 | #define PCI_VENDOR_ID_SPECIALIX 0x11cb |
1725 | #define PCI_DEVICE_ID_SPECIALIX_IO8 0x2000 | 1408 | #define PCI_DEVICE_ID_SPECIALIX_IO8 0x2000 |
1726 | #define PCI_DEVICE_ID_SPECIALIX_XIO 0x4000 | ||
1727 | #define PCI_DEVICE_ID_SPECIALIX_RIO 0x8000 | 1409 | #define PCI_DEVICE_ID_SPECIALIX_RIO 0x8000 |
1728 | #define PCI_SUBDEVICE_ID_SPECIALIX_SPEED4 0xa004 | 1410 | #define PCI_SUBDEVICE_ID_SPECIALIX_SPEED4 0xa004 |
1729 | 1411 | ||
1730 | #define PCI_VENDOR_ID_AURAVISION 0x11d1 | ||
1731 | #define PCI_DEVICE_ID_AURAVISION_VXP524 0x01f7 | ||
1732 | 1412 | ||
1733 | #define PCI_VENDOR_ID_ANALOG_DEVICES 0x11d4 | 1413 | #define PCI_VENDOR_ID_ANALOG_DEVICES 0x11d4 |
1734 | #define PCI_DEVICE_ID_AD1889JS 0x1889 | 1414 | #define PCI_DEVICE_ID_AD1889JS 0x1889 |
1735 | 1415 | ||
1736 | #define PCI_VENDOR_ID_IKON 0x11d5 | ||
1737 | #define PCI_DEVICE_ID_IKON_10115 0x0115 | ||
1738 | #define PCI_DEVICE_ID_IKON_10117 0x0117 | ||
1739 | 1416 | ||
1740 | #define PCI_VENDOR_ID_SEGA 0x11db | ||
1741 | #define PCI_DEVICE_ID_SEGA_BBA 0x1234 | 1417 | #define PCI_DEVICE_ID_SEGA_BBA 0x1234 |
1742 | 1418 | ||
1743 | #define PCI_VENDOR_ID_ZORAN 0x11de | 1419 | #define PCI_VENDOR_ID_ZORAN 0x11de |
1744 | #define PCI_DEVICE_ID_ZORAN_36057 0x6057 | 1420 | #define PCI_DEVICE_ID_ZORAN_36057 0x6057 |
1745 | #define PCI_DEVICE_ID_ZORAN_36120 0x6120 | 1421 | #define PCI_DEVICE_ID_ZORAN_36120 0x6120 |
1746 | 1422 | ||
1747 | #define PCI_VENDOR_ID_KINETIC 0x11f4 | ||
1748 | #define PCI_DEVICE_ID_KINETIC_2915 0x2915 | ||
1749 | 1423 | ||
1750 | #define PCI_VENDOR_ID_COMPEX 0x11f6 | 1424 | #define PCI_VENDOR_ID_COMPEX 0x11f6 |
1751 | #define PCI_DEVICE_ID_COMPEX_ENET100VG4 0x0112 | 1425 | #define PCI_DEVICE_ID_COMPEX_ENET100VG4 0x0112 |
1752 | #define PCI_DEVICE_ID_COMPEX_RL2000 0x1401 | ||
1753 | 1426 | ||
1754 | #define PCI_VENDOR_ID_RP 0x11fe | 1427 | #define PCI_VENDOR_ID_RP 0x11fe |
1755 | #define PCI_DEVICE_ID_RP32INTF 0x0001 | 1428 | #define PCI_DEVICE_ID_RP32INTF 0x0001 |
@@ -1763,7 +1436,6 @@ | |||
1763 | #define PCI_DEVICE_ID_RP16SNI 0x0009 | 1436 | #define PCI_DEVICE_ID_RP16SNI 0x0009 |
1764 | #define PCI_DEVICE_ID_RPP4 0x000A | 1437 | #define PCI_DEVICE_ID_RPP4 0x000A |
1765 | #define PCI_DEVICE_ID_RPP8 0x000B | 1438 | #define PCI_DEVICE_ID_RPP8 0x000B |
1766 | #define PCI_DEVICE_ID_RP8M 0x000C | ||
1767 | #define PCI_DEVICE_ID_RP4M 0x000D | 1439 | #define PCI_DEVICE_ID_RP4M 0x000D |
1768 | #define PCI_DEVICE_ID_RP2_232 0x000E | 1440 | #define PCI_DEVICE_ID_RP2_232 0x000E |
1769 | #define PCI_DEVICE_ID_RP2_422 0x000F | 1441 | #define PCI_DEVICE_ID_RP2_422 0x000F |
@@ -1791,10 +1463,6 @@ | |||
1791 | #define PCI_DEVICE_ID_PC300_TE_M_2 0x0320 | 1463 | #define PCI_DEVICE_ID_PC300_TE_M_2 0x0320 |
1792 | #define PCI_DEVICE_ID_PC300_TE_M_1 0x0321 | 1464 | #define PCI_DEVICE_ID_PC300_TE_M_1 0x0321 |
1793 | 1465 | ||
1794 | /* Allied Telesyn */ | ||
1795 | #define PCI_VENDOR_ID_AT 0x1259 | ||
1796 | #define PCI_SUBDEVICE_ID_AT_2701FX 0x2703 | ||
1797 | |||
1798 | #define PCI_VENDOR_ID_ESSENTIAL 0x120f | 1466 | #define PCI_VENDOR_ID_ESSENTIAL 0x120f |
1799 | #define PCI_DEVICE_ID_ESSENTIAL_ROADRUNNER 0x0001 | 1467 | #define PCI_DEVICE_ID_ESSENTIAL_ROADRUNNER 0x0001 |
1800 | 1468 | ||
@@ -1811,10 +1479,7 @@ | |||
1811 | #define PCI_DEVICE_ID_3DFX_VOODOO3 0x0005 | 1479 | #define PCI_DEVICE_ID_3DFX_VOODOO3 0x0005 |
1812 | #define PCI_DEVICE_ID_3DFX_VOODOO5 0x0009 | 1480 | #define PCI_DEVICE_ID_3DFX_VOODOO5 0x0009 |
1813 | 1481 | ||
1814 | #define PCI_VENDOR_ID_SIGMADES 0x1236 | ||
1815 | #define PCI_DEVICE_ID_SIGMADES_6425 0x6401 | ||
1816 | 1482 | ||
1817 | #define PCI_VENDOR_ID_CCUBE 0x123f | ||
1818 | 1483 | ||
1819 | #define PCI_VENDOR_ID_AVM 0x1244 | 1484 | #define PCI_VENDOR_ID_AVM 0x1244 |
1820 | #define PCI_DEVICE_ID_AVM_B1 0x0700 | 1485 | #define PCI_DEVICE_ID_AVM_B1 0x0700 |
@@ -1824,19 +1489,8 @@ | |||
1824 | #define PCI_DEVICE_ID_AVM_C2 0x1100 | 1489 | #define PCI_DEVICE_ID_AVM_C2 0x1100 |
1825 | #define PCI_DEVICE_ID_AVM_T1 0x1200 | 1490 | #define PCI_DEVICE_ID_AVM_T1 0x1200 |
1826 | 1491 | ||
1827 | #define PCI_VENDOR_ID_DIPIX 0x1246 | ||
1828 | 1492 | ||
1829 | #define PCI_VENDOR_ID_STALLION 0x124d | 1493 | #define PCI_VENDOR_ID_STALLION 0x124d |
1830 | #define PCI_DEVICE_ID_STALLION_ECHPCI832 0x0000 | ||
1831 | #define PCI_DEVICE_ID_STALLION_ECHPCI864 0x0002 | ||
1832 | #define PCI_DEVICE_ID_STALLION_EIOPCI 0x0003 | ||
1833 | |||
1834 | #define PCI_VENDOR_ID_OPTIBASE 0x1255 | ||
1835 | #define PCI_DEVICE_ID_OPTIBASE_FORGE 0x1110 | ||
1836 | #define PCI_DEVICE_ID_OPTIBASE_FUSION 0x1210 | ||
1837 | #define PCI_DEVICE_ID_OPTIBASE_VPLEX 0x2110 | ||
1838 | #define PCI_DEVICE_ID_OPTIBASE_VPLEXCC 0x2120 | ||
1839 | #define PCI_DEVICE_ID_OPTIBASE_VQUEST 0x2130 | ||
1840 | 1494 | ||
1841 | /* Allied Telesyn */ | 1495 | /* Allied Telesyn */ |
1842 | #define PCI_VENDOR_ID_AT 0x1259 | 1496 | #define PCI_VENDOR_ID_AT 0x1259 |
@@ -1845,7 +1499,6 @@ | |||
1845 | 1499 | ||
1846 | #define PCI_VENDOR_ID_ESS 0x125d | 1500 | #define PCI_VENDOR_ID_ESS 0x125d |
1847 | #define PCI_DEVICE_ID_ESS_ESS1968 0x1968 | 1501 | #define PCI_DEVICE_ID_ESS_ESS1968 0x1968 |
1848 | #define PCI_DEVICE_ID_ESS_AUDIOPCI 0x1969 | ||
1849 | #define PCI_DEVICE_ID_ESS_ESS1978 0x1978 | 1502 | #define PCI_DEVICE_ID_ESS_ESS1978 0x1978 |
1850 | #define PCI_DEVICE_ID_ESS_ALLEGRO_1 0x1988 | 1503 | #define PCI_DEVICE_ID_ESS_ALLEGRO_1 0x1988 |
1851 | #define PCI_DEVICE_ID_ESS_ALLEGRO 0x1989 | 1504 | #define PCI_DEVICE_ID_ESS_ALLEGRO 0x1989 |
@@ -1858,11 +1511,7 @@ | |||
1858 | 1511 | ||
1859 | #define PCI_VENDOR_ID_SATSAGEM 0x1267 | 1512 | #define PCI_VENDOR_ID_SATSAGEM 0x1267 |
1860 | #define PCI_DEVICE_ID_SATSAGEM_NICCY 0x1016 | 1513 | #define PCI_DEVICE_ID_SATSAGEM_NICCY 0x1016 |
1861 | #define PCI_DEVICE_ID_SATSAGEM_PCR2101 0x5352 | ||
1862 | #define PCI_DEVICE_ID_SATSAGEM_TELSATTURBO 0x5a4b | ||
1863 | 1514 | ||
1864 | #define PCI_VENDOR_ID_HUGHES 0x1273 | ||
1865 | #define PCI_DEVICE_ID_HUGHES_DIRECPC 0x0002 | ||
1866 | 1515 | ||
1867 | #define PCI_VENDOR_ID_ENSONIQ 0x1274 | 1516 | #define PCI_VENDOR_ID_ENSONIQ 0x1274 |
1868 | #define PCI_DEVICE_ID_ENSONIQ_CT5880 0x5880 | 1517 | #define PCI_DEVICE_ID_ENSONIQ_CT5880 0x5880 |
@@ -1883,13 +1532,10 @@ | |||
1883 | #define PCI_DEVICE_ID_ITE_IT8330G_0 0xe886 | 1532 | #define PCI_DEVICE_ID_ITE_IT8330G_0 0xe886 |
1884 | 1533 | ||
1885 | /* formerly Platform Tech */ | 1534 | /* formerly Platform Tech */ |
1886 | #define PCI_VENDOR_ID_ESS_OLD 0x1285 | ||
1887 | #define PCI_DEVICE_ID_ESS_ESS0100 0x0100 | 1535 | #define PCI_DEVICE_ID_ESS_ESS0100 0x0100 |
1888 | 1536 | ||
1889 | #define PCI_VENDOR_ID_ALTEON 0x12ae | 1537 | #define PCI_VENDOR_ID_ALTEON 0x12ae |
1890 | #define PCI_DEVICE_ID_ALTEON_ACENIC 0x0001 | ||
1891 | 1538 | ||
1892 | #define PCI_VENDOR_ID_USR 0x12B9 | ||
1893 | 1539 | ||
1894 | #define PCI_SUBVENDOR_ID_CONNECT_TECH 0x12c4 | 1540 | #define PCI_SUBVENDOR_ID_CONNECT_TECH 0x12c4 |
1895 | #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_232 0x0001 | 1541 | #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH8_232 0x0001 |
@@ -1904,8 +1550,6 @@ | |||
1904 | #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH081101V1 0x000A | 1550 | #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH081101V1 0x000A |
1905 | #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH041101V1 0x000B | 1551 | #define PCI_SUBDEVICE_ID_CONNECT_TECH_BH041101V1 0x000B |
1906 | 1552 | ||
1907 | #define PCI_VENDOR_ID_PICTUREL 0x12c5 | ||
1908 | #define PCI_DEVICE_ID_PICTUREL_PCIVST 0x0081 | ||
1909 | 1553 | ||
1910 | #define PCI_VENDOR_ID_NVIDIA_SGS 0x12d2 | 1554 | #define PCI_VENDOR_ID_NVIDIA_SGS 0x12d2 |
1911 | #define PCI_DEVICE_ID_NVIDIA_SGS_RIVA128 0x0018 | 1555 | #define PCI_DEVICE_ID_NVIDIA_SGS_RIVA128 0x0018 |
@@ -1927,8 +1571,6 @@ | |||
1927 | #define PCI_VENDOR_ID_ELECTRONICDESIGNGMBH 0x12f8 | 1571 | #define PCI_VENDOR_ID_ELECTRONICDESIGNGMBH 0x12f8 |
1928 | #define PCI_DEVICE_ID_LML_33R10 0x8a02 | 1572 | #define PCI_DEVICE_ID_LML_33R10 0x8a02 |
1929 | 1573 | ||
1930 | #define PCI_VENDOR_ID_CBOARDS 0x1307 | ||
1931 | #define PCI_DEVICE_ID_CBOARDS_DAS1602_16 0x0001 | ||
1932 | 1574 | ||
1933 | #define PCI_VENDOR_ID_SIIG 0x131f | 1575 | #define PCI_VENDOR_ID_SIIG 0x131f |
1934 | #define PCI_SUBVENDOR_ID_SIIG 0x131f | 1576 | #define PCI_SUBVENDOR_ID_SIIG 0x131f |
@@ -1972,7 +1614,6 @@ | |||
1972 | #define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 | 1614 | #define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 |
1973 | 1615 | ||
1974 | #define PCI_VENDOR_ID_RADISYS 0x1331 | 1616 | #define PCI_VENDOR_ID_RADISYS 0x1331 |
1975 | #define PCI_DEVICE_ID_RADISYS_ENP2611 0x0030 | ||
1976 | 1617 | ||
1977 | #define PCI_VENDOR_ID_DOMEX 0x134a | 1618 | #define PCI_VENDOR_ID_DOMEX 0x134a |
1978 | #define PCI_DEVICE_ID_DOMEX_DMX3191D 0x0001 | 1619 | #define PCI_DEVICE_ID_DOMEX_DMX3191D 0x0001 |
@@ -1980,8 +1621,6 @@ | |||
1980 | #define PCI_VENDOR_ID_QUATECH 0x135C | 1621 | #define PCI_VENDOR_ID_QUATECH 0x135C |
1981 | #define PCI_DEVICE_ID_QUATECH_QSC100 0x0010 | 1622 | #define PCI_DEVICE_ID_QUATECH_QSC100 0x0010 |
1982 | #define PCI_DEVICE_ID_QUATECH_DSC100 0x0020 | 1623 | #define PCI_DEVICE_ID_QUATECH_DSC100 0x0020 |
1983 | #define PCI_DEVICE_ID_QUATECH_DSC200 0x0030 | ||
1984 | #define PCI_DEVICE_ID_QUATECH_QSC200 0x0040 | ||
1985 | #define PCI_DEVICE_ID_QUATECH_ESC100D 0x0050 | 1624 | #define PCI_DEVICE_ID_QUATECH_ESC100D 0x0050 |
1986 | #define PCI_DEVICE_ID_QUATECH_ESC100M 0x0060 | 1625 | #define PCI_DEVICE_ID_QUATECH_ESC100M 0x0060 |
1987 | 1626 | ||
@@ -2000,7 +1639,6 @@ | |||
2000 | #define PCI_SUBDEVICE_ID_HYPERCOPE_ERGO 0x0106 | 1639 | #define PCI_SUBDEVICE_ID_HYPERCOPE_ERGO 0x0106 |
2001 | #define PCI_SUBDEVICE_ID_HYPERCOPE_METRO 0x0107 | 1640 | #define PCI_SUBDEVICE_ID_HYPERCOPE_METRO 0x0107 |
2002 | #define PCI_SUBDEVICE_ID_HYPERCOPE_CHAMP2 0x0108 | 1641 | #define PCI_SUBDEVICE_ID_HYPERCOPE_CHAMP2 0x0108 |
2003 | #define PCI_SUBDEVICE_ID_HYPERCOPE_PLEXUS 0x0109 | ||
2004 | 1642 | ||
2005 | #define PCI_VENDOR_ID_KAWASAKI 0x136b | 1643 | #define PCI_VENDOR_ID_KAWASAKI 0x136b |
2006 | #define PCI_DEVICE_ID_MCHIP_KL5A72002 0xff01 | 1644 | #define PCI_DEVICE_ID_MCHIP_KL5A72002 0xff01 |
@@ -2014,12 +1652,9 @@ | |||
2014 | #define PCI_DEVICE_ID_LMC_SSI 0x0005 | 1652 | #define PCI_DEVICE_ID_LMC_SSI 0x0005 |
2015 | #define PCI_DEVICE_ID_LMC_T1 0x0006 | 1653 | #define PCI_DEVICE_ID_LMC_T1 0x0006 |
2016 | 1654 | ||
2017 | #define PCI_VENDOR_ID_MARIAN 0x1382 | ||
2018 | #define PCI_DEVICE_ID_MARIAN_PRODIF_PLUS 0x2048 | ||
2019 | 1655 | ||
2020 | #define PCI_VENDOR_ID_NETGEAR 0x1385 | 1656 | #define PCI_VENDOR_ID_NETGEAR 0x1385 |
2021 | #define PCI_DEVICE_ID_NETGEAR_GA620 0x620a | 1657 | #define PCI_DEVICE_ID_NETGEAR_GA620 0x620a |
2022 | #define PCI_DEVICE_ID_NETGEAR_GA622 0x622a | ||
2023 | 1658 | ||
2024 | #define PCI_VENDOR_ID_APPLICOM 0x1389 | 1659 | #define PCI_VENDOR_ID_APPLICOM 0x1389 |
2025 | #define PCI_DEVICE_ID_APPLICOM_PCIGENERIC 0x0001 | 1660 | #define PCI_DEVICE_ID_APPLICOM_PCIGENERIC 0x0001 |
@@ -2042,9 +1677,6 @@ | |||
2042 | #define PCI_DEVICE_ID_MOXA_CP134U 0x1340 | 1677 | #define PCI_DEVICE_ID_MOXA_CP134U 0x1340 |
2043 | #define PCI_DEVICE_ID_MOXA_C168 0x1680 | 1678 | #define PCI_DEVICE_ID_MOXA_C168 0x1680 |
2044 | #define PCI_DEVICE_ID_MOXA_CP168U 0x1681 | 1679 | #define PCI_DEVICE_ID_MOXA_CP168U 0x1681 |
2045 | #define PCI_DEVICE_ID_MOXA_CP204J 0x2040 | ||
2046 | #define PCI_DEVICE_ID_MOXA_C218 0x2180 | ||
2047 | #define PCI_DEVICE_ID_MOXA_C320 0x3200 | ||
2048 | 1680 | ||
2049 | #define PCI_VENDOR_ID_CCD 0x1397 | 1681 | #define PCI_VENDOR_ID_CCD 0x1397 |
2050 | #define PCI_DEVICE_ID_CCD_2BD0 0x2bd0 | 1682 | #define PCI_DEVICE_ID_CCD_2BD0 0x2bd0 |
@@ -2065,9 +1697,7 @@ | |||
2065 | 1697 | ||
2066 | #define PCI_VENDOR_ID_MICROGATE 0x13c0 | 1698 | #define PCI_VENDOR_ID_MICROGATE 0x13c0 |
2067 | #define PCI_DEVICE_ID_MICROGATE_USC 0x0010 | 1699 | #define PCI_DEVICE_ID_MICROGATE_USC 0x0010 |
2068 | #define PCI_DEVICE_ID_MICROGATE_SCC 0x0020 | ||
2069 | #define PCI_DEVICE_ID_MICROGATE_SCA 0x0030 | 1700 | #define PCI_DEVICE_ID_MICROGATE_SCA 0x0030 |
2070 | #define PCI_DEVICE_ID_MICROGATE_USC2 0x0210 | ||
2071 | 1701 | ||
2072 | #define PCI_VENDOR_ID_3WARE 0x13C1 | 1702 | #define PCI_VENDOR_ID_3WARE 0x13C1 |
2073 | #define PCI_DEVICE_ID_3WARE_1000 0x1000 | 1703 | #define PCI_DEVICE_ID_3WARE_1000 0x1000 |
@@ -2118,10 +1748,6 @@ | |||
2118 | 1748 | ||
2119 | #define PCI_VENDOR_ID_SAMSUNG 0x144d | 1749 | #define PCI_VENDOR_ID_SAMSUNG 0x144d |
2120 | 1750 | ||
2121 | #define PCI_VENDOR_ID_AIRONET 0x14b9 | ||
2122 | #define PCI_DEVICE_ID_AIRONET_4800_1 0x0001 | ||
2123 | #define PCI_DEVICE_ID_AIRONET_4800 0x4500 // values switched? see | ||
2124 | #define PCI_DEVICE_ID_AIRONET_4500 0x4800 // drivers/net/aironet4500_card.c | ||
2125 | 1751 | ||
2126 | #define PCI_VENDOR_ID_TITAN 0x14D2 | 1752 | #define PCI_VENDOR_ID_TITAN 0x14D2 |
2127 | #define PCI_DEVICE_ID_TITAN_010L 0x8001 | 1753 | #define PCI_DEVICE_ID_TITAN_010L 0x8001 |
@@ -2140,8 +1766,6 @@ | |||
2140 | #define PCI_DEVICE_ID_PANACOM_QUADMODEM 0x0400 | 1766 | #define PCI_DEVICE_ID_PANACOM_QUADMODEM 0x0400 |
2141 | #define PCI_DEVICE_ID_PANACOM_DUALMODEM 0x0402 | 1767 | #define PCI_DEVICE_ID_PANACOM_DUALMODEM 0x0402 |
2142 | 1768 | ||
2143 | #define PCI_VENDOR_ID_SIPACKETS 0x14d9 | ||
2144 | #define PCI_DEVICE_ID_SP_HT 0x0010 | ||
2145 | 1769 | ||
2146 | #define PCI_VENDOR_ID_AFAVLAB 0x14db | 1770 | #define PCI_VENDOR_ID_AFAVLAB 0x14db |
2147 | #define PCI_DEVICE_ID_AFAVLAB_P028 0x2180 | 1771 | #define PCI_DEVICE_ID_AFAVLAB_P028 0x2180 |
@@ -2164,11 +1788,13 @@ | |||
2164 | #define PCI_DEVICE_ID_TIGON3_5721 0x1659 | 1788 | #define PCI_DEVICE_ID_TIGON3_5721 0x1659 |
2165 | #define PCI_DEVICE_ID_TIGON3_5705M 0x165d | 1789 | #define PCI_DEVICE_ID_TIGON3_5705M 0x165d |
2166 | #define PCI_DEVICE_ID_TIGON3_5705M_2 0x165e | 1790 | #define PCI_DEVICE_ID_TIGON3_5705M_2 0x165e |
1791 | #define PCI_DEVICE_ID_TIGON3_5714 0x1668 | ||
2167 | #define PCI_DEVICE_ID_TIGON3_5780 0x166a | 1792 | #define PCI_DEVICE_ID_TIGON3_5780 0x166a |
2168 | #define PCI_DEVICE_ID_TIGON3_5780S 0x166b | 1793 | #define PCI_DEVICE_ID_TIGON3_5780S 0x166b |
2169 | #define PCI_DEVICE_ID_TIGON3_5705F 0x166e | 1794 | #define PCI_DEVICE_ID_TIGON3_5705F 0x166e |
2170 | #define PCI_DEVICE_ID_TIGON3_5750 0x1676 | 1795 | #define PCI_DEVICE_ID_TIGON3_5750 0x1676 |
2171 | #define PCI_DEVICE_ID_TIGON3_5751 0x1677 | 1796 | #define PCI_DEVICE_ID_TIGON3_5751 0x1677 |
1797 | #define PCI_DEVICE_ID_TIGON3_5715 0x1678 | ||
2172 | #define PCI_DEVICE_ID_TIGON3_5750M 0x167c | 1798 | #define PCI_DEVICE_ID_TIGON3_5750M 0x167c |
2173 | #define PCI_DEVICE_ID_TIGON3_5751M 0x167d | 1799 | #define PCI_DEVICE_ID_TIGON3_5751M 0x167d |
2174 | #define PCI_DEVICE_ID_TIGON3_5751F 0x167e | 1800 | #define PCI_DEVICE_ID_TIGON3_5751F 0x167e |
@@ -2206,8 +1832,6 @@ | |||
2206 | 1832 | ||
2207 | #define PCI_VENDOR_ID_CHELSIO 0x1425 | 1833 | #define PCI_VENDOR_ID_CHELSIO 0x1425 |
2208 | 1834 | ||
2209 | #define PCI_VENDOR_ID_MIPS 0x153f | ||
2210 | #define PCI_DEVICE_ID_SOC_IT 0x0001 | ||
2211 | 1835 | ||
2212 | #define PCI_VENDOR_ID_SYBA 0x1592 | 1836 | #define PCI_VENDOR_ID_SYBA 0x1592 |
2213 | #define PCI_DEVICE_ID_SYBA_2P_EPP 0x0782 | 1837 | #define PCI_DEVICE_ID_SYBA_2P_EPP 0x0782 |
@@ -2227,15 +1851,7 @@ | |||
2227 | #define PCI_DEVICE_ID_MELLANOX_SINAI 0x6274 | 1851 | #define PCI_DEVICE_ID_MELLANOX_SINAI 0x6274 |
2228 | 1852 | ||
2229 | #define PCI_VENDOR_ID_PDC 0x15e9 | 1853 | #define PCI_VENDOR_ID_PDC 0x15e9 |
2230 | #define PCI_DEVICE_ID_PDC_1841 0x1841 | ||
2231 | 1854 | ||
2232 | #define PCI_VENDOR_ID_MACROLINK 0x15ed | ||
2233 | #define PCI_DEVICE_ID_MACROLINK_MCCS8 0x1000 | ||
2234 | #define PCI_DEVICE_ID_MACROLINK_MCCS 0x1001 | ||
2235 | #define PCI_DEVICE_ID_MACROLINK_MCCS8H 0x1002 | ||
2236 | #define PCI_DEVICE_ID_MACROLINK_MCCSH 0x1003 | ||
2237 | #define PCI_DEVICE_ID_MACROLINK_MCCR8 0x2000 | ||
2238 | #define PCI_DEVICE_ID_MACROLINK_MCCR 0x2001 | ||
2239 | 1855 | ||
2240 | #define PCI_VENDOR_ID_FARSITE 0x1619 | 1856 | #define PCI_VENDOR_ID_FARSITE 0x1619 |
2241 | #define PCI_DEVICE_ID_FARSITE_T2P 0x0400 | 1857 | #define PCI_DEVICE_ID_FARSITE_T2P 0x0400 |
@@ -2253,7 +1869,6 @@ | |||
2253 | #define PCI_DEVICE_ID_REVOLUTION 0x0044 | 1869 | #define PCI_DEVICE_ID_REVOLUTION 0x0044 |
2254 | 1870 | ||
2255 | #define PCI_VENDOR_ID_LINKSYS 0x1737 | 1871 | #define PCI_VENDOR_ID_LINKSYS 0x1737 |
2256 | #define PCI_DEVICE_ID_LINKSYS_EG1032 0x1032 | ||
2257 | #define PCI_DEVICE_ID_LINKSYS_EG1064 0x1064 | 1872 | #define PCI_DEVICE_ID_LINKSYS_EG1064 0x1064 |
2258 | 1873 | ||
2259 | #define PCI_VENDOR_ID_ALTIMA 0x173b | 1874 | #define PCI_VENDOR_ID_ALTIMA 0x173b |
@@ -2268,7 +1883,6 @@ | |||
2268 | #define PCI_DEVICE_ID_HERC_WIN 0x5732 | 1883 | #define PCI_DEVICE_ID_HERC_WIN 0x5732 |
2269 | #define PCI_DEVICE_ID_HERC_UNI 0x5832 | 1884 | #define PCI_DEVICE_ID_HERC_UNI 0x5832 |
2270 | 1885 | ||
2271 | #define PCI_VENDOR_ID_INFINICON 0x1820 | ||
2272 | 1886 | ||
2273 | #define PCI_VENDOR_ID_SITECOM 0x182d | 1887 | #define PCI_VENDOR_ID_SITECOM 0x182d |
2274 | #define PCI_DEVICE_ID_SITECOM_DC105V2 0x3069 | 1888 | #define PCI_DEVICE_ID_SITECOM_DC105V2 0x3069 |
@@ -2278,8 +1892,6 @@ | |||
2278 | #define PCI_VENDOR_ID_TDI 0x192E | 1892 | #define PCI_VENDOR_ID_TDI 0x192E |
2279 | #define PCI_DEVICE_ID_TDI_EHCI 0x0101 | 1893 | #define PCI_DEVICE_ID_TDI_EHCI 0x0101 |
2280 | 1894 | ||
2281 | #define PCI_VENDOR_ID_SYMPHONY 0x1c1c | ||
2282 | #define PCI_DEVICE_ID_SYMPHONY_101 0x0001 | ||
2283 | 1895 | ||
2284 | #define PCI_VENDOR_ID_TEKRAM 0x1de1 | 1896 | #define PCI_VENDOR_ID_TEKRAM 0x1de1 |
2285 | #define PCI_DEVICE_ID_TEKRAM_DC290 0xdc29 | 1897 | #define PCI_DEVICE_ID_TEKRAM_DC290 0xdc29 |
@@ -2288,70 +1900,33 @@ | |||
2288 | #define PCI_DEVICE_ID_HINT_VXPROII_IDE 0x8013 | 1900 | #define PCI_DEVICE_ID_HINT_VXPROII_IDE 0x8013 |
2289 | 1901 | ||
2290 | #define PCI_VENDOR_ID_3DLABS 0x3d3d | 1902 | #define PCI_VENDOR_ID_3DLABS 0x3d3d |
2291 | #define PCI_DEVICE_ID_3DLABS_300SX 0x0001 | ||
2292 | #define PCI_DEVICE_ID_3DLABS_500TX 0x0002 | ||
2293 | #define PCI_DEVICE_ID_3DLABS_DELTA 0x0003 | ||
2294 | #define PCI_DEVICE_ID_3DLABS_PERMEDIA 0x0004 | ||
2295 | #define PCI_DEVICE_ID_3DLABS_MX 0x0006 | ||
2296 | #define PCI_DEVICE_ID_3DLABS_PERMEDIA2 0x0007 | 1903 | #define PCI_DEVICE_ID_3DLABS_PERMEDIA2 0x0007 |
2297 | #define PCI_DEVICE_ID_3DLABS_GAMMA 0x0008 | ||
2298 | #define PCI_DEVICE_ID_3DLABS_PERMEDIA2V 0x0009 | 1904 | #define PCI_DEVICE_ID_3DLABS_PERMEDIA2V 0x0009 |
2299 | 1905 | ||
2300 | #define PCI_VENDOR_ID_AVANCE 0x4005 | ||
2301 | #define PCI_DEVICE_ID_AVANCE_ALG2064 0x2064 | ||
2302 | #define PCI_DEVICE_ID_AVANCE_2302 0x2302 | ||
2303 | 1906 | ||
2304 | #define PCI_VENDOR_ID_AKS 0x416c | 1907 | #define PCI_VENDOR_ID_AKS 0x416c |
2305 | #define PCI_DEVICE_ID_AKS_ALADDINCARD 0x0100 | 1908 | #define PCI_DEVICE_ID_AKS_ALADDINCARD 0x0100 |
2306 | #define PCI_DEVICE_ID_AKS_CPC 0x0200 | ||
2307 | 1909 | ||
2308 | #define PCI_VENDOR_ID_REDCREEK 0x4916 | ||
2309 | #define PCI_DEVICE_ID_RC45 0x1960 | ||
2310 | 1910 | ||
2311 | #define PCI_VENDOR_ID_NETVIN 0x4a14 | ||
2312 | #define PCI_DEVICE_ID_NETVIN_NV5000SC 0x5000 | ||
2313 | 1911 | ||
2314 | #define PCI_VENDOR_ID_S3 0x5333 | 1912 | #define PCI_VENDOR_ID_S3 0x5333 |
2315 | #define PCI_DEVICE_ID_S3_PLATO_PXS 0x0551 | ||
2316 | #define PCI_DEVICE_ID_S3_ViRGE 0x5631 | ||
2317 | #define PCI_DEVICE_ID_S3_TRIO 0x8811 | 1913 | #define PCI_DEVICE_ID_S3_TRIO 0x8811 |
2318 | #define PCI_DEVICE_ID_S3_AURORA64VP 0x8812 | ||
2319 | #define PCI_DEVICE_ID_S3_TRIO64UVP 0x8814 | ||
2320 | #define PCI_DEVICE_ID_S3_ViRGE_VX 0x883d | ||
2321 | #define PCI_DEVICE_ID_S3_868 0x8880 | 1914 | #define PCI_DEVICE_ID_S3_868 0x8880 |
2322 | #define PCI_DEVICE_ID_S3_928 0x88b0 | ||
2323 | #define PCI_DEVICE_ID_S3_864_1 0x88c0 | ||
2324 | #define PCI_DEVICE_ID_S3_864_2 0x88c1 | ||
2325 | #define PCI_DEVICE_ID_S3_964_1 0x88d0 | ||
2326 | #define PCI_DEVICE_ID_S3_964_2 0x88d1 | ||
2327 | #define PCI_DEVICE_ID_S3_968 0x88f0 | 1915 | #define PCI_DEVICE_ID_S3_968 0x88f0 |
2328 | #define PCI_DEVICE_ID_S3_TRIO64V2 0x8901 | ||
2329 | #define PCI_DEVICE_ID_S3_PLATO_PXG 0x8902 | ||
2330 | #define PCI_DEVICE_ID_S3_ViRGE_DXGX 0x8a01 | ||
2331 | #define PCI_DEVICE_ID_S3_ViRGE_GX2 0x8a10 | ||
2332 | #define PCI_DEVICE_ID_S3_SAVAGE4 0x8a25 | 1916 | #define PCI_DEVICE_ID_S3_SAVAGE4 0x8a25 |
2333 | #define PCI_DEVICE_ID_S3_ViRGE_MX 0x8c01 | ||
2334 | #define PCI_DEVICE_ID_S3_ViRGE_MXP 0x8c02 | ||
2335 | #define PCI_DEVICE_ID_S3_ViRGE_MXPMV 0x8c03 | ||
2336 | #define PCI_DEVICE_ID_S3_PROSAVAGE8 0x8d04 | 1917 | #define PCI_DEVICE_ID_S3_PROSAVAGE8 0x8d04 |
2337 | #define PCI_DEVICE_ID_S3_SONICVIBES 0xca00 | 1918 | #define PCI_DEVICE_ID_S3_SONICVIBES 0xca00 |
2338 | 1919 | ||
2339 | #define PCI_VENDOR_ID_DUNORD 0x5544 | 1920 | #define PCI_VENDOR_ID_DUNORD 0x5544 |
2340 | #define PCI_DEVICE_ID_DUNORD_I3000 0x0001 | 1921 | #define PCI_DEVICE_ID_DUNORD_I3000 0x0001 |
2341 | 1922 | ||
1923 | |||
2342 | #define PCI_VENDOR_ID_DCI 0x6666 | 1924 | #define PCI_VENDOR_ID_DCI 0x6666 |
2343 | #define PCI_DEVICE_ID_DCI_PCCOM4 0x0001 | 1925 | #define PCI_DEVICE_ID_DCI_PCCOM4 0x0001 |
2344 | #define PCI_DEVICE_ID_DCI_PCCOM8 0x0002 | 1926 | #define PCI_DEVICE_ID_DCI_PCCOM8 0x0002 |
2345 | 1927 | ||
2346 | #define PCI_VENDOR_ID_DUNORD 0x5544 | ||
2347 | #define PCI_DEVICE_ID_DUNORD_I3000 0x0001 | ||
2348 | |||
2349 | #define PCI_VENDOR_ID_GENROCO 0x5555 | ||
2350 | #define PCI_DEVICE_ID_GENROCO_HFP832 0x0003 | ||
2351 | |||
2352 | #define PCI_VENDOR_ID_INTEL 0x8086 | 1928 | #define PCI_VENDOR_ID_INTEL 0x8086 |
2353 | #define PCI_DEVICE_ID_INTEL_EESSC 0x0008 | 1929 | #define PCI_DEVICE_ID_INTEL_EESSC 0x0008 |
2354 | #define PCI_DEVICE_ID_INTEL_21145 0x0039 | ||
2355 | #define PCI_DEVICE_ID_INTEL_PXHD_0 0x0320 | 1930 | #define PCI_DEVICE_ID_INTEL_PXHD_0 0x0320 |
2356 | #define PCI_DEVICE_ID_INTEL_PXHD_1 0x0321 | 1931 | #define PCI_DEVICE_ID_INTEL_PXHD_1 0x0321 |
2357 | #define PCI_DEVICE_ID_INTEL_PXH_0 0x0329 | 1932 | #define PCI_DEVICE_ID_INTEL_PXH_0 0x0329 |
@@ -2360,30 +1935,17 @@ | |||
2360 | #define PCI_DEVICE_ID_INTEL_82375 0x0482 | 1935 | #define PCI_DEVICE_ID_INTEL_82375 0x0482 |
2361 | #define PCI_DEVICE_ID_INTEL_82424 0x0483 | 1936 | #define PCI_DEVICE_ID_INTEL_82424 0x0483 |
2362 | #define PCI_DEVICE_ID_INTEL_82378 0x0484 | 1937 | #define PCI_DEVICE_ID_INTEL_82378 0x0484 |
2363 | #define PCI_DEVICE_ID_INTEL_82430 0x0486 | ||
2364 | #define PCI_DEVICE_ID_INTEL_82434 0x04a3 | ||
2365 | #define PCI_DEVICE_ID_INTEL_I960 0x0960 | 1938 | #define PCI_DEVICE_ID_INTEL_I960 0x0960 |
2366 | #define PCI_DEVICE_ID_INTEL_I960RM 0x0962 | 1939 | #define PCI_DEVICE_ID_INTEL_I960RM 0x0962 |
2367 | #define PCI_DEVICE_ID_INTEL_82562ET 0x1031 | ||
2368 | #define PCI_DEVICE_ID_INTEL_82801CAM 0x1038 | ||
2369 | #define PCI_DEVICE_ID_INTEL_82815_MC 0x1130 | 1940 | #define PCI_DEVICE_ID_INTEL_82815_MC 0x1130 |
2370 | #define PCI_DEVICE_ID_INTEL_82815_AB 0x1131 | ||
2371 | #define PCI_DEVICE_ID_INTEL_82815_CGC 0x1132 | 1941 | #define PCI_DEVICE_ID_INTEL_82815_CGC 0x1132 |
2372 | #define PCI_DEVICE_ID_INTEL_82559ER 0x1209 | ||
2373 | #define PCI_DEVICE_ID_INTEL_82092AA_0 0x1221 | 1942 | #define PCI_DEVICE_ID_INTEL_82092AA_0 0x1221 |
2374 | #define PCI_DEVICE_ID_INTEL_82092AA_1 0x1222 | ||
2375 | #define PCI_DEVICE_ID_INTEL_7116 0x1223 | ||
2376 | #define PCI_DEVICE_ID_INTEL_7505_0 0x2550 | 1943 | #define PCI_DEVICE_ID_INTEL_7505_0 0x2550 |
2377 | #define PCI_DEVICE_ID_INTEL_7505_1 0x2552 | ||
2378 | #define PCI_DEVICE_ID_INTEL_7205_0 0x255d | 1944 | #define PCI_DEVICE_ID_INTEL_7205_0 0x255d |
2379 | #define PCI_DEVICE_ID_INTEL_82596 0x1226 | ||
2380 | #define PCI_DEVICE_ID_INTEL_82865 0x1227 | ||
2381 | #define PCI_DEVICE_ID_INTEL_82557 0x1229 | ||
2382 | #define PCI_DEVICE_ID_INTEL_82437 0x122d | 1945 | #define PCI_DEVICE_ID_INTEL_82437 0x122d |
2383 | #define PCI_DEVICE_ID_INTEL_82371FB_0 0x122e | 1946 | #define PCI_DEVICE_ID_INTEL_82371FB_0 0x122e |
2384 | #define PCI_DEVICE_ID_INTEL_82371FB_1 0x1230 | 1947 | #define PCI_DEVICE_ID_INTEL_82371FB_1 0x1230 |
2385 | #define PCI_DEVICE_ID_INTEL_82371MX 0x1234 | 1948 | #define PCI_DEVICE_ID_INTEL_82371MX 0x1234 |
2386 | #define PCI_DEVICE_ID_INTEL_82437MX 0x1235 | ||
2387 | #define PCI_DEVICE_ID_INTEL_82441 0x1237 | 1949 | #define PCI_DEVICE_ID_INTEL_82441 0x1237 |
2388 | #define PCI_DEVICE_ID_INTEL_82380FB 0x124b | 1950 | #define PCI_DEVICE_ID_INTEL_82380FB 0x124b |
2389 | #define PCI_DEVICE_ID_INTEL_82439 0x1250 | 1951 | #define PCI_DEVICE_ID_INTEL_82439 0x1250 |
@@ -2392,83 +1954,53 @@ | |||
2392 | #define PCI_DEVICE_ID_INTEL_82845_HB 0x1a30 | 1954 | #define PCI_DEVICE_ID_INTEL_82845_HB 0x1a30 |
2393 | #define PCI_DEVICE_ID_INTEL_82801AA_0 0x2410 | 1955 | #define PCI_DEVICE_ID_INTEL_82801AA_0 0x2410 |
2394 | #define PCI_DEVICE_ID_INTEL_82801AA_1 0x2411 | 1956 | #define PCI_DEVICE_ID_INTEL_82801AA_1 0x2411 |
2395 | #define PCI_DEVICE_ID_INTEL_82801AA_2 0x2412 | ||
2396 | #define PCI_DEVICE_ID_INTEL_82801AA_3 0x2413 | 1957 | #define PCI_DEVICE_ID_INTEL_82801AA_3 0x2413 |
2397 | #define PCI_DEVICE_ID_INTEL_82801AA_5 0x2415 | 1958 | #define PCI_DEVICE_ID_INTEL_82801AA_5 0x2415 |
2398 | #define PCI_DEVICE_ID_INTEL_82801AA_6 0x2416 | 1959 | #define PCI_DEVICE_ID_INTEL_82801AA_6 0x2416 |
2399 | #define PCI_DEVICE_ID_INTEL_82801AA_8 0x2418 | 1960 | #define PCI_DEVICE_ID_INTEL_82801AA_8 0x2418 |
2400 | #define PCI_DEVICE_ID_INTEL_82801AB_0 0x2420 | 1961 | #define PCI_DEVICE_ID_INTEL_82801AB_0 0x2420 |
2401 | #define PCI_DEVICE_ID_INTEL_82801AB_1 0x2421 | 1962 | #define PCI_DEVICE_ID_INTEL_82801AB_1 0x2421 |
2402 | #define PCI_DEVICE_ID_INTEL_82801AB_2 0x2422 | ||
2403 | #define PCI_DEVICE_ID_INTEL_82801AB_3 0x2423 | 1963 | #define PCI_DEVICE_ID_INTEL_82801AB_3 0x2423 |
2404 | #define PCI_DEVICE_ID_INTEL_82801AB_5 0x2425 | 1964 | #define PCI_DEVICE_ID_INTEL_82801AB_5 0x2425 |
2405 | #define PCI_DEVICE_ID_INTEL_82801AB_6 0x2426 | 1965 | #define PCI_DEVICE_ID_INTEL_82801AB_6 0x2426 |
2406 | #define PCI_DEVICE_ID_INTEL_82801AB_8 0x2428 | 1966 | #define PCI_DEVICE_ID_INTEL_82801AB_8 0x2428 |
2407 | #define PCI_DEVICE_ID_INTEL_82801BA_0 0x2440 | 1967 | #define PCI_DEVICE_ID_INTEL_82801BA_0 0x2440 |
2408 | #define PCI_DEVICE_ID_INTEL_82801BA_1 0x2442 | ||
2409 | #define PCI_DEVICE_ID_INTEL_82801BA_2 0x2443 | 1968 | #define PCI_DEVICE_ID_INTEL_82801BA_2 0x2443 |
2410 | #define PCI_DEVICE_ID_INTEL_82801BA_3 0x2444 | ||
2411 | #define PCI_DEVICE_ID_INTEL_82801BA_4 0x2445 | 1969 | #define PCI_DEVICE_ID_INTEL_82801BA_4 0x2445 |
2412 | #define PCI_DEVICE_ID_INTEL_82801BA_5 0x2446 | ||
2413 | #define PCI_DEVICE_ID_INTEL_82801BA_6 0x2448 | 1970 | #define PCI_DEVICE_ID_INTEL_82801BA_6 0x2448 |
2414 | #define PCI_DEVICE_ID_INTEL_82801BA_7 0x2449 | ||
2415 | #define PCI_DEVICE_ID_INTEL_82801BA_8 0x244a | 1971 | #define PCI_DEVICE_ID_INTEL_82801BA_8 0x244a |
2416 | #define PCI_DEVICE_ID_INTEL_82801BA_9 0x244b | 1972 | #define PCI_DEVICE_ID_INTEL_82801BA_9 0x244b |
2417 | #define PCI_DEVICE_ID_INTEL_82801BA_10 0x244c | 1973 | #define PCI_DEVICE_ID_INTEL_82801BA_10 0x244c |
2418 | #define PCI_DEVICE_ID_INTEL_82801BA_11 0x244e | 1974 | #define PCI_DEVICE_ID_INTEL_82801BA_11 0x244e |
2419 | #define PCI_DEVICE_ID_INTEL_82801E_0 0x2450 | 1975 | #define PCI_DEVICE_ID_INTEL_82801E_0 0x2450 |
2420 | #define PCI_DEVICE_ID_INTEL_82801E_2 0x2452 | ||
2421 | #define PCI_DEVICE_ID_INTEL_82801E_3 0x2453 | ||
2422 | #define PCI_DEVICE_ID_INTEL_82801E_9 0x2459 | ||
2423 | #define PCI_DEVICE_ID_INTEL_82801E_11 0x245b | 1976 | #define PCI_DEVICE_ID_INTEL_82801E_11 0x245b |
2424 | #define PCI_DEVICE_ID_INTEL_82801E_13 0x245d | ||
2425 | #define PCI_DEVICE_ID_INTEL_82801E_14 0x245e | ||
2426 | #define PCI_DEVICE_ID_INTEL_82801CA_0 0x2480 | 1977 | #define PCI_DEVICE_ID_INTEL_82801CA_0 0x2480 |
2427 | #define PCI_DEVICE_ID_INTEL_82801CA_2 0x2482 | ||
2428 | #define PCI_DEVICE_ID_INTEL_82801CA_3 0x2483 | 1978 | #define PCI_DEVICE_ID_INTEL_82801CA_3 0x2483 |
2429 | #define PCI_DEVICE_ID_INTEL_82801CA_4 0x2484 | ||
2430 | #define PCI_DEVICE_ID_INTEL_82801CA_5 0x2485 | 1979 | #define PCI_DEVICE_ID_INTEL_82801CA_5 0x2485 |
2431 | #define PCI_DEVICE_ID_INTEL_82801CA_6 0x2486 | 1980 | #define PCI_DEVICE_ID_INTEL_82801CA_6 0x2486 |
2432 | #define PCI_DEVICE_ID_INTEL_82801CA_7 0x2487 | ||
2433 | #define PCI_DEVICE_ID_INTEL_82801CA_10 0x248a | 1981 | #define PCI_DEVICE_ID_INTEL_82801CA_10 0x248a |
2434 | #define PCI_DEVICE_ID_INTEL_82801CA_11 0x248b | 1982 | #define PCI_DEVICE_ID_INTEL_82801CA_11 0x248b |
2435 | #define PCI_DEVICE_ID_INTEL_82801CA_12 0x248c | 1983 | #define PCI_DEVICE_ID_INTEL_82801CA_12 0x248c |
2436 | #define PCI_DEVICE_ID_INTEL_82801DB_0 0x24c0 | 1984 | #define PCI_DEVICE_ID_INTEL_82801DB_0 0x24c0 |
2437 | #define PCI_DEVICE_ID_INTEL_82801DB_1 0x24c1 | 1985 | #define PCI_DEVICE_ID_INTEL_82801DB_1 0x24c1 |
2438 | #define PCI_DEVICE_ID_INTEL_82801DB_2 0x24c2 | ||
2439 | #define PCI_DEVICE_ID_INTEL_82801DB_3 0x24c3 | 1986 | #define PCI_DEVICE_ID_INTEL_82801DB_3 0x24c3 |
2440 | #define PCI_DEVICE_ID_INTEL_82801DB_4 0x24c4 | ||
2441 | #define PCI_DEVICE_ID_INTEL_82801DB_5 0x24c5 | 1987 | #define PCI_DEVICE_ID_INTEL_82801DB_5 0x24c5 |
2442 | #define PCI_DEVICE_ID_INTEL_82801DB_6 0x24c6 | 1988 | #define PCI_DEVICE_ID_INTEL_82801DB_6 0x24c6 |
2443 | #define PCI_DEVICE_ID_INTEL_82801DB_7 0x24c7 | ||
2444 | #define PCI_DEVICE_ID_INTEL_82801DB_9 0x24c9 | 1989 | #define PCI_DEVICE_ID_INTEL_82801DB_9 0x24c9 |
2445 | #define PCI_DEVICE_ID_INTEL_82801DB_10 0x24ca | 1990 | #define PCI_DEVICE_ID_INTEL_82801DB_10 0x24ca |
2446 | #define PCI_DEVICE_ID_INTEL_82801DB_11 0x24cb | 1991 | #define PCI_DEVICE_ID_INTEL_82801DB_11 0x24cb |
2447 | #define PCI_DEVICE_ID_INTEL_82801DB_12 0x24cc | 1992 | #define PCI_DEVICE_ID_INTEL_82801DB_12 0x24cc |
2448 | #define PCI_DEVICE_ID_INTEL_82801DB_13 0x24cd | ||
2449 | #define PCI_DEVICE_ID_INTEL_82801EB_0 0x24d0 | 1993 | #define PCI_DEVICE_ID_INTEL_82801EB_0 0x24d0 |
2450 | #define PCI_DEVICE_ID_INTEL_82801EB_1 0x24d1 | 1994 | #define PCI_DEVICE_ID_INTEL_82801EB_1 0x24d1 |
2451 | #define PCI_DEVICE_ID_INTEL_82801EB_2 0x24d2 | ||
2452 | #define PCI_DEVICE_ID_INTEL_82801EB_3 0x24d3 | 1995 | #define PCI_DEVICE_ID_INTEL_82801EB_3 0x24d3 |
2453 | #define PCI_DEVICE_ID_INTEL_82801EB_4 0x24d4 | ||
2454 | #define PCI_DEVICE_ID_INTEL_82801EB_5 0x24d5 | 1996 | #define PCI_DEVICE_ID_INTEL_82801EB_5 0x24d5 |
2455 | #define PCI_DEVICE_ID_INTEL_82801EB_6 0x24d6 | 1997 | #define PCI_DEVICE_ID_INTEL_82801EB_6 0x24d6 |
2456 | #define PCI_DEVICE_ID_INTEL_82801EB_7 0x24d7 | ||
2457 | #define PCI_DEVICE_ID_INTEL_82801EB_11 0x24db | 1998 | #define PCI_DEVICE_ID_INTEL_82801EB_11 0x24db |
2458 | #define PCI_DEVICE_ID_INTEL_82801EB_13 0x24dd | ||
2459 | #define PCI_DEVICE_ID_INTEL_ESB_1 0x25a1 | 1999 | #define PCI_DEVICE_ID_INTEL_ESB_1 0x25a1 |
2460 | #define PCI_DEVICE_ID_INTEL_ESB_2 0x25a2 | 2000 | #define PCI_DEVICE_ID_INTEL_ESB_2 0x25a2 |
2461 | #define PCI_DEVICE_ID_INTEL_ESB_3 0x25a3 | ||
2462 | #define PCI_DEVICE_ID_INTEL_ESB_31 0x25b0 | ||
2463 | #define PCI_DEVICE_ID_INTEL_ESB_4 0x25a4 | 2001 | #define PCI_DEVICE_ID_INTEL_ESB_4 0x25a4 |
2464 | #define PCI_DEVICE_ID_INTEL_ESB_5 0x25a6 | 2002 | #define PCI_DEVICE_ID_INTEL_ESB_5 0x25a6 |
2465 | #define PCI_DEVICE_ID_INTEL_ESB_6 0x25a7 | ||
2466 | #define PCI_DEVICE_ID_INTEL_ESB_7 0x25a9 | ||
2467 | #define PCI_DEVICE_ID_INTEL_ESB_8 0x25aa | ||
2468 | #define PCI_DEVICE_ID_INTEL_ESB_9 0x25ab | 2003 | #define PCI_DEVICE_ID_INTEL_ESB_9 0x25ab |
2469 | #define PCI_DEVICE_ID_INTEL_ESB_11 0x25ac | ||
2470 | #define PCI_DEVICE_ID_INTEL_ESB_12 0x25ad | ||
2471 | #define PCI_DEVICE_ID_INTEL_ESB_13 0x25ae | ||
2472 | #define PCI_DEVICE_ID_INTEL_82820_HB 0x2500 | 2004 | #define PCI_DEVICE_ID_INTEL_82820_HB 0x2500 |
2473 | #define PCI_DEVICE_ID_INTEL_82820_UP_HB 0x2501 | 2005 | #define PCI_DEVICE_ID_INTEL_82820_UP_HB 0x2501 |
2474 | #define PCI_DEVICE_ID_INTEL_82850_HB 0x2530 | 2006 | #define PCI_DEVICE_ID_INTEL_82850_HB 0x2530 |
@@ -2478,7 +2010,6 @@ | |||
2478 | #define PCI_DEVICE_ID_INTEL_82865_HB 0x2570 | 2010 | #define PCI_DEVICE_ID_INTEL_82865_HB 0x2570 |
2479 | #define PCI_DEVICE_ID_INTEL_82865_IG 0x2572 | 2011 | #define PCI_DEVICE_ID_INTEL_82865_IG 0x2572 |
2480 | #define PCI_DEVICE_ID_INTEL_82875_HB 0x2578 | 2012 | #define PCI_DEVICE_ID_INTEL_82875_HB 0x2578 |
2481 | #define PCI_DEVICE_ID_INTEL_82875_IG 0x257b | ||
2482 | #define PCI_DEVICE_ID_INTEL_82915G_HB 0x2580 | 2013 | #define PCI_DEVICE_ID_INTEL_82915G_HB 0x2580 |
2483 | #define PCI_DEVICE_ID_INTEL_82915G_IG 0x2582 | 2014 | #define PCI_DEVICE_ID_INTEL_82915G_IG 0x2582 |
2484 | #define PCI_DEVICE_ID_INTEL_82915GM_HB 0x2590 | 2015 | #define PCI_DEVICE_ID_INTEL_82915GM_HB 0x2590 |
@@ -2488,80 +2019,23 @@ | |||
2488 | #define PCI_DEVICE_ID_INTEL_ICH6_0 0x2640 | 2019 | #define PCI_DEVICE_ID_INTEL_ICH6_0 0x2640 |
2489 | #define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641 | 2020 | #define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641 |
2490 | #define PCI_DEVICE_ID_INTEL_ICH6_2 0x2642 | 2021 | #define PCI_DEVICE_ID_INTEL_ICH6_2 0x2642 |
2491 | #define PCI_DEVICE_ID_INTEL_ICH6_3 0x2651 | ||
2492 | #define PCI_DEVICE_ID_INTEL_ICH6_4 0x2652 | ||
2493 | #define PCI_DEVICE_ID_INTEL_ICH6_5 0x2653 | ||
2494 | #define PCI_DEVICE_ID_INTEL_ICH6_6 0x2658 | ||
2495 | #define PCI_DEVICE_ID_INTEL_ICH6_7 0x2659 | ||
2496 | #define PCI_DEVICE_ID_INTEL_ICH6_8 0x265a | ||
2497 | #define PCI_DEVICE_ID_INTEL_ICH6_9 0x265b | ||
2498 | #define PCI_DEVICE_ID_INTEL_ICH6_10 0x265c | ||
2499 | #define PCI_DEVICE_ID_INTEL_ICH6_11 0x2660 | ||
2500 | #define PCI_DEVICE_ID_INTEL_ICH6_12 0x2662 | ||
2501 | #define PCI_DEVICE_ID_INTEL_ICH6_13 0x2664 | ||
2502 | #define PCI_DEVICE_ID_INTEL_ICH6_14 0x2666 | ||
2503 | #define PCI_DEVICE_ID_INTEL_ICH6_15 0x2668 | ||
2504 | #define PCI_DEVICE_ID_INTEL_ICH6_16 0x266a | 2022 | #define PCI_DEVICE_ID_INTEL_ICH6_16 0x266a |
2505 | #define PCI_DEVICE_ID_INTEL_ICH6_17 0x266d | 2023 | #define PCI_DEVICE_ID_INTEL_ICH6_17 0x266d |
2506 | #define PCI_DEVICE_ID_INTEL_ICH6_18 0x266e | 2024 | #define PCI_DEVICE_ID_INTEL_ICH6_18 0x266e |
2507 | #define PCI_DEVICE_ID_INTEL_ICH6_19 0x266f | 2025 | #define PCI_DEVICE_ID_INTEL_ICH6_19 0x266f |
2508 | #define PCI_DEVICE_ID_INTEL_ESB2_0 0x2670 | 2026 | #define PCI_DEVICE_ID_INTEL_ESB2_0 0x2670 |
2509 | #define PCI_DEVICE_ID_INTEL_ESB2_1 0x2680 | ||
2510 | #define PCI_DEVICE_ID_INTEL_ESB2_2 0x2681 | ||
2511 | #define PCI_DEVICE_ID_INTEL_ESB2_3 0x2682 | ||
2512 | #define PCI_DEVICE_ID_INTEL_ESB2_4 0x2683 | ||
2513 | #define PCI_DEVICE_ID_INTEL_ESB2_5 0x2688 | ||
2514 | #define PCI_DEVICE_ID_INTEL_ESB2_6 0x2689 | ||
2515 | #define PCI_DEVICE_ID_INTEL_ESB2_7 0x268a | ||
2516 | #define PCI_DEVICE_ID_INTEL_ESB2_8 0x268b | ||
2517 | #define PCI_DEVICE_ID_INTEL_ESB2_9 0x268c | ||
2518 | #define PCI_DEVICE_ID_INTEL_ESB2_10 0x2690 | ||
2519 | #define PCI_DEVICE_ID_INTEL_ESB2_11 0x2692 | ||
2520 | #define PCI_DEVICE_ID_INTEL_ESB2_12 0x2694 | ||
2521 | #define PCI_DEVICE_ID_INTEL_ESB2_13 0x2696 | ||
2522 | #define PCI_DEVICE_ID_INTEL_ESB2_14 0x2698 | 2027 | #define PCI_DEVICE_ID_INTEL_ESB2_14 0x2698 |
2523 | #define PCI_DEVICE_ID_INTEL_ESB2_15 0x2699 | ||
2524 | #define PCI_DEVICE_ID_INTEL_ESB2_16 0x269a | ||
2525 | #define PCI_DEVICE_ID_INTEL_ESB2_17 0x269b | 2028 | #define PCI_DEVICE_ID_INTEL_ESB2_17 0x269b |
2526 | #define PCI_DEVICE_ID_INTEL_ESB2_18 0x269e | 2029 | #define PCI_DEVICE_ID_INTEL_ESB2_18 0x269e |
2527 | #define PCI_DEVICE_ID_INTEL_ICH7_0 0x27b8 | 2030 | #define PCI_DEVICE_ID_INTEL_ICH7_0 0x27b8 |
2528 | #define PCI_DEVICE_ID_INTEL_ICH7_1 0x27b9 | 2031 | #define PCI_DEVICE_ID_INTEL_ICH7_1 0x27b9 |
2529 | #define PCI_DEVICE_ID_INTEL_ICH7_2 0x27c0 | ||
2530 | #define PCI_DEVICE_ID_INTEL_ICH7_3 0x27c1 | ||
2531 | #define PCI_DEVICE_ID_INTEL_ICH7_30 0x27b0 | 2032 | #define PCI_DEVICE_ID_INTEL_ICH7_30 0x27b0 |
2532 | #define PCI_DEVICE_ID_INTEL_ICH7_31 0x27bd | 2033 | #define PCI_DEVICE_ID_INTEL_ICH7_31 0x27bd |
2533 | #define PCI_DEVICE_ID_INTEL_ICH7_5 0x27c4 | ||
2534 | #define PCI_DEVICE_ID_INTEL_ICH7_6 0x27c5 | ||
2535 | #define PCI_DEVICE_ID_INTEL_ICH7_7 0x27c8 | ||
2536 | #define PCI_DEVICE_ID_INTEL_ICH7_8 0x27c9 | ||
2537 | #define PCI_DEVICE_ID_INTEL_ICH7_9 0x27ca | ||
2538 | #define PCI_DEVICE_ID_INTEL_ICH7_10 0x27cb | ||
2539 | #define PCI_DEVICE_ID_INTEL_ICH7_11 0x27cc | ||
2540 | #define PCI_DEVICE_ID_INTEL_ICH7_12 0x27d0 | ||
2541 | #define PCI_DEVICE_ID_INTEL_ICH7_13 0x27d2 | ||
2542 | #define PCI_DEVICE_ID_INTEL_ICH7_14 0x27d4 | ||
2543 | #define PCI_DEVICE_ID_INTEL_ICH7_15 0x27d6 | ||
2544 | #define PCI_DEVICE_ID_INTEL_ICH7_16 0x27d8 | ||
2545 | #define PCI_DEVICE_ID_INTEL_ICH7_17 0x27da | 2034 | #define PCI_DEVICE_ID_INTEL_ICH7_17 0x27da |
2546 | #define PCI_DEVICE_ID_INTEL_ICH7_18 0x27dc | ||
2547 | #define PCI_DEVICE_ID_INTEL_ICH7_19 0x27dd | 2035 | #define PCI_DEVICE_ID_INTEL_ICH7_19 0x27dd |
2548 | #define PCI_DEVICE_ID_INTEL_ICH7_20 0x27de | 2036 | #define PCI_DEVICE_ID_INTEL_ICH7_20 0x27de |
2549 | #define PCI_DEVICE_ID_INTEL_ICH7_21 0x27df | 2037 | #define PCI_DEVICE_ID_INTEL_ICH7_21 0x27df |
2550 | #define PCI_DEVICE_ID_INTEL_ICH7_22 0x27e0 | ||
2551 | #define PCI_DEVICE_ID_INTEL_ICH7_23 0x27e2 | ||
2552 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 | 2038 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 |
2553 | #define PCI_DEVICE_ID_INTEL_ESB2_19 0x3500 | ||
2554 | #define PCI_DEVICE_ID_INTEL_ESB2_20 0x3501 | ||
2555 | #define PCI_DEVICE_ID_INTEL_ESB2_21 0x3504 | ||
2556 | #define PCI_DEVICE_ID_INTEL_ESB2_22 0x3505 | ||
2557 | #define PCI_DEVICE_ID_INTEL_ESB2_23 0x350c | ||
2558 | #define PCI_DEVICE_ID_INTEL_ESB2_24 0x350d | ||
2559 | #define PCI_DEVICE_ID_INTEL_ESB2_25 0x3510 | ||
2560 | #define PCI_DEVICE_ID_INTEL_ESB2_26 0x3511 | ||
2561 | #define PCI_DEVICE_ID_INTEL_ESB2_27 0x3514 | ||
2562 | #define PCI_DEVICE_ID_INTEL_ESB2_28 0x3515 | ||
2563 | #define PCI_DEVICE_ID_INTEL_ESB2_29 0x3518 | ||
2564 | #define PCI_DEVICE_ID_INTEL_ESB2_30 0x3519 | ||
2565 | #define PCI_DEVICE_ID_INTEL_82830_HB 0x3575 | 2039 | #define PCI_DEVICE_ID_INTEL_82830_HB 0x3575 |
2566 | #define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577 | 2040 | #define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577 |
2567 | #define PCI_DEVICE_ID_INTEL_82855GM_HB 0x3580 | 2041 | #define PCI_DEVICE_ID_INTEL_82855GM_HB 0x3580 |
@@ -2575,7 +2049,6 @@ | |||
2575 | #define PCI_DEVICE_ID_INTEL_MCH_PC 0x3599 | 2049 | #define PCI_DEVICE_ID_INTEL_MCH_PC 0x3599 |
2576 | #define PCI_DEVICE_ID_INTEL_MCH_PC1 0x359a | 2050 | #define PCI_DEVICE_ID_INTEL_MCH_PC1 0x359a |
2577 | #define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e | 2051 | #define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e |
2578 | #define PCI_DEVICE_ID_INTEL_80310 0x530d | ||
2579 | #define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000 | 2052 | #define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000 |
2580 | #define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010 | 2053 | #define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010 |
2581 | #define PCI_DEVICE_ID_INTEL_82371SB_2 0x7020 | 2054 | #define PCI_DEVICE_ID_INTEL_82371SB_2 0x7020 |
@@ -2600,22 +2073,15 @@ | |||
2600 | #define PCI_DEVICE_ID_INTEL_440MX_6 0x7196 | 2073 | #define PCI_DEVICE_ID_INTEL_440MX_6 0x7196 |
2601 | #define PCI_DEVICE_ID_INTEL_82443MX_0 0x7198 | 2074 | #define PCI_DEVICE_ID_INTEL_82443MX_0 0x7198 |
2602 | #define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199 | 2075 | #define PCI_DEVICE_ID_INTEL_82443MX_1 0x7199 |
2603 | #define PCI_DEVICE_ID_INTEL_82443MX_2 0x719a | ||
2604 | #define PCI_DEVICE_ID_INTEL_82443MX_3 0x719b | 2076 | #define PCI_DEVICE_ID_INTEL_82443MX_3 0x719b |
2605 | #define PCI_DEVICE_ID_INTEL_82443GX_0 0x71a0 | 2077 | #define PCI_DEVICE_ID_INTEL_82443GX_0 0x71a0 |
2606 | #define PCI_DEVICE_ID_INTEL_82443GX_1 0x71a1 | ||
2607 | #define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2 | 2078 | #define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2 |
2608 | #define PCI_DEVICE_ID_INTEL_82372FB_0 0x7600 | ||
2609 | #define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601 | 2079 | #define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601 |
2610 | #define PCI_DEVICE_ID_INTEL_82372FB_2 0x7602 | ||
2611 | #define PCI_DEVICE_ID_INTEL_82372FB_3 0x7603 | ||
2612 | #define PCI_DEVICE_ID_INTEL_82454GX 0x84c4 | 2080 | #define PCI_DEVICE_ID_INTEL_82454GX 0x84c4 |
2613 | #define PCI_DEVICE_ID_INTEL_82450GX 0x84c5 | ||
2614 | #define PCI_DEVICE_ID_INTEL_82451NX 0x84ca | 2081 | #define PCI_DEVICE_ID_INTEL_82451NX 0x84ca |
2615 | #define PCI_DEVICE_ID_INTEL_82454NX 0x84cb | 2082 | #define PCI_DEVICE_ID_INTEL_82454NX 0x84cb |
2616 | #define PCI_DEVICE_ID_INTEL_84460GX 0x84ea | 2083 | #define PCI_DEVICE_ID_INTEL_84460GX 0x84ea |
2617 | #define PCI_DEVICE_ID_INTEL_IXP4XX 0x8500 | 2084 | #define PCI_DEVICE_ID_INTEL_IXP4XX 0x8500 |
2618 | #define PCI_DEVICE_ID_INTEL_IXP2400 0x9001 | ||
2619 | #define PCI_DEVICE_ID_INTEL_IXP2800 0x9004 | 2085 | #define PCI_DEVICE_ID_INTEL_IXP2800 0x9004 |
2620 | #define PCI_DEVICE_ID_INTEL_S21152BB 0xb152 | 2086 | #define PCI_DEVICE_ID_INTEL_S21152BB 0xb152 |
2621 | 2087 | ||
@@ -2628,7 +2094,6 @@ | |||
2628 | #define PCI_SUBDEVICE_ID_COMPUTONE_PG6 0x0003 | 2094 | #define PCI_SUBDEVICE_ID_COMPUTONE_PG6 0x0003 |
2629 | 2095 | ||
2630 | #define PCI_VENDOR_ID_KTI 0x8e2e | 2096 | #define PCI_VENDOR_ID_KTI 0x8e2e |
2631 | #define PCI_DEVICE_ID_KTI_ET32P2 0x3000 | ||
2632 | 2097 | ||
2633 | #define PCI_VENDOR_ID_ADAPTEC 0x9004 | 2098 | #define PCI_VENDOR_ID_ADAPTEC 0x9004 |
2634 | #define PCI_DEVICE_ID_ADAPTEC_7810 0x1078 | 2099 | #define PCI_DEVICE_ID_ADAPTEC_7810 0x1078 |
@@ -2636,7 +2101,6 @@ | |||
2636 | #define PCI_DEVICE_ID_ADAPTEC_38602 0x3860 | 2101 | #define PCI_DEVICE_ID_ADAPTEC_38602 0x3860 |
2637 | #define PCI_DEVICE_ID_ADAPTEC_7850 0x5078 | 2102 | #define PCI_DEVICE_ID_ADAPTEC_7850 0x5078 |
2638 | #define PCI_DEVICE_ID_ADAPTEC_7855 0x5578 | 2103 | #define PCI_DEVICE_ID_ADAPTEC_7855 0x5578 |
2639 | #define PCI_DEVICE_ID_ADAPTEC_5800 0x5800 | ||
2640 | #define PCI_DEVICE_ID_ADAPTEC_3860 0x6038 | 2104 | #define PCI_DEVICE_ID_ADAPTEC_3860 0x6038 |
2641 | #define PCI_DEVICE_ID_ADAPTEC_1480A 0x6075 | 2105 | #define PCI_DEVICE_ID_ADAPTEC_1480A 0x6075 |
2642 | #define PCI_DEVICE_ID_ADAPTEC_7860 0x6078 | 2106 | #define PCI_DEVICE_ID_ADAPTEC_7860 0x6078 |
@@ -2656,7 +2120,6 @@ | |||
2656 | #define PCI_DEVICE_ID_ADAPTEC_7886 0x8678 | 2120 | #define PCI_DEVICE_ID_ADAPTEC_7886 0x8678 |
2657 | #define PCI_DEVICE_ID_ADAPTEC_7887 0x8778 | 2121 | #define PCI_DEVICE_ID_ADAPTEC_7887 0x8778 |
2658 | #define PCI_DEVICE_ID_ADAPTEC_7888 0x8878 | 2122 | #define PCI_DEVICE_ID_ADAPTEC_7888 0x8878 |
2659 | #define PCI_DEVICE_ID_ADAPTEC_1030 0x8b78 | ||
2660 | 2123 | ||
2661 | #define PCI_VENDOR_ID_ADAPTEC2 0x9005 | 2124 | #define PCI_VENDOR_ID_ADAPTEC2 0x9005 |
2662 | #define PCI_DEVICE_ID_ADAPTEC2_2940U2 0x0010 | 2125 | #define PCI_DEVICE_ID_ADAPTEC2_2940U2 0x0010 |
@@ -2676,8 +2139,6 @@ | |||
2676 | #define PCI_DEVICE_ID_ADAPTEC2_7899P 0x00cf | 2139 | #define PCI_DEVICE_ID_ADAPTEC2_7899P 0x00cf |
2677 | #define PCI_DEVICE_ID_ADAPTEC2_SCAMP 0x0503 | 2140 | #define PCI_DEVICE_ID_ADAPTEC2_SCAMP 0x0503 |
2678 | 2141 | ||
2679 | #define PCI_VENDOR_ID_ATRONICS 0x907f | ||
2680 | #define PCI_DEVICE_ID_ATRONICS_2015 0x2015 | ||
2681 | 2142 | ||
2682 | #define PCI_VENDOR_ID_HOLTEK 0x9412 | 2143 | #define PCI_VENDOR_ID_HOLTEK 0x9412 |
2683 | #define PCI_DEVICE_ID_HOLTEK_6565 0x6565 | 2144 | #define PCI_DEVICE_ID_HOLTEK_6565 0x6565 |
@@ -2696,6 +2157,7 @@ | |||
2696 | 2157 | ||
2697 | #define PCI_SUBVENDOR_ID_EXSYS 0xd84d | 2158 | #define PCI_SUBVENDOR_ID_EXSYS 0xd84d |
2698 | #define PCI_SUBDEVICE_ID_EXSYS_4014 0x4014 | 2159 | #define PCI_SUBDEVICE_ID_EXSYS_4014 0x4014 |
2160 | #define PCI_SUBDEVICE_ID_EXSYS_4055 0x4055 | ||
2699 | 2161 | ||
2700 | #define PCI_VENDOR_ID_TIGERJET 0xe159 | 2162 | #define PCI_VENDOR_ID_TIGERJET 0xe159 |
2701 | #define PCI_DEVICE_ID_TIGERJET_300 0x0001 | 2163 | #define PCI_DEVICE_ID_TIGERJET_300 0x0001 |
@@ -2709,7 +2171,3 @@ | |||
2709 | #define PCI_DEVICE_ID_RME_DIGI32_PRO 0x9897 | 2171 | #define PCI_DEVICE_ID_RME_DIGI32_PRO 0x9897 |
2710 | #define PCI_DEVICE_ID_RME_DIGI32_8 0x9898 | 2172 | #define PCI_DEVICE_ID_RME_DIGI32_8 0x9898 |
2711 | 2173 | ||
2712 | #define PCI_VENDOR_ID_ARK 0xedd8 | ||
2713 | #define PCI_DEVICE_ID_ARK_STING 0xa091 | ||
2714 | #define PCI_DEVICE_ID_ARK_STINGARK 0xa099 | ||
2715 | #define PCI_DEVICE_ID_ARK_2000MT 0xa0a1 | ||
diff --git a/include/linux/platform_device.h b/include/linux/platform_device.h new file mode 100644 index 000000000000..a726225e0afe --- /dev/null +++ b/include/linux/platform_device.h | |||
@@ -0,0 +1,40 @@ | |||
1 | /* | ||
2 | * platform_device.h - generic, centralized driver model | ||
3 | * | ||
4 | * Copyright (c) 2001-2003 Patrick Mochel <mochel@osdl.org> | ||
5 | * | ||
6 | * This file is released under the GPLv2 | ||
7 | * | ||
8 | * See Documentation/driver-model/ for more information. | ||
9 | */ | ||
10 | |||
11 | #ifndef _PLATFORM_DEVICE_H_ | ||
12 | #define _PLATFORM_DEVICE_H_ | ||
13 | |||
14 | #include <linux/device.h> | ||
15 | |||
16 | struct platform_device { | ||
17 | const char * name; | ||
18 | u32 id; | ||
19 | struct device dev; | ||
20 | u32 num_resources; | ||
21 | struct resource * resource; | ||
22 | }; | ||
23 | |||
24 | #define to_platform_device(x) container_of((x), struct platform_device, dev) | ||
25 | |||
26 | extern int platform_device_register(struct platform_device *); | ||
27 | extern void platform_device_unregister(struct platform_device *); | ||
28 | |||
29 | extern struct bus_type platform_bus_type; | ||
30 | extern struct device platform_bus; | ||
31 | |||
32 | extern struct resource *platform_get_resource(struct platform_device *, unsigned int, unsigned int); | ||
33 | extern int platform_get_irq(struct platform_device *, unsigned int); | ||
34 | extern struct resource *platform_get_resource_byname(struct platform_device *, unsigned int, char *); | ||
35 | extern int platform_get_irq_byname(struct platform_device *, char *); | ||
36 | extern int platform_add_devices(struct platform_device **, int); | ||
37 | |||
38 | extern struct platform_device *platform_device_register_simple(char *, unsigned int, struct resource *, unsigned int); | ||
39 | |||
40 | #endif /* _PLATFORM_DEVICE_H_ */ | ||
diff --git a/include/linux/pm.h b/include/linux/pm.h index 5cfb07648eca..1514098d156d 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
@@ -170,6 +170,7 @@ typedef int __bitwise suspend_disk_method_t; | |||
170 | 170 | ||
171 | struct pm_ops { | 171 | struct pm_ops { |
172 | suspend_disk_method_t pm_disk_mode; | 172 | suspend_disk_method_t pm_disk_mode; |
173 | int (*valid)(suspend_state_t state); | ||
173 | int (*prepare)(suspend_state_t state); | 174 | int (*prepare)(suspend_state_t state); |
174 | int (*enter)(suspend_state_t state); | 175 | int (*enter)(suspend_state_t state); |
175 | int (*finish)(suspend_state_t state); | 176 | int (*finish)(suspend_state_t state); |
@@ -219,10 +220,11 @@ typedef struct pm_message { | |||
219 | 220 | ||
220 | struct dev_pm_info { | 221 | struct dev_pm_info { |
221 | pm_message_t power_state; | 222 | pm_message_t power_state; |
223 | unsigned can_wakeup:1; | ||
222 | #ifdef CONFIG_PM | 224 | #ifdef CONFIG_PM |
225 | unsigned should_wakeup:1; | ||
223 | pm_message_t prev_state; | 226 | pm_message_t prev_state; |
224 | void * saved_state; | 227 | void * saved_state; |
225 | atomic_t pm_users; | ||
226 | struct device * pm_parent; | 228 | struct device * pm_parent; |
227 | struct list_head entry; | 229 | struct list_head entry; |
228 | #endif | 230 | #endif |
@@ -236,13 +238,48 @@ extern void device_resume(void); | |||
236 | 238 | ||
237 | #ifdef CONFIG_PM | 239 | #ifdef CONFIG_PM |
238 | extern int device_suspend(pm_message_t state); | 240 | extern int device_suspend(pm_message_t state); |
239 | #else | 241 | |
242 | #define device_set_wakeup_enable(dev,val) \ | ||
243 | ((dev)->power.should_wakeup = !!(val)) | ||
244 | #define device_may_wakeup(dev) \ | ||
245 | (device_can_wakeup(dev) && (dev)->power.should_wakeup) | ||
246 | |||
247 | extern int dpm_runtime_suspend(struct device *, pm_message_t); | ||
248 | extern void dpm_runtime_resume(struct device *); | ||
249 | |||
250 | #else /* !CONFIG_PM */ | ||
251 | |||
240 | static inline int device_suspend(pm_message_t state) | 252 | static inline int device_suspend(pm_message_t state) |
241 | { | 253 | { |
242 | return 0; | 254 | return 0; |
243 | } | 255 | } |
256 | |||
257 | #define device_set_wakeup_enable(dev,val) do{}while(0) | ||
258 | #define device_may_wakeup(dev) (0) | ||
259 | |||
260 | static inline int dpm_runtime_suspend(struct device * dev, pm_message_t state) | ||
261 | { | ||
262 | return 0; | ||
263 | } | ||
264 | |||
265 | static inline void dpm_runtime_resume(struct device * dev) | ||
266 | { | ||
267 | |||
268 | } | ||
269 | |||
244 | #endif | 270 | #endif |
245 | 271 | ||
272 | /* changes to device_may_wakeup take effect on the next pm state change. | ||
273 | * by default, devices should wakeup if they can. | ||
274 | */ | ||
275 | #define device_can_wakeup(dev) \ | ||
276 | ((dev)->power.can_wakeup) | ||
277 | #define device_init_wakeup(dev,val) \ | ||
278 | do { \ | ||
279 | device_can_wakeup(dev) = !!(val); \ | ||
280 | device_set_wakeup_enable(dev,val); \ | ||
281 | } while(0) | ||
282 | |||
246 | #endif /* __KERNEL__ */ | 283 | #endif /* __KERNEL__ */ |
247 | 284 | ||
248 | #endif /* _LINUX_PM_H */ | 285 | #endif /* _LINUX_PM_H */ |
diff --git a/include/linux/radix-tree.h b/include/linux/radix-tree.h index 045d4761febc..9f0f9281f42a 100644 --- a/include/linux/radix-tree.h +++ b/include/linux/radix-tree.h | |||
@@ -24,7 +24,7 @@ | |||
24 | 24 | ||
25 | struct radix_tree_root { | 25 | struct radix_tree_root { |
26 | unsigned int height; | 26 | unsigned int height; |
27 | unsigned int gfp_mask; | 27 | gfp_t gfp_mask; |
28 | struct radix_tree_node *rnode; | 28 | struct radix_tree_node *rnode; |
29 | }; | 29 | }; |
30 | 30 | ||
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 70191a5a148f..cce25591eec2 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
@@ -275,6 +275,7 @@ static inline int rcu_pending(int cpu) | |||
275 | extern void rcu_init(void); | 275 | extern void rcu_init(void); |
276 | extern void rcu_check_callbacks(int cpu, int user); | 276 | extern void rcu_check_callbacks(int cpu, int user); |
277 | extern void rcu_restart_cpu(int cpu); | 277 | extern void rcu_restart_cpu(int cpu); |
278 | extern long rcu_batches_completed(void); | ||
278 | 279 | ||
279 | /* Exported interfaces */ | 280 | /* Exported interfaces */ |
280 | extern void FASTCALL(call_rcu(struct rcu_head *head, | 281 | extern void FASTCALL(call_rcu(struct rcu_head *head, |
diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h index af00b10294cd..001ab82df051 100644 --- a/include/linux/reiserfs_fs.h +++ b/include/linux/reiserfs_fs.h | |||
@@ -1972,7 +1972,7 @@ extern struct address_space_operations reiserfs_address_space_operations; | |||
1972 | 1972 | ||
1973 | /* fix_nodes.c */ | 1973 | /* fix_nodes.c */ |
1974 | #ifdef CONFIG_REISERFS_CHECK | 1974 | #ifdef CONFIG_REISERFS_CHECK |
1975 | void *reiserfs_kmalloc(size_t size, int flags, struct super_block *s); | 1975 | void *reiserfs_kmalloc(size_t size, gfp_t flags, struct super_block *s); |
1976 | void reiserfs_kfree(const void *vp, size_t size, struct super_block *s); | 1976 | void reiserfs_kfree(const void *vp, size_t size, struct super_block *s); |
1977 | #else | 1977 | #else |
1978 | static inline void *reiserfs_kmalloc(size_t size, int flags, | 1978 | static inline void *reiserfs_kmalloc(size_t size, int flags, |
diff --git a/include/linux/rmap.h b/include/linux/rmap.h index e80fb7ee6efd..35b30e6c8cf8 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h | |||
@@ -95,8 +95,8 @@ int try_to_unmap(struct page *); | |||
95 | /* | 95 | /* |
96 | * Called from mm/filemap_xip.c to unmap empty zero page | 96 | * Called from mm/filemap_xip.c to unmap empty zero page |
97 | */ | 97 | */ |
98 | pte_t *page_check_address(struct page *, struct mm_struct *, unsigned long); | 98 | pte_t *page_check_address(struct page *, struct mm_struct *, |
99 | 99 | unsigned long, spinlock_t **); | |
100 | 100 | ||
101 | /* | 101 | /* |
102 | * Used by swapoff to help locate where page is expected in vma. | 102 | * Used by swapoff to help locate where page is expected in vma. |
diff --git a/include/linux/rwsem-spinlock.h b/include/linux/rwsem-spinlock.h index b52a2af25f1f..f30f805080ae 100644 --- a/include/linux/rwsem-spinlock.h +++ b/include/linux/rwsem-spinlock.h | |||
@@ -61,5 +61,10 @@ extern void FASTCALL(__up_read(struct rw_semaphore *sem)); | |||
61 | extern void FASTCALL(__up_write(struct rw_semaphore *sem)); | 61 | extern void FASTCALL(__up_write(struct rw_semaphore *sem)); |
62 | extern void FASTCALL(__downgrade_write(struct rw_semaphore *sem)); | 62 | extern void FASTCALL(__downgrade_write(struct rw_semaphore *sem)); |
63 | 63 | ||
64 | static inline int rwsem_is_locked(struct rw_semaphore *sem) | ||
65 | { | ||
66 | return (sem->activity != 0); | ||
67 | } | ||
68 | |||
64 | #endif /* __KERNEL__ */ | 69 | #endif /* __KERNEL__ */ |
65 | #endif /* _LINUX_RWSEM_SPINLOCK_H */ | 70 | #endif /* _LINUX_RWSEM_SPINLOCK_H */ |
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h index 7f717e95ae37..66ff545552f7 100644 --- a/include/linux/scatterlist.h +++ b/include/linux/scatterlist.h | |||
@@ -1,14 +1,23 @@ | |||
1 | #ifndef _LINUX_SCATTERLIST_H | 1 | #ifndef _LINUX_SCATTERLIST_H |
2 | #define _LINUX_SCATTERLIST_H | 2 | #define _LINUX_SCATTERLIST_H |
3 | 3 | ||
4 | static inline void sg_init_one(struct scatterlist *sg, | 4 | #include <asm/scatterlist.h> |
5 | u8 *buf, unsigned int buflen) | 5 | #include <linux/mm.h> |
6 | { | 6 | #include <linux/string.h> |
7 | memset(sg, 0, sizeof(*sg)); | ||
8 | 7 | ||
8 | static inline void sg_set_buf(struct scatterlist *sg, void *buf, | ||
9 | unsigned int buflen) | ||
10 | { | ||
9 | sg->page = virt_to_page(buf); | 11 | sg->page = virt_to_page(buf); |
10 | sg->offset = offset_in_page(buf); | 12 | sg->offset = offset_in_page(buf); |
11 | sg->length = buflen; | 13 | sg->length = buflen; |
12 | } | 14 | } |
13 | 15 | ||
16 | static inline void sg_init_one(struct scatterlist *sg, void *buf, | ||
17 | unsigned int buflen) | ||
18 | { | ||
19 | memset(sg, 0, sizeof(*sg)); | ||
20 | sg_set_buf(sg, buf, buflen); | ||
21 | } | ||
22 | |||
14 | #endif /* _LINUX_SCATTERLIST_H */ | 23 | #endif /* _LINUX_SCATTERLIST_H */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 27519df0f987..03b68a7b4b82 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -249,6 +249,36 @@ arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, | |||
249 | extern void arch_unmap_area(struct mm_struct *, unsigned long); | 249 | extern void arch_unmap_area(struct mm_struct *, unsigned long); |
250 | extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); | 250 | extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); |
251 | 251 | ||
252 | #if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS | ||
253 | /* | ||
254 | * The mm counters are not protected by its page_table_lock, | ||
255 | * so must be incremented atomically. | ||
256 | */ | ||
257 | #ifdef ATOMIC64_INIT | ||
258 | #define set_mm_counter(mm, member, value) atomic64_set(&(mm)->_##member, value) | ||
259 | #define get_mm_counter(mm, member) ((unsigned long)atomic64_read(&(mm)->_##member)) | ||
260 | #define add_mm_counter(mm, member, value) atomic64_add(value, &(mm)->_##member) | ||
261 | #define inc_mm_counter(mm, member) atomic64_inc(&(mm)->_##member) | ||
262 | #define dec_mm_counter(mm, member) atomic64_dec(&(mm)->_##member) | ||
263 | typedef atomic64_t mm_counter_t; | ||
264 | #else /* !ATOMIC64_INIT */ | ||
265 | /* | ||
266 | * The counters wrap back to 0 at 2^32 * PAGE_SIZE, | ||
267 | * that is, at 16TB if using 4kB page size. | ||
268 | */ | ||
269 | #define set_mm_counter(mm, member, value) atomic_set(&(mm)->_##member, value) | ||
270 | #define get_mm_counter(mm, member) ((unsigned long)atomic_read(&(mm)->_##member)) | ||
271 | #define add_mm_counter(mm, member, value) atomic_add(value, &(mm)->_##member) | ||
272 | #define inc_mm_counter(mm, member) atomic_inc(&(mm)->_##member) | ||
273 | #define dec_mm_counter(mm, member) atomic_dec(&(mm)->_##member) | ||
274 | typedef atomic_t mm_counter_t; | ||
275 | #endif /* !ATOMIC64_INIT */ | ||
276 | |||
277 | #else /* NR_CPUS < CONFIG_SPLIT_PTLOCK_CPUS */ | ||
278 | /* | ||
279 | * The mm counters are protected by its page_table_lock, | ||
280 | * so can be incremented directly. | ||
281 | */ | ||
252 | #define set_mm_counter(mm, member, value) (mm)->_##member = (value) | 282 | #define set_mm_counter(mm, member, value) (mm)->_##member = (value) |
253 | #define get_mm_counter(mm, member) ((mm)->_##member) | 283 | #define get_mm_counter(mm, member) ((mm)->_##member) |
254 | #define add_mm_counter(mm, member, value) (mm)->_##member += (value) | 284 | #define add_mm_counter(mm, member, value) (mm)->_##member += (value) |
@@ -256,6 +286,20 @@ extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); | |||
256 | #define dec_mm_counter(mm, member) (mm)->_##member-- | 286 | #define dec_mm_counter(mm, member) (mm)->_##member-- |
257 | typedef unsigned long mm_counter_t; | 287 | typedef unsigned long mm_counter_t; |
258 | 288 | ||
289 | #endif /* NR_CPUS < CONFIG_SPLIT_PTLOCK_CPUS */ | ||
290 | |||
291 | #define get_mm_rss(mm) \ | ||
292 | (get_mm_counter(mm, file_rss) + get_mm_counter(mm, anon_rss)) | ||
293 | #define update_hiwater_rss(mm) do { \ | ||
294 | unsigned long _rss = get_mm_rss(mm); \ | ||
295 | if ((mm)->hiwater_rss < _rss) \ | ||
296 | (mm)->hiwater_rss = _rss; \ | ||
297 | } while (0) | ||
298 | #define update_hiwater_vm(mm) do { \ | ||
299 | if ((mm)->hiwater_vm < (mm)->total_vm) \ | ||
300 | (mm)->hiwater_vm = (mm)->total_vm; \ | ||
301 | } while (0) | ||
302 | |||
259 | struct mm_struct { | 303 | struct mm_struct { |
260 | struct vm_area_struct * mmap; /* list of VMAs */ | 304 | struct vm_area_struct * mmap; /* list of VMAs */ |
261 | struct rb_root mm_rb; | 305 | struct rb_root mm_rb; |
@@ -279,15 +323,20 @@ struct mm_struct { | |||
279 | * by mmlist_lock | 323 | * by mmlist_lock |
280 | */ | 324 | */ |
281 | 325 | ||
326 | /* Special counters, in some configurations protected by the | ||
327 | * page_table_lock, in other configurations by being atomic. | ||
328 | */ | ||
329 | mm_counter_t _file_rss; | ||
330 | mm_counter_t _anon_rss; | ||
331 | |||
332 | unsigned long hiwater_rss; /* High-watermark of RSS usage */ | ||
333 | unsigned long hiwater_vm; /* High-water virtual memory usage */ | ||
334 | |||
335 | unsigned long total_vm, locked_vm, shared_vm, exec_vm; | ||
336 | unsigned long stack_vm, reserved_vm, def_flags, nr_ptes; | ||
282 | unsigned long start_code, end_code, start_data, end_data; | 337 | unsigned long start_code, end_code, start_data, end_data; |
283 | unsigned long start_brk, brk, start_stack; | 338 | unsigned long start_brk, brk, start_stack; |
284 | unsigned long arg_start, arg_end, env_start, env_end; | 339 | unsigned long arg_start, arg_end, env_start, env_end; |
285 | unsigned long total_vm, locked_vm, shared_vm; | ||
286 | unsigned long exec_vm, stack_vm, reserved_vm, def_flags, nr_ptes; | ||
287 | |||
288 | /* Special counters protected by the page_table_lock */ | ||
289 | mm_counter_t _rss; | ||
290 | mm_counter_t _anon_rss; | ||
291 | 340 | ||
292 | unsigned long saved_auxv[AT_VECTOR_SIZE]; /* for /proc/PID/auxv */ | 341 | unsigned long saved_auxv[AT_VECTOR_SIZE]; /* for /proc/PID/auxv */ |
293 | 342 | ||
@@ -308,11 +357,7 @@ struct mm_struct { | |||
308 | /* aio bits */ | 357 | /* aio bits */ |
309 | rwlock_t ioctx_list_lock; | 358 | rwlock_t ioctx_list_lock; |
310 | struct kioctx *ioctx_list; | 359 | struct kioctx *ioctx_list; |
311 | |||
312 | struct kioctx default_kioctx; | 360 | struct kioctx default_kioctx; |
313 | |||
314 | unsigned long hiwater_rss; /* High-water RSS usage */ | ||
315 | unsigned long hiwater_vm; /* High-water virtual memory usage */ | ||
316 | }; | 361 | }; |
317 | 362 | ||
318 | struct sighand_struct { | 363 | struct sighand_struct { |
@@ -895,7 +940,7 @@ extern int set_cpus_allowed(task_t *p, cpumask_t new_mask); | |||
895 | #else | 940 | #else |
896 | static inline int set_cpus_allowed(task_t *p, cpumask_t new_mask) | 941 | static inline int set_cpus_allowed(task_t *p, cpumask_t new_mask) |
897 | { | 942 | { |
898 | if (!cpus_intersects(new_mask, cpu_online_map)) | 943 | if (!cpu_isset(0, new_mask)) |
899 | return -EINVAL; | 944 | return -EINVAL; |
900 | return 0; | 945 | return 0; |
901 | } | 946 | } |
@@ -1039,6 +1084,11 @@ extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned lon | |||
1039 | #define SEND_SIG_PRIV ((struct siginfo *) 1) | 1084 | #define SEND_SIG_PRIV ((struct siginfo *) 1) |
1040 | #define SEND_SIG_FORCED ((struct siginfo *) 2) | 1085 | #define SEND_SIG_FORCED ((struct siginfo *) 2) |
1041 | 1086 | ||
1087 | static inline int is_si_special(const struct siginfo *info) | ||
1088 | { | ||
1089 | return info <= SEND_SIG_FORCED; | ||
1090 | } | ||
1091 | |||
1042 | /* True if we are on the alternate signal stack. */ | 1092 | /* True if we are on the alternate signal stack. */ |
1043 | 1093 | ||
1044 | static inline int on_sig_stack(unsigned long sp) | 1094 | static inline int on_sig_stack(unsigned long sp) |
@@ -1166,7 +1216,7 @@ extern void unhash_process(struct task_struct *p); | |||
1166 | /* | 1216 | /* |
1167 | * Protects ->fs, ->files, ->mm, ->ptrace, ->group_info, ->comm, keyring | 1217 | * Protects ->fs, ->files, ->mm, ->ptrace, ->group_info, ->comm, keyring |
1168 | * subscriptions and synchronises with wait4(). Also used in procfs. Also | 1218 | * subscriptions and synchronises with wait4(). Also used in procfs. Also |
1169 | * pins the final release of task.io_context. | 1219 | * pins the final release of task.io_context. Also protects ->cpuset. |
1170 | * | 1220 | * |
1171 | * Nests both inside and outside of read_lock(&tasklist_lock). | 1221 | * Nests both inside and outside of read_lock(&tasklist_lock). |
1172 | * It must not be nested with write_lock_irq(&tasklist_lock), | 1222 | * It must not be nested with write_lock_irq(&tasklist_lock), |
diff --git a/include/linux/sdladrv.h b/include/linux/sdladrv.h index 78f634007fc6..c85e103d5e7b 100644 --- a/include/linux/sdladrv.h +++ b/include/linux/sdladrv.h | |||
@@ -52,12 +52,8 @@ typedef struct sdlahw | |||
52 | 52 | ||
53 | extern int sdla_setup (sdlahw_t* hw, void* sfm, unsigned len); | 53 | extern int sdla_setup (sdlahw_t* hw, void* sfm, unsigned len); |
54 | extern int sdla_down (sdlahw_t* hw); | 54 | extern int sdla_down (sdlahw_t* hw); |
55 | extern int sdla_inten (sdlahw_t* hw); | ||
56 | extern int sdla_intde (sdlahw_t* hw); | ||
57 | extern int sdla_intack (sdlahw_t* hw); | ||
58 | extern void S514_intack (sdlahw_t* hw, u32 int_status); | 55 | extern void S514_intack (sdlahw_t* hw, u32 int_status); |
59 | extern void read_S514_int_stat (sdlahw_t* hw, u32* int_status); | 56 | extern void read_S514_int_stat (sdlahw_t* hw, u32* int_status); |
60 | extern int sdla_intr (sdlahw_t* hw); | ||
61 | extern int sdla_mapmem (sdlahw_t* hw, unsigned long addr); | 57 | extern int sdla_mapmem (sdlahw_t* hw, unsigned long addr); |
62 | extern int sdla_peek (sdlahw_t* hw, unsigned long addr, void* buf, | 58 | extern int sdla_peek (sdlahw_t* hw, unsigned long addr, void* buf, |
63 | unsigned len); | 59 | unsigned len); |
diff --git a/include/linux/security.h b/include/linux/security.h index 627382e74057..f7e0ae018712 100644 --- a/include/linux/security.h +++ b/include/linux/security.h | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <linux/shm.h> | 30 | #include <linux/shm.h> |
31 | #include <linux/msg.h> | 31 | #include <linux/msg.h> |
32 | #include <linux/sched.h> | 32 | #include <linux/sched.h> |
33 | #include <linux/key.h> | ||
33 | 34 | ||
34 | struct ctl_table; | 35 | struct ctl_table; |
35 | 36 | ||
@@ -385,6 +386,9 @@ struct swap_info_struct; | |||
385 | * NULL to request the size of the buffer required. @size indicates | 386 | * NULL to request the size of the buffer required. @size indicates |
386 | * the size of @buffer in bytes. Note that @name is the remainder | 387 | * the size of @buffer in bytes. Note that @name is the remainder |
387 | * of the attribute name after the security. prefix has been removed. | 388 | * of the attribute name after the security. prefix has been removed. |
389 | * @err is the return value from the preceding fs getxattr call, | ||
390 | * and can be used by the security module to determine whether it | ||
391 | * should try and canonicalize the attribute value. | ||
388 | * Return number of bytes used/required on success. | 392 | * Return number of bytes used/required on success. |
389 | * @inode_setsecurity: | 393 | * @inode_setsecurity: |
390 | * Set the security label associated with @name for @inode from the | 394 | * Set the security label associated with @name for @inode from the |
@@ -785,6 +789,27 @@ struct swap_info_struct; | |||
785 | * @sk_free_security: | 789 | * @sk_free_security: |
786 | * Deallocate security structure. | 790 | * Deallocate security structure. |
787 | * | 791 | * |
792 | * Security hooks affecting all Key Management operations | ||
793 | * | ||
794 | * @key_alloc: | ||
795 | * Permit allocation of a key and assign security data. Note that key does | ||
796 | * not have a serial number assigned at this point. | ||
797 | * @key points to the key. | ||
798 | * Return 0 if permission is granted, -ve error otherwise. | ||
799 | * @key_free: | ||
800 | * Notification of destruction; free security data. | ||
801 | * @key points to the key. | ||
802 | * No return value. | ||
803 | * @key_permission: | ||
804 | * See whether a specific operational right is granted to a process on a | ||
805 | * key. | ||
806 | * @key_ref refers to the key (key pointer + possession attribute bit). | ||
807 | * @context points to the process to provide the context against which to | ||
808 | * evaluate the security data on the key. | ||
809 | * @perm describes the combination of permissions required of this key. | ||
810 | * Return 1 if permission granted, 0 if permission denied and -ve it the | ||
811 | * normal permissions model should be effected. | ||
812 | * | ||
788 | * Security hooks affecting all System V IPC operations. | 813 | * Security hooks affecting all System V IPC operations. |
789 | * | 814 | * |
790 | * @ipc_permission: | 815 | * @ipc_permission: |
@@ -1091,7 +1116,7 @@ struct security_operations { | |||
1091 | int (*inode_getxattr) (struct dentry *dentry, char *name); | 1116 | int (*inode_getxattr) (struct dentry *dentry, char *name); |
1092 | int (*inode_listxattr) (struct dentry *dentry); | 1117 | int (*inode_listxattr) (struct dentry *dentry); |
1093 | int (*inode_removexattr) (struct dentry *dentry, char *name); | 1118 | int (*inode_removexattr) (struct dentry *dentry, char *name); |
1094 | int (*inode_getsecurity)(struct inode *inode, const char *name, void *buffer, size_t size); | 1119 | int (*inode_getsecurity)(struct inode *inode, const char *name, void *buffer, size_t size, int err); |
1095 | int (*inode_setsecurity)(struct inode *inode, const char *name, const void *value, size_t size, int flags); | 1120 | int (*inode_setsecurity)(struct inode *inode, const char *name, const void *value, size_t size, int flags); |
1096 | int (*inode_listsecurity)(struct inode *inode, char *buffer, size_t buffer_size); | 1121 | int (*inode_listsecurity)(struct inode *inode, char *buffer, size_t buffer_size); |
1097 | 1122 | ||
@@ -1210,9 +1235,20 @@ struct security_operations { | |||
1210 | int (*socket_shutdown) (struct socket * sock, int how); | 1235 | int (*socket_shutdown) (struct socket * sock, int how); |
1211 | int (*socket_sock_rcv_skb) (struct sock * sk, struct sk_buff * skb); | 1236 | int (*socket_sock_rcv_skb) (struct sock * sk, struct sk_buff * skb); |
1212 | int (*socket_getpeersec) (struct socket *sock, char __user *optval, int __user *optlen, unsigned len); | 1237 | int (*socket_getpeersec) (struct socket *sock, char __user *optval, int __user *optlen, unsigned len); |
1213 | int (*sk_alloc_security) (struct sock *sk, int family, int priority); | 1238 | int (*sk_alloc_security) (struct sock *sk, int family, gfp_t priority); |
1214 | void (*sk_free_security) (struct sock *sk); | 1239 | void (*sk_free_security) (struct sock *sk); |
1215 | #endif /* CONFIG_SECURITY_NETWORK */ | 1240 | #endif /* CONFIG_SECURITY_NETWORK */ |
1241 | |||
1242 | /* key management security hooks */ | ||
1243 | #ifdef CONFIG_KEYS | ||
1244 | int (*key_alloc)(struct key *key); | ||
1245 | void (*key_free)(struct key *key); | ||
1246 | int (*key_permission)(key_ref_t key_ref, | ||
1247 | struct task_struct *context, | ||
1248 | key_perm_t perm); | ||
1249 | |||
1250 | #endif /* CONFIG_KEYS */ | ||
1251 | |||
1216 | }; | 1252 | }; |
1217 | 1253 | ||
1218 | /* global variables */ | 1254 | /* global variables */ |
@@ -1580,11 +1616,11 @@ static inline int security_inode_removexattr (struct dentry *dentry, char *name) | |||
1580 | return security_ops->inode_removexattr (dentry, name); | 1616 | return security_ops->inode_removexattr (dentry, name); |
1581 | } | 1617 | } |
1582 | 1618 | ||
1583 | static inline int security_inode_getsecurity(struct inode *inode, const char *name, void *buffer, size_t size) | 1619 | static inline int security_inode_getsecurity(struct inode *inode, const char *name, void *buffer, size_t size, int err) |
1584 | { | 1620 | { |
1585 | if (unlikely (IS_PRIVATE (inode))) | 1621 | if (unlikely (IS_PRIVATE (inode))) |
1586 | return 0; | 1622 | return 0; |
1587 | return security_ops->inode_getsecurity(inode, name, buffer, size); | 1623 | return security_ops->inode_getsecurity(inode, name, buffer, size, err); |
1588 | } | 1624 | } |
1589 | 1625 | ||
1590 | static inline int security_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags) | 1626 | static inline int security_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags) |
@@ -2222,7 +2258,7 @@ static inline int security_inode_removexattr (struct dentry *dentry, char *name) | |||
2222 | return cap_inode_removexattr(dentry, name); | 2258 | return cap_inode_removexattr(dentry, name); |
2223 | } | 2259 | } |
2224 | 2260 | ||
2225 | static inline int security_inode_getsecurity(struct inode *inode, const char *name, void *buffer, size_t size) | 2261 | static inline int security_inode_getsecurity(struct inode *inode, const char *name, void *buffer, size_t size, int err) |
2226 | { | 2262 | { |
2227 | return -EOPNOTSUPP; | 2263 | return -EOPNOTSUPP; |
2228 | } | 2264 | } |
@@ -2761,5 +2797,45 @@ static inline void security_sk_free(struct sock *sk) | |||
2761 | } | 2797 | } |
2762 | #endif /* CONFIG_SECURITY_NETWORK */ | 2798 | #endif /* CONFIG_SECURITY_NETWORK */ |
2763 | 2799 | ||
2800 | #ifdef CONFIG_KEYS | ||
2801 | #ifdef CONFIG_SECURITY | ||
2802 | static inline int security_key_alloc(struct key *key) | ||
2803 | { | ||
2804 | return security_ops->key_alloc(key); | ||
2805 | } | ||
2806 | |||
2807 | static inline void security_key_free(struct key *key) | ||
2808 | { | ||
2809 | security_ops->key_free(key); | ||
2810 | } | ||
2811 | |||
2812 | static inline int security_key_permission(key_ref_t key_ref, | ||
2813 | struct task_struct *context, | ||
2814 | key_perm_t perm) | ||
2815 | { | ||
2816 | return security_ops->key_permission(key_ref, context, perm); | ||
2817 | } | ||
2818 | |||
2819 | #else | ||
2820 | |||
2821 | static inline int security_key_alloc(struct key *key) | ||
2822 | { | ||
2823 | return 0; | ||
2824 | } | ||
2825 | |||
2826 | static inline void security_key_free(struct key *key) | ||
2827 | { | ||
2828 | } | ||
2829 | |||
2830 | static inline int security_key_permission(key_ref_t key_ref, | ||
2831 | struct task_struct *context, | ||
2832 | key_perm_t perm) | ||
2833 | { | ||
2834 | return 0; | ||
2835 | } | ||
2836 | |||
2837 | #endif | ||
2838 | #endif /* CONFIG_KEYS */ | ||
2839 | |||
2764 | #endif /* ! __LINUX_SECURITY_H */ | 2840 | #endif /* ! __LINUX_SECURITY_H */ |
2765 | 2841 | ||
diff --git a/include/linux/serial.h b/include/linux/serial.h index 12cd9cf65e8f..33fc8cb8ddfb 100644 --- a/include/linux/serial.h +++ b/include/linux/serial.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #define _LINUX_SERIAL_H | 11 | #define _LINUX_SERIAL_H |
12 | 12 | ||
13 | #ifdef __KERNEL__ | 13 | #ifdef __KERNEL__ |
14 | #include <linux/types.h> | ||
14 | #include <asm/page.h> | 15 | #include <asm/page.h> |
15 | 16 | ||
16 | /* | 17 | /* |
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h index 317a979b24de..2b799d40d669 100644 --- a/include/linux/serial_8250.h +++ b/include/linux/serial_8250.h | |||
@@ -12,7 +12,7 @@ | |||
12 | #define _LINUX_SERIAL_8250_H | 12 | #define _LINUX_SERIAL_8250_H |
13 | 13 | ||
14 | #include <linux/serial_core.h> | 14 | #include <linux/serial_core.h> |
15 | #include <linux/device.h> | 15 | #include <linux/platform_device.h> |
16 | 16 | ||
17 | /* | 17 | /* |
18 | * This is the platform device platform_data structure | 18 | * This is the platform device platform_data structure |
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h index 27db8da43aa4..2b0401b93f2b 100644 --- a/include/linux/serial_core.h +++ b/include/linux/serial_core.h | |||
@@ -39,7 +39,8 @@ | |||
39 | #define PORT_RSA 13 | 39 | #define PORT_RSA 13 |
40 | #define PORT_NS16550A 14 | 40 | #define PORT_NS16550A 14 |
41 | #define PORT_XSCALE 15 | 41 | #define PORT_XSCALE 15 |
42 | #define PORT_MAX_8250 15 /* max port ID */ | 42 | #define PORT_IP3106 16 |
43 | #define PORT_MAX_8250 16 /* max port ID */ | ||
43 | 44 | ||
44 | /* | 45 | /* |
45 | * ARM specific type numbers. These are not currently guaranteed | 46 | * ARM specific type numbers. These are not currently guaranteed |
diff --git a/include/linux/serial_ip3106.h b/include/linux/serial_ip3106.h new file mode 100644 index 000000000000..f500ac602c5c --- /dev/null +++ b/include/linux/serial_ip3106.h | |||
@@ -0,0 +1,81 @@ | |||
1 | /* | ||
2 | * Embedded Alley Solutions, source@embeddedalley.com. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | */ | ||
18 | |||
19 | #ifndef _LINUX_SERIAL_IP3106_H | ||
20 | #define _LINUX_SERIAL_IP3106_H | ||
21 | |||
22 | #include <linux/serial_core.h> | ||
23 | #include <linux/device.h> | ||
24 | |||
25 | #define IP3106_NR_PORTS 2 | ||
26 | |||
27 | struct ip3106_port { | ||
28 | struct uart_port port; | ||
29 | struct timer_list timer; | ||
30 | unsigned int old_status; | ||
31 | }; | ||
32 | |||
33 | /* register offsets */ | ||
34 | #define IP3106_LCR 0 | ||
35 | #define IP3106_MCR 0x004 | ||
36 | #define IP3106_BAUD 0x008 | ||
37 | #define IP3106_CFG 0x00c | ||
38 | #define IP3106_FIFO 0x028 | ||
39 | #define IP3106_ISTAT 0xfe0 | ||
40 | #define IP3106_IEN 0xfe4 | ||
41 | #define IP3106_ICLR 0xfe8 | ||
42 | #define IP3106_ISET 0xfec | ||
43 | #define IP3106_PD 0xff4 | ||
44 | #define IP3106_MID 0xffc | ||
45 | |||
46 | #define IP3106_UART_LCR_TXBREAK (1<<30) | ||
47 | #define IP3106_UART_LCR_PAREVN 0x10000000 | ||
48 | #define IP3106_UART_LCR_PAREN 0x08000000 | ||
49 | #define IP3106_UART_LCR_2STOPB 0x04000000 | ||
50 | #define IP3106_UART_LCR_8BIT 0x01000000 | ||
51 | #define IP3106_UART_LCR_TX_RST 0x00040000 | ||
52 | #define IP3106_UART_LCR_RX_RST 0x00020000 | ||
53 | #define IP3106_UART_LCR_RX_NEXT 0x00010000 | ||
54 | |||
55 | #define IP3106_UART_MCR_SCR 0xFF000000 | ||
56 | #define IP3106_UART_MCR_DCD 0x00800000 | ||
57 | #define IP3106_UART_MCR_CTS 0x00100000 | ||
58 | #define IP3106_UART_MCR_LOOP 0x00000010 | ||
59 | #define IP3106_UART_MCR_RTS 0x00000002 | ||
60 | #define IP3106_UART_MCR_DTR 0x00000001 | ||
61 | |||
62 | #define IP3106_UART_INT_TX 0x00000080 | ||
63 | #define IP3106_UART_INT_EMPTY 0x00000040 | ||
64 | #define IP3106_UART_INT_RCVTO 0x00000020 | ||
65 | #define IP3106_UART_INT_RX 0x00000010 | ||
66 | #define IP3106_UART_INT_RXOVRN 0x00000008 | ||
67 | #define IP3106_UART_INT_FRERR 0x00000004 | ||
68 | #define IP3106_UART_INT_BREAK 0x00000002 | ||
69 | #define IP3106_UART_INT_PARITY 0x00000001 | ||
70 | #define IP3106_UART_INT_ALLRX 0x0000003F | ||
71 | #define IP3106_UART_INT_ALLTX 0x000000C0 | ||
72 | |||
73 | #define IP3106_UART_FIFO_TXFIFO 0x001F0000 | ||
74 | #define IP3106_UART_FIFO_TXFIFO_STA (0x1f<<16) | ||
75 | #define IP3106_UART_FIFO_RXBRK 0x00008000 | ||
76 | #define IP3106_UART_FIFO_RXFE 0x00004000 | ||
77 | #define IP3106_UART_FIFO_RXPAR 0x00002000 | ||
78 | #define IP3106_UART_FIFO_RXFIFO 0x00001F00 | ||
79 | #define IP3106_UART_FIFO_RBRTHR 0x000000FF | ||
80 | |||
81 | #endif | ||
diff --git a/include/linux/signal.h b/include/linux/signal.h index 7be18b5e2fb4..5dd5f02c5c5f 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h | |||
@@ -25,7 +25,6 @@ | |||
25 | 25 | ||
26 | struct sigqueue { | 26 | struct sigqueue { |
27 | struct list_head list; | 27 | struct list_head list; |
28 | spinlock_t *lock; | ||
29 | int flags; | 28 | int flags; |
30 | siginfo_t info; | 29 | siginfo_t info; |
31 | struct user_struct *user; | 30 | struct user_struct *user; |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 8f5d9e7f8734..4286d832166f 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -137,6 +137,8 @@ struct skb_shared_info { | |||
137 | unsigned int nr_frags; | 137 | unsigned int nr_frags; |
138 | unsigned short tso_size; | 138 | unsigned short tso_size; |
139 | unsigned short tso_segs; | 139 | unsigned short tso_segs; |
140 | unsigned short ufo_size; | ||
141 | unsigned int ip6_frag_id; | ||
140 | struct sk_buff *frag_list; | 142 | struct sk_buff *frag_list; |
141 | skb_frag_t frags[MAX_SKB_FRAGS]; | 143 | skb_frag_t frags[MAX_SKB_FRAGS]; |
142 | }; | 144 | }; |
@@ -171,7 +173,6 @@ enum { | |||
171 | * struct sk_buff - socket buffer | 173 | * struct sk_buff - socket buffer |
172 | * @next: Next buffer in list | 174 | * @next: Next buffer in list |
173 | * @prev: Previous buffer in list | 175 | * @prev: Previous buffer in list |
174 | * @list: List we are on | ||
175 | * @sk: Socket we are owned by | 176 | * @sk: Socket we are owned by |
176 | * @tstamp: Time we arrived | 177 | * @tstamp: Time we arrived |
177 | * @dev: Device we arrived on/are leaving by | 178 | * @dev: Device we arrived on/are leaving by |
@@ -190,6 +191,7 @@ enum { | |||
190 | * @cloned: Head may be cloned (check refcnt to be sure) | 191 | * @cloned: Head may be cloned (check refcnt to be sure) |
191 | * @nohdr: Payload reference only, must not modify header | 192 | * @nohdr: Payload reference only, must not modify header |
192 | * @pkt_type: Packet class | 193 | * @pkt_type: Packet class |
194 | * @fclone: skbuff clone status | ||
193 | * @ip_summed: Driver fed us an IP checksum | 195 | * @ip_summed: Driver fed us an IP checksum |
194 | * @priority: Packet queueing priority | 196 | * @priority: Packet queueing priority |
195 | * @users: User count - see {datagram,tcp}.c | 197 | * @users: User count - see {datagram,tcp}.c |
@@ -202,6 +204,7 @@ enum { | |||
202 | * @destructor: Destruct function | 204 | * @destructor: Destruct function |
203 | * @nfmark: Can be used for communication between hooks | 205 | * @nfmark: Can be used for communication between hooks |
204 | * @nfct: Associated connection, if any | 206 | * @nfct: Associated connection, if any |
207 | * @ipvs_property: skbuff is owned by ipvs | ||
205 | * @nfctinfo: Relationship of this skb to the connection | 208 | * @nfctinfo: Relationship of this skb to the connection |
206 | * @nf_bridge: Saved data about a bridged frame - see br_netfilter.c | 209 | * @nf_bridge: Saved data about a bridged frame - see br_netfilter.c |
207 | * @tc_index: Traffic control index | 210 | * @tc_index: Traffic control index |
@@ -340,6 +343,11 @@ extern void skb_over_panic(struct sk_buff *skb, int len, | |||
340 | extern void skb_under_panic(struct sk_buff *skb, int len, | 343 | extern void skb_under_panic(struct sk_buff *skb, int len, |
341 | void *here); | 344 | void *here); |
342 | 345 | ||
346 | extern int skb_append_datato_frags(struct sock *sk, struct sk_buff *skb, | ||
347 | int getfrag(void *from, char *to, int offset, | ||
348 | int len,int odd, struct sk_buff *skb), | ||
349 | void *from, int length); | ||
350 | |||
343 | struct skb_seq_state | 351 | struct skb_seq_state |
344 | { | 352 | { |
345 | __u32 lower_offset; | 353 | __u32 lower_offset; |
diff --git a/include/linux/slab.h b/include/linux/slab.h index 5fc04a16ecb0..09b9aa60063d 100644 --- a/include/linux/slab.h +++ b/include/linux/slab.h | |||
@@ -121,7 +121,7 @@ extern unsigned int ksize(const void *); | |||
121 | extern void *kmem_cache_alloc_node(kmem_cache_t *, gfp_t flags, int node); | 121 | extern void *kmem_cache_alloc_node(kmem_cache_t *, gfp_t flags, int node); |
122 | extern void *kmalloc_node(size_t size, gfp_t flags, int node); | 122 | extern void *kmalloc_node(size_t size, gfp_t flags, int node); |
123 | #else | 123 | #else |
124 | static inline void *kmem_cache_alloc_node(kmem_cache_t *cachep, int flags, int node) | 124 | static inline void *kmem_cache_alloc_node(kmem_cache_t *cachep, gfp_t flags, int node) |
125 | { | 125 | { |
126 | return kmem_cache_alloc(cachep, flags); | 126 | return kmem_cache_alloc(cachep, flags); |
127 | } | 127 | } |
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index cdc99a27840d..0e9682c9def5 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h | |||
@@ -171,23 +171,42 @@ extern int __lockfunc generic__raw_read_trylock(raw_rwlock_t *lock); | |||
171 | #define write_lock_irq(lock) _write_lock_irq(lock) | 171 | #define write_lock_irq(lock) _write_lock_irq(lock) |
172 | #define write_lock_bh(lock) _write_lock_bh(lock) | 172 | #define write_lock_bh(lock) _write_lock_bh(lock) |
173 | 173 | ||
174 | #define spin_unlock(lock) _spin_unlock(lock) | 174 | /* |
175 | #define write_unlock(lock) _write_unlock(lock) | 175 | * We inline the unlock functions in the nondebug case: |
176 | #define read_unlock(lock) _read_unlock(lock) | 176 | */ |
177 | #if defined(CONFIG_DEBUG_SPINLOCK) || defined(CONFIG_PREEMPT) || !defined(CONFIG_SMP) | ||
178 | # define spin_unlock(lock) _spin_unlock(lock) | ||
179 | # define read_unlock(lock) _read_unlock(lock) | ||
180 | # define write_unlock(lock) _write_unlock(lock) | ||
181 | #else | ||
182 | # define spin_unlock(lock) __raw_spin_unlock(&(lock)->raw_lock) | ||
183 | # define read_unlock(lock) __raw_read_unlock(&(lock)->raw_lock) | ||
184 | # define write_unlock(lock) __raw_write_unlock(&(lock)->raw_lock) | ||
185 | #endif | ||
186 | |||
187 | #if defined(CONFIG_DEBUG_SPINLOCK) || defined(CONFIG_PREEMPT) || !defined(CONFIG_SMP) | ||
188 | # define spin_unlock_irq(lock) _spin_unlock_irq(lock) | ||
189 | # define read_unlock_irq(lock) _read_unlock_irq(lock) | ||
190 | # define write_unlock_irq(lock) _write_unlock_irq(lock) | ||
191 | #else | ||
192 | # define spin_unlock_irq(lock) \ | ||
193 | do { __raw_spin_unlock(&(lock)->raw_lock); local_irq_enable(); } while (0) | ||
194 | # define read_unlock_irq(lock) \ | ||
195 | do { __raw_read_unlock(&(lock)->raw_lock); local_irq_enable(); } while (0) | ||
196 | # define write_unlock_irq(lock) \ | ||
197 | do { __raw_write_unlock(&(lock)->raw_lock); local_irq_enable(); } while (0) | ||
198 | #endif | ||
177 | 199 | ||
178 | #define spin_unlock_irqrestore(lock, flags) \ | 200 | #define spin_unlock_irqrestore(lock, flags) \ |
179 | _spin_unlock_irqrestore(lock, flags) | 201 | _spin_unlock_irqrestore(lock, flags) |
180 | #define spin_unlock_irq(lock) _spin_unlock_irq(lock) | ||
181 | #define spin_unlock_bh(lock) _spin_unlock_bh(lock) | 202 | #define spin_unlock_bh(lock) _spin_unlock_bh(lock) |
182 | 203 | ||
183 | #define read_unlock_irqrestore(lock, flags) \ | 204 | #define read_unlock_irqrestore(lock, flags) \ |
184 | _read_unlock_irqrestore(lock, flags) | 205 | _read_unlock_irqrestore(lock, flags) |
185 | #define read_unlock_irq(lock) _read_unlock_irq(lock) | ||
186 | #define read_unlock_bh(lock) _read_unlock_bh(lock) | 206 | #define read_unlock_bh(lock) _read_unlock_bh(lock) |
187 | 207 | ||
188 | #define write_unlock_irqrestore(lock, flags) \ | 208 | #define write_unlock_irqrestore(lock, flags) \ |
189 | _write_unlock_irqrestore(lock, flags) | 209 | _write_unlock_irqrestore(lock, flags) |
190 | #define write_unlock_irq(lock) _write_unlock_irq(lock) | ||
191 | #define write_unlock_bh(lock) _write_unlock_bh(lock) | 210 | #define write_unlock_bh(lock) _write_unlock_bh(lock) |
192 | 211 | ||
193 | #define spin_trylock_bh(lock) __cond_lock(_spin_trylock_bh(lock)) | 212 | #define spin_trylock_bh(lock) __cond_lock(_spin_trylock_bh(lock)) |
diff --git a/include/linux/sunrpc/auth.h b/include/linux/sunrpc/auth.h index 04ebc24db348..b68c11a2d6dd 100644 --- a/include/linux/sunrpc/auth.h +++ b/include/linux/sunrpc/auth.h | |||
@@ -66,7 +66,12 @@ struct rpc_cred_cache { | |||
66 | 66 | ||
67 | struct rpc_auth { | 67 | struct rpc_auth { |
68 | unsigned int au_cslack; /* call cred size estimate */ | 68 | unsigned int au_cslack; /* call cred size estimate */ |
69 | unsigned int au_rslack; /* reply verf size guess */ | 69 | /* guess at number of u32's auth adds before |
70 | * reply data; normally the verifier size: */ | ||
71 | unsigned int au_rslack; | ||
72 | /* for gss, used to calculate au_rslack: */ | ||
73 | unsigned int au_verfsize; | ||
74 | |||
70 | unsigned int au_flags; /* various flags */ | 75 | unsigned int au_flags; /* various flags */ |
71 | struct rpc_authops * au_ops; /* operations */ | 76 | struct rpc_authops * au_ops; /* operations */ |
72 | rpc_authflavor_t au_flavor; /* pseudoflavor (note may | 77 | rpc_authflavor_t au_flavor; /* pseudoflavor (note may |
diff --git a/include/linux/sunrpc/debug.h b/include/linux/sunrpc/debug.h index eadb31e3c198..1a42d902bc11 100644 --- a/include/linux/sunrpc/debug.h +++ b/include/linux/sunrpc/debug.h | |||
@@ -32,6 +32,7 @@ | |||
32 | #define RPCDBG_AUTH 0x0010 | 32 | #define RPCDBG_AUTH 0x0010 |
33 | #define RPCDBG_PMAP 0x0020 | 33 | #define RPCDBG_PMAP 0x0020 |
34 | #define RPCDBG_SCHED 0x0040 | 34 | #define RPCDBG_SCHED 0x0040 |
35 | #define RPCDBG_TRANS 0x0080 | ||
35 | #define RPCDBG_SVCSOCK 0x0100 | 36 | #define RPCDBG_SVCSOCK 0x0100 |
36 | #define RPCDBG_SVCDSP 0x0200 | 37 | #define RPCDBG_SVCDSP 0x0200 |
37 | #define RPCDBG_MISC 0x0400 | 38 | #define RPCDBG_MISC 0x0400 |
@@ -94,6 +95,8 @@ enum { | |||
94 | CTL_NLMDEBUG, | 95 | CTL_NLMDEBUG, |
95 | CTL_SLOTTABLE_UDP, | 96 | CTL_SLOTTABLE_UDP, |
96 | CTL_SLOTTABLE_TCP, | 97 | CTL_SLOTTABLE_TCP, |
98 | CTL_MIN_RESVPORT, | ||
99 | CTL_MAX_RESVPORT, | ||
97 | }; | 100 | }; |
98 | 101 | ||
99 | #endif /* _LINUX_SUNRPC_DEBUG_H_ */ | 102 | #endif /* _LINUX_SUNRPC_DEBUG_H_ */ |
diff --git a/include/linux/sunrpc/gss_api.h b/include/linux/sunrpc/gss_api.h index 689262f63059..9b8bcf125c18 100644 --- a/include/linux/sunrpc/gss_api.h +++ b/include/linux/sunrpc/gss_api.h | |||
@@ -40,14 +40,21 @@ int gss_import_sec_context( | |||
40 | struct gss_ctx **ctx_id); | 40 | struct gss_ctx **ctx_id); |
41 | u32 gss_get_mic( | 41 | u32 gss_get_mic( |
42 | struct gss_ctx *ctx_id, | 42 | struct gss_ctx *ctx_id, |
43 | u32 qop, | ||
44 | struct xdr_buf *message, | 43 | struct xdr_buf *message, |
45 | struct xdr_netobj *mic_token); | 44 | struct xdr_netobj *mic_token); |
46 | u32 gss_verify_mic( | 45 | u32 gss_verify_mic( |
47 | struct gss_ctx *ctx_id, | 46 | struct gss_ctx *ctx_id, |
48 | struct xdr_buf *message, | 47 | struct xdr_buf *message, |
49 | struct xdr_netobj *mic_token, | 48 | struct xdr_netobj *mic_token); |
50 | u32 *qstate); | 49 | u32 gss_wrap( |
50 | struct gss_ctx *ctx_id, | ||
51 | int offset, | ||
52 | struct xdr_buf *outbuf, | ||
53 | struct page **inpages); | ||
54 | u32 gss_unwrap( | ||
55 | struct gss_ctx *ctx_id, | ||
56 | int offset, | ||
57 | struct xdr_buf *inbuf); | ||
51 | u32 gss_delete_sec_context( | 58 | u32 gss_delete_sec_context( |
52 | struct gss_ctx **ctx_id); | 59 | struct gss_ctx **ctx_id); |
53 | 60 | ||
@@ -56,7 +63,6 @@ char *gss_service_to_auth_domain_name(struct gss_api_mech *, u32 service); | |||
56 | 63 | ||
57 | struct pf_desc { | 64 | struct pf_desc { |
58 | u32 pseudoflavor; | 65 | u32 pseudoflavor; |
59 | u32 qop; | ||
60 | u32 service; | 66 | u32 service; |
61 | char *name; | 67 | char *name; |
62 | char *auth_domain_name; | 68 | char *auth_domain_name; |
@@ -85,14 +91,21 @@ struct gss_api_ops { | |||
85 | struct gss_ctx *ctx_id); | 91 | struct gss_ctx *ctx_id); |
86 | u32 (*gss_get_mic)( | 92 | u32 (*gss_get_mic)( |
87 | struct gss_ctx *ctx_id, | 93 | struct gss_ctx *ctx_id, |
88 | u32 qop, | ||
89 | struct xdr_buf *message, | 94 | struct xdr_buf *message, |
90 | struct xdr_netobj *mic_token); | 95 | struct xdr_netobj *mic_token); |
91 | u32 (*gss_verify_mic)( | 96 | u32 (*gss_verify_mic)( |
92 | struct gss_ctx *ctx_id, | 97 | struct gss_ctx *ctx_id, |
93 | struct xdr_buf *message, | 98 | struct xdr_buf *message, |
94 | struct xdr_netobj *mic_token, | 99 | struct xdr_netobj *mic_token); |
95 | u32 *qstate); | 100 | u32 (*gss_wrap)( |
101 | struct gss_ctx *ctx_id, | ||
102 | int offset, | ||
103 | struct xdr_buf *outbuf, | ||
104 | struct page **inpages); | ||
105 | u32 (*gss_unwrap)( | ||
106 | struct gss_ctx *ctx_id, | ||
107 | int offset, | ||
108 | struct xdr_buf *buf); | ||
96 | void (*gss_delete_sec_context)( | 109 | void (*gss_delete_sec_context)( |
97 | void *internal_ctx_id); | 110 | void *internal_ctx_id); |
98 | }; | 111 | }; |
diff --git a/include/linux/sunrpc/gss_err.h b/include/linux/sunrpc/gss_err.h index 92608a2e574c..a6807867bd21 100644 --- a/include/linux/sunrpc/gss_err.h +++ b/include/linux/sunrpc/gss_err.h | |||
@@ -66,16 +66,6 @@ typedef unsigned int OM_uint32; | |||
66 | 66 | ||
67 | 67 | ||
68 | /* | 68 | /* |
69 | * Define the default Quality of Protection for per-message services. Note | ||
70 | * that an implementation that offers multiple levels of QOP may either reserve | ||
71 | * a value (for example zero, as assumed here) to mean "default protection", or | ||
72 | * alternatively may simply equate GSS_C_QOP_DEFAULT to a specific explicit | ||
73 | * QOP value. However a value of 0 should always be interpreted by a GSSAPI | ||
74 | * implementation as a request for the default protection level. | ||
75 | */ | ||
76 | #define GSS_C_QOP_DEFAULT 0 | ||
77 | |||
78 | /* | ||
79 | * Expiration time of 2^32-1 seconds means infinite lifetime for a | 69 | * Expiration time of 2^32-1 seconds means infinite lifetime for a |
80 | * credential or security context | 70 | * credential or security context |
81 | */ | 71 | */ |
diff --git a/include/linux/sunrpc/gss_krb5.h b/include/linux/sunrpc/gss_krb5.h index ffe31d2eb9ec..2c3601d31045 100644 --- a/include/linux/sunrpc/gss_krb5.h +++ b/include/linux/sunrpc/gss_krb5.h | |||
@@ -116,18 +116,22 @@ enum seal_alg { | |||
116 | 116 | ||
117 | s32 | 117 | s32 |
118 | make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, | 118 | make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, |
119 | struct xdr_netobj *cksum); | 119 | int body_offset, struct xdr_netobj *cksum); |
120 | |||
121 | u32 gss_get_mic_kerberos(struct gss_ctx *, struct xdr_buf *, | ||
122 | struct xdr_netobj *); | ||
123 | |||
124 | u32 gss_verify_mic_kerberos(struct gss_ctx *, struct xdr_buf *, | ||
125 | struct xdr_netobj *); | ||
120 | 126 | ||
121 | u32 | 127 | u32 |
122 | krb5_make_token(struct krb5_ctx *context_handle, int qop_req, | 128 | gss_wrap_kerberos(struct gss_ctx *ctx_id, int offset, |
123 | struct xdr_buf *input_message_buffer, | 129 | struct xdr_buf *outbuf, struct page **pages); |
124 | struct xdr_netobj *output_message_buffer, int toktype); | ||
125 | 130 | ||
126 | u32 | 131 | u32 |
127 | krb5_read_token(struct krb5_ctx *context_handle, | 132 | gss_unwrap_kerberos(struct gss_ctx *ctx_id, int offset, |
128 | struct xdr_netobj *input_token_buffer, | 133 | struct xdr_buf *buf); |
129 | struct xdr_buf *message_buffer, | 134 | |
130 | int *qop_state, int toktype); | ||
131 | 135 | ||
132 | u32 | 136 | u32 |
133 | krb5_encrypt(struct crypto_tfm * key, | 137 | krb5_encrypt(struct crypto_tfm * key, |
@@ -137,6 +141,13 @@ u32 | |||
137 | krb5_decrypt(struct crypto_tfm * key, | 141 | krb5_decrypt(struct crypto_tfm * key, |
138 | void *iv, void *in, void *out, int length); | 142 | void *iv, void *in, void *out, int length); |
139 | 143 | ||
144 | int | ||
145 | gss_encrypt_xdr_buf(struct crypto_tfm *tfm, struct xdr_buf *outbuf, int offset, | ||
146 | struct page **pages); | ||
147 | |||
148 | int | ||
149 | gss_decrypt_xdr_buf(struct crypto_tfm *tfm, struct xdr_buf *inbuf, int offset); | ||
150 | |||
140 | s32 | 151 | s32 |
141 | krb5_make_seq_num(struct crypto_tfm * key, | 152 | krb5_make_seq_num(struct crypto_tfm * key, |
142 | int direction, | 153 | int direction, |
diff --git a/include/linux/sunrpc/gss_spkm3.h b/include/linux/sunrpc/gss_spkm3.h index b5c9968c3c17..0beb2cf00a84 100644 --- a/include/linux/sunrpc/gss_spkm3.h +++ b/include/linux/sunrpc/gss_spkm3.h | |||
@@ -41,9 +41,9 @@ struct spkm3_ctx { | |||
41 | #define SPKM_WRAP_TOK 5 | 41 | #define SPKM_WRAP_TOK 5 |
42 | #define SPKM_DEL_TOK 6 | 42 | #define SPKM_DEL_TOK 6 |
43 | 43 | ||
44 | u32 spkm3_make_token(struct spkm3_ctx *ctx, int qop_req, struct xdr_buf * text, struct xdr_netobj * token, int toktype); | 44 | u32 spkm3_make_token(struct spkm3_ctx *ctx, struct xdr_buf * text, struct xdr_netobj * token, int toktype); |
45 | 45 | ||
46 | u32 spkm3_read_token(struct spkm3_ctx *ctx, struct xdr_netobj *read_token, struct xdr_buf *message_buffer, int *qop_state, int toktype); | 46 | u32 spkm3_read_token(struct spkm3_ctx *ctx, struct xdr_netobj *read_token, struct xdr_buf *message_buffer, int toktype); |
47 | 47 | ||
48 | #define CKSUMTYPE_RSA_MD5 0x0007 | 48 | #define CKSUMTYPE_RSA_MD5 0x0007 |
49 | 49 | ||
diff --git a/include/linux/sunrpc/msg_prot.h b/include/linux/sunrpc/msg_prot.h index 15f115332389..f43f237360ae 100644 --- a/include/linux/sunrpc/msg_prot.h +++ b/include/linux/sunrpc/msg_prot.h | |||
@@ -76,5 +76,30 @@ enum rpc_auth_stat { | |||
76 | 76 | ||
77 | #define RPC_MAXNETNAMELEN 256 | 77 | #define RPC_MAXNETNAMELEN 256 |
78 | 78 | ||
79 | /* | ||
80 | * From RFC 1831: | ||
81 | * | ||
82 | * "A record is composed of one or more record fragments. A record | ||
83 | * fragment is a four-byte header followed by 0 to (2**31) - 1 bytes of | ||
84 | * fragment data. The bytes encode an unsigned binary number; as with | ||
85 | * XDR integers, the byte order is from highest to lowest. The number | ||
86 | * encodes two values -- a boolean which indicates whether the fragment | ||
87 | * is the last fragment of the record (bit value 1 implies the fragment | ||
88 | * is the last fragment) and a 31-bit unsigned binary value which is the | ||
89 | * length in bytes of the fragment's data. The boolean value is the | ||
90 | * highest-order bit of the header; the length is the 31 low-order bits. | ||
91 | * (Note that this record specification is NOT in XDR standard form!)" | ||
92 | * | ||
93 | * The Linux RPC client always sends its requests in a single record | ||
94 | * fragment, limiting the maximum payload size for stream transports to | ||
95 | * 2GB. | ||
96 | */ | ||
97 | |||
98 | typedef u32 rpc_fraghdr; | ||
99 | |||
100 | #define RPC_LAST_STREAM_FRAGMENT (1U << 31) | ||
101 | #define RPC_FRAGMENT_SIZE_MASK (~RPC_LAST_STREAM_FRAGMENT) | ||
102 | #define RPC_MAX_FRAGMENT_SIZE ((1U << 31) - 1) | ||
103 | |||
79 | #endif /* __KERNEL__ */ | 104 | #endif /* __KERNEL__ */ |
80 | #endif /* _LINUX_SUNRPC_MSGPROT_H_ */ | 105 | #endif /* _LINUX_SUNRPC_MSGPROT_H_ */ |
diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h index 23448d0fb5bc..5da968729cf8 100644 --- a/include/linux/sunrpc/xdr.h +++ b/include/linux/sunrpc/xdr.h | |||
@@ -161,14 +161,10 @@ typedef struct { | |||
161 | 161 | ||
162 | typedef size_t (*skb_read_actor_t)(skb_reader_t *desc, void *to, size_t len); | 162 | typedef size_t (*skb_read_actor_t)(skb_reader_t *desc, void *to, size_t len); |
163 | 163 | ||
164 | extern int csum_partial_copy_to_xdr(struct xdr_buf *, struct sk_buff *); | ||
164 | extern ssize_t xdr_partial_copy_from_skb(struct xdr_buf *, unsigned int, | 165 | extern ssize_t xdr_partial_copy_from_skb(struct xdr_buf *, unsigned int, |
165 | skb_reader_t *, skb_read_actor_t); | 166 | skb_reader_t *, skb_read_actor_t); |
166 | 167 | ||
167 | struct socket; | ||
168 | struct sockaddr; | ||
169 | extern int xdr_sendpages(struct socket *, struct sockaddr *, int, | ||
170 | struct xdr_buf *, unsigned int, int); | ||
171 | |||
172 | extern int xdr_encode_word(struct xdr_buf *, int, u32); | 168 | extern int xdr_encode_word(struct xdr_buf *, int, u32); |
173 | extern int xdr_decode_word(struct xdr_buf *, int, u32 *); | 169 | extern int xdr_decode_word(struct xdr_buf *, int, u32 *); |
174 | 170 | ||
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index e618c1649814..3b8b6e823c70 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/include/linux/sunrpc/clnt_xprt.h | 2 | * linux/include/linux/sunrpc/xprt.h |
3 | * | 3 | * |
4 | * Declarations for the RPC transport interface. | 4 | * Declarations for the RPC transport interface. |
5 | * | 5 | * |
@@ -15,20 +15,6 @@ | |||
15 | #include <linux/sunrpc/sched.h> | 15 | #include <linux/sunrpc/sched.h> |
16 | #include <linux/sunrpc/xdr.h> | 16 | #include <linux/sunrpc/xdr.h> |
17 | 17 | ||
18 | /* | ||
19 | * The transport code maintains an estimate on the maximum number of out- | ||
20 | * standing RPC requests, using a smoothed version of the congestion | ||
21 | * avoidance implemented in 44BSD. This is basically the Van Jacobson | ||
22 | * congestion algorithm: If a retransmit occurs, the congestion window is | ||
23 | * halved; otherwise, it is incremented by 1/cwnd when | ||
24 | * | ||
25 | * - a reply is received and | ||
26 | * - a full number of requests are outstanding and | ||
27 | * - the congestion window hasn't been updated recently. | ||
28 | * | ||
29 | * Upper procedures may check whether a request would block waiting for | ||
30 | * a free RPC slot by using the RPC_CONGESTED() macro. | ||
31 | */ | ||
32 | extern unsigned int xprt_udp_slot_table_entries; | 18 | extern unsigned int xprt_udp_slot_table_entries; |
33 | extern unsigned int xprt_tcp_slot_table_entries; | 19 | extern unsigned int xprt_tcp_slot_table_entries; |
34 | 20 | ||
@@ -36,34 +22,23 @@ extern unsigned int xprt_tcp_slot_table_entries; | |||
36 | #define RPC_DEF_SLOT_TABLE (16U) | 22 | #define RPC_DEF_SLOT_TABLE (16U) |
37 | #define RPC_MAX_SLOT_TABLE (128U) | 23 | #define RPC_MAX_SLOT_TABLE (128U) |
38 | 24 | ||
39 | #define RPC_CWNDSHIFT (8U) | ||
40 | #define RPC_CWNDSCALE (1U << RPC_CWNDSHIFT) | ||
41 | #define RPC_INITCWND RPC_CWNDSCALE | ||
42 | #define RPC_MAXCWND(xprt) ((xprt)->max_reqs << RPC_CWNDSHIFT) | ||
43 | #define RPCXPRT_CONGESTED(xprt) ((xprt)->cong >= (xprt)->cwnd) | ||
44 | |||
45 | /* Default timeout values */ | ||
46 | #define RPC_MAX_UDP_TIMEOUT (60*HZ) | ||
47 | #define RPC_MAX_TCP_TIMEOUT (600*HZ) | ||
48 | |||
49 | /* | 25 | /* |
50 | * Wait duration for an RPC TCP connection to be established. Solaris | 26 | * RPC call and reply header size as number of 32bit words (verifier |
51 | * NFS over TCP uses 60 seconds, for example, which is in line with how | 27 | * size computed separately) |
52 | * long a server takes to reboot. | ||
53 | */ | 28 | */ |
54 | #define RPC_CONNECT_TIMEOUT (60*HZ) | 29 | #define RPC_CALLHDRSIZE 6 |
30 | #define RPC_REPHDRSIZE 4 | ||
55 | 31 | ||
56 | /* | 32 | /* |
57 | * Delay an arbitrary number of seconds before attempting to reconnect | 33 | * Parameters for choosing a free port |
58 | * after an error. | ||
59 | */ | 34 | */ |
60 | #define RPC_REESTABLISH_TIMEOUT (15*HZ) | 35 | extern unsigned int xprt_min_resvport; |
36 | extern unsigned int xprt_max_resvport; | ||
61 | 37 | ||
62 | /* RPC call and reply header size as number of 32bit words (verifier | 38 | #define RPC_MIN_RESVPORT (1U) |
63 | * size computed separately) | 39 | #define RPC_MAX_RESVPORT (65535U) |
64 | */ | 40 | #define RPC_DEF_MIN_RESVPORT (650U) |
65 | #define RPC_CALLHDRSIZE 6 | 41 | #define RPC_DEF_MAX_RESVPORT (1023U) |
66 | #define RPC_REPHDRSIZE 4 | ||
67 | 42 | ||
68 | /* | 43 | /* |
69 | * This describes a timeout strategy | 44 | * This describes a timeout strategy |
@@ -76,6 +51,9 @@ struct rpc_timeout { | |||
76 | unsigned char to_exponential; | 51 | unsigned char to_exponential; |
77 | }; | 52 | }; |
78 | 53 | ||
54 | struct rpc_task; | ||
55 | struct rpc_xprt; | ||
56 | |||
79 | /* | 57 | /* |
80 | * This describes a complete RPC request | 58 | * This describes a complete RPC request |
81 | */ | 59 | */ |
@@ -95,7 +73,10 @@ struct rpc_rqst { | |||
95 | int rq_cong; /* has incremented xprt->cong */ | 73 | int rq_cong; /* has incremented xprt->cong */ |
96 | int rq_received; /* receive completed */ | 74 | int rq_received; /* receive completed */ |
97 | u32 rq_seqno; /* gss seq no. used on req. */ | 75 | u32 rq_seqno; /* gss seq no. used on req. */ |
98 | 76 | int rq_enc_pages_num; | |
77 | struct page **rq_enc_pages; /* scratch pages for use by | ||
78 | gss privacy code */ | ||
79 | void (*rq_release_snd_buf)(struct rpc_rqst *); /* release rq_enc_pages */ | ||
99 | struct list_head rq_list; | 80 | struct list_head rq_list; |
100 | 81 | ||
101 | struct xdr_buf rq_private_buf; /* The receive buffer | 82 | struct xdr_buf rq_private_buf; /* The receive buffer |
@@ -121,12 +102,21 @@ struct rpc_rqst { | |||
121 | #define rq_svec rq_snd_buf.head | 102 | #define rq_svec rq_snd_buf.head |
122 | #define rq_slen rq_snd_buf.len | 103 | #define rq_slen rq_snd_buf.len |
123 | 104 | ||
124 | #define XPRT_LAST_FRAG (1 << 0) | 105 | struct rpc_xprt_ops { |
125 | #define XPRT_COPY_RECM (1 << 1) | 106 | void (*set_buffer_size)(struct rpc_xprt *xprt, size_t sndsize, size_t rcvsize); |
126 | #define XPRT_COPY_XID (1 << 2) | 107 | int (*reserve_xprt)(struct rpc_task *task); |
127 | #define XPRT_COPY_DATA (1 << 3) | 108 | void (*release_xprt)(struct rpc_xprt *xprt, struct rpc_task *task); |
109 | void (*connect)(struct rpc_task *task); | ||
110 | int (*send_request)(struct rpc_task *task); | ||
111 | void (*set_retrans_timeout)(struct rpc_task *task); | ||
112 | void (*timer)(struct rpc_task *task); | ||
113 | void (*release_request)(struct rpc_task *task); | ||
114 | void (*close)(struct rpc_xprt *xprt); | ||
115 | void (*destroy)(struct rpc_xprt *xprt); | ||
116 | }; | ||
128 | 117 | ||
129 | struct rpc_xprt { | 118 | struct rpc_xprt { |
119 | struct rpc_xprt_ops * ops; /* transport methods */ | ||
130 | struct socket * sock; /* BSD socket layer */ | 120 | struct socket * sock; /* BSD socket layer */ |
131 | struct sock * inet; /* INET layer */ | 121 | struct sock * inet; /* INET layer */ |
132 | 122 | ||
@@ -137,11 +127,13 @@ struct rpc_xprt { | |||
137 | unsigned long cong; /* current congestion */ | 127 | unsigned long cong; /* current congestion */ |
138 | unsigned long cwnd; /* congestion window */ | 128 | unsigned long cwnd; /* congestion window */ |
139 | 129 | ||
140 | unsigned int rcvsize, /* socket receive buffer size */ | 130 | size_t rcvsize, /* transport rcv buffer size */ |
141 | sndsize; /* socket send buffer size */ | 131 | sndsize; /* transport send buffer size */ |
142 | 132 | ||
143 | size_t max_payload; /* largest RPC payload size, | 133 | size_t max_payload; /* largest RPC payload size, |
144 | in bytes */ | 134 | in bytes */ |
135 | unsigned int tsh_size; /* size of transport specific | ||
136 | header */ | ||
145 | 137 | ||
146 | struct rpc_wait_queue sending; /* requests waiting to send */ | 138 | struct rpc_wait_queue sending; /* requests waiting to send */ |
147 | struct rpc_wait_queue resend; /* requests waiting to resend */ | 139 | struct rpc_wait_queue resend; /* requests waiting to resend */ |
@@ -150,11 +142,9 @@ struct rpc_xprt { | |||
150 | struct list_head free; /* free slots */ | 142 | struct list_head free; /* free slots */ |
151 | struct rpc_rqst * slot; /* slot table storage */ | 143 | struct rpc_rqst * slot; /* slot table storage */ |
152 | unsigned int max_reqs; /* total slots */ | 144 | unsigned int max_reqs; /* total slots */ |
153 | unsigned long sockstate; /* Socket state */ | 145 | unsigned long state; /* transport state */ |
154 | unsigned char shutdown : 1, /* being shut down */ | 146 | unsigned char shutdown : 1, /* being shut down */ |
155 | nocong : 1, /* no congestion control */ | 147 | resvport : 1; /* use a reserved port */ |
156 | resvport : 1, /* use a reserved port */ | ||
157 | stream : 1; /* TCP */ | ||
158 | 148 | ||
159 | /* | 149 | /* |
160 | * XID | 150 | * XID |
@@ -171,22 +161,27 @@ struct rpc_xprt { | |||
171 | unsigned long tcp_copied, /* copied to request */ | 161 | unsigned long tcp_copied, /* copied to request */ |
172 | tcp_flags; | 162 | tcp_flags; |
173 | /* | 163 | /* |
174 | * Connection of sockets | 164 | * Connection of transports |
175 | */ | 165 | */ |
176 | struct work_struct sock_connect; | 166 | unsigned long connect_timeout, |
167 | bind_timeout, | ||
168 | reestablish_timeout; | ||
169 | struct work_struct connect_worker; | ||
177 | unsigned short port; | 170 | unsigned short port; |
171 | |||
178 | /* | 172 | /* |
179 | * Disconnection of idle sockets | 173 | * Disconnection of idle transports |
180 | */ | 174 | */ |
181 | struct work_struct task_cleanup; | 175 | struct work_struct task_cleanup; |
182 | struct timer_list timer; | 176 | struct timer_list timer; |
183 | unsigned long last_used; | 177 | unsigned long last_used, |
178 | idle_timeout; | ||
184 | 179 | ||
185 | /* | 180 | /* |
186 | * Send stuff | 181 | * Send stuff |
187 | */ | 182 | */ |
188 | spinlock_t sock_lock; /* lock socket info */ | 183 | spinlock_t transport_lock; /* lock transport info */ |
189 | spinlock_t xprt_lock; /* lock xprt info */ | 184 | spinlock_t reserve_lock; /* lock slot table */ |
190 | struct rpc_task * snd_task; /* Task blocked in send */ | 185 | struct rpc_task * snd_task; /* Task blocked in send */ |
191 | 186 | ||
192 | struct list_head recv; | 187 | struct list_head recv; |
@@ -195,37 +190,111 @@ struct rpc_xprt { | |||
195 | void (*old_data_ready)(struct sock *, int); | 190 | void (*old_data_ready)(struct sock *, int); |
196 | void (*old_state_change)(struct sock *); | 191 | void (*old_state_change)(struct sock *); |
197 | void (*old_write_space)(struct sock *); | 192 | void (*old_write_space)(struct sock *); |
198 | |||
199 | wait_queue_head_t cong_wait; | ||
200 | }; | 193 | }; |
201 | 194 | ||
195 | #define XPRT_LAST_FRAG (1 << 0) | ||
196 | #define XPRT_COPY_RECM (1 << 1) | ||
197 | #define XPRT_COPY_XID (1 << 2) | ||
198 | #define XPRT_COPY_DATA (1 << 3) | ||
199 | |||
202 | #ifdef __KERNEL__ | 200 | #ifdef __KERNEL__ |
203 | 201 | ||
204 | struct rpc_xprt * xprt_create_proto(int proto, struct sockaddr_in *addr, | 202 | /* |
205 | struct rpc_timeout *toparms); | 203 | * Transport operations used by ULPs |
206 | int xprt_destroy(struct rpc_xprt *); | 204 | */ |
207 | void xprt_set_timeout(struct rpc_timeout *, unsigned int, | 205 | struct rpc_xprt * xprt_create_proto(int proto, struct sockaddr_in *addr, struct rpc_timeout *to); |
208 | unsigned long); | 206 | void xprt_set_timeout(struct rpc_timeout *to, unsigned int retr, unsigned long incr); |
209 | 207 | ||
210 | void xprt_reserve(struct rpc_task *); | 208 | /* |
211 | int xprt_prepare_transmit(struct rpc_task *); | 209 | * Generic internal transport functions |
212 | void xprt_transmit(struct rpc_task *); | 210 | */ |
213 | void xprt_receive(struct rpc_task *); | 211 | void xprt_connect(struct rpc_task *task); |
212 | void xprt_reserve(struct rpc_task *task); | ||
213 | int xprt_reserve_xprt(struct rpc_task *task); | ||
214 | int xprt_reserve_xprt_cong(struct rpc_task *task); | ||
215 | int xprt_prepare_transmit(struct rpc_task *task); | ||
216 | void xprt_transmit(struct rpc_task *task); | ||
217 | void xprt_abort_transmit(struct rpc_task *task); | ||
214 | int xprt_adjust_timeout(struct rpc_rqst *req); | 218 | int xprt_adjust_timeout(struct rpc_rqst *req); |
215 | void xprt_release(struct rpc_task *); | 219 | void xprt_release_xprt(struct rpc_xprt *xprt, struct rpc_task *task); |
216 | void xprt_connect(struct rpc_task *); | 220 | void xprt_release_xprt_cong(struct rpc_xprt *xprt, struct rpc_task *task); |
217 | void xprt_sock_setbufsize(struct rpc_xprt *); | 221 | void xprt_release(struct rpc_task *task); |
218 | 222 | int xprt_destroy(struct rpc_xprt *xprt); | |
219 | #define XPRT_LOCKED 0 | 223 | |
220 | #define XPRT_CONNECT 1 | 224 | static inline u32 *xprt_skip_transport_header(struct rpc_xprt *xprt, u32 *p) |
221 | #define XPRT_CONNECTING 2 | 225 | { |
222 | 226 | return p + xprt->tsh_size; | |
223 | #define xprt_connected(xp) (test_bit(XPRT_CONNECT, &(xp)->sockstate)) | 227 | } |
224 | #define xprt_set_connected(xp) (set_bit(XPRT_CONNECT, &(xp)->sockstate)) | 228 | |
225 | #define xprt_test_and_set_connected(xp) (test_and_set_bit(XPRT_CONNECT, &(xp)->sockstate)) | 229 | /* |
226 | #define xprt_test_and_clear_connected(xp) \ | 230 | * Transport switch helper functions |
227 | (test_and_clear_bit(XPRT_CONNECT, &(xp)->sockstate)) | 231 | */ |
228 | #define xprt_clear_connected(xp) (clear_bit(XPRT_CONNECT, &(xp)->sockstate)) | 232 | void xprt_set_retrans_timeout_def(struct rpc_task *task); |
233 | void xprt_set_retrans_timeout_rtt(struct rpc_task *task); | ||
234 | void xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status); | ||
235 | void xprt_wait_for_buffer_space(struct rpc_task *task); | ||
236 | void xprt_write_space(struct rpc_xprt *xprt); | ||
237 | void xprt_update_rtt(struct rpc_task *task); | ||
238 | void xprt_adjust_cwnd(struct rpc_task *task, int result); | ||
239 | struct rpc_rqst * xprt_lookup_rqst(struct rpc_xprt *xprt, u32 xid); | ||
240 | void xprt_complete_rqst(struct rpc_task *task, int copied); | ||
241 | void xprt_release_rqst_cong(struct rpc_task *task); | ||
242 | void xprt_disconnect(struct rpc_xprt *xprt); | ||
243 | |||
244 | /* | ||
245 | * Socket transport setup operations | ||
246 | */ | ||
247 | int xs_setup_udp(struct rpc_xprt *xprt, struct rpc_timeout *to); | ||
248 | int xs_setup_tcp(struct rpc_xprt *xprt, struct rpc_timeout *to); | ||
249 | |||
250 | /* | ||
251 | * Reserved bit positions in xprt->state | ||
252 | */ | ||
253 | #define XPRT_LOCKED (0) | ||
254 | #define XPRT_CONNECTED (1) | ||
255 | #define XPRT_CONNECTING (2) | ||
256 | |||
257 | static inline void xprt_set_connected(struct rpc_xprt *xprt) | ||
258 | { | ||
259 | set_bit(XPRT_CONNECTED, &xprt->state); | ||
260 | } | ||
261 | |||
262 | static inline void xprt_clear_connected(struct rpc_xprt *xprt) | ||
263 | { | ||
264 | clear_bit(XPRT_CONNECTED, &xprt->state); | ||
265 | } | ||
266 | |||
267 | static inline int xprt_connected(struct rpc_xprt *xprt) | ||
268 | { | ||
269 | return test_bit(XPRT_CONNECTED, &xprt->state); | ||
270 | } | ||
271 | |||
272 | static inline int xprt_test_and_set_connected(struct rpc_xprt *xprt) | ||
273 | { | ||
274 | return test_and_set_bit(XPRT_CONNECTED, &xprt->state); | ||
275 | } | ||
276 | |||
277 | static inline int xprt_test_and_clear_connected(struct rpc_xprt *xprt) | ||
278 | { | ||
279 | return test_and_clear_bit(XPRT_CONNECTED, &xprt->state); | ||
280 | } | ||
281 | |||
282 | static inline void xprt_clear_connecting(struct rpc_xprt *xprt) | ||
283 | { | ||
284 | smp_mb__before_clear_bit(); | ||
285 | clear_bit(XPRT_CONNECTING, &xprt->state); | ||
286 | smp_mb__after_clear_bit(); | ||
287 | } | ||
288 | |||
289 | static inline int xprt_connecting(struct rpc_xprt *xprt) | ||
290 | { | ||
291 | return test_bit(XPRT_CONNECTING, &xprt->state); | ||
292 | } | ||
293 | |||
294 | static inline int xprt_test_and_set_connecting(struct rpc_xprt *xprt) | ||
295 | { | ||
296 | return test_and_set_bit(XPRT_CONNECTING, &xprt->state); | ||
297 | } | ||
229 | 298 | ||
230 | #endif /* __KERNEL__*/ | 299 | #endif /* __KERNEL__*/ |
231 | 300 | ||
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index ad15a54806d8..a61c04f804b2 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
@@ -71,7 +71,12 @@ void restore_processor_state(void); | |||
71 | struct saved_context; | 71 | struct saved_context; |
72 | void __save_processor_state(struct saved_context *ctxt); | 72 | void __save_processor_state(struct saved_context *ctxt); |
73 | void __restore_processor_state(struct saved_context *ctxt); | 73 | void __restore_processor_state(struct saved_context *ctxt); |
74 | extern unsigned long get_usable_page(unsigned gfp_mask); | 74 | unsigned long get_safe_page(gfp_t gfp_mask); |
75 | extern void free_eaten_memory(void); | 75 | |
76 | /* | ||
77 | * XXX: We try to keep some more pages free so that I/O operations succeed | ||
78 | * without paging. Might this be more? | ||
79 | */ | ||
80 | #define PAGES_FOR_IO 512 | ||
76 | 81 | ||
77 | #endif /* _LINUX_SWSUSP_H */ | 82 | #endif /* _LINUX_SWSUSP_H */ |
diff --git a/include/linux/swap.h b/include/linux/swap.h index a7bf1a3b1496..20c975642cab 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
@@ -171,8 +171,8 @@ extern int rotate_reclaimable_page(struct page *page); | |||
171 | extern void swap_setup(void); | 171 | extern void swap_setup(void); |
172 | 172 | ||
173 | /* linux/mm/vmscan.c */ | 173 | /* linux/mm/vmscan.c */ |
174 | extern int try_to_free_pages(struct zone **, unsigned int); | 174 | extern int try_to_free_pages(struct zone **, gfp_t); |
175 | extern int zone_reclaim(struct zone *, unsigned int, unsigned int); | 175 | extern int zone_reclaim(struct zone *, gfp_t, unsigned int); |
176 | extern int shrink_all_memory(int); | 176 | extern int shrink_all_memory(int); |
177 | extern int vm_swappiness; | 177 | extern int vm_swappiness; |
178 | 178 | ||
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index a6f03e473737..c7007b1db91d 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -491,6 +491,7 @@ asmlinkage long sys_nfsservctl(int cmd, | |||
491 | asmlinkage long sys_syslog(int type, char __user *buf, int len); | 491 | asmlinkage long sys_syslog(int type, char __user *buf, int len); |
492 | asmlinkage long sys_uselib(const char __user *library); | 492 | asmlinkage long sys_uselib(const char __user *library); |
493 | asmlinkage long sys_ni_syscall(void); | 493 | asmlinkage long sys_ni_syscall(void); |
494 | asmlinkage long sys_ptrace(long request, long pid, long addr, long data); | ||
494 | 495 | ||
495 | asmlinkage long sys_add_key(const char __user *_type, | 496 | asmlinkage long sys_add_key(const char __user *_type, |
496 | const char __user *_description, | 497 | const char __user *_description, |
diff --git a/include/linux/textsearch.h b/include/linux/textsearch.h index 515046d1b2f4..7dac8f04d28e 100644 --- a/include/linux/textsearch.h +++ b/include/linux/textsearch.h | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
9 | #include <linux/module.h> | 9 | #include <linux/module.h> |
10 | #include <linux/err.h> | 10 | #include <linux/err.h> |
11 | #include <linux/slab.h> | ||
11 | 12 | ||
12 | struct ts_config; | 13 | struct ts_config; |
13 | 14 | ||
@@ -40,7 +41,7 @@ struct ts_state | |||
40 | struct ts_ops | 41 | struct ts_ops |
41 | { | 42 | { |
42 | const char *name; | 43 | const char *name; |
43 | struct ts_config * (*init)(const void *, unsigned int, int); | 44 | struct ts_config * (*init)(const void *, unsigned int, gfp_t); |
44 | unsigned int (*find)(struct ts_config *, | 45 | unsigned int (*find)(struct ts_config *, |
45 | struct ts_state *); | 46 | struct ts_state *); |
46 | void (*destroy)(struct ts_config *); | 47 | void (*destroy)(struct ts_config *); |
@@ -148,7 +149,7 @@ static inline unsigned int textsearch_get_pattern_len(struct ts_config *conf) | |||
148 | extern int textsearch_register(struct ts_ops *); | 149 | extern int textsearch_register(struct ts_ops *); |
149 | extern int textsearch_unregister(struct ts_ops *); | 150 | extern int textsearch_unregister(struct ts_ops *); |
150 | extern struct ts_config *textsearch_prepare(const char *, const void *, | 151 | extern struct ts_config *textsearch_prepare(const char *, const void *, |
151 | unsigned int, int, int); | 152 | unsigned int, gfp_t, int); |
152 | extern void textsearch_destroy(struct ts_config *conf); | 153 | extern void textsearch_destroy(struct ts_config *conf); |
153 | extern unsigned int textsearch_find_continuous(struct ts_config *, | 154 | extern unsigned int textsearch_find_continuous(struct ts_config *, |
154 | struct ts_state *, | 155 | struct ts_state *, |
diff --git a/include/linux/timer.h b/include/linux/timer.h index 3340f3bd135d..72f3a7781106 100644 --- a/include/linux/timer.h +++ b/include/linux/timer.h | |||
@@ -12,16 +12,12 @@ struct timer_list { | |||
12 | struct list_head entry; | 12 | struct list_head entry; |
13 | unsigned long expires; | 13 | unsigned long expires; |
14 | 14 | ||
15 | unsigned long magic; | ||
16 | |||
17 | void (*function)(unsigned long); | 15 | void (*function)(unsigned long); |
18 | unsigned long data; | 16 | unsigned long data; |
19 | 17 | ||
20 | struct timer_base_s *base; | 18 | struct timer_base_s *base; |
21 | }; | 19 | }; |
22 | 20 | ||
23 | #define TIMER_MAGIC 0x4b87ad6e | ||
24 | |||
25 | extern struct timer_base_s __init_timer_base; | 21 | extern struct timer_base_s __init_timer_base; |
26 | 22 | ||
27 | #define TIMER_INITIALIZER(_function, _expires, _data) { \ | 23 | #define TIMER_INITIALIZER(_function, _expires, _data) { \ |
@@ -29,7 +25,6 @@ extern struct timer_base_s __init_timer_base; | |||
29 | .expires = (_expires), \ | 25 | .expires = (_expires), \ |
30 | .data = (_data), \ | 26 | .data = (_data), \ |
31 | .base = &__init_timer_base, \ | 27 | .base = &__init_timer_base, \ |
32 | .magic = TIMER_MAGIC, \ | ||
33 | } | 28 | } |
34 | 29 | ||
35 | #define DEFINE_TIMER(_name, _function, _expires, _data) \ | 30 | #define DEFINE_TIMER(_name, _function, _expires, _data) \ |
@@ -38,6 +33,15 @@ extern struct timer_base_s __init_timer_base; | |||
38 | 33 | ||
39 | void fastcall init_timer(struct timer_list * timer); | 34 | void fastcall init_timer(struct timer_list * timer); |
40 | 35 | ||
36 | static inline void setup_timer(struct timer_list * timer, | ||
37 | void (*function)(unsigned long), | ||
38 | unsigned long data) | ||
39 | { | ||
40 | timer->function = function; | ||
41 | timer->data = data; | ||
42 | init_timer(timer); | ||
43 | } | ||
44 | |||
41 | /*** | 45 | /*** |
42 | * timer_pending - is a timer pending? | 46 | * timer_pending - is a timer pending? |
43 | * @timer: the timer in question | 47 | * @timer: the timer in question |
@@ -74,8 +78,9 @@ extern unsigned long next_timer_interrupt(void); | |||
74 | * Timers with an ->expired field in the past will be executed in the next | 78 | * Timers with an ->expired field in the past will be executed in the next |
75 | * timer tick. | 79 | * timer tick. |
76 | */ | 80 | */ |
77 | static inline void add_timer(struct timer_list * timer) | 81 | static inline void add_timer(struct timer_list *timer) |
78 | { | 82 | { |
83 | BUG_ON(timer_pending(timer)); | ||
79 | __mod_timer(timer, timer->expires); | 84 | __mod_timer(timer, timer->expires); |
80 | } | 85 | } |
81 | 86 | ||
diff --git a/include/linux/timex.h b/include/linux/timex.h index 7e050a2cc35b..04a4a8cb4ed3 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h | |||
@@ -282,6 +282,13 @@ static inline int ntp_synced(void) | |||
282 | return !(time_status & STA_UNSYNC); | 282 | return !(time_status & STA_UNSYNC); |
283 | } | 283 | } |
284 | 284 | ||
285 | /* Required to safely shift negative values */ | ||
286 | #define shift_right(x, s) ({ \ | ||
287 | __typeof__(x) __x = (x); \ | ||
288 | __typeof__(s) __s = (s); \ | ||
289 | __x < 0 ? -(-__x >> __s) : __x >> __s; \ | ||
290 | }) | ||
291 | |||
285 | 292 | ||
286 | #ifdef CONFIG_TIME_INTERPOLATION | 293 | #ifdef CONFIG_TIME_INTERPOLATION |
287 | 294 | ||
diff --git a/include/linux/types.h b/include/linux/types.h index 0aee34f9da9f..21b9ce803644 100644 --- a/include/linux/types.h +++ b/include/linux/types.h | |||
@@ -151,7 +151,12 @@ typedef unsigned long sector_t; | |||
151 | */ | 151 | */ |
152 | 152 | ||
153 | #ifdef __CHECKER__ | 153 | #ifdef __CHECKER__ |
154 | #define __bitwise __attribute__((bitwise)) | 154 | #define __bitwise__ __attribute__((bitwise)) |
155 | #else | ||
156 | #define __bitwise__ | ||
157 | #endif | ||
158 | #ifdef __CHECK_ENDIAN__ | ||
159 | #define __bitwise __bitwise__ | ||
155 | #else | 160 | #else |
156 | #define __bitwise | 161 | #define __bitwise |
157 | #endif | 162 | #endif |
@@ -166,7 +171,7 @@ typedef __u64 __bitwise __be64; | |||
166 | #endif | 171 | #endif |
167 | 172 | ||
168 | #ifdef __KERNEL__ | 173 | #ifdef __KERNEL__ |
169 | typedef unsigned __nocast gfp_t; | 174 | typedef unsigned __bitwise__ gfp_t; |
170 | #endif | 175 | #endif |
171 | 176 | ||
172 | struct ustat { | 177 | struct ustat { |
diff --git a/include/linux/usb.h b/include/linux/usb.h index 4dbe580f9335..748d04385256 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
@@ -57,6 +57,7 @@ struct usb_host_endpoint { | |||
57 | struct usb_endpoint_descriptor desc; | 57 | struct usb_endpoint_descriptor desc; |
58 | struct list_head urb_list; | 58 | struct list_head urb_list; |
59 | void *hcpriv; | 59 | void *hcpriv; |
60 | struct kobject *kobj; /* For sysfs info */ | ||
60 | 61 | ||
61 | unsigned char *extra; /* Extra descriptors */ | 62 | unsigned char *extra; /* Extra descriptors */ |
62 | int extralen; | 63 | int extralen; |
@@ -136,7 +137,8 @@ struct usb_interface { | |||
136 | * active alternate setting */ | 137 | * active alternate setting */ |
137 | unsigned num_altsetting; /* number of alternate settings */ | 138 | unsigned num_altsetting; /* number of alternate settings */ |
138 | 139 | ||
139 | int minor; /* minor number this interface is bound to */ | 140 | int minor; /* minor number this interface is |
141 | * bound to */ | ||
140 | enum usb_interface_condition condition; /* state of binding */ | 142 | enum usb_interface_condition condition; /* state of binding */ |
141 | struct device dev; /* interface specific device info */ | 143 | struct device dev; /* interface specific device info */ |
142 | struct class_device *class_dev; | 144 | struct class_device *class_dev; |
@@ -229,7 +231,7 @@ struct usb_interface_cache { | |||
229 | struct usb_host_config { | 231 | struct usb_host_config { |
230 | struct usb_config_descriptor desc; | 232 | struct usb_config_descriptor desc; |
231 | 233 | ||
232 | char *string; | 234 | char *string; /* iConfiguration string, if present */ |
233 | /* the interfaces associated with this configuration, | 235 | /* the interfaces associated with this configuration, |
234 | * stored in no particular order */ | 236 | * stored in no particular order */ |
235 | struct usb_interface *interface[USB_MAXINTERFACES]; | 237 | struct usb_interface *interface[USB_MAXINTERFACES]; |
@@ -248,7 +250,7 @@ int __usb_get_extra_descriptor(char *buffer, unsigned size, | |||
248 | __usb_get_extra_descriptor((ifpoint)->extra,(ifpoint)->extralen,\ | 250 | __usb_get_extra_descriptor((ifpoint)->extra,(ifpoint)->extralen,\ |
249 | type,(void**)ptr) | 251 | type,(void**)ptr) |
250 | 252 | ||
251 | /* -------------------------------------------------------------------------- */ | 253 | /* ----------------------------------------------------------------------- */ |
252 | 254 | ||
253 | struct usb_operations; | 255 | struct usb_operations; |
254 | 256 | ||
@@ -268,7 +270,8 @@ struct usb_bus { | |||
268 | unsigned is_b_host:1; /* true during some HNP roleswitches */ | 270 | unsigned is_b_host:1; /* true during some HNP roleswitches */ |
269 | unsigned b_hnp_enable:1; /* OTG: did A-Host enable HNP? */ | 271 | unsigned b_hnp_enable:1; /* OTG: did A-Host enable HNP? */ |
270 | 272 | ||
271 | int devnum_next; /* Next open device number in round-robin allocation */ | 273 | int devnum_next; /* Next open device number in |
274 | * round-robin allocation */ | ||
272 | 275 | ||
273 | struct usb_devmap devmap; /* device address allocation map */ | 276 | struct usb_devmap devmap; /* device address allocation map */ |
274 | struct usb_operations *op; /* Operations (specific to the HC) */ | 277 | struct usb_operations *op; /* Operations (specific to the HC) */ |
@@ -289,15 +292,16 @@ struct usb_bus { | |||
289 | struct dentry *usbfs_dentry; /* usbfs dentry entry for the bus */ | 292 | struct dentry *usbfs_dentry; /* usbfs dentry entry for the bus */ |
290 | 293 | ||
291 | struct class_device *class_dev; /* class device for this bus */ | 294 | struct class_device *class_dev; /* class device for this bus */ |
292 | struct kref kref; /* handles reference counting this bus */ | 295 | struct kref kref; /* reference counting for this bus */ |
293 | void (*release)(struct usb_bus *bus); /* function to destroy this bus's memory */ | 296 | void (*release)(struct usb_bus *bus); |
297 | |||
294 | #if defined(CONFIG_USB_MON) | 298 | #if defined(CONFIG_USB_MON) |
295 | struct mon_bus *mon_bus; /* non-null when associated */ | 299 | struct mon_bus *mon_bus; /* non-null when associated */ |
296 | int monitored; /* non-zero when monitored */ | 300 | int monitored; /* non-zero when monitored */ |
297 | #endif | 301 | #endif |
298 | }; | 302 | }; |
299 | 303 | ||
300 | /* -------------------------------------------------------------------------- */ | 304 | /* ----------------------------------------------------------------------- */ |
301 | 305 | ||
302 | /* This is arbitrary. | 306 | /* This is arbitrary. |
303 | * From USB 2.0 spec Table 11-13, offset 7, a hub can | 307 | * From USB 2.0 spec Table 11-13, offset 7, a hub can |
@@ -326,7 +330,8 @@ struct usb_device { | |||
326 | 330 | ||
327 | struct semaphore serialize; | 331 | struct semaphore serialize; |
328 | 332 | ||
329 | unsigned int toggle[2]; /* one bit for each endpoint ([0] = IN, [1] = OUT) */ | 333 | unsigned int toggle[2]; /* one bit for each endpoint |
334 | * ([0] = IN, [1] = OUT) */ | ||
330 | 335 | ||
331 | struct usb_device *parent; /* our hub, unless we're the root */ | 336 | struct usb_device *parent; /* our hub, unless we're the root */ |
332 | struct usb_bus *bus; /* Bus we're part of */ | 337 | struct usb_bus *bus; /* Bus we're part of */ |
@@ -343,12 +348,14 @@ struct usb_device { | |||
343 | 348 | ||
344 | char **rawdescriptors; /* Raw descriptors for each config */ | 349 | char **rawdescriptors; /* Raw descriptors for each config */ |
345 | 350 | ||
346 | int have_langid; /* whether string_langid is valid yet */ | 351 | int have_langid; /* whether string_langid is valid */ |
347 | int string_langid; /* language ID for strings */ | 352 | int string_langid; /* language ID for strings */ |
348 | 353 | ||
349 | char *product; | 354 | /* static strings from the device */ |
350 | char *manufacturer; | 355 | char *product; /* iProduct string, if present */ |
351 | char *serial; /* static strings from the device */ | 356 | char *manufacturer; /* iManufacturer string, if present */ |
357 | char *serial; /* iSerialNumber string, if present */ | ||
358 | |||
352 | struct list_head filelist; | 359 | struct list_head filelist; |
353 | struct class_device *class_dev; | 360 | struct class_device *class_dev; |
354 | struct dentry *usbfs_dentry; /* usbfs dentry entry for the device */ | 361 | struct dentry *usbfs_dentry; /* usbfs dentry entry for the device */ |
@@ -440,22 +447,31 @@ extern struct usb_host_interface *usb_altnum_to_altsetting( | |||
440 | * USB 2.0 root hubs (EHCI host controllers) will get one path ID if they are | 447 | * USB 2.0 root hubs (EHCI host controllers) will get one path ID if they are |
441 | * high speed, and a different one if they are full or low speed. | 448 | * high speed, and a different one if they are full or low speed. |
442 | */ | 449 | */ |
443 | static inline int usb_make_path (struct usb_device *dev, char *buf, size_t size) | 450 | static inline int usb_make_path (struct usb_device *dev, char *buf, |
451 | size_t size) | ||
444 | { | 452 | { |
445 | int actual; | 453 | int actual; |
446 | actual = snprintf (buf, size, "usb-%s-%s", dev->bus->bus_name, dev->devpath); | 454 | actual = snprintf (buf, size, "usb-%s-%s", dev->bus->bus_name, |
455 | dev->devpath); | ||
447 | return (actual >= (int)size) ? -1 : actual; | 456 | return (actual >= (int)size) ? -1 : actual; |
448 | } | 457 | } |
449 | 458 | ||
450 | /*-------------------------------------------------------------------------*/ | 459 | /*-------------------------------------------------------------------------*/ |
451 | 460 | ||
452 | #define USB_DEVICE_ID_MATCH_DEVICE (USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_PRODUCT) | 461 | #define USB_DEVICE_ID_MATCH_DEVICE \ |
453 | #define USB_DEVICE_ID_MATCH_DEV_RANGE (USB_DEVICE_ID_MATCH_DEV_LO | USB_DEVICE_ID_MATCH_DEV_HI) | 462 | (USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_PRODUCT) |
454 | #define USB_DEVICE_ID_MATCH_DEVICE_AND_VERSION (USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_DEV_RANGE) | 463 | #define USB_DEVICE_ID_MATCH_DEV_RANGE \ |
464 | (USB_DEVICE_ID_MATCH_DEV_LO | USB_DEVICE_ID_MATCH_DEV_HI) | ||
465 | #define USB_DEVICE_ID_MATCH_DEVICE_AND_VERSION \ | ||
466 | (USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_DEV_RANGE) | ||
455 | #define USB_DEVICE_ID_MATCH_DEV_INFO \ | 467 | #define USB_DEVICE_ID_MATCH_DEV_INFO \ |
456 | (USB_DEVICE_ID_MATCH_DEV_CLASS | USB_DEVICE_ID_MATCH_DEV_SUBCLASS | USB_DEVICE_ID_MATCH_DEV_PROTOCOL) | 468 | (USB_DEVICE_ID_MATCH_DEV_CLASS | \ |
469 | USB_DEVICE_ID_MATCH_DEV_SUBCLASS | \ | ||
470 | USB_DEVICE_ID_MATCH_DEV_PROTOCOL) | ||
457 | #define USB_DEVICE_ID_MATCH_INT_INFO \ | 471 | #define USB_DEVICE_ID_MATCH_INT_INFO \ |
458 | (USB_DEVICE_ID_MATCH_INT_CLASS | USB_DEVICE_ID_MATCH_INT_SUBCLASS | USB_DEVICE_ID_MATCH_INT_PROTOCOL) | 472 | (USB_DEVICE_ID_MATCH_INT_CLASS | \ |
473 | USB_DEVICE_ID_MATCH_INT_SUBCLASS | \ | ||
474 | USB_DEVICE_ID_MATCH_INT_PROTOCOL) | ||
459 | 475 | ||
460 | /** | 476 | /** |
461 | * USB_DEVICE - macro used to describe a specific usb device | 477 | * USB_DEVICE - macro used to describe a specific usb device |
@@ -466,9 +482,11 @@ static inline int usb_make_path (struct usb_device *dev, char *buf, size_t size) | |||
466 | * specific device. | 482 | * specific device. |
467 | */ | 483 | */ |
468 | #define USB_DEVICE(vend,prod) \ | 484 | #define USB_DEVICE(vend,prod) \ |
469 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE, .idVendor = (vend), .idProduct = (prod) | 485 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE, .idVendor = (vend), \ |
486 | .idProduct = (prod) | ||
470 | /** | 487 | /** |
471 | * USB_DEVICE_VER - macro used to describe a specific usb device with a version range | 488 | * USB_DEVICE_VER - macro used to describe a specific usb device with a |
489 | * version range | ||
472 | * @vend: the 16 bit USB Vendor ID | 490 | * @vend: the 16 bit USB Vendor ID |
473 | * @prod: the 16 bit USB Product ID | 491 | * @prod: the 16 bit USB Product ID |
474 | * @lo: the bcdDevice_lo value | 492 | * @lo: the bcdDevice_lo value |
@@ -478,7 +496,9 @@ static inline int usb_make_path (struct usb_device *dev, char *buf, size_t size) | |||
478 | * specific device, with a version range. | 496 | * specific device, with a version range. |
479 | */ | 497 | */ |
480 | #define USB_DEVICE_VER(vend,prod,lo,hi) \ | 498 | #define USB_DEVICE_VER(vend,prod,lo,hi) \ |
481 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE_AND_VERSION, .idVendor = (vend), .idProduct = (prod), .bcdDevice_lo = (lo), .bcdDevice_hi = (hi) | 499 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE_AND_VERSION, \ |
500 | .idVendor = (vend), .idProduct = (prod), \ | ||
501 | .bcdDevice_lo = (lo), .bcdDevice_hi = (hi) | ||
482 | 502 | ||
483 | /** | 503 | /** |
484 | * USB_DEVICE_INFO - macro used to describe a class of usb devices | 504 | * USB_DEVICE_INFO - macro used to describe a class of usb devices |
@@ -490,7 +510,8 @@ static inline int usb_make_path (struct usb_device *dev, char *buf, size_t size) | |||
490 | * specific class of devices. | 510 | * specific class of devices. |
491 | */ | 511 | */ |
492 | #define USB_DEVICE_INFO(cl,sc,pr) \ | 512 | #define USB_DEVICE_INFO(cl,sc,pr) \ |
493 | .match_flags = USB_DEVICE_ID_MATCH_DEV_INFO, .bDeviceClass = (cl), .bDeviceSubClass = (sc), .bDeviceProtocol = (pr) | 513 | .match_flags = USB_DEVICE_ID_MATCH_DEV_INFO, .bDeviceClass = (cl), \ |
514 | .bDeviceSubClass = (sc), .bDeviceProtocol = (pr) | ||
494 | 515 | ||
495 | /** | 516 | /** |
496 | * USB_INTERFACE_INFO - macro used to describe a class of usb interfaces | 517 | * USB_INTERFACE_INFO - macro used to describe a class of usb interfaces |
@@ -502,9 +523,10 @@ static inline int usb_make_path (struct usb_device *dev, char *buf, size_t size) | |||
502 | * specific class of interfaces. | 523 | * specific class of interfaces. |
503 | */ | 524 | */ |
504 | #define USB_INTERFACE_INFO(cl,sc,pr) \ | 525 | #define USB_INTERFACE_INFO(cl,sc,pr) \ |
505 | .match_flags = USB_DEVICE_ID_MATCH_INT_INFO, .bInterfaceClass = (cl), .bInterfaceSubClass = (sc), .bInterfaceProtocol = (pr) | 526 | .match_flags = USB_DEVICE_ID_MATCH_INT_INFO, .bInterfaceClass = (cl), \ |
527 | .bInterfaceSubClass = (sc), .bInterfaceProtocol = (pr) | ||
506 | 528 | ||
507 | /* -------------------------------------------------------------------------- */ | 529 | /* ----------------------------------------------------------------------- */ |
508 | 530 | ||
509 | /** | 531 | /** |
510 | * struct usb_driver - identifies USB driver to usbcore | 532 | * struct usb_driver - identifies USB driver to usbcore |
@@ -557,7 +579,8 @@ struct usb_driver { | |||
557 | 579 | ||
558 | void (*disconnect) (struct usb_interface *intf); | 580 | void (*disconnect) (struct usb_interface *intf); |
559 | 581 | ||
560 | int (*ioctl) (struct usb_interface *intf, unsigned int code, void *buf); | 582 | int (*ioctl) (struct usb_interface *intf, unsigned int code, |
583 | void *buf); | ||
561 | 584 | ||
562 | int (*suspend) (struct usb_interface *intf, pm_message_t message); | 585 | int (*suspend) (struct usb_interface *intf, pm_message_t message); |
563 | int (*resume) (struct usb_interface *intf); | 586 | int (*resume) (struct usb_interface *intf); |
@@ -572,10 +595,8 @@ extern struct bus_type usb_bus_type; | |||
572 | 595 | ||
573 | /** | 596 | /** |
574 | * struct usb_class_driver - identifies a USB driver that wants to use the USB major number | 597 | * struct usb_class_driver - identifies a USB driver that wants to use the USB major number |
575 | * @name: devfs name for this driver. Will also be used by the driver | 598 | * @name: the usb class device name for this driver. Will show up in sysfs. |
576 | * class code to create a usb class device. | ||
577 | * @fops: pointer to the struct file_operations of this driver. | 599 | * @fops: pointer to the struct file_operations of this driver. |
578 | * @mode: the mode for the devfs file to be created for this driver. | ||
579 | * @minor_base: the start of the minor range for this driver. | 600 | * @minor_base: the start of the minor range for this driver. |
580 | * | 601 | * |
581 | * This structure is used for the usb_register_dev() and | 602 | * This structure is used for the usb_register_dev() and |
@@ -585,8 +606,7 @@ extern struct bus_type usb_bus_type; | |||
585 | struct usb_class_driver { | 606 | struct usb_class_driver { |
586 | char *name; | 607 | char *name; |
587 | struct file_operations *fops; | 608 | struct file_operations *fops; |
588 | mode_t mode; | 609 | int minor_base; |
589 | int minor_base; | ||
590 | }; | 610 | }; |
591 | 611 | ||
592 | /* | 612 | /* |
@@ -603,7 +623,7 @@ extern void usb_deregister_dev(struct usb_interface *intf, | |||
603 | 623 | ||
604 | extern int usb_disabled(void); | 624 | extern int usb_disabled(void); |
605 | 625 | ||
606 | /* -------------------------------------------------------------------------- */ | 626 | /* ----------------------------------------------------------------------- */ |
607 | 627 | ||
608 | /* | 628 | /* |
609 | * URB support, for asynchronous request completions | 629 | * URB support, for asynchronous request completions |
@@ -613,12 +633,14 @@ extern int usb_disabled(void); | |||
613 | * urb->transfer_flags: | 633 | * urb->transfer_flags: |
614 | */ | 634 | */ |
615 | #define URB_SHORT_NOT_OK 0x0001 /* report short reads as errors */ | 635 | #define URB_SHORT_NOT_OK 0x0001 /* report short reads as errors */ |
616 | #define URB_ISO_ASAP 0x0002 /* iso-only, urb->start_frame ignored */ | 636 | #define URB_ISO_ASAP 0x0002 /* iso-only, urb->start_frame |
637 | * ignored */ | ||
617 | #define URB_NO_TRANSFER_DMA_MAP 0x0004 /* urb->transfer_dma valid on submit */ | 638 | #define URB_NO_TRANSFER_DMA_MAP 0x0004 /* urb->transfer_dma valid on submit */ |
618 | #define URB_NO_SETUP_DMA_MAP 0x0008 /* urb->setup_dma valid on submit */ | 639 | #define URB_NO_SETUP_DMA_MAP 0x0008 /* urb->setup_dma valid on submit */ |
619 | #define URB_NO_FSBR 0x0020 /* UHCI-specific */ | 640 | #define URB_NO_FSBR 0x0020 /* UHCI-specific */ |
620 | #define URB_ZERO_PACKET 0x0040 /* Finish bulk OUTs with short packet */ | 641 | #define URB_ZERO_PACKET 0x0040 /* Finish bulk OUT with short packet */ |
621 | #define URB_NO_INTERRUPT 0x0080 /* HINT: no non-error interrupt needed */ | 642 | #define URB_NO_INTERRUPT 0x0080 /* HINT: no non-error interrupt |
643 | * needed */ | ||
622 | 644 | ||
623 | struct usb_iso_packet_descriptor { | 645 | struct usb_iso_packet_descriptor { |
624 | unsigned int offset; | 646 | unsigned int offset; |
@@ -806,7 +828,8 @@ struct urb | |||
806 | u8 reject; /* submissions will fail */ | 828 | u8 reject; /* submissions will fail */ |
807 | 829 | ||
808 | /* public, documented fields in the urb that can be used by drivers */ | 830 | /* public, documented fields in the urb that can be used by drivers */ |
809 | struct list_head urb_list; /* list head for use by the urb owner */ | 831 | struct list_head urb_list; /* list head for use by the urb's |
832 | * current owner */ | ||
810 | struct usb_device *dev; /* (in) pointer to associated device */ | 833 | struct usb_device *dev; /* (in) pointer to associated device */ |
811 | unsigned int pipe; /* (in) pipe information */ | 834 | unsigned int pipe; /* (in) pipe information */ |
812 | int status; /* (return) non-ISO status */ | 835 | int status; /* (return) non-ISO status */ |
@@ -819,14 +842,16 @@ struct urb | |||
819 | dma_addr_t setup_dma; /* (in) dma addr for setup_packet */ | 842 | dma_addr_t setup_dma; /* (in) dma addr for setup_packet */ |
820 | int start_frame; /* (modify) start frame (ISO) */ | 843 | int start_frame; /* (modify) start frame (ISO) */ |
821 | int number_of_packets; /* (in) number of ISO packets */ | 844 | int number_of_packets; /* (in) number of ISO packets */ |
822 | int interval; /* (modify) transfer interval (INT/ISO) */ | 845 | int interval; /* (modify) transfer interval |
846 | * (INT/ISO) */ | ||
823 | int error_count; /* (return) number of ISO errors */ | 847 | int error_count; /* (return) number of ISO errors */ |
824 | void *context; /* (in) context for completion */ | 848 | void *context; /* (in) context for completion */ |
825 | usb_complete_t complete; /* (in) completion routine */ | 849 | usb_complete_t complete; /* (in) completion routine */ |
826 | struct usb_iso_packet_descriptor iso_frame_desc[0]; /* (in) ISO ONLY */ | 850 | struct usb_iso_packet_descriptor iso_frame_desc[0]; |
851 | /* (in) ISO ONLY */ | ||
827 | }; | 852 | }; |
828 | 853 | ||
829 | /* -------------------------------------------------------------------------- */ | 854 | /* ----------------------------------------------------------------------- */ |
830 | 855 | ||
831 | /** | 856 | /** |
832 | * usb_fill_control_urb - initializes a control urb | 857 | * usb_fill_control_urb - initializes a control urb |
@@ -933,17 +958,17 @@ static inline void usb_fill_int_urb (struct urb *urb, | |||
933 | } | 958 | } |
934 | 959 | ||
935 | extern void usb_init_urb(struct urb *urb); | 960 | extern void usb_init_urb(struct urb *urb); |
936 | extern struct urb *usb_alloc_urb(int iso_packets, unsigned mem_flags); | 961 | extern struct urb *usb_alloc_urb(int iso_packets, gfp_t mem_flags); |
937 | extern void usb_free_urb(struct urb *urb); | 962 | extern void usb_free_urb(struct urb *urb); |
938 | #define usb_put_urb usb_free_urb | 963 | #define usb_put_urb usb_free_urb |
939 | extern struct urb *usb_get_urb(struct urb *urb); | 964 | extern struct urb *usb_get_urb(struct urb *urb); |
940 | extern int usb_submit_urb(struct urb *urb, unsigned mem_flags); | 965 | extern int usb_submit_urb(struct urb *urb, gfp_t mem_flags); |
941 | extern int usb_unlink_urb(struct urb *urb); | 966 | extern int usb_unlink_urb(struct urb *urb); |
942 | extern void usb_kill_urb(struct urb *urb); | 967 | extern void usb_kill_urb(struct urb *urb); |
943 | 968 | ||
944 | #define HAVE_USB_BUFFERS | 969 | #define HAVE_USB_BUFFERS |
945 | void *usb_buffer_alloc (struct usb_device *dev, size_t size, | 970 | void *usb_buffer_alloc (struct usb_device *dev, size_t size, |
946 | unsigned mem_flags, dma_addr_t *dma); | 971 | gfp_t mem_flags, dma_addr_t *dma); |
947 | void usb_buffer_free (struct usb_device *dev, size_t size, | 972 | void usb_buffer_free (struct usb_device *dev, size_t size, |
948 | void *addr, dma_addr_t dma); | 973 | void *addr, dma_addr_t dma); |
949 | 974 | ||
@@ -974,11 +999,6 @@ extern int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe, | |||
974 | void *data, int len, int *actual_length, | 999 | void *data, int len, int *actual_length, |
975 | int timeout); | 1000 | int timeout); |
976 | 1001 | ||
977 | /* selective suspend/resume */ | ||
978 | extern int usb_suspend_device(struct usb_device *dev, pm_message_t message); | ||
979 | extern int usb_resume_device(struct usb_device *dev); | ||
980 | |||
981 | |||
982 | /* wrappers around usb_control_msg() for the most common standard requests */ | 1002 | /* wrappers around usb_control_msg() for the most common standard requests */ |
983 | extern int usb_get_descriptor(struct usb_device *dev, unsigned char desctype, | 1003 | extern int usb_get_descriptor(struct usb_device *dev, unsigned char desctype, |
984 | unsigned char descindex, void *buf, int size); | 1004 | unsigned char descindex, void *buf, int size); |
@@ -1050,13 +1070,13 @@ int usb_sg_init ( | |||
1050 | struct scatterlist *sg, | 1070 | struct scatterlist *sg, |
1051 | int nents, | 1071 | int nents, |
1052 | size_t length, | 1072 | size_t length, |
1053 | unsigned mem_flags | 1073 | gfp_t mem_flags |
1054 | ); | 1074 | ); |
1055 | void usb_sg_cancel (struct usb_sg_request *io); | 1075 | void usb_sg_cancel (struct usb_sg_request *io); |
1056 | void usb_sg_wait (struct usb_sg_request *io); | 1076 | void usb_sg_wait (struct usb_sg_request *io); |
1057 | 1077 | ||
1058 | 1078 | ||
1059 | /* -------------------------------------------------------------------------- */ | 1079 | /* ----------------------------------------------------------------------- */ |
1060 | 1080 | ||
1061 | /* | 1081 | /* |
1062 | * For various legacy reasons, Linux has a small cookie that's paired with | 1082 | * For various legacy reasons, Linux has a small cookie that's paired with |
@@ -1097,23 +1117,34 @@ void usb_sg_wait (struct usb_sg_request *io); | |||
1097 | /* The D0/D1 toggle bits ... USE WITH CAUTION (they're almost hcd-internal) */ | 1117 | /* The D0/D1 toggle bits ... USE WITH CAUTION (they're almost hcd-internal) */ |
1098 | #define usb_gettoggle(dev, ep, out) (((dev)->toggle[out] >> (ep)) & 1) | 1118 | #define usb_gettoggle(dev, ep, out) (((dev)->toggle[out] >> (ep)) & 1) |
1099 | #define usb_dotoggle(dev, ep, out) ((dev)->toggle[out] ^= (1 << (ep))) | 1119 | #define usb_dotoggle(dev, ep, out) ((dev)->toggle[out] ^= (1 << (ep))) |
1100 | #define usb_settoggle(dev, ep, out, bit) ((dev)->toggle[out] = ((dev)->toggle[out] & ~(1 << (ep))) | ((bit) << (ep))) | 1120 | #define usb_settoggle(dev, ep, out, bit) \ |
1121 | ((dev)->toggle[out] = ((dev)->toggle[out] & ~(1 << (ep))) | \ | ||
1122 | ((bit) << (ep))) | ||
1101 | 1123 | ||
1102 | 1124 | ||
1103 | static inline unsigned int __create_pipe(struct usb_device *dev, unsigned int endpoint) | 1125 | static inline unsigned int __create_pipe(struct usb_device *dev, |
1126 | unsigned int endpoint) | ||
1104 | { | 1127 | { |
1105 | return (dev->devnum << 8) | (endpoint << 15); | 1128 | return (dev->devnum << 8) | (endpoint << 15); |
1106 | } | 1129 | } |
1107 | 1130 | ||
1108 | /* Create various pipes... */ | 1131 | /* Create various pipes... */ |
1109 | #define usb_sndctrlpipe(dev,endpoint) ((PIPE_CONTROL << 30) | __create_pipe(dev,endpoint)) | 1132 | #define usb_sndctrlpipe(dev,endpoint) \ |
1110 | #define usb_rcvctrlpipe(dev,endpoint) ((PIPE_CONTROL << 30) | __create_pipe(dev,endpoint) | USB_DIR_IN) | 1133 | ((PIPE_CONTROL << 30) | __create_pipe(dev,endpoint)) |
1111 | #define usb_sndisocpipe(dev,endpoint) ((PIPE_ISOCHRONOUS << 30) | __create_pipe(dev,endpoint)) | 1134 | #define usb_rcvctrlpipe(dev,endpoint) \ |
1112 | #define usb_rcvisocpipe(dev,endpoint) ((PIPE_ISOCHRONOUS << 30) | __create_pipe(dev,endpoint) | USB_DIR_IN) | 1135 | ((PIPE_CONTROL << 30) | __create_pipe(dev,endpoint) | USB_DIR_IN) |
1113 | #define usb_sndbulkpipe(dev,endpoint) ((PIPE_BULK << 30) | __create_pipe(dev,endpoint)) | 1136 | #define usb_sndisocpipe(dev,endpoint) \ |
1114 | #define usb_rcvbulkpipe(dev,endpoint) ((PIPE_BULK << 30) | __create_pipe(dev,endpoint) | USB_DIR_IN) | 1137 | ((PIPE_ISOCHRONOUS << 30) | __create_pipe(dev,endpoint)) |
1115 | #define usb_sndintpipe(dev,endpoint) ((PIPE_INTERRUPT << 30) | __create_pipe(dev,endpoint)) | 1138 | #define usb_rcvisocpipe(dev,endpoint) \ |
1116 | #define usb_rcvintpipe(dev,endpoint) ((PIPE_INTERRUPT << 30) | __create_pipe(dev,endpoint) | USB_DIR_IN) | 1139 | ((PIPE_ISOCHRONOUS << 30) | __create_pipe(dev,endpoint) | USB_DIR_IN) |
1140 | #define usb_sndbulkpipe(dev,endpoint) \ | ||
1141 | ((PIPE_BULK << 30) | __create_pipe(dev,endpoint)) | ||
1142 | #define usb_rcvbulkpipe(dev,endpoint) \ | ||
1143 | ((PIPE_BULK << 30) | __create_pipe(dev,endpoint) | USB_DIR_IN) | ||
1144 | #define usb_sndintpipe(dev,endpoint) \ | ||
1145 | ((PIPE_INTERRUPT << 30) | __create_pipe(dev,endpoint)) | ||
1146 | #define usb_rcvintpipe(dev,endpoint) \ | ||
1147 | ((PIPE_INTERRUPT << 30) | __create_pipe(dev,endpoint) | USB_DIR_IN) | ||
1117 | 1148 | ||
1118 | /*-------------------------------------------------------------------------*/ | 1149 | /*-------------------------------------------------------------------------*/ |
1119 | 1150 | ||
@@ -1137,17 +1168,29 @@ usb_maxpacket(struct usb_device *udev, int pipe, int is_out) | |||
1137 | return le16_to_cpu(ep->desc.wMaxPacketSize); | 1168 | return le16_to_cpu(ep->desc.wMaxPacketSize); |
1138 | } | 1169 | } |
1139 | 1170 | ||
1140 | /* -------------------------------------------------------------------------- */ | 1171 | /* ----------------------------------------------------------------------- */ |
1172 | |||
1173 | /* Events from the usb core */ | ||
1174 | #define USB_DEVICE_ADD 0x0001 | ||
1175 | #define USB_DEVICE_REMOVE 0x0002 | ||
1176 | #define USB_BUS_ADD 0x0003 | ||
1177 | #define USB_BUS_REMOVE 0x0004 | ||
1178 | extern void usb_register_notify(struct notifier_block *nb); | ||
1179 | extern void usb_unregister_notify(struct notifier_block *nb); | ||
1141 | 1180 | ||
1142 | #ifdef DEBUG | 1181 | #ifdef DEBUG |
1143 | #define dbg(format, arg...) printk(KERN_DEBUG "%s: " format "\n" , __FILE__ , ## arg) | 1182 | #define dbg(format, arg...) printk(KERN_DEBUG "%s: " format "\n" , \ |
1183 | __FILE__ , ## arg) | ||
1144 | #else | 1184 | #else |
1145 | #define dbg(format, arg...) do {} while (0) | 1185 | #define dbg(format, arg...) do {} while (0) |
1146 | #endif | 1186 | #endif |
1147 | 1187 | ||
1148 | #define err(format, arg...) printk(KERN_ERR "%s: " format "\n" , __FILE__ , ## arg) | 1188 | #define err(format, arg...) printk(KERN_ERR "%s: " format "\n" , \ |
1149 | #define info(format, arg...) printk(KERN_INFO "%s: " format "\n" , __FILE__ , ## arg) | 1189 | __FILE__ , ## arg) |
1150 | #define warn(format, arg...) printk(KERN_WARNING "%s: " format "\n" , __FILE__ , ## arg) | 1190 | #define info(format, arg...) printk(KERN_INFO "%s: " format "\n" , \ |
1191 | __FILE__ , ## arg) | ||
1192 | #define warn(format, arg...) printk(KERN_WARNING "%s: " format "\n" , \ | ||
1193 | __FILE__ , ## arg) | ||
1151 | 1194 | ||
1152 | 1195 | ||
1153 | #endif /* __KERNEL__ */ | 1196 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/usb_gadget.h b/include/linux/usb_gadget.h index 71e608607324..ff81117eb733 100644 --- a/include/linux/usb_gadget.h +++ b/include/linux/usb_gadget.h | |||
@@ -107,18 +107,18 @@ struct usb_ep_ops { | |||
107 | int (*disable) (struct usb_ep *ep); | 107 | int (*disable) (struct usb_ep *ep); |
108 | 108 | ||
109 | struct usb_request *(*alloc_request) (struct usb_ep *ep, | 109 | struct usb_request *(*alloc_request) (struct usb_ep *ep, |
110 | unsigned gfp_flags); | 110 | gfp_t gfp_flags); |
111 | void (*free_request) (struct usb_ep *ep, struct usb_request *req); | 111 | void (*free_request) (struct usb_ep *ep, struct usb_request *req); |
112 | 112 | ||
113 | void *(*alloc_buffer) (struct usb_ep *ep, unsigned bytes, | 113 | void *(*alloc_buffer) (struct usb_ep *ep, unsigned bytes, |
114 | dma_addr_t *dma, unsigned gfp_flags); | 114 | dma_addr_t *dma, gfp_t gfp_flags); |
115 | void (*free_buffer) (struct usb_ep *ep, void *buf, dma_addr_t dma, | 115 | void (*free_buffer) (struct usb_ep *ep, void *buf, dma_addr_t dma, |
116 | unsigned bytes); | 116 | unsigned bytes); |
117 | // NOTE: on 2.6, drivers may also use dma_map() and | 117 | // NOTE: on 2.6, drivers may also use dma_map() and |
118 | // dma_sync_single_*() to directly manage dma overhead. | 118 | // dma_sync_single_*() to directly manage dma overhead. |
119 | 119 | ||
120 | int (*queue) (struct usb_ep *ep, struct usb_request *req, | 120 | int (*queue) (struct usb_ep *ep, struct usb_request *req, |
121 | unsigned gfp_flags); | 121 | gfp_t gfp_flags); |
122 | int (*dequeue) (struct usb_ep *ep, struct usb_request *req); | 122 | int (*dequeue) (struct usb_ep *ep, struct usb_request *req); |
123 | 123 | ||
124 | int (*set_halt) (struct usb_ep *ep, int value); | 124 | int (*set_halt) (struct usb_ep *ep, int value); |
@@ -214,7 +214,7 @@ usb_ep_disable (struct usb_ep *ep) | |||
214 | * Returns the request, or null if one could not be allocated. | 214 | * Returns the request, or null if one could not be allocated. |
215 | */ | 215 | */ |
216 | static inline struct usb_request * | 216 | static inline struct usb_request * |
217 | usb_ep_alloc_request (struct usb_ep *ep, unsigned gfp_flags) | 217 | usb_ep_alloc_request (struct usb_ep *ep, gfp_t gfp_flags) |
218 | { | 218 | { |
219 | return ep->ops->alloc_request (ep, gfp_flags); | 219 | return ep->ops->alloc_request (ep, gfp_flags); |
220 | } | 220 | } |
@@ -254,7 +254,7 @@ usb_ep_free_request (struct usb_ep *ep, struct usb_request *req) | |||
254 | */ | 254 | */ |
255 | static inline void * | 255 | static inline void * |
256 | usb_ep_alloc_buffer (struct usb_ep *ep, unsigned len, dma_addr_t *dma, | 256 | usb_ep_alloc_buffer (struct usb_ep *ep, unsigned len, dma_addr_t *dma, |
257 | unsigned gfp_flags) | 257 | gfp_t gfp_flags) |
258 | { | 258 | { |
259 | return ep->ops->alloc_buffer (ep, len, dma, gfp_flags); | 259 | return ep->ops->alloc_buffer (ep, len, dma, gfp_flags); |
260 | } | 260 | } |
@@ -330,7 +330,7 @@ usb_ep_free_buffer (struct usb_ep *ep, void *buf, dma_addr_t dma, unsigned len) | |||
330 | * reported when the usb peripheral is disconnected. | 330 | * reported when the usb peripheral is disconnected. |
331 | */ | 331 | */ |
332 | static inline int | 332 | static inline int |
333 | usb_ep_queue (struct usb_ep *ep, struct usb_request *req, unsigned gfp_flags) | 333 | usb_ep_queue (struct usb_ep *ep, struct usb_request *req, gfp_t gfp_flags) |
334 | { | 334 | { |
335 | return ep->ops->queue (ep, req, gfp_flags); | 335 | return ep->ops->queue (ep, req, gfp_flags); |
336 | } | 336 | } |
diff --git a/include/linux/usb_otg.h b/include/linux/usb_otg.h index c6683146e9b0..f827f6e203c2 100644 --- a/include/linux/usb_otg.h +++ b/include/linux/usb_otg.h | |||
@@ -63,6 +63,10 @@ struct otg_transceiver { | |||
63 | int (*set_power)(struct otg_transceiver *otg, | 63 | int (*set_power)(struct otg_transceiver *otg, |
64 | unsigned mA); | 64 | unsigned mA); |
65 | 65 | ||
66 | /* for non-OTG B devices: set transceiver into suspend mode */ | ||
67 | int (*set_suspend)(struct otg_transceiver *otg, | ||
68 | int suspend); | ||
69 | |||
66 | /* for B devices only: start session with A-Host */ | 70 | /* for B devices only: start session with A-Host */ |
67 | int (*start_srp)(struct otg_transceiver *otg); | 71 | int (*start_srp)(struct otg_transceiver *otg); |
68 | 72 | ||
@@ -108,6 +112,15 @@ otg_set_power(struct otg_transceiver *otg, unsigned mA) | |||
108 | } | 112 | } |
109 | 113 | ||
110 | static inline int | 114 | static inline int |
115 | otg_set_suspend(struct otg_transceiver *otg, int suspend) | ||
116 | { | ||
117 | if (otg->set_suspend != NULL) | ||
118 | return otg->set_suspend(otg, suspend); | ||
119 | else | ||
120 | return 0; | ||
121 | } | ||
122 | |||
123 | static inline int | ||
111 | otg_start_srp(struct otg_transceiver *otg) | 124 | otg_start_srp(struct otg_transceiver *otg) |
112 | { | 125 | { |
113 | return otg->start_srp(otg); | 126 | return otg->start_srp(otg); |
diff --git a/include/linux/usbdevice_fs.h b/include/linux/usbdevice_fs.h index 9facf733800c..8859f0b41543 100644 --- a/include/linux/usbdevice_fs.h +++ b/include/linux/usbdevice_fs.h | |||
@@ -140,6 +140,12 @@ struct usbdevfs_urb32 { | |||
140 | compat_caddr_t usercontext; /* unused */ | 140 | compat_caddr_t usercontext; /* unused */ |
141 | struct usbdevfs_iso_packet_desc iso_frame_desc[0]; | 141 | struct usbdevfs_iso_packet_desc iso_frame_desc[0]; |
142 | }; | 142 | }; |
143 | |||
144 | struct usbdevfs_ioctl32 { | ||
145 | s32 ifno; | ||
146 | s32 ioctl_code; | ||
147 | compat_caddr_t data; | ||
148 | }; | ||
143 | #endif | 149 | #endif |
144 | 150 | ||
145 | #define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer) | 151 | #define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer) |
@@ -160,6 +166,7 @@ struct usbdevfs_urb32 { | |||
160 | #define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int) | 166 | #define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int) |
161 | #define USBDEVFS_CONNECTINFO _IOW('U', 17, struct usbdevfs_connectinfo) | 167 | #define USBDEVFS_CONNECTINFO _IOW('U', 17, struct usbdevfs_connectinfo) |
162 | #define USBDEVFS_IOCTL _IOWR('U', 18, struct usbdevfs_ioctl) | 168 | #define USBDEVFS_IOCTL _IOWR('U', 18, struct usbdevfs_ioctl) |
169 | #define USBDEVFS_IOCTL32 _IOWR('U', 18, struct usbdevfs_ioctl32) | ||
163 | #define USBDEVFS_HUB_PORTINFO _IOR('U', 19, struct usbdevfs_hub_portinfo) | 170 | #define USBDEVFS_HUB_PORTINFO _IOR('U', 19, struct usbdevfs_hub_portinfo) |
164 | #define USBDEVFS_RESET _IO('U', 20) | 171 | #define USBDEVFS_RESET _IO('U', 20) |
165 | #define USBDEVFS_CLEAR_HALT _IOR('U', 21, unsigned int) | 172 | #define USBDEVFS_CLEAR_HALT _IOR('U', 21, unsigned int) |
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index 3701a0673d2c..1d5577b2b752 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h | |||
@@ -32,10 +32,14 @@ struct vm_struct { | |||
32 | * Highlevel APIs for driver use | 32 | * Highlevel APIs for driver use |
33 | */ | 33 | */ |
34 | extern void *vmalloc(unsigned long size); | 34 | extern void *vmalloc(unsigned long size); |
35 | extern void *vmalloc_node(unsigned long size, int node); | ||
35 | extern void *vmalloc_exec(unsigned long size); | 36 | extern void *vmalloc_exec(unsigned long size); |
36 | extern void *vmalloc_32(unsigned long size); | 37 | extern void *vmalloc_32(unsigned long size); |
37 | extern void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot); | 38 | extern void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot); |
38 | extern void *__vmalloc_area(struct vm_struct *area, gfp_t gfp_mask, pgprot_t prot); | 39 | extern void *__vmalloc_area(struct vm_struct *area, gfp_t gfp_mask, |
40 | pgprot_t prot); | ||
41 | extern void *__vmalloc_node(unsigned long size, gfp_t gfp_mask, | ||
42 | pgprot_t prot, int node); | ||
39 | extern void vfree(void *addr); | 43 | extern void vfree(void *addr); |
40 | 44 | ||
41 | extern void *vmap(struct page **pages, unsigned int count, | 45 | extern void *vmap(struct page **pages, unsigned int count, |
@@ -48,6 +52,8 @@ extern void vunmap(void *addr); | |||
48 | extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags); | 52 | extern struct vm_struct *get_vm_area(unsigned long size, unsigned long flags); |
49 | extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags, | 53 | extern struct vm_struct *__get_vm_area(unsigned long size, unsigned long flags, |
50 | unsigned long start, unsigned long end); | 54 | unsigned long start, unsigned long end); |
55 | extern struct vm_struct *get_vm_area_node(unsigned long size, | ||
56 | unsigned long flags, int node); | ||
51 | extern struct vm_struct *remove_vm_area(void *addr); | 57 | extern struct vm_struct *remove_vm_area(void *addr); |
52 | extern struct vm_struct *__remove_vm_area(void *addr); | 58 | extern struct vm_struct *__remove_vm_area(void *addr); |
53 | extern int map_vm_area(struct vm_struct *area, pgprot_t prot, | 59 | extern int map_vm_area(struct vm_struct *area, pgprot_t prot, |
diff --git a/include/linux/wanpipe.h b/include/linux/wanpipe.h index 167d956c492b..dae9860091dd 100644 --- a/include/linux/wanpipe.h +++ b/include/linux/wanpipe.h | |||
@@ -265,15 +265,6 @@ typedef struct { | |||
265 | #include <linux/tty_driver.h> | 265 | #include <linux/tty_driver.h> |
266 | #include <linux/tty_flip.h> | 266 | #include <linux/tty_flip.h> |
267 | 267 | ||
268 | |||
269 | #define is_digit(ch) (((ch)>=(unsigned)'0'&&(ch)<=(unsigned)'9')?1:0) | ||
270 | #define is_alpha(ch) ((((ch)>=(unsigned)'a'&&(ch)<=(unsigned)'z')||\ | ||
271 | ((ch)>=(unsigned)'A'&&(ch)<=(unsigned)'Z'))?1:0) | ||
272 | #define is_hex_digit(ch) ((((ch)>=(unsigned)'0'&&(ch)<=(unsigned)'9')||\ | ||
273 | ((ch)>=(unsigned)'a'&&(ch)<=(unsigned)'f')||\ | ||
274 | ((ch)>=(unsigned)'A'&&(ch)<=(unsigned)'F'))?1:0) | ||
275 | |||
276 | |||
277 | /****** Data Structures *****************************************************/ | 268 | /****** Data Structures *****************************************************/ |
278 | 269 | ||
279 | /* Adapter Data Space. | 270 | /* Adapter Data Space. |
diff --git a/include/linux/x1205.h b/include/linux/x1205.h new file mode 100644 index 000000000000..64fd3af894a5 --- /dev/null +++ b/include/linux/x1205.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* | ||
2 | * x1205.h - defines for drivers/i2c/chips/x1205.c | ||
3 | * Copyright 2004 Karen Spearel | ||
4 | * Copyright 2005 Alessandro Zummo | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | #ifndef __LINUX_X1205_H__ | ||
13 | #define __LINUX_X1205_H__ | ||
14 | |||
15 | /* commands */ | ||
16 | |||
17 | #define X1205_CMD_GETDATETIME 0 | ||
18 | #define X1205_CMD_SETTIME 1 | ||
19 | #define X1205_CMD_SETDATETIME 2 | ||
20 | #define X1205_CMD_GETALARM 3 | ||
21 | #define X1205_CMD_SETALARM 4 | ||
22 | #define X1205_CMD_GETDTRIM 5 | ||
23 | #define X1205_CMD_SETDTRIM 6 | ||
24 | #define X1205_CMD_GETATRIM 7 | ||
25 | #define X1205_CMD_SETATRIM 8 | ||
26 | |||
27 | extern int x1205_do_command(unsigned int cmd, void *arg); | ||
28 | extern int x1205_direct_attach(int adapter_id, | ||
29 | struct i2c_client_address_data *address_data); | ||
30 | |||
31 | #endif /* __LINUX_X1205_H__ */ | ||
diff --git a/include/linux/zutil.h b/include/linux/zutil.h index fdfd5ed41ec4..ee0c59cf2136 100644 --- a/include/linux/zutil.h +++ b/include/linux/zutil.h | |||
@@ -15,7 +15,6 @@ | |||
15 | 15 | ||
16 | #include <linux/zlib.h> | 16 | #include <linux/zlib.h> |
17 | #include <linux/string.h> | 17 | #include <linux/string.h> |
18 | #include <linux/errno.h> | ||
19 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
20 | 19 | ||
21 | typedef unsigned char uch; | 20 | typedef unsigned char uch; |