diff options
Diffstat (limited to 'include/linux')
37 files changed, 475 insertions, 131 deletions
diff --git a/include/linux/agp_backend.h b/include/linux/agp_backend.h index 9101ed64f803..09ea4a1e9505 100644 --- a/include/linux/agp_backend.h +++ b/include/linux/agp_backend.h | |||
| @@ -79,7 +79,6 @@ struct agp_memory { | |||
| 79 | u32 physical; | 79 | u32 physical; |
| 80 | bool is_bound; | 80 | bool is_bound; |
| 81 | bool is_flushed; | 81 | bool is_flushed; |
| 82 | bool vmalloc_flag; | ||
| 83 | /* list of agp_memory mapped to the aperture */ | 82 | /* list of agp_memory mapped to the aperture */ |
| 84 | struct list_head mapped_list; | 83 | struct list_head mapped_list; |
| 85 | /* DMA-mapped addresses */ | 84 | /* DMA-mapped addresses */ |
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index e6e0cb5437e6..9ae2889096b6 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
| @@ -105,8 +105,8 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent, | |||
| 105 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); | 105 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); |
| 106 | void bdi_unregister(struct backing_dev_info *bdi); | 106 | void bdi_unregister(struct backing_dev_info *bdi); |
| 107 | int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int); | 107 | int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int); |
| 108 | void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, | 108 | void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages); |
| 109 | long nr_pages, int sb_locked); | 109 | void bdi_start_background_writeback(struct backing_dev_info *bdi); |
| 110 | int bdi_writeback_task(struct bdi_writeback *wb); | 110 | int bdi_writeback_task(struct bdi_writeback *wb); |
| 111 | int bdi_has_dirty_io(struct backing_dev_info *bdi); | 111 | int bdi_has_dirty_io(struct backing_dev_info *bdi); |
| 112 | void bdi_arm_supers_timer(void); | 112 | void bdi_arm_supers_timer(void); |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 8b7f5e0914ad..09a840264d6f 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -1211,14 +1211,23 @@ struct work_struct; | |||
| 1211 | int kblockd_schedule_work(struct request_queue *q, struct work_struct *work); | 1211 | int kblockd_schedule_work(struct request_queue *q, struct work_struct *work); |
| 1212 | 1212 | ||
| 1213 | #ifdef CONFIG_BLK_CGROUP | 1213 | #ifdef CONFIG_BLK_CGROUP |
| 1214 | /* | ||
| 1215 | * This should not be using sched_clock(). A real patch is in progress | ||
| 1216 | * to fix this up, until that is in place we need to disable preemption | ||
| 1217 | * around sched_clock() in this function and set_io_start_time_ns(). | ||
| 1218 | */ | ||
| 1214 | static inline void set_start_time_ns(struct request *req) | 1219 | static inline void set_start_time_ns(struct request *req) |
| 1215 | { | 1220 | { |
| 1221 | preempt_disable(); | ||
| 1216 | req->start_time_ns = sched_clock(); | 1222 | req->start_time_ns = sched_clock(); |
| 1223 | preempt_enable(); | ||
| 1217 | } | 1224 | } |
| 1218 | 1225 | ||
| 1219 | static inline void set_io_start_time_ns(struct request *req) | 1226 | static inline void set_io_start_time_ns(struct request *req) |
| 1220 | { | 1227 | { |
| 1228 | preempt_disable(); | ||
| 1221 | req->io_start_time_ns = sched_clock(); | 1229 | req->io_start_time_ns = sched_clock(); |
| 1230 | preempt_enable(); | ||
| 1222 | } | 1231 | } |
| 1223 | 1232 | ||
| 1224 | static inline uint64_t rq_start_time_ns(struct request *req) | 1233 | static inline uint64_t rq_start_time_ns(struct request *req) |
diff --git a/include/linux/cache.h b/include/linux/cache.h index 97e24881c4c6..4c570653ab84 100644 --- a/include/linux/cache.h +++ b/include/linux/cache.h | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | #ifndef __cacheline_aligned | 31 | #ifndef __cacheline_aligned |
| 32 | #define __cacheline_aligned \ | 32 | #define __cacheline_aligned \ |
| 33 | __attribute__((__aligned__(SMP_CACHE_BYTES), \ | 33 | __attribute__((__aligned__(SMP_CACHE_BYTES), \ |
| 34 | __section__(".data.cacheline_aligned"))) | 34 | __section__(".data..cacheline_aligned"))) |
| 35 | #endif /* __cacheline_aligned */ | 35 | #endif /* __cacheline_aligned */ |
| 36 | 36 | ||
| 37 | #ifndef __cacheline_aligned_in_smp | 37 | #ifndef __cacheline_aligned_in_smp |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 0c621604baa1..e3d00fdb858d 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
| @@ -525,13 +525,21 @@ static inline struct cgroup_subsys_state *cgroup_subsys_state( | |||
| 525 | return cgrp->subsys[subsys_id]; | 525 | return cgrp->subsys[subsys_id]; |
| 526 | } | 526 | } |
| 527 | 527 | ||
| 528 | static inline struct cgroup_subsys_state *task_subsys_state( | 528 | /* |
| 529 | struct task_struct *task, int subsys_id) | 529 | * function to get the cgroup_subsys_state which allows for extra |
| 530 | * rcu_dereference_check() conditions, such as locks used during the | ||
| 531 | * cgroup_subsys::attach() methods. | ||
| 532 | */ | ||
| 533 | #define task_subsys_state_check(task, subsys_id, __c) \ | ||
| 534 | rcu_dereference_check(task->cgroups->subsys[subsys_id], \ | ||
| 535 | rcu_read_lock_held() || \ | ||
| 536 | lockdep_is_held(&task->alloc_lock) || \ | ||
| 537 | cgroup_lock_is_held() || (__c)) | ||
| 538 | |||
| 539 | static inline struct cgroup_subsys_state * | ||
| 540 | task_subsys_state(struct task_struct *task, int subsys_id) | ||
| 530 | { | 541 | { |
| 531 | return rcu_dereference_check(task->cgroups->subsys[subsys_id], | 542 | return task_subsys_state_check(task, subsys_id, false); |
| 532 | rcu_read_lock_held() || | ||
| 533 | lockdep_is_held(&task->alloc_lock) || | ||
| 534 | cgroup_lock_is_held()); | ||
| 535 | } | 543 | } |
| 536 | 544 | ||
| 537 | static inline struct cgroup* task_cgroup(struct task_struct *task, | 545 | static inline struct cgroup* task_cgroup(struct task_struct *task, |
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 73dcf804bc94..0da5b187f124 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
| @@ -58,8 +58,12 @@ | |||
| 58 | * naked functions because then mcount is called without stack and frame pointer | 58 | * naked functions because then mcount is called without stack and frame pointer |
| 59 | * being set up and there is no chance to restore the lr register to the value | 59 | * being set up and there is no chance to restore the lr register to the value |
| 60 | * before mcount was called. | 60 | * before mcount was called. |
| 61 | * | ||
| 62 | * The asm() bodies of naked functions often depend on standard calling conventions, | ||
| 63 | * therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce | ||
| 64 | * this, so we must do so ourselves. See GCC PR44290. | ||
| 61 | */ | 65 | */ |
| 62 | #define __naked __attribute__((naked)) notrace | 66 | #define __naked __attribute__((naked)) noinline __noclone notrace |
| 63 | 67 | ||
| 64 | #define __noreturn __attribute__((noreturn)) | 68 | #define __noreturn __attribute__((noreturn)) |
| 65 | 69 | ||
| @@ -85,3 +89,7 @@ | |||
| 85 | #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h) | 89 | #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h) |
| 86 | #define gcc_header(x) _gcc_header(x) | 90 | #define gcc_header(x) _gcc_header(x) |
| 87 | #include gcc_header(__GNUC__) | 91 | #include gcc_header(__GNUC__) |
| 92 | |||
| 93 | #if !defined(__noclone) | ||
| 94 | #define __noclone /* not needed */ | ||
| 95 | #endif | ||
diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h index 94dea3ffbfa1..fcfa5b9a4317 100644 --- a/include/linux/compiler-gcc4.h +++ b/include/linux/compiler-gcc4.h | |||
| @@ -48,6 +48,10 @@ | |||
| 48 | * unreleased. Really, we need to have autoconf for the kernel. | 48 | * unreleased. Really, we need to have autoconf for the kernel. |
| 49 | */ | 49 | */ |
| 50 | #define unreachable() __builtin_unreachable() | 50 | #define unreachable() __builtin_unreachable() |
| 51 | |||
| 52 | /* Mark a function definition as prohibited from being cloned. */ | ||
| 53 | #define __noclone __attribute__((__noclone__)) | ||
| 54 | |||
| 51 | #endif | 55 | #endif |
| 52 | 56 | ||
| 53 | #endif | 57 | #endif |
diff --git a/include/linux/drbd.h b/include/linux/drbd.h index 68530521ad00..b8d2516668aa 100644 --- a/include/linux/drbd.h +++ b/include/linux/drbd.h | |||
| @@ -53,7 +53,7 @@ | |||
| 53 | 53 | ||
| 54 | 54 | ||
| 55 | extern const char *drbd_buildtag(void); | 55 | extern const char *drbd_buildtag(void); |
| 56 | #define REL_VERSION "8.3.8rc1" | 56 | #define REL_VERSION "8.3.8" |
| 57 | #define API_VERSION 88 | 57 | #define API_VERSION 88 |
| 58 | #define PRO_VERSION_MIN 86 | 58 | #define PRO_VERSION_MIN 86 |
| 59 | #define PRO_VERSION_MAX 94 | 59 | #define PRO_VERSION_MAX 94 |
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h index b3cd4de9432b..52c0da4bdd18 100644 --- a/include/linux/dynamic_debug.h +++ b/include/linux/dynamic_debug.h | |||
| @@ -40,7 +40,7 @@ int ddebug_add_module(struct _ddebug *tab, unsigned int n, | |||
| 40 | const char *modname); | 40 | const char *modname); |
| 41 | 41 | ||
| 42 | #if defined(CONFIG_DYNAMIC_DEBUG) | 42 | #if defined(CONFIG_DYNAMIC_DEBUG) |
| 43 | extern int ddebug_remove_module(char *mod_name); | 43 | extern int ddebug_remove_module(const char *mod_name); |
| 44 | 44 | ||
| 45 | #define __dynamic_dbg_enabled(dd) ({ \ | 45 | #define __dynamic_dbg_enabled(dd) ({ \ |
| 46 | int __ret = 0; \ | 46 | int __ret = 0; \ |
| @@ -73,7 +73,7 @@ extern int ddebug_remove_module(char *mod_name); | |||
| 73 | 73 | ||
| 74 | #else | 74 | #else |
| 75 | 75 | ||
| 76 | static inline int ddebug_remove_module(char *mod) | 76 | static inline int ddebug_remove_module(const char *mod) |
| 77 | { | 77 | { |
| 78 | return 0; | 78 | return 0; |
| 79 | } | 79 | } |
diff --git a/include/linux/edac_mce.h b/include/linux/edac_mce.h new file mode 100644 index 000000000000..f974fc035363 --- /dev/null +++ b/include/linux/edac_mce.h | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | /* Provides edac interface to mcelog events | ||
| 2 | * | ||
| 3 | * This file may be distributed under the terms of the | ||
| 4 | * GNU General Public License version 2. | ||
| 5 | * | ||
| 6 | * Copyright (c) 2009 by: | ||
| 7 | * Mauro Carvalho Chehab <mchehab@redhat.com> | ||
| 8 | * | ||
| 9 | * Red Hat Inc. http://www.redhat.com | ||
| 10 | */ | ||
| 11 | |||
| 12 | #if defined(CONFIG_EDAC_MCE) || \ | ||
| 13 | (defined(CONFIG_EDAC_MCE_MODULE) && defined(MODULE)) | ||
| 14 | |||
| 15 | #include <asm/mce.h> | ||
| 16 | #include <linux/list.h> | ||
| 17 | |||
| 18 | struct edac_mce { | ||
| 19 | struct list_head list; | ||
| 20 | |||
| 21 | void *priv; | ||
| 22 | int (*check_error)(void *priv, struct mce *mce); | ||
| 23 | }; | ||
| 24 | |||
| 25 | int edac_mce_register(struct edac_mce *edac_mce); | ||
| 26 | void edac_mce_unregister(struct edac_mce *edac_mce); | ||
| 27 | int edac_mce_parse(struct mce *mce); | ||
| 28 | |||
| 29 | #else | ||
| 30 | #define edac_mce_parse(mce) (0) | ||
| 31 | #endif | ||
diff --git a/include/linux/fb.h b/include/linux/fb.h index 907ace3a64c8..8e5a9dfb76bf 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
| @@ -786,8 +786,6 @@ struct fb_tile_ops { | |||
| 786 | #define FBINFO_MISC_USEREVENT 0x10000 /* event request | 786 | #define FBINFO_MISC_USEREVENT 0x10000 /* event request |
| 787 | from userspace */ | 787 | from userspace */ |
| 788 | #define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ | 788 | #define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ |
| 789 | #define FBINFO_MISC_FIRMWARE 0x40000 /* a replaceable firmware | ||
| 790 | inited framebuffer */ | ||
| 791 | 789 | ||
| 792 | /* A driver may set this flag to indicate that it does want a set_par to be | 790 | /* A driver may set this flag to indicate that it does want a set_par to be |
| 793 | * called every time when fbcon_switch is executed. The advantage is that with | 791 | * called every time when fbcon_switch is executed. The advantage is that with |
| @@ -801,6 +799,8 @@ struct fb_tile_ops { | |||
| 801 | */ | 799 | */ |
| 802 | #define FBINFO_MISC_ALWAYS_SETPAR 0x40000 | 800 | #define FBINFO_MISC_ALWAYS_SETPAR 0x40000 |
| 803 | 801 | ||
| 802 | /* where the fb is a firmware driver, and can be replaced with a proper one */ | ||
| 803 | #define FBINFO_MISC_FIRMWARE 0x80000 | ||
| 804 | /* | 804 | /* |
| 805 | * Host and GPU endianness differ. | 805 | * Host and GPU endianness differ. |
| 806 | */ | 806 | */ |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 3428393942a6..471e1ff5079a 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -2388,7 +2388,7 @@ extern const struct file_operations simple_dir_operations; | |||
| 2388 | extern const struct inode_operations simple_dir_inode_operations; | 2388 | extern const struct inode_operations simple_dir_inode_operations; |
| 2389 | struct tree_descr { char *name; const struct file_operations *ops; int mode; }; | 2389 | struct tree_descr { char *name; const struct file_operations *ops; int mode; }; |
| 2390 | struct dentry *d_alloc_name(struct dentry *, const char *); | 2390 | struct dentry *d_alloc_name(struct dentry *, const char *); |
| 2391 | extern int simple_fill_super(struct super_block *, int, struct tree_descr *); | 2391 | extern int simple_fill_super(struct super_block *, unsigned long, struct tree_descr *); |
| 2392 | extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count); | 2392 | extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count); |
| 2393 | extern void simple_release_fs(struct vfsmount **mount, int *count); | 2393 | extern void simple_release_fs(struct vfsmount **mount, int *count); |
| 2394 | 2394 | ||
diff --git a/include/linux/init.h b/include/linux/init.h index ab1d31f9352b..de994304e0bb 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
| @@ -301,7 +301,7 @@ void __init parse_early_options(char *cmdline); | |||
| 301 | #endif | 301 | #endif |
| 302 | 302 | ||
| 303 | /* Data marked not to be saved by software suspend */ | 303 | /* Data marked not to be saved by software suspend */ |
| 304 | #define __nosavedata __section(.data.nosave) | 304 | #define __nosavedata __section(.data..nosave) |
| 305 | 305 | ||
| 306 | /* This means "can be init if no module support, otherwise module load | 306 | /* This means "can be init if no module support, otherwise module load |
| 307 | may call it." */ | 307 | may call it." */ |
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 2beaa13492be..1f43fa56f600 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
| @@ -183,7 +183,7 @@ extern struct cred init_cred; | |||
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | /* Attach to the init_task data structure for proper alignment */ | 185 | /* Attach to the init_task data structure for proper alignment */ |
| 186 | #define __init_task_data __attribute__((__section__(".data.init_task"))) | 186 | #define __init_task_data __attribute__((__section__(".data..init_task"))) |
| 187 | 187 | ||
| 188 | 188 | ||
| 189 | #endif | 189 | #endif |
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h index a0bb301afac0..64d529133031 100644 --- a/include/linux/iocontext.h +++ b/include/linux/iocontext.h | |||
| @@ -7,7 +7,6 @@ | |||
| 7 | struct cfq_queue; | 7 | struct cfq_queue; |
| 8 | struct cfq_io_context { | 8 | struct cfq_io_context { |
| 9 | void *key; | 9 | void *key; |
| 10 | unsigned long dead_key; | ||
| 11 | 10 | ||
| 12 | struct cfq_queue *cfqq[2]; | 11 | struct cfq_queue *cfqq[2]; |
| 13 | 12 | ||
diff --git a/include/linux/libata.h b/include/linux/libata.h index 3bad2701bfa6..b85f3ff34d7d 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -1023,6 +1023,7 @@ extern void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd, | |||
| 1023 | extern int ata_std_bios_param(struct scsi_device *sdev, | 1023 | extern int ata_std_bios_param(struct scsi_device *sdev, |
| 1024 | struct block_device *bdev, | 1024 | struct block_device *bdev, |
| 1025 | sector_t capacity, int geom[]); | 1025 | sector_t capacity, int geom[]); |
| 1026 | extern void ata_scsi_unlock_native_capacity(struct scsi_device *sdev); | ||
| 1026 | extern int ata_scsi_slave_config(struct scsi_device *sdev); | 1027 | extern int ata_scsi_slave_config(struct scsi_device *sdev); |
| 1027 | extern void ata_scsi_slave_destroy(struct scsi_device *sdev); | 1028 | extern void ata_scsi_slave_destroy(struct scsi_device *sdev); |
| 1028 | extern int ata_scsi_change_queue_depth(struct scsi_device *sdev, | 1029 | extern int ata_scsi_change_queue_depth(struct scsi_device *sdev, |
| @@ -1174,6 +1175,7 @@ extern struct device_attribute *ata_common_sdev_attrs[]; | |||
| 1174 | .slave_configure = ata_scsi_slave_config, \ | 1175 | .slave_configure = ata_scsi_slave_config, \ |
| 1175 | .slave_destroy = ata_scsi_slave_destroy, \ | 1176 | .slave_destroy = ata_scsi_slave_destroy, \ |
| 1176 | .bios_param = ata_std_bios_param, \ | 1177 | .bios_param = ata_std_bios_param, \ |
| 1178 | .unlock_native_capacity = ata_scsi_unlock_native_capacity, \ | ||
| 1177 | .sdev_attrs = ata_common_sdev_attrs | 1179 | .sdev_attrs = ata_common_sdev_attrs |
| 1178 | 1180 | ||
| 1179 | #define ATA_NCQ_SHT(drv_name) \ | 1181 | #define ATA_NCQ_SHT(drv_name) \ |
diff --git a/include/linux/linkage.h b/include/linux/linkage.h index 5126cceb6ae9..7135ebc8428c 100644 --- a/include/linux/linkage.h +++ b/include/linux/linkage.h | |||
| @@ -18,8 +18,8 @@ | |||
| 18 | # define asmregparm | 18 | # define asmregparm |
| 19 | #endif | 19 | #endif |
| 20 | 20 | ||
| 21 | #define __page_aligned_data __section(.data.page_aligned) __aligned(PAGE_SIZE) | 21 | #define __page_aligned_data __section(.data..page_aligned) __aligned(PAGE_SIZE) |
| 22 | #define __page_aligned_bss __section(.bss.page_aligned) __aligned(PAGE_SIZE) | 22 | #define __page_aligned_bss __section(.bss..page_aligned) __aligned(PAGE_SIZE) |
| 23 | 23 | ||
| 24 | /* | 24 | /* |
| 25 | * For assembly routines. | 25 | * For assembly routines. |
| @@ -27,8 +27,8 @@ | |||
| 27 | * Note when using these that you must specify the appropriate | 27 | * Note when using these that you must specify the appropriate |
| 28 | * alignment directives yourself | 28 | * alignment directives yourself |
| 29 | */ | 29 | */ |
| 30 | #define __PAGE_ALIGNED_DATA .section ".data.page_aligned", "aw" | 30 | #define __PAGE_ALIGNED_DATA .section ".data..page_aligned", "aw" |
| 31 | #define __PAGE_ALIGNED_BSS .section ".bss.page_aligned", "aw" | 31 | #define __PAGE_ALIGNED_BSS .section ".bss..page_aligned", "aw" |
| 32 | 32 | ||
| 33 | /* | 33 | /* |
| 34 | * This is used by architectures to keep arguments on the stack | 34 | * This is used by architectures to keep arguments on the stack |
diff --git a/include/linux/list.h b/include/linux/list.h index 8392884a2977..5d57a3a1fa1b 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
| @@ -544,6 +544,21 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
| 544 | &pos->member != (head); \ | 544 | &pos->member != (head); \ |
| 545 | pos = n, n = list_entry(n->member.prev, typeof(*n), member)) | 545 | pos = n, n = list_entry(n->member.prev, typeof(*n), member)) |
| 546 | 546 | ||
| 547 | /** | ||
| 548 | * list_safe_reset_next - reset a stale list_for_each_entry_safe loop | ||
| 549 | * @pos: the loop cursor used in the list_for_each_entry_safe loop | ||
| 550 | * @n: temporary storage used in list_for_each_entry_safe | ||
| 551 | * @member: the name of the list_struct within the struct. | ||
| 552 | * | ||
| 553 | * list_safe_reset_next is not safe to use in general if the list may be | ||
| 554 | * modified concurrently (eg. the lock is dropped in the loop body). An | ||
| 555 | * exception to this is if the cursor element (pos) is pinned in the list, | ||
| 556 | * and list_safe_reset_next is called after re-taking the lock and before | ||
| 557 | * completing the current iteration of the loop body. | ||
| 558 | */ | ||
| 559 | #define list_safe_reset_next(pos, n, member) \ | ||
| 560 | n = list_entry(pos->member.next, typeof(*pos), member) | ||
| 561 | |||
| 547 | /* | 562 | /* |
| 548 | * Double linked lists with a single pointer list head. | 563 | * Double linked lists with a single pointer list head. |
| 549 | * Mostly useful for hash tables where the two pointer list head is | 564 | * Mostly useful for hash tables where the two pointer list head is |
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h index b631c46cffd9..f6c9b7dcb9fd 100644 --- a/include/linux/miscdevice.h +++ b/include/linux/miscdevice.h | |||
| @@ -3,6 +3,12 @@ | |||
| 3 | #include <linux/module.h> | 3 | #include <linux/module.h> |
| 4 | #include <linux/major.h> | 4 | #include <linux/major.h> |
| 5 | 5 | ||
| 6 | /* | ||
| 7 | * These allocations are managed by device@lanana.org. If you use an | ||
| 8 | * entry that is not in assigned your entry may well be moved and | ||
| 9 | * reassigned, or set dynamic if a fixed value is not justified. | ||
| 10 | */ | ||
| 11 | |||
| 6 | #define PSMOUSE_MINOR 1 | 12 | #define PSMOUSE_MINOR 1 |
| 7 | #define MS_BUSMOUSE_MINOR 2 | 13 | #define MS_BUSMOUSE_MINOR 2 |
| 8 | #define ATIXL_BUSMOUSE_MINOR 3 | 14 | #define ATIXL_BUSMOUSE_MINOR 3 |
| @@ -30,7 +36,6 @@ | |||
| 30 | #define HPET_MINOR 228 | 36 | #define HPET_MINOR 228 |
| 31 | #define FUSE_MINOR 229 | 37 | #define FUSE_MINOR 229 |
| 32 | #define KVM_MINOR 232 | 38 | #define KVM_MINOR 232 |
| 33 | #define VHOST_NET_MINOR 233 | ||
| 34 | #define BTRFS_MINOR 234 | 39 | #define BTRFS_MINOR 234 |
| 35 | #define AUTOFS_MINOR 235 | 40 | #define AUTOFS_MINOR 235 |
| 36 | #define MISC_DYNAMIC_MINOR 255 | 41 | #define MISC_DYNAMIC_MINOR 255 |
diff --git a/include/linux/mmc/sh_mmcif.h b/include/linux/mmc/sh_mmcif.h index aafe832f18aa..d4a2ebbdab4b 100644 --- a/include/linux/mmc/sh_mmcif.h +++ b/include/linux/mmc/sh_mmcif.h | |||
| @@ -14,6 +14,9 @@ | |||
| 14 | #ifndef __SH_MMCIF_H__ | 14 | #ifndef __SH_MMCIF_H__ |
| 15 | #define __SH_MMCIF_H__ | 15 | #define __SH_MMCIF_H__ |
| 16 | 16 | ||
| 17 | #include <linux/platform_device.h> | ||
| 18 | #include <linux/io.h> | ||
| 19 | |||
| 17 | /* | 20 | /* |
| 18 | * MMCIF : CE_CLK_CTRL [19:16] | 21 | * MMCIF : CE_CLK_CTRL [19:16] |
| 19 | * 1000 : Peripheral clock / 512 | 22 | * 1000 : Peripheral clock / 512 |
| @@ -36,4 +39,162 @@ struct sh_mmcif_plat_data { | |||
| 36 | u32 ocr; | 39 | u32 ocr; |
| 37 | }; | 40 | }; |
| 38 | 41 | ||
| 42 | #define MMCIF_CE_CMD_SET 0x00000000 | ||
| 43 | #define MMCIF_CE_ARG 0x00000008 | ||
| 44 | #define MMCIF_CE_ARG_CMD12 0x0000000C | ||
| 45 | #define MMCIF_CE_CMD_CTRL 0x00000010 | ||
| 46 | #define MMCIF_CE_BLOCK_SET 0x00000014 | ||
| 47 | #define MMCIF_CE_CLK_CTRL 0x00000018 | ||
| 48 | #define MMCIF_CE_BUF_ACC 0x0000001C | ||
| 49 | #define MMCIF_CE_RESP3 0x00000020 | ||
| 50 | #define MMCIF_CE_RESP2 0x00000024 | ||
| 51 | #define MMCIF_CE_RESP1 0x00000028 | ||
| 52 | #define MMCIF_CE_RESP0 0x0000002C | ||
| 53 | #define MMCIF_CE_RESP_CMD12 0x00000030 | ||
| 54 | #define MMCIF_CE_DATA 0x00000034 | ||
| 55 | #define MMCIF_CE_INT 0x00000040 | ||
| 56 | #define MMCIF_CE_INT_MASK 0x00000044 | ||
| 57 | #define MMCIF_CE_HOST_STS1 0x00000048 | ||
| 58 | #define MMCIF_CE_HOST_STS2 0x0000004C | ||
| 59 | #define MMCIF_CE_VERSION 0x0000007C | ||
| 60 | |||
| 61 | extern inline u32 sh_mmcif_readl(void __iomem *addr, int reg) | ||
| 62 | { | ||
| 63 | return readl(addr + reg); | ||
| 64 | } | ||
| 65 | |||
| 66 | extern inline void sh_mmcif_writel(void __iomem *addr, int reg, u32 val) | ||
| 67 | { | ||
| 68 | writel(val, addr + reg); | ||
| 69 | } | ||
| 70 | |||
| 71 | #define SH_MMCIF_BBS 512 /* boot block size */ | ||
| 72 | |||
| 73 | extern inline void sh_mmcif_boot_cmd_send(void __iomem *base, | ||
| 74 | unsigned long cmd, unsigned long arg) | ||
| 75 | { | ||
| 76 | sh_mmcif_writel(base, MMCIF_CE_INT, 0); | ||
| 77 | sh_mmcif_writel(base, MMCIF_CE_ARG, arg); | ||
| 78 | sh_mmcif_writel(base, MMCIF_CE_CMD_SET, cmd); | ||
| 79 | } | ||
| 80 | |||
| 81 | extern inline int sh_mmcif_boot_cmd_poll(void __iomem *base, unsigned long mask) | ||
| 82 | { | ||
| 83 | unsigned long tmp; | ||
| 84 | int cnt; | ||
| 85 | |||
| 86 | for (cnt = 0; cnt < 1000000; cnt++) { | ||
| 87 | tmp = sh_mmcif_readl(base, MMCIF_CE_INT); | ||
| 88 | if (tmp & mask) { | ||
| 89 | sh_mmcif_writel(base, MMCIF_CE_INT, tmp & ~mask); | ||
| 90 | return 0; | ||
| 91 | } | ||
| 92 | } | ||
| 93 | |||
| 94 | return -1; | ||
| 95 | } | ||
| 96 | |||
| 97 | extern inline int sh_mmcif_boot_cmd(void __iomem *base, | ||
| 98 | unsigned long cmd, unsigned long arg) | ||
| 99 | { | ||
| 100 | sh_mmcif_boot_cmd_send(base, cmd, arg); | ||
| 101 | return sh_mmcif_boot_cmd_poll(base, 0x00010000); | ||
| 102 | } | ||
| 103 | |||
| 104 | extern inline int sh_mmcif_boot_do_read_single(void __iomem *base, | ||
| 105 | unsigned int block_nr, | ||
| 106 | unsigned long *buf) | ||
| 107 | { | ||
| 108 | int k; | ||
| 109 | |||
| 110 | /* CMD13 - Status */ | ||
| 111 | sh_mmcif_boot_cmd(base, 0x0d400000, 0x00010000); | ||
| 112 | |||
| 113 | if (sh_mmcif_readl(base, MMCIF_CE_RESP0) != 0x0900) | ||
| 114 | return -1; | ||
| 115 | |||
| 116 | /* CMD17 - Read */ | ||
| 117 | sh_mmcif_boot_cmd(base, 0x11480000, block_nr * SH_MMCIF_BBS); | ||
| 118 | if (sh_mmcif_boot_cmd_poll(base, 0x00100000) < 0) | ||
| 119 | return -1; | ||
| 120 | |||
| 121 | for (k = 0; k < (SH_MMCIF_BBS / 4); k++) | ||
| 122 | buf[k] = sh_mmcif_readl(base, MMCIF_CE_DATA); | ||
| 123 | |||
| 124 | return 0; | ||
| 125 | } | ||
| 126 | |||
| 127 | extern inline int sh_mmcif_boot_do_read(void __iomem *base, | ||
| 128 | unsigned long first_block, | ||
| 129 | unsigned long nr_blocks, | ||
| 130 | void *buf) | ||
| 131 | { | ||
| 132 | unsigned long k; | ||
| 133 | int ret = 0; | ||
| 134 | |||
| 135 | /* CMD16 - Set the block size */ | ||
| 136 | sh_mmcif_boot_cmd(base, 0x10400000, SH_MMCIF_BBS); | ||
| 137 | |||
| 138 | for (k = 0; !ret && k < nr_blocks; k++) | ||
| 139 | ret = sh_mmcif_boot_do_read_single(base, first_block + k, | ||
| 140 | buf + (k * SH_MMCIF_BBS)); | ||
| 141 | |||
| 142 | return ret; | ||
| 143 | } | ||
| 144 | |||
| 145 | extern inline void sh_mmcif_boot_init(void __iomem *base) | ||
| 146 | { | ||
| 147 | unsigned long tmp; | ||
| 148 | |||
| 149 | /* reset */ | ||
| 150 | tmp = sh_mmcif_readl(base, MMCIF_CE_VERSION); | ||
| 151 | sh_mmcif_writel(base, MMCIF_CE_VERSION, tmp | 0x80000000); | ||
| 152 | sh_mmcif_writel(base, MMCIF_CE_VERSION, tmp & ~0x80000000); | ||
| 153 | |||
| 154 | /* byte swap */ | ||
| 155 | sh_mmcif_writel(base, MMCIF_CE_BUF_ACC, 0x00010000); | ||
| 156 | |||
| 157 | /* Set block size in MMCIF hardware */ | ||
| 158 | sh_mmcif_writel(base, MMCIF_CE_BLOCK_SET, SH_MMCIF_BBS); | ||
| 159 | |||
| 160 | /* Enable the clock, set it to Bus clock/256 (about 325Khz)*/ | ||
| 161 | sh_mmcif_writel(base, MMCIF_CE_CLK_CTRL, 0x01072fff); | ||
| 162 | |||
| 163 | /* CMD0 */ | ||
| 164 | sh_mmcif_boot_cmd(base, 0x00000040, 0); | ||
| 165 | |||
| 166 | /* CMD1 - Get OCR */ | ||
| 167 | do { | ||
| 168 | sh_mmcif_boot_cmd(base, 0x01405040, 0x40300000); /* CMD1 */ | ||
| 169 | } while ((sh_mmcif_readl(base, MMCIF_CE_RESP0) & 0x80000000) | ||
| 170 | != 0x80000000); | ||
| 171 | |||
| 172 | /* CMD2 - Get CID */ | ||
| 173 | sh_mmcif_boot_cmd(base, 0x02806040, 0); | ||
| 174 | |||
| 175 | /* CMD3 - Set card relative address */ | ||
| 176 | sh_mmcif_boot_cmd(base, 0x03400040, 0x00010000); | ||
| 177 | } | ||
| 178 | |||
| 179 | extern inline void sh_mmcif_boot_slurp(void __iomem *base, | ||
| 180 | unsigned char *buf, | ||
| 181 | unsigned long no_bytes) | ||
| 182 | { | ||
| 183 | unsigned long tmp; | ||
| 184 | |||
| 185 | /* In data transfer mode: Set clock to Bus clock/4 (about 20Mhz) */ | ||
| 186 | sh_mmcif_writel(base, MMCIF_CE_CLK_CTRL, 0x01012fff); | ||
| 187 | |||
| 188 | /* CMD9 - Get CSD */ | ||
| 189 | sh_mmcif_boot_cmd(base, 0x09806000, 0x00010000); | ||
| 190 | |||
| 191 | /* CMD7 - Select the card */ | ||
| 192 | sh_mmcif_boot_cmd(base, 0x07400000, 0x00010000); | ||
| 193 | |||
| 194 | tmp = no_bytes / SH_MMCIF_BBS; | ||
| 195 | tmp += (no_bytes % SH_MMCIF_BBS) ? 1 : 0; | ||
| 196 | |||
| 197 | sh_mmcif_boot_do_read(base, 512, tmp, buf); | ||
| 198 | } | ||
| 199 | |||
| 39 | #endif /* __SH_MMCIF_H__ */ | 200 | #endif /* __SH_MMCIF_H__ */ |
diff --git a/include/linux/module.h b/include/linux/module.h index 6914fcad4673..8a6b9fdc7ffa 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
| @@ -181,6 +181,13 @@ void *__symbol_get(const char *symbol); | |||
| 181 | void *__symbol_get_gpl(const char *symbol); | 181 | void *__symbol_get_gpl(const char *symbol); |
| 182 | #define symbol_get(x) ((typeof(&x))(__symbol_get(MODULE_SYMBOL_PREFIX #x))) | 182 | #define symbol_get(x) ((typeof(&x))(__symbol_get(MODULE_SYMBOL_PREFIX #x))) |
| 183 | 183 | ||
| 184 | /* modules using other modules: kdb wants to see this. */ | ||
| 185 | struct module_use { | ||
| 186 | struct list_head source_list; | ||
| 187 | struct list_head target_list; | ||
| 188 | struct module *source, *target; | ||
| 189 | }; | ||
| 190 | |||
| 184 | #ifndef __GENKSYMS__ | 191 | #ifndef __GENKSYMS__ |
| 185 | #ifdef CONFIG_MODVERSIONS | 192 | #ifdef CONFIG_MODVERSIONS |
| 186 | /* Mark the CRC weak since genksyms apparently decides not to | 193 | /* Mark the CRC weak since genksyms apparently decides not to |
| @@ -359,7 +366,9 @@ struct module | |||
| 359 | 366 | ||
| 360 | #ifdef CONFIG_MODULE_UNLOAD | 367 | #ifdef CONFIG_MODULE_UNLOAD |
| 361 | /* What modules depend on me? */ | 368 | /* What modules depend on me? */ |
| 362 | struct list_head modules_which_use_me; | 369 | struct list_head source_list; |
| 370 | /* What modules do I depend on? */ | ||
| 371 | struct list_head target_list; | ||
| 363 | 372 | ||
| 364 | /* Who is waiting for us to be unloaded */ | 373 | /* Who is waiting for us to be unloaded */ |
| 365 | struct task_struct *waiter; | 374 | struct task_struct *waiter; |
| @@ -663,43 +672,10 @@ static inline int module_get_iter_tracepoints(struct tracepoint_iter *iter) | |||
| 663 | 672 | ||
| 664 | #endif /* CONFIG_MODULES */ | 673 | #endif /* CONFIG_MODULES */ |
| 665 | 674 | ||
| 666 | struct device_driver; | ||
| 667 | #ifdef CONFIG_SYSFS | 675 | #ifdef CONFIG_SYSFS |
| 668 | struct module; | ||
| 669 | |||
| 670 | extern struct kset *module_kset; | 676 | extern struct kset *module_kset; |
| 671 | extern struct kobj_type module_ktype; | 677 | extern struct kobj_type module_ktype; |
| 672 | extern int module_sysfs_initialized; | 678 | extern int module_sysfs_initialized; |
| 673 | |||
| 674 | int mod_sysfs_init(struct module *mod); | ||
| 675 | int mod_sysfs_setup(struct module *mod, | ||
| 676 | struct kernel_param *kparam, | ||
| 677 | unsigned int num_params); | ||
| 678 | int module_add_modinfo_attrs(struct module *mod); | ||
| 679 | void module_remove_modinfo_attrs(struct module *mod); | ||
| 680 | |||
| 681 | #else /* !CONFIG_SYSFS */ | ||
| 682 | |||
| 683 | static inline int mod_sysfs_init(struct module *mod) | ||
| 684 | { | ||
| 685 | return 0; | ||
| 686 | } | ||
| 687 | |||
| 688 | static inline int mod_sysfs_setup(struct module *mod, | ||
| 689 | struct kernel_param *kparam, | ||
| 690 | unsigned int num_params) | ||
| 691 | { | ||
| 692 | return 0; | ||
| 693 | } | ||
| 694 | |||
| 695 | static inline int module_add_modinfo_attrs(struct module *mod) | ||
| 696 | { | ||
| 697 | return 0; | ||
| 698 | } | ||
| 699 | |||
| 700 | static inline void module_remove_modinfo_attrs(struct module *mod) | ||
| 701 | { } | ||
| 702 | |||
| 703 | #endif /* CONFIG_SYSFS */ | 679 | #endif /* CONFIG_SYSFS */ |
| 704 | 680 | ||
| 705 | #define symbol_request(x) try_then_request_module(symbol_get(x), "symbol:" #x) | 681 | #define symbol_request(x) try_then_request_module(symbol_get(x), "symbol:" #x) |
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index c00cc0c4d0b7..24e5d01d27d0 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h | |||
| @@ -397,7 +397,7 @@ struct xt_table_info { | |||
| 397 | * @stacksize jumps (number of user chains) can possibly be made. | 397 | * @stacksize jumps (number of user chains) can possibly be made. |
| 398 | */ | 398 | */ |
| 399 | unsigned int stacksize; | 399 | unsigned int stacksize; |
| 400 | unsigned int *stackptr; | 400 | unsigned int __percpu *stackptr; |
| 401 | void ***jumpstack; | 401 | void ***jumpstack; |
| 402 | /* ipt_entry tables: one per CPU */ | 402 | /* ipt_entry tables: one per CPU */ |
| 403 | /* Note : this field MUST be the last one, see XT_TABLE_INFO_SZ */ | 403 | /* Note : this field MUST be the last one, see XT_TABLE_INFO_SZ */ |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 6a471aba3b07..7cb00845f150 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -632,6 +632,7 @@ void pci_fixup_cardbus(struct pci_bus *); | |||
| 632 | 632 | ||
| 633 | /* Generic PCI functions used internally */ | 633 | /* Generic PCI functions used internally */ |
| 634 | 634 | ||
| 635 | void pcibios_scan_specific_bus(int busn); | ||
| 635 | extern struct pci_bus *pci_find_bus(int domain, int busnr); | 636 | extern struct pci_bus *pci_find_bus(int domain, int busnr); |
| 636 | void pci_bus_add_devices(const struct pci_bus *bus); | 637 | void pci_bus_add_devices(const struct pci_bus *bus); |
| 637 | struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, | 638 | struct pci_bus *pci_scan_bus_parented(struct device *parent, int bus, |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index ae66851870be..3bedcc149c84 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -1261,6 +1261,7 @@ | |||
| 1261 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759 | 1261 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759 |
| 1262 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8 | 1262 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8 |
| 1263 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2 | 1263 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2 |
| 1264 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP89_SATA 0x0D85 | ||
| 1264 | 1265 | ||
| 1265 | #define PCI_VENDOR_ID_IMS 0x10e0 | 1266 | #define PCI_VENDOR_ID_IMS 0x10e0 |
| 1266 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 | 1267 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 |
| @@ -2321,6 +2322,7 @@ | |||
| 2321 | #define PCI_VENDOR_ID_JMICRON 0x197B | 2322 | #define PCI_VENDOR_ID_JMICRON 0x197B |
| 2322 | #define PCI_DEVICE_ID_JMICRON_JMB360 0x2360 | 2323 | #define PCI_DEVICE_ID_JMICRON_JMB360 0x2360 |
| 2323 | #define PCI_DEVICE_ID_JMICRON_JMB361 0x2361 | 2324 | #define PCI_DEVICE_ID_JMICRON_JMB361 0x2361 |
| 2325 | #define PCI_DEVICE_ID_JMICRON_JMB362 0x2362 | ||
| 2324 | #define PCI_DEVICE_ID_JMICRON_JMB363 0x2363 | 2326 | #define PCI_DEVICE_ID_JMICRON_JMB363 0x2363 |
| 2325 | #define PCI_DEVICE_ID_JMICRON_JMB365 0x2365 | 2327 | #define PCI_DEVICE_ID_JMICRON_JMB365 0x2365 |
| 2326 | #define PCI_DEVICE_ID_JMICRON_JMB366 0x2366 | 2328 | #define PCI_DEVICE_ID_JMICRON_JMB366 0x2366 |
| @@ -2532,11 +2534,63 @@ | |||
| 2532 | #define PCI_DEVICE_ID_INTEL_ICH9_6 0x2930 | 2534 | #define PCI_DEVICE_ID_INTEL_ICH9_6 0x2930 |
| 2533 | #define PCI_DEVICE_ID_INTEL_ICH9_7 0x2916 | 2535 | #define PCI_DEVICE_ID_INTEL_ICH9_7 0x2916 |
| 2534 | #define PCI_DEVICE_ID_INTEL_ICH9_8 0x2918 | 2536 | #define PCI_DEVICE_ID_INTEL_ICH9_8 0x2918 |
| 2537 | #define PCI_DEVICE_ID_INTEL_I7_MCR 0x2c18 | ||
| 2538 | #define PCI_DEVICE_ID_INTEL_I7_MC_TAD 0x2c19 | ||
| 2539 | #define PCI_DEVICE_ID_INTEL_I7_MC_RAS 0x2c1a | ||
| 2540 | #define PCI_DEVICE_ID_INTEL_I7_MC_TEST 0x2c1c | ||
| 2541 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_CTRL 0x2c20 | ||
| 2542 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_ADDR 0x2c21 | ||
| 2543 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_RANK 0x2c22 | ||
| 2544 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_TC 0x2c23 | ||
| 2545 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_CTRL 0x2c28 | ||
| 2546 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_ADDR 0x2c29 | ||
| 2547 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_RANK 0x2c2a | ||
| 2548 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_TC 0x2c2b | ||
| 2549 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_CTRL 0x2c30 | ||
| 2550 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_ADDR 0x2c31 | ||
| 2551 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_RANK 0x2c32 | ||
| 2552 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_TC 0x2c33 | ||
| 2553 | #define PCI_DEVICE_ID_INTEL_I7_NONCORE 0x2c41 | ||
| 2554 | #define PCI_DEVICE_ID_INTEL_I7_NONCORE_ALT 0x2c40 | ||
| 2555 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE 0x2c50 | ||
| 2556 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_ALT 0x2c51 | ||
| 2557 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_REV2 0x2c70 | ||
| 2558 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_SAD 0x2c81 | ||
| 2559 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_QPI_LINK0 0x2c90 | ||
| 2560 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_QPI_PHY0 0x2c91 | ||
| 2561 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MCR 0x2c98 | ||
| 2562 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TAD 0x2c99 | ||
| 2563 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TEST 0x2c9C | ||
| 2564 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_CTRL 0x2ca0 | ||
| 2565 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_ADDR 0x2ca1 | ||
| 2566 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_RANK 0x2ca2 | ||
| 2567 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_TC 0x2ca3 | ||
| 2568 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_CTRL 0x2ca8 | ||
| 2569 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_ADDR 0x2ca9 | ||
| 2570 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_RANK 0x2caa | ||
| 2571 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_TC 0x2cab | ||
| 2572 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MCR_REV2 0x2d98 | ||
| 2573 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TAD_REV2 0x2d99 | ||
| 2574 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_RAS_REV2 0x2d9a | ||
| 2575 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TEST_REV2 0x2d9c | ||
| 2576 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_CTRL_REV2 0x2da0 | ||
| 2577 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_ADDR_REV2 0x2da1 | ||
| 2578 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_RANK_REV2 0x2da2 | ||
| 2579 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_TC_REV2 0x2da3 | ||
| 2580 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_CTRL_REV2 0x2da8 | ||
| 2581 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_ADDR_REV2 0x2da9 | ||
| 2582 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_RANK_REV2 0x2daa | ||
| 2583 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_TC_REV2 0x2dab | ||
| 2584 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_CTRL_REV2 0x2db0 | ||
| 2585 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_ADDR_REV2 0x2db1 | ||
| 2586 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_RANK_REV2 0x2db2 | ||
| 2587 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_TC_REV2 0x2db3 | ||
| 2535 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 | 2588 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 |
| 2536 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG4 0x3429 | 2589 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG4 0x3429 |
| 2537 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a | 2590 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a |
| 2538 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b | 2591 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b |
| 2539 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c | 2592 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c |
| 2593 | #define PCI_DEVICE_ID_INTEL_X58_HUB_MGMT 0x342e | ||
| 2540 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430 | 2594 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430 |
| 2541 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431 | 2595 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431 |
| 2542 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432 | 2596 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432 |
diff --git a/include/linux/percpu-defs.h b/include/linux/percpu-defs.h index 68567c0b3a5d..ce2dc655cd1d 100644 --- a/include/linux/percpu-defs.h +++ b/include/linux/percpu-defs.h | |||
| @@ -131,11 +131,11 @@ | |||
| 131 | * Declaration/definition used for per-CPU variables that must be page aligned. | 131 | * Declaration/definition used for per-CPU variables that must be page aligned. |
| 132 | */ | 132 | */ |
| 133 | #define DECLARE_PER_CPU_PAGE_ALIGNED(type, name) \ | 133 | #define DECLARE_PER_CPU_PAGE_ALIGNED(type, name) \ |
| 134 | DECLARE_PER_CPU_SECTION(type, name, ".page_aligned") \ | 134 | DECLARE_PER_CPU_SECTION(type, name, "..page_aligned") \ |
| 135 | __aligned(PAGE_SIZE) | 135 | __aligned(PAGE_SIZE) |
| 136 | 136 | ||
| 137 | #define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \ | 137 | #define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \ |
| 138 | DEFINE_PER_CPU_SECTION(type, name, ".page_aligned") \ | 138 | DEFINE_PER_CPU_SECTION(type, name, "..page_aligned") \ |
| 139 | __aligned(PAGE_SIZE) | 139 | __aligned(PAGE_SIZE) |
| 140 | 140 | ||
| 141 | /* | 141 | /* |
diff --git a/include/linux/personality.h b/include/linux/personality.h index 126120819a0d..eec3bae164d4 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h | |||
| @@ -12,7 +12,7 @@ struct pt_regs; | |||
| 12 | 12 | ||
| 13 | extern int register_exec_domain(struct exec_domain *); | 13 | extern int register_exec_domain(struct exec_domain *); |
| 14 | extern int unregister_exec_domain(struct exec_domain *); | 14 | extern int unregister_exec_domain(struct exec_domain *); |
| 15 | extern int __set_personality(unsigned long); | 15 | extern int __set_personality(unsigned int); |
| 16 | 16 | ||
| 17 | #endif /* __KERNEL__ */ | 17 | #endif /* __KERNEL__ */ |
| 18 | 18 | ||
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index 16de3933c45e..445796945ac9 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
| @@ -139,7 +139,9 @@ void pipe_lock(struct pipe_inode_info *); | |||
| 139 | void pipe_unlock(struct pipe_inode_info *); | 139 | void pipe_unlock(struct pipe_inode_info *); |
| 140 | void pipe_double_lock(struct pipe_inode_info *, struct pipe_inode_info *); | 140 | void pipe_double_lock(struct pipe_inode_info *, struct pipe_inode_info *); |
| 141 | 141 | ||
| 142 | extern unsigned int pipe_max_pages; | 142 | extern unsigned int pipe_max_size, pipe_min_size; |
| 143 | int pipe_proc_fn(struct ctl_table *, int, void __user *, size_t *, loff_t *); | ||
| 144 | |||
| 143 | 145 | ||
| 144 | /* Drop the inode semaphore and wait for a pipe event, atomically */ | 146 | /* Drop the inode semaphore and wait for a pipe event, atomically */ |
| 145 | void pipe_wait(struct pipe_inode_info *pipe); | 147 | void pipe_wait(struct pipe_inode_info *pipe); |
diff --git a/include/linux/sched.h b/include/linux/sched.h index f118809c953f..747fcaedddb7 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -139,7 +139,7 @@ extern int nr_processes(void); | |||
| 139 | extern unsigned long nr_running(void); | 139 | extern unsigned long nr_running(void); |
| 140 | extern unsigned long nr_uninterruptible(void); | 140 | extern unsigned long nr_uninterruptible(void); |
| 141 | extern unsigned long nr_iowait(void); | 141 | extern unsigned long nr_iowait(void); |
| 142 | extern unsigned long nr_iowait_cpu(void); | 142 | extern unsigned long nr_iowait_cpu(int cpu); |
| 143 | extern unsigned long this_cpu_load(void); | 143 | extern unsigned long this_cpu_load(void); |
| 144 | 144 | ||
| 145 | 145 | ||
diff --git a/include/linux/serial_sci.h b/include/linux/serial_sci.h index f5364a1de68b..baed2122c5a6 100644 --- a/include/linux/serial_sci.h +++ b/include/linux/serial_sci.h | |||
| @@ -2,9 +2,7 @@ | |||
| 2 | #define __LINUX_SERIAL_SCI_H | 2 | #define __LINUX_SERIAL_SCI_H |
| 3 | 3 | ||
| 4 | #include <linux/serial_core.h> | 4 | #include <linux/serial_core.h> |
| 5 | #ifdef CONFIG_SERIAL_SH_SCI_DMA | 5 | #include <linux/sh_dma.h> |
| 6 | #include <asm/dmaengine.h> | ||
| 7 | #endif | ||
| 8 | 6 | ||
| 9 | /* | 7 | /* |
| 10 | * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) | 8 | * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts) |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 7cdfb4d52847..f89e7fd59a4c 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -380,7 +380,10 @@ struct sk_buff { | |||
| 380 | kmemcheck_bitfield_begin(flags2); | 380 | kmemcheck_bitfield_begin(flags2); |
| 381 | __u16 queue_mapping:16; | 381 | __u16 queue_mapping:16; |
| 382 | #ifdef CONFIG_IPV6_NDISC_NODETYPE | 382 | #ifdef CONFIG_IPV6_NDISC_NODETYPE |
| 383 | __u8 ndisc_nodetype:2; | 383 | __u8 ndisc_nodetype:2, |
| 384 | deliver_no_wcard:1; | ||
| 385 | #else | ||
| 386 | __u8 deliver_no_wcard:1; | ||
| 384 | #endif | 387 | #endif |
| 385 | kmemcheck_bitfield_end(flags2); | 388 | kmemcheck_bitfield_end(flags2); |
| 386 | 389 | ||
| @@ -501,7 +504,7 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size, | |||
| 501 | return __alloc_skb(size, priority, 1, -1); | 504 | return __alloc_skb(size, priority, 1, -1); |
| 502 | } | 505 | } |
| 503 | 506 | ||
| 504 | extern int skb_recycle_check(struct sk_buff *skb, int skb_size); | 507 | extern bool skb_recycle_check(struct sk_buff *skb, int skb_size); |
| 505 | 508 | ||
| 506 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); | 509 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); |
| 507 | extern struct sk_buff *skb_clone(struct sk_buff *skb, | 510 | extern struct sk_buff *skb_clone(struct sk_buff *skb, |
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 89fac6a3f78b..f8854655860e 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h | |||
| @@ -60,7 +60,7 @@ | |||
| 60 | /* | 60 | /* |
| 61 | * Must define these before including other files, inline functions need them | 61 | * Must define these before including other files, inline functions need them |
| 62 | */ | 62 | */ |
| 63 | #define LOCK_SECTION_NAME ".text.lock."KBUILD_BASENAME | 63 | #define LOCK_SECTION_NAME ".text..lock."KBUILD_BASENAME |
| 64 | 64 | ||
| 65 | #define LOCK_SECTION_START(extra) \ | 65 | #define LOCK_SECTION_START(extra) \ |
| 66 | ".subsection 1\n\t" \ | 66 | ".subsection 1\n\t" \ |
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 5e781d824e6d..bc7d6bb4cd8e 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
| @@ -256,22 +256,22 @@ static inline int hibernate(void) { return -ENOSYS; } | |||
| 256 | static inline bool system_entering_hibernation(void) { return false; } | 256 | static inline bool system_entering_hibernation(void) { return false; } |
| 257 | #endif /* CONFIG_HIBERNATION */ | 257 | #endif /* CONFIG_HIBERNATION */ |
| 258 | 258 | ||
| 259 | #ifdef CONFIG_HIBERNATION_NVS | 259 | #ifdef CONFIG_SUSPEND_NVS |
| 260 | extern int hibernate_nvs_register(unsigned long start, unsigned long size); | 260 | extern int suspend_nvs_register(unsigned long start, unsigned long size); |
| 261 | extern int hibernate_nvs_alloc(void); | 261 | extern int suspend_nvs_alloc(void); |
| 262 | extern void hibernate_nvs_free(void); | 262 | extern void suspend_nvs_free(void); |
| 263 | extern void hibernate_nvs_save(void); | 263 | extern void suspend_nvs_save(void); |
| 264 | extern void hibernate_nvs_restore(void); | 264 | extern void suspend_nvs_restore(void); |
| 265 | #else /* CONFIG_HIBERNATION_NVS */ | 265 | #else /* CONFIG_SUSPEND_NVS */ |
| 266 | static inline int hibernate_nvs_register(unsigned long a, unsigned long b) | 266 | static inline int suspend_nvs_register(unsigned long a, unsigned long b) |
| 267 | { | 267 | { |
| 268 | return 0; | 268 | return 0; |
| 269 | } | 269 | } |
| 270 | static inline int hibernate_nvs_alloc(void) { return 0; } | 270 | static inline int suspend_nvs_alloc(void) { return 0; } |
| 271 | static inline void hibernate_nvs_free(void) {} | 271 | static inline void suspend_nvs_free(void) {} |
| 272 | static inline void hibernate_nvs_save(void) {} | 272 | static inline void suspend_nvs_save(void) {} |
| 273 | static inline void hibernate_nvs_restore(void) {} | 273 | static inline void suspend_nvs_restore(void) {} |
| 274 | #endif /* CONFIG_HIBERNATION_NVS */ | 274 | #endif /* CONFIG_SUSPEND_NVS */ |
| 275 | 275 | ||
| 276 | #ifdef CONFIG_PM_SLEEP | 276 | #ifdef CONFIG_PM_SLEEP |
| 277 | void save_processor_state(void); | 277 | void save_processor_state(void); |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index a1a86a53bc73..7f614ce274a9 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -289,7 +289,7 @@ asmlinkage long sys_capget(cap_user_header_t header, | |||
| 289 | cap_user_data_t dataptr); | 289 | cap_user_data_t dataptr); |
| 290 | asmlinkage long sys_capset(cap_user_header_t header, | 290 | asmlinkage long sys_capset(cap_user_header_t header, |
| 291 | const cap_user_data_t data); | 291 | const cap_user_data_t data); |
| 292 | asmlinkage long sys_personality(u_long personality); | 292 | asmlinkage long sys_personality(unsigned int personality); |
| 293 | 293 | ||
| 294 | asmlinkage long sys_sigpending(old_sigset_t __user *set); | 294 | asmlinkage long sys_sigpending(old_sigset_t __user *set); |
| 295 | asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set, | 295 | asmlinkage long sys_sigprocmask(int how, old_sigset_t __user *set, |
diff --git a/include/linux/usb/audio-v2.h b/include/linux/usb/audio-v2.h index 92f1d99f0f17..383b94ba8c20 100644 --- a/include/linux/usb/audio-v2.h +++ b/include/linux/usb/audio-v2.h | |||
| @@ -18,6 +18,16 @@ | |||
| 18 | /* v1.0 and v2.0 of this standard have many things in common. For the rest | 18 | /* v1.0 and v2.0 of this standard have many things in common. For the rest |
| 19 | * of the definitions, please refer to audio.h */ | 19 | * of the definitions, please refer to audio.h */ |
| 20 | 20 | ||
| 21 | static inline bool uac2_control_is_readable(u32 bmControls, u8 control) | ||
| 22 | { | ||
| 23 | return (bmControls >> (control * 2)) & 0x1; | ||
| 24 | } | ||
| 25 | |||
| 26 | static inline bool uac2_control_is_writeable(u32 bmControls, u8 control) | ||
| 27 | { | ||
| 28 | return (bmControls >> (control * 2)) & 0x2; | ||
| 29 | } | ||
| 30 | |||
| 21 | /* 4.7.2.1 Clock Source Descriptor */ | 31 | /* 4.7.2.1 Clock Source Descriptor */ |
| 22 | 32 | ||
| 23 | struct uac_clock_source_descriptor { | 33 | struct uac_clock_source_descriptor { |
| @@ -31,6 +41,13 @@ struct uac_clock_source_descriptor { | |||
| 31 | __u8 iClockSource; | 41 | __u8 iClockSource; |
| 32 | } __attribute__((packed)); | 42 | } __attribute__((packed)); |
| 33 | 43 | ||
| 44 | /* bmAttribute fields */ | ||
| 45 | #define UAC_CLOCK_SOURCE_TYPE_EXT 0x0 | ||
| 46 | #define UAC_CLOCK_SOURCE_TYPE_INT_FIXED 0x1 | ||
| 47 | #define UAC_CLOCK_SOURCE_TYPE_INT_VAR 0x2 | ||
| 48 | #define UAC_CLOCK_SOURCE_TYPE_INT_PROG 0x3 | ||
| 49 | #define UAC_CLOCK_SOURCE_SYNCED_TO_SOF (1 << 2) | ||
| 50 | |||
| 34 | /* 4.7.2.2 Clock Source Descriptor */ | 51 | /* 4.7.2.2 Clock Source Descriptor */ |
| 35 | 52 | ||
| 36 | struct uac_clock_selector_descriptor { | 53 | struct uac_clock_selector_descriptor { |
| @@ -39,8 +56,20 @@ struct uac_clock_selector_descriptor { | |||
| 39 | __u8 bDescriptorSubtype; | 56 | __u8 bDescriptorSubtype; |
| 40 | __u8 bClockID; | 57 | __u8 bClockID; |
| 41 | __u8 bNrInPins; | 58 | __u8 bNrInPins; |
| 42 | __u8 bmControls; | ||
| 43 | __u8 baCSourceID[]; | 59 | __u8 baCSourceID[]; |
| 60 | /* bmControls, bAssocTerminal and iClockSource omitted */ | ||
| 61 | } __attribute__((packed)); | ||
| 62 | |||
| 63 | /* 4.7.2.3 Clock Multiplier Descriptor */ | ||
| 64 | |||
| 65 | struct uac_clock_multiplier_descriptor { | ||
| 66 | __u8 bLength; | ||
| 67 | __u8 bDescriptorType; | ||
| 68 | __u8 bDescriptorSubtype; | ||
| 69 | __u8 bClockID; | ||
| 70 | __u8 bCSourceID; | ||
| 71 | __u8 bmControls; | ||
| 72 | __u8 iClockMultiplier; | ||
| 44 | } __attribute__((packed)); | 73 | } __attribute__((packed)); |
| 45 | 74 | ||
| 46 | /* 4.7.2.4 Input terminal descriptor */ | 75 | /* 4.7.2.4 Input terminal descriptor */ |
diff --git a/include/linux/usb/audio.h b/include/linux/usb/audio.h index 5d646c388752..c51200c715e5 100644 --- a/include/linux/usb/audio.h +++ b/include/linux/usb/audio.h | |||
| @@ -47,6 +47,15 @@ | |||
| 47 | #define UAC_FORMAT_TYPE 0x02 | 47 | #define UAC_FORMAT_TYPE 0x02 |
| 48 | #define UAC_FORMAT_SPECIFIC 0x03 | 48 | #define UAC_FORMAT_SPECIFIC 0x03 |
| 49 | 49 | ||
| 50 | /* A.7 Processing Unit Process Types */ | ||
| 51 | #define UAC_PROCESS_UNDEFINED 0x00 | ||
| 52 | #define UAC_PROCESS_UP_DOWNMIX 0x01 | ||
| 53 | #define UAC_PROCESS_DOLBY_PROLOGIC 0x02 | ||
| 54 | #define UAC_PROCESS_STEREO_EXTENDER 0x03 | ||
| 55 | #define UAC_PROCESS_REVERB 0x04 | ||
| 56 | #define UAC_PROCESS_CHORUS 0x05 | ||
| 57 | #define UAC_PROCESS_DYN_RANGE_COMP 0x06 | ||
| 58 | |||
| 50 | /* A.8 Audio Class-Specific Endpoint Descriptor Subtypes */ | 59 | /* A.8 Audio Class-Specific Endpoint Descriptor Subtypes */ |
| 51 | #define UAC_EP_GENERAL 0x01 | 60 | #define UAC_EP_GENERAL 0x01 |
| 52 | 61 | ||
| @@ -73,6 +82,60 @@ | |||
| 73 | 82 | ||
| 74 | #define UAC_GET_STAT 0xff | 83 | #define UAC_GET_STAT 0xff |
| 75 | 84 | ||
| 85 | /* A.10 Control Selector Codes */ | ||
| 86 | |||
| 87 | /* A.10.1 Terminal Control Selectors */ | ||
| 88 | #define UAC_TERM_COPY_PROTECT 0x01 | ||
| 89 | |||
| 90 | /* A.10.2 Feature Unit Control Selectors */ | ||
| 91 | #define UAC_FU_MUTE 0x01 | ||
| 92 | #define UAC_FU_VOLUME 0x02 | ||
| 93 | #define UAC_FU_BASS 0x03 | ||
| 94 | #define UAC_FU_MID 0x04 | ||
| 95 | #define UAC_FU_TREBLE 0x05 | ||
| 96 | #define UAC_FU_GRAPHIC_EQUALIZER 0x06 | ||
| 97 | #define UAC_FU_AUTOMATIC_GAIN 0x07 | ||
| 98 | #define UAC_FU_DELAY 0x08 | ||
| 99 | #define UAC_FU_BASS_BOOST 0x09 | ||
| 100 | #define UAC_FU_LOUDNESS 0x0a | ||
| 101 | |||
| 102 | #define UAC_CONTROL_BIT(CS) (1 << ((CS) - 1)) | ||
| 103 | |||
| 104 | /* A.10.3.1 Up/Down-mix Processing Unit Controls Selectors */ | ||
| 105 | #define UAC_UD_ENABLE 0x01 | ||
| 106 | #define UAC_UD_MODE_SELECT 0x02 | ||
| 107 | |||
| 108 | /* A.10.3.2 Dolby Prologic (tm) Processing Unit Controls Selectors */ | ||
| 109 | #define UAC_DP_ENABLE 0x01 | ||
| 110 | #define UAC_DP_MODE_SELECT 0x02 | ||
| 111 | |||
| 112 | /* A.10.3.3 3D Stereo Extender Processing Unit Control Selectors */ | ||
| 113 | #define UAC_3D_ENABLE 0x01 | ||
| 114 | #define UAC_3D_SPACE 0x02 | ||
| 115 | |||
| 116 | /* A.10.3.4 Reverberation Processing Unit Control Selectors */ | ||
| 117 | #define UAC_REVERB_ENABLE 0x01 | ||
| 118 | #define UAC_REVERB_LEVEL 0x02 | ||
| 119 | #define UAC_REVERB_TIME 0x03 | ||
| 120 | #define UAC_REVERB_FEEDBACK 0x04 | ||
| 121 | |||
| 122 | /* A.10.3.5 Chorus Processing Unit Control Selectors */ | ||
| 123 | #define UAC_CHORUS_ENABLE 0x01 | ||
| 124 | #define UAC_CHORUS_LEVEL 0x02 | ||
| 125 | #define UAC_CHORUS_RATE 0x03 | ||
| 126 | #define UAC_CHORUS_DEPTH 0x04 | ||
| 127 | |||
| 128 | /* A.10.3.6 Dynamic Range Compressor Unit Control Selectors */ | ||
| 129 | #define UAC_DCR_ENABLE 0x01 | ||
| 130 | #define UAC_DCR_RATE 0x02 | ||
| 131 | #define UAC_DCR_MAXAMPL 0x03 | ||
| 132 | #define UAC_DCR_THRESHOLD 0x04 | ||
| 133 | #define UAC_DCR_ATTACK_TIME 0x05 | ||
| 134 | #define UAC_DCR_RELEASE_TIME 0x06 | ||
| 135 | |||
| 136 | /* A.10.4 Extension Unit Control Selectors */ | ||
| 137 | #define UAC_XU_ENABLE 0x01 | ||
| 138 | |||
| 76 | /* MIDI - A.1 MS Class-Specific Interface Descriptor Subtypes */ | 139 | /* MIDI - A.1 MS Class-Specific Interface Descriptor Subtypes */ |
| 77 | #define UAC_MS_HEADER 0x01 | 140 | #define UAC_MS_HEADER 0x01 |
| 78 | #define UAC_MIDI_IN_JACK 0x02 | 141 | #define UAC_MIDI_IN_JACK 0x02 |
| @@ -244,7 +307,7 @@ struct uac_selector_unit_descriptor { | |||
| 244 | static inline __u8 uac_selector_unit_iSelector(struct uac_selector_unit_descriptor *desc) | 307 | static inline __u8 uac_selector_unit_iSelector(struct uac_selector_unit_descriptor *desc) |
| 245 | { | 308 | { |
| 246 | __u8 *raw = (__u8 *) desc; | 309 | __u8 *raw = (__u8 *) desc; |
| 247 | return raw[9 + desc->bLength - 1]; | 310 | return raw[desc->bLength - 1]; |
| 248 | } | 311 | } |
| 249 | 312 | ||
| 250 | /* 4.3.2.5 Feature Unit Descriptor */ | 313 | /* 4.3.2.5 Feature Unit Descriptor */ |
| @@ -463,31 +526,6 @@ struct uac_iso_endpoint_descriptor { | |||
| 463 | #define UAC_EP_CS_ATTR_PITCH_CONTROL 0x02 | 526 | #define UAC_EP_CS_ATTR_PITCH_CONTROL 0x02 |
| 464 | #define UAC_EP_CS_ATTR_FILL_MAX 0x80 | 527 | #define UAC_EP_CS_ATTR_FILL_MAX 0x80 |
| 465 | 528 | ||
| 466 | /* A.10.2 Feature Unit Control Selectors */ | ||
| 467 | |||
| 468 | #define UAC_FU_CONTROL_UNDEFINED 0x00 | ||
| 469 | #define UAC_MUTE_CONTROL 0x01 | ||
| 470 | #define UAC_VOLUME_CONTROL 0x02 | ||
| 471 | #define UAC_BASS_CONTROL 0x03 | ||
| 472 | #define UAC_MID_CONTROL 0x04 | ||
| 473 | #define UAC_TREBLE_CONTROL 0x05 | ||
| 474 | #define UAC_GRAPHIC_EQUALIZER_CONTROL 0x06 | ||
| 475 | #define UAC_AUTOMATIC_GAIN_CONTROL 0x07 | ||
| 476 | #define UAC_DELAY_CONTROL 0x08 | ||
| 477 | #define UAC_BASS_BOOST_CONTROL 0x09 | ||
| 478 | #define UAC_LOUDNESS_CONTROL 0x0a | ||
| 479 | |||
| 480 | #define UAC_FU_MUTE (1 << (UAC_MUTE_CONTROL - 1)) | ||
| 481 | #define UAC_FU_VOLUME (1 << (UAC_VOLUME_CONTROL - 1)) | ||
| 482 | #define UAC_FU_BASS (1 << (UAC_BASS_CONTROL - 1)) | ||
| 483 | #define UAC_FU_MID (1 << (UAC_MID_CONTROL - 1)) | ||
| 484 | #define UAC_FU_TREBLE (1 << (UAC_TREBLE_CONTROL - 1)) | ||
| 485 | #define UAC_FU_GRAPHIC_EQ (1 << (UAC_GRAPHIC_EQUALIZER_CONTROL - 1)) | ||
| 486 | #define UAC_FU_AUTO_GAIN (1 << (UAC_AUTOMATIC_GAIN_CONTROL - 1)) | ||
| 487 | #define UAC_FU_DELAY (1 << (UAC_DELAY_CONTROL - 1)) | ||
| 488 | #define UAC_FU_BASS_BOOST (1 << (UAC_BASS_BOOST_CONTROL - 1)) | ||
| 489 | #define UAC_FU_LOUDNESS (1 << (UAC_LOUDNESS_CONTROL - 1)) | ||
| 490 | |||
| 491 | /* status word format (3.7.1.1) */ | 529 | /* status word format (3.7.1.1) */ |
| 492 | 530 | ||
| 493 | #define UAC1_STATUS_TYPE_ORIG_MASK 0x0f | 531 | #define UAC1_STATUS_TYPE_ORIG_MASK 0x0f |
diff --git a/include/linux/vgaarb.h b/include/linux/vgaarb.h index 2dfaa293ae8c..c9a975976995 100644 --- a/include/linux/vgaarb.h +++ b/include/linux/vgaarb.h | |||
| @@ -5,6 +5,27 @@ | |||
| 5 | * (C) Copyright 2005 Benjamin Herrenschmidt <benh@kernel.crashing.org> | 5 | * (C) Copyright 2005 Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| 6 | * (C) Copyright 2007 Paulo R. Zanoni <przanoni@gmail.com> | 6 | * (C) Copyright 2007 Paulo R. Zanoni <przanoni@gmail.com> |
| 7 | * (C) Copyright 2007, 2009 Tiago Vignatti <vignatti@freedesktop.org> | 7 | * (C) Copyright 2007, 2009 Tiago Vignatti <vignatti@freedesktop.org> |
| 8 | * | ||
| 9 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
| 10 | * copy of this software and associated documentation files (the "Software"), | ||
| 11 | * to deal in the Software without restriction, including without limitation | ||
| 12 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
| 13 | * and/or sell copies of the Software, and to permit persons to whom the | ||
| 14 | * Software is furnished to do so, subject to the following conditions: | ||
| 15 | * | ||
| 16 | * The above copyright notice and this permission notice (including the next | ||
| 17 | * paragraph) shall be included in all copies or substantial portions of the | ||
| 18 | * Software. | ||
| 19 | * | ||
| 20 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 21 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 22 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
| 23 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 24 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
| 25 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||
| 26 | * DEALINGS | ||
| 27 | * IN THE SOFTWARE. | ||
| 28 | * | ||
| 8 | */ | 29 | */ |
| 9 | 30 | ||
| 10 | #ifndef LINUX_VGA_H | 31 | #ifndef LINUX_VGA_H |
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index cc97d6caf2b3..d63ef8f9609f 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
| @@ -56,24 +56,6 @@ struct writeback_control { | |||
| 56 | unsigned for_reclaim:1; /* Invoked from the page allocator */ | 56 | unsigned for_reclaim:1; /* Invoked from the page allocator */ |
| 57 | unsigned range_cyclic:1; /* range_start is cyclic */ | 57 | unsigned range_cyclic:1; /* range_start is cyclic */ |
| 58 | unsigned more_io:1; /* more io to be dispatched */ | 58 | unsigned more_io:1; /* more io to be dispatched */ |
| 59 | /* | ||
| 60 | * write_cache_pages() won't update wbc->nr_to_write and | ||
| 61 | * mapping->writeback_index if no_nrwrite_index_update | ||
| 62 | * is set. write_cache_pages() may write more than we | ||
| 63 | * requested and we want to make sure nr_to_write and | ||
| 64 | * writeback_index are updated in a consistent manner | ||
| 65 | * so we use a single control to update them | ||
| 66 | */ | ||
| 67 | unsigned no_nrwrite_index_update:1; | ||
| 68 | |||
| 69 | /* | ||
| 70 | * For WB_SYNC_ALL, the sb must always be pinned. For WB_SYNC_NONE, | ||
| 71 | * the writeback code will pin the sb for the caller. However, | ||
| 72 | * for eg umount, the caller does WB_SYNC_NONE but already has | ||
| 73 | * the sb pinned. If the below is set, caller already has the | ||
| 74 | * sb pinned. | ||
| 75 | */ | ||
| 76 | unsigned sb_pinned:1; | ||
| 77 | }; | 59 | }; |
| 78 | 60 | ||
| 79 | /* | 61 | /* |
| @@ -82,7 +64,6 @@ struct writeback_control { | |||
| 82 | struct bdi_writeback; | 64 | struct bdi_writeback; |
| 83 | int inode_wait(void *); | 65 | int inode_wait(void *); |
| 84 | void writeback_inodes_sb(struct super_block *); | 66 | void writeback_inodes_sb(struct super_block *); |
| 85 | void writeback_inodes_sb_locked(struct super_block *); | ||
| 86 | int writeback_inodes_sb_if_idle(struct super_block *); | 67 | int writeback_inodes_sb_if_idle(struct super_block *); |
| 87 | void sync_inodes_sb(struct super_block *); | 68 | void sync_inodes_sb(struct super_block *); |
| 88 | void writeback_inodes_wbc(struct writeback_control *wbc); | 69 | void writeback_inodes_wbc(struct writeback_control *wbc); |
