diff options
Diffstat (limited to 'include')
33 files changed, 513 insertions, 99 deletions
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h index dc5873c21e45..1121f7799c6f 100644 --- a/include/drm/drm_crtc_helper.h +++ b/include/drm/drm_crtc_helper.h | |||
@@ -130,4 +130,7 @@ extern int drm_helper_resume_force_mode(struct drm_device *dev); | |||
130 | extern void drm_kms_helper_poll_init(struct drm_device *dev); | 130 | extern void drm_kms_helper_poll_init(struct drm_device *dev); |
131 | extern void drm_kms_helper_poll_fini(struct drm_device *dev); | 131 | extern void drm_kms_helper_poll_fini(struct drm_device *dev); |
132 | extern void drm_helper_hpd_irq_event(struct drm_device *dev); | 132 | extern void drm_helper_hpd_irq_event(struct drm_device *dev); |
133 | |||
134 | extern void drm_kms_helper_poll_disable(struct drm_device *dev); | ||
135 | extern void drm_kms_helper_poll_enable(struct drm_device *dev); | ||
133 | #endif | 136 | #endif |
diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h index a6a9f4af5ebd..fe917dee723a 100644 --- a/include/drm/nouveau_drm.h +++ b/include/drm/nouveau_drm.h | |||
@@ -79,6 +79,7 @@ struct drm_nouveau_gpuobj_free { | |||
79 | #define NOUVEAU_GETPARAM_CHIPSET_ID 11 | 79 | #define NOUVEAU_GETPARAM_CHIPSET_ID 11 |
80 | #define NOUVEAU_GETPARAM_VM_VRAM_BASE 12 | 80 | #define NOUVEAU_GETPARAM_VM_VRAM_BASE 12 |
81 | #define NOUVEAU_GETPARAM_GRAPH_UNITS 13 | 81 | #define NOUVEAU_GETPARAM_GRAPH_UNITS 13 |
82 | #define NOUVEAU_GETPARAM_PTIMER_TIME 14 | ||
82 | struct drm_nouveau_getparam { | 83 | struct drm_nouveau_getparam { |
83 | uint64_t param; | 84 | uint64_t param; |
84 | uint64_t value; | 85 | uint64_t value; |
diff --git a/include/drm/vmwgfx_drm.h b/include/drm/vmwgfx_drm.h index c7645f480d12..4d0842391edc 100644 --- a/include/drm/vmwgfx_drm.h +++ b/include/drm/vmwgfx_drm.h | |||
@@ -50,6 +50,8 @@ | |||
50 | #define DRM_VMW_EXECBUF 12 | 50 | #define DRM_VMW_EXECBUF 12 |
51 | #define DRM_VMW_FIFO_DEBUG 13 | 51 | #define DRM_VMW_FIFO_DEBUG 13 |
52 | #define DRM_VMW_FENCE_WAIT 14 | 52 | #define DRM_VMW_FENCE_WAIT 14 |
53 | /* guarded by minor version >= 2 */ | ||
54 | #define DRM_VMW_UPDATE_LAYOUT 15 | ||
53 | 55 | ||
54 | 56 | ||
55 | /*************************************************************************/ | 57 | /*************************************************************************/ |
@@ -585,4 +587,28 @@ struct drm_vmw_stream_arg { | |||
585 | * sure that the stream has been stopped. | 587 | * sure that the stream has been stopped. |
586 | */ | 588 | */ |
587 | 589 | ||
590 | /*************************************************************************/ | ||
591 | /** | ||
592 | * DRM_VMW_UPDATE_LAYOUT - Update layout | ||
593 | * | ||
594 | * Updates the prefered modes and connection status for connectors. The | ||
595 | * command conisits of one drm_vmw_update_layout_arg pointing out a array | ||
596 | * of num_outputs drm_vmw_rect's. | ||
597 | */ | ||
598 | |||
599 | /** | ||
600 | * struct drm_vmw_update_layout_arg | ||
601 | * | ||
602 | * @num_outputs: number of active | ||
603 | * @rects: pointer to array of drm_vmw_rect | ||
604 | * | ||
605 | * Input argument to the DRM_VMW_UPDATE_LAYOUT Ioctl. | ||
606 | */ | ||
607 | |||
608 | struct drm_vmw_update_layout_arg { | ||
609 | uint32_t num_outputs; | ||
610 | uint32_t pad64; | ||
611 | uint64_t rects; | ||
612 | }; | ||
613 | |||
588 | #endif | 614 | #endif |
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index e6e0cb5437e6..aee5f6ce166e 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
@@ -106,7 +106,7 @@ 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, struct super_block *sb, |
109 | long nr_pages, int sb_locked); | 109 | long nr_pages); |
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/drbd.h b/include/linux/drbd.h index 68530521ad00..30da4ae48972 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.8rc2" |
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/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/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/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/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/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..f149dd10908b 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -2532,11 +2532,63 @@ | |||
2532 | #define PCI_DEVICE_ID_INTEL_ICH9_6 0x2930 | 2532 | #define PCI_DEVICE_ID_INTEL_ICH9_6 0x2930 |
2533 | #define PCI_DEVICE_ID_INTEL_ICH9_7 0x2916 | 2533 | #define PCI_DEVICE_ID_INTEL_ICH9_7 0x2916 |
2534 | #define PCI_DEVICE_ID_INTEL_ICH9_8 0x2918 | 2534 | #define PCI_DEVICE_ID_INTEL_ICH9_8 0x2918 |
2535 | #define PCI_DEVICE_ID_INTEL_I7_MCR 0x2c18 | ||
2536 | #define PCI_DEVICE_ID_INTEL_I7_MC_TAD 0x2c19 | ||
2537 | #define PCI_DEVICE_ID_INTEL_I7_MC_RAS 0x2c1a | ||
2538 | #define PCI_DEVICE_ID_INTEL_I7_MC_TEST 0x2c1c | ||
2539 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_CTRL 0x2c20 | ||
2540 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_ADDR 0x2c21 | ||
2541 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_RANK 0x2c22 | ||
2542 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH0_TC 0x2c23 | ||
2543 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_CTRL 0x2c28 | ||
2544 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_ADDR 0x2c29 | ||
2545 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_RANK 0x2c2a | ||
2546 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH1_TC 0x2c2b | ||
2547 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_CTRL 0x2c30 | ||
2548 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_ADDR 0x2c31 | ||
2549 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_RANK 0x2c32 | ||
2550 | #define PCI_DEVICE_ID_INTEL_I7_MC_CH2_TC 0x2c33 | ||
2551 | #define PCI_DEVICE_ID_INTEL_I7_NONCORE 0x2c41 | ||
2552 | #define PCI_DEVICE_ID_INTEL_I7_NONCORE_ALT 0x2c40 | ||
2553 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE 0x2c50 | ||
2554 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_ALT 0x2c51 | ||
2555 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_REV2 0x2c70 | ||
2556 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_SAD 0x2c81 | ||
2557 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_QPI_LINK0 0x2c90 | ||
2558 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_QPI_PHY0 0x2c91 | ||
2559 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MCR 0x2c98 | ||
2560 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TAD 0x2c99 | ||
2561 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TEST 0x2c9C | ||
2562 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_CTRL 0x2ca0 | ||
2563 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_ADDR 0x2ca1 | ||
2564 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_RANK 0x2ca2 | ||
2565 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_TC 0x2ca3 | ||
2566 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_CTRL 0x2ca8 | ||
2567 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_ADDR 0x2ca9 | ||
2568 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_RANK 0x2caa | ||
2569 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_TC 0x2cab | ||
2570 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MCR_REV2 0x2d98 | ||
2571 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TAD_REV2 0x2d99 | ||
2572 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_RAS_REV2 0x2d9a | ||
2573 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_TEST_REV2 0x2d9c | ||
2574 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_CTRL_REV2 0x2da0 | ||
2575 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_ADDR_REV2 0x2da1 | ||
2576 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_RANK_REV2 0x2da2 | ||
2577 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH0_TC_REV2 0x2da3 | ||
2578 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_CTRL_REV2 0x2da8 | ||
2579 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_ADDR_REV2 0x2da9 | ||
2580 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_RANK_REV2 0x2daa | ||
2581 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH1_TC_REV2 0x2dab | ||
2582 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_CTRL_REV2 0x2db0 | ||
2583 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_ADDR_REV2 0x2db1 | ||
2584 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_RANK_REV2 0x2db2 | ||
2585 | #define PCI_DEVICE_ID_INTEL_LYNNFIELD_MC_CH2_TC_REV2 0x2db3 | ||
2535 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 | 2586 | #define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 |
2536 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG4 0x3429 | 2587 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG4 0x3429 |
2537 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a | 2588 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG5 0x342a |
2538 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b | 2589 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG6 0x342b |
2539 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c | 2590 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG7 0x342c |
2591 | #define PCI_DEVICE_ID_INTEL_X58_HUB_MGMT 0x342e | ||
2540 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430 | 2592 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG0 0x3430 |
2541 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431 | 2593 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG1 0x3431 |
2542 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432 | 2594 | #define PCI_DEVICE_ID_INTEL_IOAT_TBG2 0x3432 |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index fb6c91eac7e3..5d0266d94985 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -585,6 +585,7 @@ enum perf_event_active_state { | |||
585 | struct file; | 585 | struct file; |
586 | 586 | ||
587 | struct perf_mmap_data { | 587 | struct perf_mmap_data { |
588 | atomic_t refcount; | ||
588 | struct rcu_head rcu_head; | 589 | struct rcu_head rcu_head; |
589 | #ifdef CONFIG_PERF_USE_VMALLOC | 590 | #ifdef CONFIG_PERF_USE_VMALLOC |
590 | struct work_struct work; | 591 | struct work_struct work; |
@@ -592,7 +593,6 @@ struct perf_mmap_data { | |||
592 | #endif | 593 | #endif |
593 | int nr_pages; /* nr of data pages */ | 594 | int nr_pages; /* nr of data pages */ |
594 | int writable; /* are we writable */ | 595 | int writable; /* are we writable */ |
595 | int nr_locked; /* nr pages mlocked */ | ||
596 | 596 | ||
597 | atomic_t poll; /* POLL_ for wakeups */ | 597 | atomic_t poll; /* POLL_ for wakeups */ |
598 | 598 | ||
@@ -631,6 +631,9 @@ struct swevent_hlist { | |||
631 | struct rcu_head rcu_head; | 631 | struct rcu_head rcu_head; |
632 | }; | 632 | }; |
633 | 633 | ||
634 | #define PERF_ATTACH_CONTEXT 0x01 | ||
635 | #define PERF_ATTACH_GROUP 0x02 | ||
636 | |||
634 | /** | 637 | /** |
635 | * struct perf_event - performance event kernel representation: | 638 | * struct perf_event - performance event kernel representation: |
636 | */ | 639 | */ |
@@ -643,10 +646,10 @@ struct perf_event { | |||
643 | int nr_siblings; | 646 | int nr_siblings; |
644 | int group_flags; | 647 | int group_flags; |
645 | struct perf_event *group_leader; | 648 | struct perf_event *group_leader; |
646 | struct perf_event *output; | ||
647 | const struct pmu *pmu; | 649 | const struct pmu *pmu; |
648 | 650 | ||
649 | enum perf_event_active_state state; | 651 | enum perf_event_active_state state; |
652 | unsigned int attach_state; | ||
650 | atomic64_t count; | 653 | atomic64_t count; |
651 | 654 | ||
652 | /* | 655 | /* |
@@ -704,6 +707,8 @@ struct perf_event { | |||
704 | /* mmap bits */ | 707 | /* mmap bits */ |
705 | struct mutex mmap_mutex; | 708 | struct mutex mmap_mutex; |
706 | atomic_t mmap_count; | 709 | atomic_t mmap_count; |
710 | int mmap_locked; | ||
711 | struct user_struct *mmap_user; | ||
707 | struct perf_mmap_data *data; | 712 | struct perf_mmap_data *data; |
708 | 713 | ||
709 | /* poll related */ | 714 | /* poll related */ |
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/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/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..964cb603f7c7 100644 --- a/include/linux/usb/audio-v2.h +++ b/include/linux/usb/audio-v2.h | |||
@@ -18,6 +18,31 @@ | |||
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 | /* | ||
22 | * bmControl field decoders | ||
23 | * | ||
24 | * From the USB Audio spec v2.0: | ||
25 | * | ||
26 | * bmaControls() is a (ch+1)-element array of 4-byte bitmaps, | ||
27 | * each containing a set of bit pairs. If a Control is present, | ||
28 | * it must be Host readable. If a certain Control is not | ||
29 | * present then the bit pair must be set to 0b00. | ||
30 | * If a Control is present but read-only, the bit pair must be | ||
31 | * set to 0b01. If a Control is also Host programmable, the bit | ||
32 | * pair must be set to 0b11. The value 0b10 is not allowed. | ||
33 | * | ||
34 | */ | ||
35 | |||
36 | static inline bool uac2_control_is_readable(u32 bmControls, u8 control) | ||
37 | { | ||
38 | return (bmControls >> (control * 2)) & 0x1; | ||
39 | } | ||
40 | |||
41 | static inline bool uac2_control_is_writeable(u32 bmControls, u8 control) | ||
42 | { | ||
43 | return (bmControls >> (control * 2)) & 0x2; | ||
44 | } | ||
45 | |||
21 | /* 4.7.2.1 Clock Source Descriptor */ | 46 | /* 4.7.2.1 Clock Source Descriptor */ |
22 | 47 | ||
23 | struct uac_clock_source_descriptor { | 48 | struct uac_clock_source_descriptor { |
@@ -31,6 +56,13 @@ struct uac_clock_source_descriptor { | |||
31 | __u8 iClockSource; | 56 | __u8 iClockSource; |
32 | } __attribute__((packed)); | 57 | } __attribute__((packed)); |
33 | 58 | ||
59 | /* bmAttribute fields */ | ||
60 | #define UAC_CLOCK_SOURCE_TYPE_EXT 0x0 | ||
61 | #define UAC_CLOCK_SOURCE_TYPE_INT_FIXED 0x1 | ||
62 | #define UAC_CLOCK_SOURCE_TYPE_INT_VAR 0x2 | ||
63 | #define UAC_CLOCK_SOURCE_TYPE_INT_PROG 0x3 | ||
64 | #define UAC_CLOCK_SOURCE_SYNCED_TO_SOF (1 << 2) | ||
65 | |||
34 | /* 4.7.2.2 Clock Source Descriptor */ | 66 | /* 4.7.2.2 Clock Source Descriptor */ |
35 | 67 | ||
36 | struct uac_clock_selector_descriptor { | 68 | struct uac_clock_selector_descriptor { |
@@ -39,8 +71,20 @@ struct uac_clock_selector_descriptor { | |||
39 | __u8 bDescriptorSubtype; | 71 | __u8 bDescriptorSubtype; |
40 | __u8 bClockID; | 72 | __u8 bClockID; |
41 | __u8 bNrInPins; | 73 | __u8 bNrInPins; |
42 | __u8 bmControls; | ||
43 | __u8 baCSourceID[]; | 74 | __u8 baCSourceID[]; |
75 | /* bmControls, bAssocTerminal and iClockSource omitted */ | ||
76 | } __attribute__((packed)); | ||
77 | |||
78 | /* 4.7.2.3 Clock Multiplier Descriptor */ | ||
79 | |||
80 | struct uac_clock_multiplier_descriptor { | ||
81 | __u8 bLength; | ||
82 | __u8 bDescriptorType; | ||
83 | __u8 bDescriptorSubtype; | ||
84 | __u8 bClockID; | ||
85 | __u8 bCSourceID; | ||
86 | __u8 bmControls; | ||
87 | __u8 iClockMultiplier; | ||
44 | } __attribute__((packed)); | 88 | } __attribute__((packed)); |
45 | 89 | ||
46 | /* 4.7.2.4 Input terminal descriptor */ | 90 | /* 4.7.2.4 Input terminal descriptor */ |
@@ -92,7 +136,7 @@ struct uac2_feature_unit_descriptor { | |||
92 | 136 | ||
93 | /* 4.9.2 Class-Specific AS Interface Descriptor */ | 137 | /* 4.9.2 Class-Specific AS Interface Descriptor */ |
94 | 138 | ||
95 | struct uac_as_header_descriptor_v2 { | 139 | struct uac2_as_header_descriptor { |
96 | __u8 bLength; | 140 | __u8 bLength; |
97 | __u8 bDescriptorType; | 141 | __u8 bDescriptorType; |
98 | __u8 bDescriptorSubtype; | 142 | __u8 bDescriptorSubtype; |
diff --git a/include/linux/usb/audio.h b/include/linux/usb/audio.h index 5d646c388752..a54b8255d75f 100644 --- a/include/linux/usb/audio.h +++ b/include/linux/usb/audio.h | |||
@@ -39,14 +39,23 @@ | |||
39 | #define UAC_MIXER_UNIT 0x04 | 39 | #define UAC_MIXER_UNIT 0x04 |
40 | #define UAC_SELECTOR_UNIT 0x05 | 40 | #define UAC_SELECTOR_UNIT 0x05 |
41 | #define UAC_FEATURE_UNIT 0x06 | 41 | #define UAC_FEATURE_UNIT 0x06 |
42 | #define UAC_PROCESSING_UNIT_V1 0x07 | 42 | #define UAC1_PROCESSING_UNIT 0x07 |
43 | #define UAC_EXTENSION_UNIT_V1 0x08 | 43 | #define UAC1_EXTENSION_UNIT 0x08 |
44 | 44 | ||
45 | /* A.6 Audio Class-Specific AS Interface Descriptor Subtypes */ | 45 | /* A.6 Audio Class-Specific AS Interface Descriptor Subtypes */ |
46 | #define UAC_AS_GENERAL 0x01 | 46 | #define UAC_AS_GENERAL 0x01 |
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 |
@@ -88,7 +151,7 @@ | |||
88 | 151 | ||
89 | /* Terminal Control Selectors */ | 152 | /* Terminal Control Selectors */ |
90 | /* 4.3.2 Class-Specific AC Interface Descriptor */ | 153 | /* 4.3.2 Class-Specific AC Interface Descriptor */ |
91 | struct uac_ac_header_descriptor_v1 { | 154 | struct uac1_ac_header_descriptor { |
92 | __u8 bLength; /* 8 + n */ | 155 | __u8 bLength; /* 8 + n */ |
93 | __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ | 156 | __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ |
94 | __u8 bDescriptorSubtype; /* UAC_MS_HEADER */ | 157 | __u8 bDescriptorSubtype; /* UAC_MS_HEADER */ |
@@ -102,7 +165,7 @@ struct uac_ac_header_descriptor_v1 { | |||
102 | 165 | ||
103 | /* As above, but more useful for defining your own descriptors: */ | 166 | /* As above, but more useful for defining your own descriptors: */ |
104 | #define DECLARE_UAC_AC_HEADER_DESCRIPTOR(n) \ | 167 | #define DECLARE_UAC_AC_HEADER_DESCRIPTOR(n) \ |
105 | struct uac_ac_header_descriptor_v1_##n { \ | 168 | struct uac1_ac_header_descriptor_##n { \ |
106 | __u8 bLength; \ | 169 | __u8 bLength; \ |
107 | __u8 bDescriptorType; \ | 170 | __u8 bDescriptorType; \ |
108 | __u8 bDescriptorSubtype; \ | 171 | __u8 bDescriptorSubtype; \ |
@@ -142,7 +205,7 @@ struct uac_input_terminal_descriptor { | |||
142 | #define UAC_TERMINAL_CS_COPY_PROTECT_CONTROL 0x01 | 205 | #define UAC_TERMINAL_CS_COPY_PROTECT_CONTROL 0x01 |
143 | 206 | ||
144 | /* 4.3.2.2 Output Terminal Descriptor */ | 207 | /* 4.3.2.2 Output Terminal Descriptor */ |
145 | struct uac_output_terminal_descriptor_v1 { | 208 | struct uac1_output_terminal_descriptor { |
146 | __u8 bLength; /* in bytes: 9 */ | 209 | __u8 bLength; /* in bytes: 9 */ |
147 | __u8 bDescriptorType; /* CS_INTERFACE descriptor type */ | 210 | __u8 bDescriptorType; /* CS_INTERFACE descriptor type */ |
148 | __u8 bDescriptorSubtype; /* OUTPUT_TERMINAL descriptor subtype */ | 211 | __u8 bDescriptorSubtype; /* OUTPUT_TERMINAL descriptor subtype */ |
@@ -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 */ |
@@ -332,7 +395,7 @@ static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_desc | |||
332 | } | 395 | } |
333 | 396 | ||
334 | /* 4.5.2 Class-Specific AS Interface Descriptor */ | 397 | /* 4.5.2 Class-Specific AS Interface Descriptor */ |
335 | struct uac_as_header_descriptor_v1 { | 398 | struct uac1_as_header_descriptor { |
336 | __u8 bLength; /* in bytes: 7 */ | 399 | __u8 bLength; /* in bytes: 7 */ |
337 | __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ | 400 | __u8 bDescriptorType; /* USB_DT_CS_INTERFACE */ |
338 | __u8 bDescriptorSubtype; /* AS_GENERAL */ | 401 | __u8 bDescriptorSubtype; /* AS_GENERAL */ |
@@ -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..f64134653a8c 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
@@ -65,15 +65,6 @@ struct writeback_control { | |||
65 | * so we use a single control to update them | 65 | * so we use a single control to update them |
66 | */ | 66 | */ |
67 | unsigned no_nrwrite_index_update:1; | 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 | }; | 68 | }; |
78 | 69 | ||
79 | /* | 70 | /* |
@@ -82,7 +73,6 @@ struct writeback_control { | |||
82 | struct bdi_writeback; | 73 | struct bdi_writeback; |
83 | int inode_wait(void *); | 74 | int inode_wait(void *); |
84 | void writeback_inodes_sb(struct super_block *); | 75 | 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 *); | 76 | int writeback_inodes_sb_if_idle(struct super_block *); |
87 | void sync_inodes_sb(struct super_block *); | 77 | void sync_inodes_sb(struct super_block *); |
88 | void writeback_inodes_wbc(struct writeback_control *wbc); | 78 | void writeback_inodes_wbc(struct writeback_control *wbc); |
diff --git a/include/media/rc-map.h b/include/media/rc-map.h index 5833966a7100..c78e99a435b6 100644 --- a/include/media/rc-map.h +++ b/include/media/rc-map.h | |||
@@ -55,7 +55,8 @@ void rc_map_init(void); | |||
55 | #define RC_MAP_AVERMEDIA_A16D "rc-avermedia-a16d" | 55 | #define RC_MAP_AVERMEDIA_A16D "rc-avermedia-a16d" |
56 | #define RC_MAP_AVERMEDIA_CARDBUS "rc-avermedia-cardbus" | 56 | #define RC_MAP_AVERMEDIA_CARDBUS "rc-avermedia-cardbus" |
57 | #define RC_MAP_AVERMEDIA_DVBT "rc-avermedia-dvbt" | 57 | #define RC_MAP_AVERMEDIA_DVBT "rc-avermedia-dvbt" |
58 | #define RC_MAP_AVERMEDIA_M135A_RM_JX "rc-avermedia-m135a-rm-jx" | 58 | #define RC_MAP_AVERMEDIA_M135A "rc-avermedia-m135a" |
59 | #define RC_MAP_AVERMEDIA_M733A_RM_K6 "rc-avermedia-m733a-rm-k6" | ||
59 | #define RC_MAP_AVERMEDIA "rc-avermedia" | 60 | #define RC_MAP_AVERMEDIA "rc-avermedia" |
60 | #define RC_MAP_AVERTV_303 "rc-avertv-303" | 61 | #define RC_MAP_AVERTV_303 "rc-avertv-303" |
61 | #define RC_MAP_BEHOLD_COLUMBUS "rc-behold-columbus" | 62 | #define RC_MAP_BEHOLD_COLUMBUS "rc-behold-columbus" |
diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h index c9a5bbfa6ab5..b8289c2f609b 100644 --- a/include/media/soc_camera.h +++ b/include/media/soc_camera.h | |||
@@ -66,7 +66,7 @@ struct soc_camera_host_ops { | |||
66 | * .get_formats() fail, .put_formats() will not be called at all, the | 66 | * .get_formats() fail, .put_formats() will not be called at all, the |
67 | * failing .get_formats() must then clean up internally. | 67 | * failing .get_formats() must then clean up internally. |
68 | */ | 68 | */ |
69 | int (*get_formats)(struct soc_camera_device *, int, | 69 | int (*get_formats)(struct soc_camera_device *, unsigned int, |
70 | struct soc_camera_format_xlate *); | 70 | struct soc_camera_format_xlate *); |
71 | void (*put_formats)(struct soc_camera_device *); | 71 | void (*put_formats)(struct soc_camera_device *); |
72 | int (*cropcap)(struct soc_camera_device *, struct v4l2_cropcap *); | 72 | int (*cropcap)(struct soc_camera_device *, struct v4l2_cropcap *); |
diff --git a/include/media/v4l2-mediabus.h b/include/media/v4l2-mediabus.h index 0dbe02ada259..865cda7cd611 100644 --- a/include/media/v4l2-mediabus.h +++ b/include/media/v4l2-mediabus.h | |||
@@ -40,6 +40,7 @@ enum v4l2_mbus_pixelcode { | |||
40 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE, | 40 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_LE, |
41 | V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE, | 41 | V4L2_MBUS_FMT_SBGGR10_2X8_PADHI_BE, |
42 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE, | 42 | V4L2_MBUS_FMT_SBGGR10_2X8_PADLO_BE, |
43 | V4L2_MBUS_FMT_SGRBG8_1X8, | ||
43 | }; | 44 | }; |
44 | 45 | ||
45 | /** | 46 | /** |
@@ -58,4 +59,24 @@ struct v4l2_mbus_framefmt { | |||
58 | enum v4l2_colorspace colorspace; | 59 | enum v4l2_colorspace colorspace; |
59 | }; | 60 | }; |
60 | 61 | ||
62 | static inline void v4l2_fill_pix_format(struct v4l2_pix_format *pix_fmt, | ||
63 | const struct v4l2_mbus_framefmt *mbus_fmt) | ||
64 | { | ||
65 | pix_fmt->width = mbus_fmt->width; | ||
66 | pix_fmt->height = mbus_fmt->height; | ||
67 | pix_fmt->field = mbus_fmt->field; | ||
68 | pix_fmt->colorspace = mbus_fmt->colorspace; | ||
69 | } | ||
70 | |||
71 | static inline void v4l2_fill_mbus_format(struct v4l2_mbus_framefmt *mbus_fmt, | ||
72 | const struct v4l2_pix_format *pix_fmt, | ||
73 | enum v4l2_mbus_pixelcode code) | ||
74 | { | ||
75 | mbus_fmt->width = pix_fmt->width; | ||
76 | mbus_fmt->height = pix_fmt->height; | ||
77 | mbus_fmt->field = pix_fmt->field; | ||
78 | mbus_fmt->colorspace = pix_fmt->colorspace; | ||
79 | mbus_fmt->code = code; | ||
80 | } | ||
81 | |||
61 | #endif | 82 | #endif |
diff --git a/include/media/v4l2-subdev.h b/include/media/v4l2-subdev.h index a88889355ae0..02c6f4d11ed3 100644 --- a/include/media/v4l2-subdev.h +++ b/include/media/v4l2-subdev.h | |||
@@ -246,7 +246,7 @@ struct v4l2_subdev_video_ops { | |||
246 | struct v4l2_dv_timings *timings); | 246 | struct v4l2_dv_timings *timings); |
247 | int (*g_dv_timings)(struct v4l2_subdev *sd, | 247 | int (*g_dv_timings)(struct v4l2_subdev *sd, |
248 | struct v4l2_dv_timings *timings); | 248 | struct v4l2_dv_timings *timings); |
249 | int (*enum_mbus_fmt)(struct v4l2_subdev *sd, int index, | 249 | int (*enum_mbus_fmt)(struct v4l2_subdev *sd, unsigned int index, |
250 | enum v4l2_mbus_pixelcode *code); | 250 | enum v4l2_mbus_pixelcode *code); |
251 | int (*g_mbus_fmt)(struct v4l2_subdev *sd, | 251 | int (*g_mbus_fmt)(struct v4l2_subdev *sd, |
252 | struct v4l2_mbus_framefmt *fmt); | 252 | struct v4l2_mbus_framefmt *fmt); |
diff --git a/include/net/dst.h b/include/net/dst.h index 612069beda73..81d1413a8701 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
@@ -250,11 +250,11 @@ static inline void skb_tunnel_rx(struct sk_buff *skb, struct net_device *dev) | |||
250 | * Linux networking. Thus, destinations are stackable. | 250 | * Linux networking. Thus, destinations are stackable. |
251 | */ | 251 | */ |
252 | 252 | ||
253 | static inline struct dst_entry *dst_pop(struct dst_entry *dst) | 253 | static inline struct dst_entry *skb_dst_pop(struct sk_buff *skb) |
254 | { | 254 | { |
255 | struct dst_entry *child = dst_clone(dst->child); | 255 | struct dst_entry *child = skb_dst(skb)->child; |
256 | 256 | ||
257 | dst_release(dst); | 257 | skb_dst_drop(skb); |
258 | return child; | 258 | return child; |
259 | } | 259 | } |
260 | 260 | ||
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index c50a97fc76f9..b7bdecb7b76e 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
@@ -327,6 +327,14 @@ struct scsi_host_template { | |||
327 | sector_t, int []); | 327 | sector_t, int []); |
328 | 328 | ||
329 | /* | 329 | /* |
330 | * This function is called when one or more partitions on the | ||
331 | * device reach beyond the end of the device. | ||
332 | * | ||
333 | * Status: OPTIONAL | ||
334 | */ | ||
335 | void (*unlock_native_capacity)(struct scsi_device *); | ||
336 | |||
337 | /* | ||
330 | * Can be used to export driver statistics and other infos to the | 338 | * Can be used to export driver statistics and other infos to the |
331 | * world outside the kernel ie. userspace and it also provides an | 339 | * world outside the kernel ie. userspace and it also provides an |
332 | * interface to feed the driver with information. | 340 | * interface to feed the driver with information. |
diff --git a/include/sound/asound.h b/include/sound/asound.h index 9f1eecf99e6b..a1803ecea34d 100644 --- a/include/sound/asound.h +++ b/include/sound/asound.h | |||
@@ -212,7 +212,11 @@ typedef int __bitwise snd_pcm_format_t; | |||
212 | #define SNDRV_PCM_FORMAT_S18_3BE ((__force snd_pcm_format_t) 41) /* in three bytes */ | 212 | #define SNDRV_PCM_FORMAT_S18_3BE ((__force snd_pcm_format_t) 41) /* in three bytes */ |
213 | #define SNDRV_PCM_FORMAT_U18_3LE ((__force snd_pcm_format_t) 42) /* in three bytes */ | 213 | #define SNDRV_PCM_FORMAT_U18_3LE ((__force snd_pcm_format_t) 42) /* in three bytes */ |
214 | #define SNDRV_PCM_FORMAT_U18_3BE ((__force snd_pcm_format_t) 43) /* in three bytes */ | 214 | #define SNDRV_PCM_FORMAT_U18_3BE ((__force snd_pcm_format_t) 43) /* in three bytes */ |
215 | #define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_U18_3BE | 215 | #define SNDRV_PCM_FORMAT_G723_24 ((__force snd_pcm_format_t) 44) /* 8 samples in 3 bytes */ |
216 | #define SNDRV_PCM_FORMAT_G723_24_1B ((__force snd_pcm_format_t) 45) /* 1 sample in 1 byte */ | ||
217 | #define SNDRV_PCM_FORMAT_G723_40 ((__force snd_pcm_format_t) 46) /* 8 Samples in 5 bytes */ | ||
218 | #define SNDRV_PCM_FORMAT_G723_40_1B ((__force snd_pcm_format_t) 47) /* 1 sample in 1 byte */ | ||
219 | #define SNDRV_PCM_FORMAT_LAST SNDRV_PCM_FORMAT_G723_40_1B | ||
216 | 220 | ||
217 | #ifdef SNDRV_LITTLE_ENDIAN | 221 | #ifdef SNDRV_LITTLE_ENDIAN |
218 | #define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE | 222 | #define SNDRV_PCM_FORMAT_S16 SNDRV_PCM_FORMAT_S16_LE |
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 83c6fa6aac43..304025b23520 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h | |||
@@ -174,6 +174,10 @@ struct snd_pcm_ops { | |||
174 | #define SNDRV_PCM_FMTBIT_U18_3LE (1ULL << SNDRV_PCM_FORMAT_U18_3LE) | 174 | #define SNDRV_PCM_FMTBIT_U18_3LE (1ULL << SNDRV_PCM_FORMAT_U18_3LE) |
175 | #define SNDRV_PCM_FMTBIT_S18_3BE (1ULL << SNDRV_PCM_FORMAT_S18_3BE) | 175 | #define SNDRV_PCM_FMTBIT_S18_3BE (1ULL << SNDRV_PCM_FORMAT_S18_3BE) |
176 | #define SNDRV_PCM_FMTBIT_U18_3BE (1ULL << SNDRV_PCM_FORMAT_U18_3BE) | 176 | #define SNDRV_PCM_FMTBIT_U18_3BE (1ULL << SNDRV_PCM_FORMAT_U18_3BE) |
177 | #define SNDRV_PCM_FMTBIT_G723_24 (1ULL << SNDRV_PCM_FORMAT_G723_24) | ||
178 | #define SNDRV_PCM_FMTBIT_G723_24_1B (1ULL << SNDRV_PCM_FORMAT_G723_24_1B) | ||
179 | #define SNDRV_PCM_FMTBIT_G723_40 (1ULL << SNDRV_PCM_FORMAT_G723_40) | ||
180 | #define SNDRV_PCM_FMTBIT_G723_40_1B (1ULL << SNDRV_PCM_FORMAT_G723_40_1B) | ||
177 | 181 | ||
178 | #ifdef SNDRV_LITTLE_ENDIAN | 182 | #ifdef SNDRV_LITTLE_ENDIAN |
179 | #define SNDRV_PCM_FMTBIT_S16 SNDRV_PCM_FMTBIT_S16_LE | 183 | #define SNDRV_PCM_FMTBIT_S16 SNDRV_PCM_FMTBIT_S16_LE |
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 4f733ecea46e..b9e1dd6c6208 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
@@ -115,6 +115,23 @@ DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new, | |||
115 | TP_PROTO(struct task_struct *p, int success), | 115 | TP_PROTO(struct task_struct *p, int success), |
116 | TP_ARGS(p, success)); | 116 | TP_ARGS(p, success)); |
117 | 117 | ||
118 | #ifdef CREATE_TRACE_POINTS | ||
119 | static inline long __trace_sched_switch_state(struct task_struct *p) | ||
120 | { | ||
121 | long state = p->state; | ||
122 | |||
123 | #ifdef CONFIG_PREEMPT | ||
124 | /* | ||
125 | * For all intents and purposes a preempted task is a running task. | ||
126 | */ | ||
127 | if (task_thread_info(p)->preempt_count & PREEMPT_ACTIVE) | ||
128 | state = TASK_RUNNING; | ||
129 | #endif | ||
130 | |||
131 | return state; | ||
132 | } | ||
133 | #endif | ||
134 | |||
118 | /* | 135 | /* |
119 | * Tracepoint for task switches, performed by the scheduler: | 136 | * Tracepoint for task switches, performed by the scheduler: |
120 | */ | 137 | */ |
@@ -139,7 +156,7 @@ TRACE_EVENT(sched_switch, | |||
139 | memcpy(__entry->next_comm, next->comm, TASK_COMM_LEN); | 156 | memcpy(__entry->next_comm, next->comm, TASK_COMM_LEN); |
140 | __entry->prev_pid = prev->pid; | 157 | __entry->prev_pid = prev->pid; |
141 | __entry->prev_prio = prev->prio; | 158 | __entry->prev_prio = prev->prio; |
142 | __entry->prev_state = prev->state; | 159 | __entry->prev_state = __trace_sched_switch_state(prev); |
143 | memcpy(__entry->prev_comm, prev->comm, TASK_COMM_LEN); | 160 | memcpy(__entry->prev_comm, prev->comm, TASK_COMM_LEN); |
144 | __entry->next_pid = next->pid; | 161 | __entry->next_pid = next->pid; |
145 | __entry->next_prio = next->prio; | 162 | __entry->next_prio = next->prio; |
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 3d685d1f2a03..5a64905d7278 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
@@ -725,7 +725,7 @@ perf_trace_##call(void *__data, proto) \ | |||
725 | \ | 725 | \ |
726 | { assign; } \ | 726 | { assign; } \ |
727 | \ | 727 | \ |
728 | head = per_cpu_ptr(event_call->perf_events, smp_processor_id());\ | 728 | head = this_cpu_ptr(event_call->perf_events); \ |
729 | perf_trace_buf_submit(entry, __entry_size, rctx, __addr, \ | 729 | perf_trace_buf_submit(entry, __entry_size, rctx, __addr, \ |
730 | __count, &__regs, head); \ | 730 | __count, &__regs, head); \ |
731 | } | 731 | } |