aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorDavid Woodhouse <dwmw2@infradead.org>2006-05-24 04:22:21 -0400
committerDavid Woodhouse <dwmw2@infradead.org>2006-05-24 04:22:21 -0400
commit66643de455c27973ac31ad6de9f859d399916842 (patch)
tree7ebed7f051879007d4b11d6aaa9e65a1bcb0b08f /include/linux
parent2c23d62abb820e19c54012520f08a198c2233a85 (diff)
parent387e2b0439026aa738a9edca15a57e5c0bcb4dfc (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts: include/asm-powerpc/unistd.h include/asm-sparc/unistd.h include/asm-sparc64/unistd.h Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/device.h2
-rw-r--r--include/linux/dma-mapping.h1
-rw-r--r--include/linux/firmware.h1
-rw-r--r--include/linux/fs.h7
-rw-r--r--include/linux/fsl_devices.h11
-rw-r--r--include/linux/kernel.h1
-rw-r--r--include/linux/mmc/mmc.h1
-rw-r--r--include/linux/mmzone.h1
-rw-r--r--include/linux/netdevice.h23
-rw-r--r--include/linux/rcupdate.h1
-rw-r--r--include/linux/serial_core.h1
-rw-r--r--include/linux/slab.h1
-rw-r--r--include/linux/spi/spi.h45
-rw-r--r--include/linux/spi/spi_bitbang.h8
-rw-r--r--include/linux/swap.h2
-rw-r--r--include/linux/syscalls.h6
-rw-r--r--include/linux/videodev2.h5
17 files changed, 83 insertions, 34 deletions
diff --git a/include/linux/device.h b/include/linux/device.h
index 9943f51cd809..b2e5da2b637b 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -199,6 +199,7 @@ extern int class_device_create_file(struct class_device *,
199 * @node: for internal use by the driver core only. 199 * @node: for internal use by the driver core only.
200 * @kobj: for internal use by the driver core only. 200 * @kobj: for internal use by the driver core only.
201 * @devt_attr: for internal use by the driver core only. 201 * @devt_attr: for internal use by the driver core only.
202 * @groups: optional additional groups to be created
202 * @dev: if set, a symlink to the struct device is created in the sysfs 203 * @dev: if set, a symlink to the struct device is created in the sysfs
203 * directory for this struct class device. 204 * directory for this struct class device.
204 * @class_data: pointer to whatever you want to store here for this struct 205 * @class_data: pointer to whatever you want to store here for this struct
@@ -227,6 +228,7 @@ struct class_device {
227 struct device * dev; /* not necessary, but nice to have */ 228 struct device * dev; /* not necessary, but nice to have */
228 void * class_data; /* class-specific data */ 229 void * class_data; /* class-specific data */
229 struct class_device *parent; /* parent of this child device, if there is one */ 230 struct class_device *parent; /* parent of this child device, if there is one */
231 struct attribute_group ** groups; /* optional groups */
230 232
231 void (*release)(struct class_device *dev); 233 void (*release)(struct class_device *dev);
232 int (*uevent)(struct class_device *dev, char **envp, 234 int (*uevent)(struct class_device *dev, char **envp,
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index ff61817082fa..635690cf3e3d 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -14,6 +14,7 @@ enum dma_data_direction {
14}; 14};
15 15
16#define DMA_64BIT_MASK 0xffffffffffffffffULL 16#define DMA_64BIT_MASK 0xffffffffffffffffULL
17#define DMA_48BIT_MASK 0x0000ffffffffffffULL
17#define DMA_40BIT_MASK 0x000000ffffffffffULL 18#define DMA_40BIT_MASK 0x000000ffffffffffULL
18#define DMA_39BIT_MASK 0x0000007fffffffffULL 19#define DMA_39BIT_MASK 0x0000007fffffffffULL
19#define DMA_32BIT_MASK 0x00000000ffffffffULL 20#define DMA_32BIT_MASK 0x00000000ffffffffULL
diff --git a/include/linux/firmware.h b/include/linux/firmware.h
index 2d716080be4a..33d8f2087b6e 100644
--- a/include/linux/firmware.h
+++ b/include/linux/firmware.h
@@ -19,5 +19,4 @@ int request_firmware_nowait(
19 void (*cont)(const struct firmware *fw, void *context)); 19 void (*cont)(const struct firmware *fw, void *context));
20 20
21void release_firmware(const struct firmware *fw); 21void release_firmware(const struct firmware *fw);
22void register_firmware(const char *name, const u8 *data, size_t size);
23#endif 22#endif
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 75a236c268fc..ecc8c2c3d8ca 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -212,6 +212,10 @@ extern int dir_notify_enable;
212#define FIBMAP _IO(0x00,1) /* bmap access */ 212#define FIBMAP _IO(0x00,1) /* bmap access */
213#define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */ 213#define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */
214 214
215#define SYNC_FILE_RANGE_WAIT_BEFORE 1
216#define SYNC_FILE_RANGE_WRITE 2
217#define SYNC_FILE_RANGE_WAIT_AFTER 4
218
215#ifdef __KERNEL__ 219#ifdef __KERNEL__
216 220
217#include <linux/linkage.h> 221#include <linux/linkage.h>
@@ -757,9 +761,6 @@ extern int fcntl_setlease(unsigned int fd, struct file *filp, long arg);
757extern int fcntl_getlease(struct file *filp); 761extern int fcntl_getlease(struct file *filp);
758 762
759/* fs/sync.c */ 763/* fs/sync.c */
760#define SYNC_FILE_RANGE_WAIT_BEFORE 1
761#define SYNC_FILE_RANGE_WRITE 2
762#define SYNC_FILE_RANGE_WAIT_AFTER 4
763extern int do_sync_file_range(struct file *file, loff_t offset, loff_t endbyte, 764extern int do_sync_file_range(struct file *file, loff_t offset, loff_t endbyte,
764 unsigned int flags); 765 unsigned int flags);
765 766
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h
index a3a0e078f79d..16fbe59edeb1 100644
--- a/include/linux/fsl_devices.h
+++ b/include/linux/fsl_devices.h
@@ -110,5 +110,16 @@ struct fsl_usb2_platform_data {
110#define FSL_USB2_PORT0_ENABLED 0x00000001 110#define FSL_USB2_PORT0_ENABLED 0x00000001
111#define FSL_USB2_PORT1_ENABLED 0x00000002 111#define FSL_USB2_PORT1_ENABLED 0x00000002
112 112
113struct fsl_spi_platform_data {
114 u32 initial_spmode; /* initial SPMODE value */
115 u16 bus_num;
116
117 /* board specific information */
118 u16 max_chipselect;
119 void (*activate_cs)(u8 cs, u8 polarity);
120 void (*deactivate_cs)(u8 cs, u8 polarity);
121 u32 sysclk;
122};
123
113#endif /* _FSL_DEVICE_H_ */ 124#endif /* _FSL_DEVICE_H_ */
114#endif /* __KERNEL__ */ 125#endif /* __KERNEL__ */
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index e1bd0842f6a1..f4fc576ed4c4 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -124,6 +124,7 @@ extern int get_option(char **str, int *pint);
124extern char *get_options(const char *str, int nints, int *ints); 124extern char *get_options(const char *str, int nints, int *ints);
125extern unsigned long long memparse(char *ptr, char **retptr); 125extern unsigned long long memparse(char *ptr, char **retptr);
126 126
127extern int core_kernel_text(unsigned long addr);
127extern int __kernel_text_address(unsigned long addr); 128extern int __kernel_text_address(unsigned long addr);
128extern int kernel_text_address(unsigned long addr); 129extern int kernel_text_address(unsigned long addr);
129extern int session_of_pgrp(int pgrp); 130extern int session_of_pgrp(int pgrp);
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h
index bdc556d88498..03a14a30c46a 100644
--- a/include/linux/mmc/mmc.h
+++ b/include/linux/mmc/mmc.h
@@ -69,6 +69,7 @@ struct mmc_data {
69 unsigned int timeout_ns; /* data timeout (in ns, max 80ms) */ 69 unsigned int timeout_ns; /* data timeout (in ns, max 80ms) */
70 unsigned int timeout_clks; /* data timeout (in clocks) */ 70 unsigned int timeout_clks; /* data timeout (in clocks) */
71 unsigned int blksz_bits; /* data block size */ 71 unsigned int blksz_bits; /* data block size */
72 unsigned int blksz; /* data block size */
72 unsigned int blocks; /* number of blocks */ 73 unsigned int blocks; /* number of blocks */
73 unsigned int error; /* data error */ 74 unsigned int error; /* data error */
74 unsigned int flags; 75 unsigned int flags;
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 6be91fb2deb1..230180c3eb61 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -21,6 +21,7 @@
21#else 21#else
22#define MAX_ORDER CONFIG_FORCE_MAX_ZONEORDER 22#define MAX_ORDER CONFIG_FORCE_MAX_ZONEORDER
23#endif 23#endif
24#define MAX_ORDER_NR_PAGES (1 << (MAX_ORDER - 1))
24 25
25struct free_area { 26struct free_area {
26 struct list_head free_list; 27 struct list_head free_list;
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 5128dd7634cb..cebe677e153b 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -432,8 +432,7 @@ struct net_device
432 432
433 /* register/unregister state machine */ 433 /* register/unregister state machine */
434 enum { NETREG_UNINITIALIZED=0, 434 enum { NETREG_UNINITIALIZED=0,
435 NETREG_REGISTERING, /* called register_netdevice */ 435 NETREG_REGISTERED, /* completed register_netdevice */
436 NETREG_REGISTERED, /* completed register todo */
437 NETREG_UNREGISTERING, /* called unregister_netdevice */ 436 NETREG_UNREGISTERING, /* called unregister_netdevice */
438 NETREG_UNREGISTERED, /* completed unregister todo */ 437 NETREG_UNREGISTERED, /* completed unregister todo */
439 NETREG_RELEASED, /* called free_netdev */ 438 NETREG_RELEASED, /* called free_netdev */
@@ -505,6 +504,8 @@ struct net_device
505 504
506 /* class/net/name entry */ 505 /* class/net/name entry */
507 struct class_device class_dev; 506 struct class_device class_dev;
507 /* space for optional statistics and wireless sysfs groups */
508 struct attribute_group *sysfs_groups[3];
508}; 509};
509 510
510#define NETDEV_ALIGN 32 511#define NETDEV_ALIGN 32
@@ -828,21 +829,19 @@ static inline void netif_rx_schedule(struct net_device *dev)
828 __netif_rx_schedule(dev); 829 __netif_rx_schedule(dev);
829} 830}
830 831
831 832/* Try to reschedule poll. Called by dev->poll() after netif_rx_complete().
832static inline void __netif_rx_reschedule(struct net_device *dev, int undo) 833 * Do not inline this?
833{ 834 */
834 dev->quota += undo;
835 list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list);
836 __raise_softirq_irqoff(NET_RX_SOFTIRQ);
837}
838
839/* Try to reschedule poll. Called by dev->poll() after netif_rx_complete(). */
840static inline int netif_rx_reschedule(struct net_device *dev, int undo) 835static inline int netif_rx_reschedule(struct net_device *dev, int undo)
841{ 836{
842 if (netif_rx_schedule_prep(dev)) { 837 if (netif_rx_schedule_prep(dev)) {
843 unsigned long flags; 838 unsigned long flags;
839
840 dev->quota += undo;
841
844 local_irq_save(flags); 842 local_irq_save(flags);
845 __netif_rx_reschedule(dev, undo); 843 list_add_tail(&dev->poll_list, &__get_cpu_var(softnet_data).poll_list);
844 __raise_softirq_irqoff(NET_RX_SOFTIRQ);
846 local_irq_restore(flags); 845 local_irq_restore(flags);
847 return 1; 846 return 1;
848 } 847 }
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index 5673008b61e1..970284f571a6 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -132,6 +132,7 @@ static inline void rcu_bh_qsctr_inc(int cpu)
132} 132}
133 133
134extern int rcu_pending(int cpu); 134extern int rcu_pending(int cpu);
135extern int rcu_needs_cpu(int cpu);
135 136
136/** 137/**
137 * rcu_read_lock - mark the beginning of an RCU read-side critical section. 138 * rcu_read_lock - mark the beginning of an RCU read-side critical section.
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index fcfb783bef41..94b9286cf6bd 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -253,6 +253,7 @@ struct uart_port {
253#define UPF_CONS_FLOW ((__force upf_t) (1 << 23)) 253#define UPF_CONS_FLOW ((__force upf_t) (1 << 23))
254#define UPF_SHARE_IRQ ((__force upf_t) (1 << 24)) 254#define UPF_SHARE_IRQ ((__force upf_t) (1 << 24))
255#define UPF_BOOT_AUTOCONF ((__force upf_t) (1 << 28)) 255#define UPF_BOOT_AUTOCONF ((__force upf_t) (1 << 28))
256#define UPF_DEAD ((__force upf_t) (1 << 30))
256#define UPF_IOREMAP ((__force upf_t) (1 << 31)) 257#define UPF_IOREMAP ((__force upf_t) (1 << 31))
257 258
258#define UPF_CHANGE_MASK ((__force upf_t) (0x17fff)) 259#define UPF_CHANGE_MASK ((__force upf_t) (0x17fff))
diff --git a/include/linux/slab.h b/include/linux/slab.h
index a7d7f131b5da..9dc93163e065 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -149,6 +149,7 @@ static inline void *kcalloc(size_t n, size_t size, gfp_t flags)
149 149
150extern void kfree(const void *); 150extern void kfree(const void *);
151extern unsigned int ksize(const void *); 151extern unsigned int ksize(const void *);
152extern int slab_is_available(void);
152 153
153#ifdef CONFIG_NUMA 154#ifdef CONFIG_NUMA
154extern void *kmem_cache_alloc_node(kmem_cache_t *, gfp_t flags, int node); 155extern void *kmem_cache_alloc_node(kmem_cache_t *, gfp_t flags, int node);
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h
index b05f1463a267..e928c0dcc297 100644
--- a/include/linux/spi/spi.h
+++ b/include/linux/spi/spi.h
@@ -31,18 +31,23 @@ extern struct bus_type spi_bus_type;
31 * @master: SPI controller used with the device. 31 * @master: SPI controller used with the device.
32 * @max_speed_hz: Maximum clock rate to be used with this chip 32 * @max_speed_hz: Maximum clock rate to be used with this chip
33 * (on this board); may be changed by the device's driver. 33 * (on this board); may be changed by the device's driver.
34 * The spi_transfer.speed_hz can override this for each transfer.
34 * @chip-select: Chipselect, distinguishing chips handled by "master". 35 * @chip-select: Chipselect, distinguishing chips handled by "master".
35 * @mode: The spi mode defines how data is clocked out and in. 36 * @mode: The spi mode defines how data is clocked out and in.
36 * This may be changed by the device's driver. 37 * This may be changed by the device's driver.
38 * The "active low" default for chipselect mode can be overridden,
39 * as can the "MSB first" default for each word in a transfer.
37 * @bits_per_word: Data transfers involve one or more words; word sizes 40 * @bits_per_word: Data transfers involve one or more words; word sizes
38 * like eight or 12 bits are common. In-memory wordsizes are 41 * like eight or 12 bits are common. In-memory wordsizes are
39 * powers of two bytes (e.g. 20 bit samples use 32 bits). 42 * powers of two bytes (e.g. 20 bit samples use 32 bits).
40 * This may be changed by the device's driver. 43 * This may be changed by the device's driver, or left at the
44 * default (0) indicating protocol words are eight bit bytes.
45 * The spi_transfer.bits_per_word can override this for each transfer.
41 * @irq: Negative, or the number passed to request_irq() to receive 46 * @irq: Negative, or the number passed to request_irq() to receive
42 * interrupts from this device. 47 * interrupts from this device.
43 * @controller_state: Controller's runtime state 48 * @controller_state: Controller's runtime state
44 * @controller_data: Board-specific definitions for controller, such as 49 * @controller_data: Board-specific definitions for controller, such as
45 * FIFO initialization parameters; from board_info.controller_data 50 * FIFO initialization parameters; from board_info.controller_data
46 * 51 *
47 * An spi_device is used to interchange data between an SPI slave 52 * An spi_device is used to interchange data between an SPI slave
48 * (usually a discrete chip) and CPU memory. 53 * (usually a discrete chip) and CPU memory.
@@ -65,6 +70,7 @@ struct spi_device {
65#define SPI_MODE_2 (SPI_CPOL|0) 70#define SPI_MODE_2 (SPI_CPOL|0)
66#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA) 71#define SPI_MODE_3 (SPI_CPOL|SPI_CPHA)
67#define SPI_CS_HIGH 0x04 /* chipselect active high? */ 72#define SPI_CS_HIGH 0x04 /* chipselect active high? */
73#define SPI_LSB_FIRST 0x08 /* per-word bits-on-wire */
68 u8 bits_per_word; 74 u8 bits_per_word;
69 int irq; 75 int irq;
70 void *controller_state; 76 void *controller_state;
@@ -73,7 +79,6 @@ struct spi_device {
73 79
74 // likely need more hooks for more protocol options affecting how 80 // likely need more hooks for more protocol options affecting how
75 // the controller talks to each chip, like: 81 // the controller talks to each chip, like:
76 // - bit order (default is wordwise msb-first)
77 // - memory packing (12 bit samples into low bits, others zeroed) 82 // - memory packing (12 bit samples into low bits, others zeroed)
78 // - priority 83 // - priority
79 // - drop chipselect after each word 84 // - drop chipselect after each word
@@ -143,13 +148,13 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
143 * struct spi_master - interface to SPI master controller 148 * struct spi_master - interface to SPI master controller
144 * @cdev: class interface to this driver 149 * @cdev: class interface to this driver
145 * @bus_num: board-specific (and often SOC-specific) identifier for a 150 * @bus_num: board-specific (and often SOC-specific) identifier for a
146 * given SPI controller. 151 * given SPI controller.
147 * @num_chipselect: chipselects are used to distinguish individual 152 * @num_chipselect: chipselects are used to distinguish individual
148 * SPI slaves, and are numbered from zero to num_chipselects. 153 * SPI slaves, and are numbered from zero to num_chipselects.
149 * each slave has a chipselect signal, but it's common that not 154 * each slave has a chipselect signal, but it's common that not
150 * every chipselect is connected to a slave. 155 * every chipselect is connected to a slave.
151 * @setup: updates the device mode and clocking records used by a 156 * @setup: updates the device mode and clocking records used by a
152 * device's SPI controller; protocol code may call this. 157 * device's SPI controller; protocol code may call this.
153 * @transfer: adds a message to the controller's transfer queue. 158 * @transfer: adds a message to the controller's transfer queue.
154 * @cleanup: frees controller-specific state 159 * @cleanup: frees controller-specific state
155 * 160 *
@@ -167,13 +172,13 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
167struct spi_master { 172struct spi_master {
168 struct class_device cdev; 173 struct class_device cdev;
169 174
170 /* other than zero (== assign one dynamically), bus_num is fully 175 /* other than negative (== assign one dynamically), bus_num is fully
171 * board-specific. usually that simplifies to being SOC-specific. 176 * board-specific. usually that simplifies to being SOC-specific.
172 * example: one SOC has three SPI controllers, numbered 1..3, 177 * example: one SOC has three SPI controllers, numbered 0..2,
173 * and one board's schematics might show it using SPI-2. software 178 * and one board's schematics might show it using SPI-2. software
174 * would normally use bus_num=2 for that controller. 179 * would normally use bus_num=2 for that controller.
175 */ 180 */
176 u16 bus_num; 181 s16 bus_num;
177 182
178 /* chipselects will be integral to many controllers; some others 183 /* chipselects will be integral to many controllers; some others
179 * might use board-specific GPIOs. 184 * might use board-specific GPIOs.
@@ -268,10 +273,14 @@ extern struct spi_master *spi_busnum_to_master(u16 busnum);
268 * @tx_dma: DMA address of tx_buf, if spi_message.is_dma_mapped 273 * @tx_dma: DMA address of tx_buf, if spi_message.is_dma_mapped
269 * @rx_dma: DMA address of rx_buf, if spi_message.is_dma_mapped 274 * @rx_dma: DMA address of rx_buf, if spi_message.is_dma_mapped
270 * @len: size of rx and tx buffers (in bytes) 275 * @len: size of rx and tx buffers (in bytes)
276 * @speed_hz: Select a speed other then the device default for this
277 * transfer. If 0 the default (from spi_device) is used.
278 * @bits_per_word: select a bits_per_word other then the device default
279 * for this transfer. If 0 the default (from spi_device) is used.
271 * @cs_change: affects chipselect after this transfer completes 280 * @cs_change: affects chipselect after this transfer completes
272 * @delay_usecs: microseconds to delay after this transfer before 281 * @delay_usecs: microseconds to delay after this transfer before
273 * (optionally) changing the chipselect status, then starting 282 * (optionally) changing the chipselect status, then starting
274 * the next transfer or completing this spi_message. 283 * the next transfer or completing this spi_message.
275 * @transfer_list: transfers are sequenced through spi_message.transfers 284 * @transfer_list: transfers are sequenced through spi_message.transfers
276 * 285 *
277 * SPI transfers always write the same number of bytes as they read. 286 * SPI transfers always write the same number of bytes as they read.
@@ -322,7 +331,9 @@ struct spi_transfer {
322 dma_addr_t rx_dma; 331 dma_addr_t rx_dma;
323 332
324 unsigned cs_change:1; 333 unsigned cs_change:1;
334 u8 bits_per_word;
325 u16 delay_usecs; 335 u16 delay_usecs;
336 u32 speed_hz;
326 337
327 struct list_head transfer_list; 338 struct list_head transfer_list;
328}; 339};
@@ -356,7 +367,7 @@ struct spi_transfer {
356 * and its transfers, ignore them until its completion callback. 367 * and its transfers, ignore them until its completion callback.
357 */ 368 */
358struct spi_message { 369struct spi_message {
359 struct list_head transfers; 370 struct list_head transfers;
360 371
361 struct spi_device *spi; 372 struct spi_device *spi;
362 373
@@ -374,7 +385,7 @@ struct spi_message {
374 */ 385 */
375 386
376 /* completion is reported through a callback */ 387 /* completion is reported through a callback */
377 void (*complete)(void *context); 388 void (*complete)(void *context);
378 void *context; 389 void *context;
379 unsigned actual_length; 390 unsigned actual_length;
380 int status; 391 int status;
diff --git a/include/linux/spi/spi_bitbang.h b/include/linux/spi/spi_bitbang.h
index c961fe9bf3eb..16ce178f54d7 100644
--- a/include/linux/spi/spi_bitbang.h
+++ b/include/linux/spi/spi_bitbang.h
@@ -30,6 +30,12 @@ struct spi_bitbang {
30 30
31 struct spi_master *master; 31 struct spi_master *master;
32 32
33 /* setup_transfer() changes clock and/or wordsize to match settings
34 * for this transfer; zeroes restore defaults from spi_device.
35 */
36 int (*setup_transfer)(struct spi_device *spi,
37 struct spi_transfer *t);
38
33 void (*chipselect)(struct spi_device *spi, int is_on); 39 void (*chipselect)(struct spi_device *spi, int is_on);
34#define BITBANG_CS_ACTIVE 1 /* normally nCS, active low */ 40#define BITBANG_CS_ACTIVE 1 /* normally nCS, active low */
35#define BITBANG_CS_INACTIVE 0 41#define BITBANG_CS_INACTIVE 0
@@ -51,6 +57,8 @@ struct spi_bitbang {
51extern int spi_bitbang_setup(struct spi_device *spi); 57extern int spi_bitbang_setup(struct spi_device *spi);
52extern void spi_bitbang_cleanup(const struct spi_device *spi); 58extern void spi_bitbang_cleanup(const struct spi_device *spi);
53extern int spi_bitbang_transfer(struct spi_device *spi, struct spi_message *m); 59extern int spi_bitbang_transfer(struct spi_device *spi, struct spi_message *m);
60extern int spi_bitbang_setup_transfer(struct spi_device *spi,
61 struct spi_transfer *t);
54 62
55/* start or stop queue processing */ 63/* start or stop queue processing */
56extern int spi_bitbang_start(struct spi_bitbang *spi); 64extern int spi_bitbang_start(struct spi_bitbang *spi);
diff --git a/include/linux/swap.h b/include/linux/swap.h
index e24fa9b69cbf..aca9bfae208f 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -295,7 +295,7 @@ static inline void disable_swap_token(void)
295#define read_swap_cache_async(swp,vma,addr) NULL 295#define read_swap_cache_async(swp,vma,addr) NULL
296#define lookup_swap_cache(swp) NULL 296#define lookup_swap_cache(swp) NULL
297#define valid_swaphandles(swp, off) 0 297#define valid_swaphandles(swp, off) 0
298#define can_share_swap_page(p) 0 298#define can_share_swap_page(p) (page_mapcount(p) == 1)
299#define move_to_swap_cache(p, swp) 1 299#define move_to_swap_cache(p, swp) 1
300#define move_from_swap_cache(p, i, m) 1 300#define move_from_swap_cache(p, i, m) 1
301#define __delete_from_swap_cache(p) /*NOTHING*/ 301#define __delete_from_swap_cache(p) /*NOTHING*/
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 70c64dbe4b8a..bd67a4413df7 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -52,6 +52,7 @@ struct utimbuf;
52struct mq_attr; 52struct mq_attr;
53struct compat_stat; 53struct compat_stat;
54struct compat_timeval; 54struct compat_timeval;
55struct robust_list_head;
55 56
56#include <linux/types.h> 57#include <linux/types.h>
57#include <linux/aio_abi.h> 58#include <linux/aio_abi.h>
@@ -580,5 +581,10 @@ asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags);
580 581
581asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes, 582asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes,
582 unsigned int flags); 583 unsigned int flags);
584asmlinkage long sys_get_robust_list(int pid,
585 struct robust_list_head __user **head_ptr,
586 size_t __user *len_ptr);
587asmlinkage long sys_set_robust_list(struct robust_list_head __user *head,
588 size_t len);
583 589
584#endif 590#endif
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index d7670ec1ec1e..ad7fa9c86c10 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -1141,8 +1141,13 @@ extern char *v4l2_type_names[];
1141/* Compatibility layer interface -- v4l1-compat module */ 1141/* Compatibility layer interface -- v4l1-compat module */
1142typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file, 1142typedef int (*v4l2_kioctl)(struct inode *inode, struct file *file,
1143 unsigned int cmd, void *arg); 1143 unsigned int cmd, void *arg);
1144
1145#ifdef CONFIG_VIDEO_V4L1_COMPAT
1144int v4l_compat_translate_ioctl(struct inode *inode, struct file *file, 1146int v4l_compat_translate_ioctl(struct inode *inode, struct file *file,
1145 int cmd, void *arg, v4l2_kioctl driver_ioctl); 1147 int cmd, void *arg, v4l2_kioctl driver_ioctl);
1148#else
1149#define v4l_compat_translate_ioctl(inode,file,cmd,arg,ioctl) -EINVAL
1150#endif
1146 1151
1147/* 32 Bits compatibility layer for 64 bits processors */ 1152/* 32 Bits compatibility layer for 64 bits processors */
1148extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd, 1153extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd,