diff options
| author | David S. Miller <davem@davemloft.net> | 2009-04-13 17:41:05 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2009-04-13 17:41:05 -0400 |
| commit | 83400207a07584539366f6859362db6872809a12 (patch) | |
| tree | fad187f8b3bebf1b387ec42ef8143e6f4e49a256 /include/linux | |
| parent | 0d489ffb76de0fe804cf06a9d4d11fa7342d74b9 (diff) | |
| parent | 80a04d3f2f94fb68b5df05e3ac6697130bc3467a (diff) | |
Merge branch 'master' of /home/davem/src/GIT/linux-2.6/
Conflicts:
MAINTAINERS
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/capability.h | 23 | ||||
| -rw-r--r-- | include/linux/debug_locks.h | 7 | ||||
| -rw-r--r-- | include/linux/device-mapper.h | 1 | ||||
| -rw-r--r-- | include/linux/ftrace.h | 31 | ||||
| -rw-r--r-- | include/linux/i2c.h | 2 | ||||
| -rw-r--r-- | include/linux/ide.h | 151 | ||||
| -rw-r--r-- | include/linux/irq.h | 14 | ||||
| -rw-r--r-- | include/linux/kmod.h | 2 | ||||
| -rw-r--r-- | include/linux/mfd/pcf50633/core.h | 2 | ||||
| -rw-r--r-- | include/linux/mfd/pcf50633/mbc.h | 1 | ||||
| -rw-r--r-- | include/linux/pda_power.h | 2 | ||||
| -rw-r--r-- | include/linux/percpu.h | 52 | ||||
| -rw-r--r-- | include/linux/rotary_encoder.h | 13 | ||||
| -rw-r--r-- | include/linux/sched.h | 3 | ||||
| -rw-r--r-- | include/linux/serial_max3100.h | 52 | ||||
| -rw-r--r-- | include/linux/spi/ad7879.h | 35 | ||||
| -rw-r--r-- | include/linux/stringify.h | 4 | ||||
| -rw-r--r-- | include/linux/syscalls.h | 2 |
18 files changed, 261 insertions, 136 deletions
diff --git a/include/linux/capability.h b/include/linux/capability.h index 4864a43b2b45..c3021105edc0 100644 --- a/include/linux/capability.h +++ b/include/linux/capability.h | |||
| @@ -377,7 +377,21 @@ struct cpu_vfs_cap_data { | |||
| 377 | #define CAP_FOR_EACH_U32(__capi) \ | 377 | #define CAP_FOR_EACH_U32(__capi) \ |
| 378 | for (__capi = 0; __capi < _KERNEL_CAPABILITY_U32S; ++__capi) | 378 | for (__capi = 0; __capi < _KERNEL_CAPABILITY_U32S; ++__capi) |
| 379 | 379 | ||
| 380 | /* | ||
| 381 | * CAP_FS_MASK and CAP_NFSD_MASKS: | ||
| 382 | * | ||
| 383 | * The fs mask is all the privileges that fsuid==0 historically meant. | ||
| 384 | * At one time in the past, that included CAP_MKNOD and CAP_LINUX_IMMUTABLE. | ||
| 385 | * | ||
| 386 | * It has never meant setting security.* and trusted.* xattrs. | ||
| 387 | * | ||
| 388 | * We could also define fsmask as follows: | ||
| 389 | * 1. CAP_FS_MASK is the privilege to bypass all fs-related DAC permissions | ||
| 390 | * 2. The security.* and trusted.* xattrs are fs-related MAC permissions | ||
| 391 | */ | ||
| 392 | |||
| 380 | # define CAP_FS_MASK_B0 (CAP_TO_MASK(CAP_CHOWN) \ | 393 | # define CAP_FS_MASK_B0 (CAP_TO_MASK(CAP_CHOWN) \ |
| 394 | | CAP_TO_MASK(CAP_MKNOD) \ | ||
| 381 | | CAP_TO_MASK(CAP_DAC_OVERRIDE) \ | 395 | | CAP_TO_MASK(CAP_DAC_OVERRIDE) \ |
| 382 | | CAP_TO_MASK(CAP_DAC_READ_SEARCH) \ | 396 | | CAP_TO_MASK(CAP_DAC_READ_SEARCH) \ |
| 383 | | CAP_TO_MASK(CAP_FOWNER) \ | 397 | | CAP_TO_MASK(CAP_FOWNER) \ |
| @@ -392,11 +406,12 @@ struct cpu_vfs_cap_data { | |||
| 392 | # define CAP_EMPTY_SET ((kernel_cap_t){{ 0, 0 }}) | 406 | # define CAP_EMPTY_SET ((kernel_cap_t){{ 0, 0 }}) |
| 393 | # define CAP_FULL_SET ((kernel_cap_t){{ ~0, ~0 }}) | 407 | # define CAP_FULL_SET ((kernel_cap_t){{ ~0, ~0 }}) |
| 394 | # define CAP_INIT_EFF_SET ((kernel_cap_t){{ ~CAP_TO_MASK(CAP_SETPCAP), ~0 }}) | 408 | # define CAP_INIT_EFF_SET ((kernel_cap_t){{ ~CAP_TO_MASK(CAP_SETPCAP), ~0 }}) |
| 395 | # define CAP_FS_SET ((kernel_cap_t){{ CAP_FS_MASK_B0, CAP_FS_MASK_B1 } }) | 409 | # define CAP_FS_SET ((kernel_cap_t){{ CAP_FS_MASK_B0 \ |
| 410 | | CAP_TO_MASK(CAP_LINUX_IMMUTABLE), \ | ||
| 411 | CAP_FS_MASK_B1 } }) | ||
| 396 | # define CAP_NFSD_SET ((kernel_cap_t){{ CAP_FS_MASK_B0 \ | 412 | # define CAP_NFSD_SET ((kernel_cap_t){{ CAP_FS_MASK_B0 \ |
| 397 | | CAP_TO_MASK(CAP_SYS_RESOURCE) \ | 413 | | CAP_TO_MASK(CAP_SYS_RESOURCE), \ |
| 398 | | CAP_TO_MASK(CAP_MKNOD), \ | 414 | CAP_FS_MASK_B1 } }) |
| 399 | CAP_FS_MASK_B1 } }) | ||
| 400 | 415 | ||
| 401 | #endif /* _KERNEL_CAPABILITY_U32S != 2 */ | 416 | #endif /* _KERNEL_CAPABILITY_U32S != 2 */ |
| 402 | 417 | ||
diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h index 096476f1fb35..493dedb7a67b 100644 --- a/include/linux/debug_locks.h +++ b/include/linux/debug_locks.h | |||
| @@ -2,12 +2,19 @@ | |||
| 2 | #define __LINUX_DEBUG_LOCKING_H | 2 | #define __LINUX_DEBUG_LOCKING_H |
| 3 | 3 | ||
| 4 | #include <linux/kernel.h> | 4 | #include <linux/kernel.h> |
| 5 | #include <asm/atomic.h> | ||
| 5 | 6 | ||
| 6 | struct task_struct; | 7 | struct task_struct; |
| 7 | 8 | ||
| 8 | extern int debug_locks; | 9 | extern int debug_locks; |
| 9 | extern int debug_locks_silent; | 10 | extern int debug_locks_silent; |
| 10 | 11 | ||
| 12 | |||
| 13 | static inline int __debug_locks_off(void) | ||
| 14 | { | ||
| 15 | return xchg(&debug_locks, 0); | ||
| 16 | } | ||
| 17 | |||
| 11 | /* | 18 | /* |
| 12 | * Generic 'turn off all lock debugging' function: | 19 | * Generic 'turn off all lock debugging' function: |
| 13 | */ | 20 | */ |
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 66ec05a57955..ded2d7c42668 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
| @@ -116,7 +116,6 @@ void dm_put_device(struct dm_target *ti, struct dm_dev *d); | |||
| 116 | /* | 116 | /* |
| 117 | * Target features | 117 | * Target features |
| 118 | */ | 118 | */ |
| 119 | #define DM_TARGET_SUPPORTS_BARRIERS 0x00000001 | ||
| 120 | 119 | ||
| 121 | struct target_type { | 120 | struct target_type { |
| 122 | uint64_t features; | 121 | uint64_t features; |
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index da5405dce347..8a0c2f221e6b 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h | |||
| @@ -357,7 +357,7 @@ struct ftrace_graph_ret { | |||
| 357 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER | 357 | #ifdef CONFIG_FUNCTION_GRAPH_TRACER |
| 358 | 358 | ||
| 359 | /* for init task */ | 359 | /* for init task */ |
| 360 | #define INIT_FTRACE_GRAPH .ret_stack = NULL | 360 | #define INIT_FTRACE_GRAPH .ret_stack = NULL, |
| 361 | 361 | ||
| 362 | /* | 362 | /* |
| 363 | * Stack of return addresses for functions | 363 | * Stack of return addresses for functions |
| @@ -511,33 +511,4 @@ static inline void trace_hw_branch_oops(void) {} | |||
| 511 | 511 | ||
| 512 | #endif /* CONFIG_HW_BRANCH_TRACER */ | 512 | #endif /* CONFIG_HW_BRANCH_TRACER */ |
| 513 | 513 | ||
| 514 | /* | ||
| 515 | * A syscall entry in the ftrace syscalls array. | ||
| 516 | * | ||
| 517 | * @name: name of the syscall | ||
| 518 | * @nb_args: number of parameters it takes | ||
| 519 | * @types: list of types as strings | ||
| 520 | * @args: list of args as strings (args[i] matches types[i]) | ||
| 521 | */ | ||
| 522 | struct syscall_metadata { | ||
| 523 | const char *name; | ||
| 524 | int nb_args; | ||
| 525 | const char **types; | ||
| 526 | const char **args; | ||
| 527 | }; | ||
| 528 | |||
| 529 | #ifdef CONFIG_FTRACE_SYSCALLS | ||
| 530 | extern void arch_init_ftrace_syscalls(void); | ||
| 531 | extern struct syscall_metadata *syscall_nr_to_meta(int nr); | ||
| 532 | extern void start_ftrace_syscalls(void); | ||
| 533 | extern void stop_ftrace_syscalls(void); | ||
| 534 | extern void ftrace_syscall_enter(struct pt_regs *regs); | ||
| 535 | extern void ftrace_syscall_exit(struct pt_regs *regs); | ||
| 536 | #else | ||
| 537 | static inline void start_ftrace_syscalls(void) { } | ||
| 538 | static inline void stop_ftrace_syscalls(void) { } | ||
| 539 | static inline void ftrace_syscall_enter(struct pt_regs *regs) { } | ||
| 540 | static inline void ftrace_syscall_exit(struct pt_regs *regs) { } | ||
| 541 | #endif | ||
| 542 | |||
| 543 | #endif /* _LINUX_FTRACE_H */ | 514 | #endif /* _LINUX_FTRACE_H */ |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 00ee11eb9092..ad2580596033 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
| @@ -274,7 +274,7 @@ struct i2c_board_info { | |||
| 274 | * are provided using conventional syntax. | 274 | * are provided using conventional syntax. |
| 275 | */ | 275 | */ |
| 276 | #define I2C_BOARD_INFO(dev_type, dev_addr) \ | 276 | #define I2C_BOARD_INFO(dev_type, dev_addr) \ |
| 277 | .type = (dev_type), .addr = (dev_addr) | 277 | .type = dev_type, .addr = (dev_addr) |
| 278 | 278 | ||
| 279 | 279 | ||
| 280 | /* Add-on boards should register/unregister their devices; e.g. a board | 280 | /* Add-on boards should register/unregister their devices; e.g. a board |
diff --git a/include/linux/ide.h b/include/linux/ide.h index a5d26f66ef78..ff65fffb078f 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
| @@ -240,65 +240,38 @@ typedef enum { | |||
| 240 | } ide_startstop_t; | 240 | } ide_startstop_t; |
| 241 | 241 | ||
| 242 | enum { | 242 | enum { |
| 243 | IDE_VALID_ERROR = (1 << 1), | ||
| 244 | IDE_VALID_FEATURE = IDE_VALID_ERROR, | ||
| 245 | IDE_VALID_NSECT = (1 << 2), | ||
| 246 | IDE_VALID_LBAL = (1 << 3), | ||
| 247 | IDE_VALID_LBAM = (1 << 4), | ||
| 248 | IDE_VALID_LBAH = (1 << 5), | ||
| 249 | IDE_VALID_DEVICE = (1 << 6), | ||
| 250 | IDE_VALID_LBA = IDE_VALID_LBAL | | ||
| 251 | IDE_VALID_LBAM | | ||
| 252 | IDE_VALID_LBAH, | ||
| 253 | IDE_VALID_OUT_TF = IDE_VALID_FEATURE | | ||
| 254 | IDE_VALID_NSECT | | ||
| 255 | IDE_VALID_LBA, | ||
| 256 | IDE_VALID_IN_TF = IDE_VALID_NSECT | | ||
| 257 | IDE_VALID_LBA, | ||
| 258 | IDE_VALID_OUT_HOB = IDE_VALID_OUT_TF, | ||
| 259 | IDE_VALID_IN_HOB = IDE_VALID_ERROR | | ||
| 260 | IDE_VALID_NSECT | | ||
| 261 | IDE_VALID_LBA, | ||
| 262 | }; | ||
| 263 | |||
| 264 | enum { | ||
| 243 | IDE_TFLAG_LBA48 = (1 << 0), | 265 | IDE_TFLAG_LBA48 = (1 << 0), |
| 244 | IDE_TFLAG_OUT_HOB_FEATURE = (1 << 1), | 266 | IDE_TFLAG_WRITE = (1 << 1), |
| 245 | IDE_TFLAG_OUT_HOB_NSECT = (1 << 2), | 267 | IDE_TFLAG_CUSTOM_HANDLER = (1 << 2), |
| 246 | IDE_TFLAG_OUT_HOB_LBAL = (1 << 3), | 268 | IDE_TFLAG_DMA_PIO_FALLBACK = (1 << 3), |
| 247 | IDE_TFLAG_OUT_HOB_LBAM = (1 << 4), | ||
| 248 | IDE_TFLAG_OUT_HOB_LBAH = (1 << 5), | ||
| 249 | IDE_TFLAG_OUT_HOB = IDE_TFLAG_OUT_HOB_FEATURE | | ||
| 250 | IDE_TFLAG_OUT_HOB_NSECT | | ||
| 251 | IDE_TFLAG_OUT_HOB_LBAL | | ||
| 252 | IDE_TFLAG_OUT_HOB_LBAM | | ||
| 253 | IDE_TFLAG_OUT_HOB_LBAH, | ||
| 254 | IDE_TFLAG_OUT_FEATURE = (1 << 6), | ||
| 255 | IDE_TFLAG_OUT_NSECT = (1 << 7), | ||
| 256 | IDE_TFLAG_OUT_LBAL = (1 << 8), | ||
| 257 | IDE_TFLAG_OUT_LBAM = (1 << 9), | ||
| 258 | IDE_TFLAG_OUT_LBAH = (1 << 10), | ||
| 259 | IDE_TFLAG_OUT_TF = IDE_TFLAG_OUT_FEATURE | | ||
| 260 | IDE_TFLAG_OUT_NSECT | | ||
| 261 | IDE_TFLAG_OUT_LBAL | | ||
| 262 | IDE_TFLAG_OUT_LBAM | | ||
| 263 | IDE_TFLAG_OUT_LBAH, | ||
| 264 | IDE_TFLAG_OUT_DEVICE = (1 << 11), | ||
| 265 | IDE_TFLAG_WRITE = (1 << 12), | ||
| 266 | IDE_TFLAG_CUSTOM_HANDLER = (1 << 13), | ||
| 267 | IDE_TFLAG_DMA_PIO_FALLBACK = (1 << 14), | ||
| 268 | IDE_TFLAG_IN_HOB_ERROR = (1 << 15), | ||
| 269 | IDE_TFLAG_IN_HOB_NSECT = (1 << 16), | ||
| 270 | IDE_TFLAG_IN_HOB_LBAL = (1 << 17), | ||
| 271 | IDE_TFLAG_IN_HOB_LBAM = (1 << 18), | ||
| 272 | IDE_TFLAG_IN_HOB_LBAH = (1 << 19), | ||
| 273 | IDE_TFLAG_IN_HOB_LBA = IDE_TFLAG_IN_HOB_LBAL | | ||
| 274 | IDE_TFLAG_IN_HOB_LBAM | | ||
| 275 | IDE_TFLAG_IN_HOB_LBAH, | ||
| 276 | IDE_TFLAG_IN_HOB = IDE_TFLAG_IN_HOB_ERROR | | ||
| 277 | IDE_TFLAG_IN_HOB_NSECT | | ||
| 278 | IDE_TFLAG_IN_HOB_LBA, | ||
| 279 | IDE_TFLAG_IN_ERROR = (1 << 20), | ||
| 280 | IDE_TFLAG_IN_NSECT = (1 << 21), | ||
| 281 | IDE_TFLAG_IN_LBAL = (1 << 22), | ||
| 282 | IDE_TFLAG_IN_LBAM = (1 << 23), | ||
| 283 | IDE_TFLAG_IN_LBAH = (1 << 24), | ||
| 284 | IDE_TFLAG_IN_LBA = IDE_TFLAG_IN_LBAL | | ||
| 285 | IDE_TFLAG_IN_LBAM | | ||
| 286 | IDE_TFLAG_IN_LBAH, | ||
| 287 | IDE_TFLAG_IN_TF = IDE_TFLAG_IN_NSECT | | ||
| 288 | IDE_TFLAG_IN_LBA, | ||
| 289 | IDE_TFLAG_IN_DEVICE = (1 << 25), | ||
| 290 | IDE_TFLAG_HOB = IDE_TFLAG_OUT_HOB | | ||
| 291 | IDE_TFLAG_IN_HOB, | ||
| 292 | IDE_TFLAG_TF = IDE_TFLAG_OUT_TF | | ||
| 293 | IDE_TFLAG_IN_TF, | ||
| 294 | IDE_TFLAG_DEVICE = IDE_TFLAG_OUT_DEVICE | | ||
| 295 | IDE_TFLAG_IN_DEVICE, | ||
| 296 | /* force 16-bit I/O operations */ | 269 | /* force 16-bit I/O operations */ |
| 297 | IDE_TFLAG_IO_16BIT = (1 << 26), | 270 | IDE_TFLAG_IO_16BIT = (1 << 4), |
| 298 | /* struct ide_cmd was allocated using kmalloc() */ | 271 | /* struct ide_cmd was allocated using kmalloc() */ |
| 299 | IDE_TFLAG_DYN = (1 << 27), | 272 | IDE_TFLAG_DYN = (1 << 5), |
| 300 | IDE_TFLAG_FS = (1 << 28), | 273 | IDE_TFLAG_FS = (1 << 6), |
| 301 | IDE_TFLAG_MULTI_PIO = (1 << 29), | 274 | IDE_TFLAG_MULTI_PIO = (1 << 7), |
| 302 | }; | 275 | }; |
| 303 | 276 | ||
| 304 | enum { | 277 | enum { |
| @@ -309,45 +282,34 @@ enum { | |||
| 309 | }; | 282 | }; |
| 310 | 283 | ||
| 311 | struct ide_taskfile { | 284 | struct ide_taskfile { |
| 312 | u8 hob_data; /* 0: high data byte (for TASKFILE IOCTL) */ | 285 | u8 data; /* 0: data byte (for TASKFILE ioctl) */ |
| 313 | /* 1-5: additional data to support LBA48 */ | 286 | union { /* 1: */ |
| 314 | union { | 287 | u8 error; /* read: error */ |
| 315 | u8 hob_error; /* read: error */ | 288 | u8 feature; /* write: feature */ |
| 316 | u8 hob_feature; /* write: feature */ | ||
| 317 | }; | ||
| 318 | |||
| 319 | u8 hob_nsect; | ||
| 320 | u8 hob_lbal; | ||
| 321 | u8 hob_lbam; | ||
| 322 | u8 hob_lbah; | ||
| 323 | |||
| 324 | u8 data; /* 6: low data byte (for TASKFILE IOCTL) */ | ||
| 325 | |||
| 326 | union { /* Â 7: */ | ||
| 327 | u8 error; /* read: error */ | ||
| 328 | u8 feature; /* write: feature */ | ||
| 329 | }; | 289 | }; |
| 330 | 290 | u8 nsect; /* 2: number of sectors */ | |
| 331 | u8 nsect; /* 8: number of sectors */ | 291 | u8 lbal; /* 3: LBA low */ |
| 332 | u8 lbal; /* 9: LBA low */ | 292 | u8 lbam; /* 4: LBA mid */ |
| 333 | u8 lbam; /* 10: LBA mid */ | 293 | u8 lbah; /* 5: LBA high */ |
| 334 | u8 lbah; /* 11: LBA high */ | 294 | u8 device; /* 6: device select */ |
| 335 | 295 | union { /* 7: */ | |
| 336 | u8 device; /* 12: device select */ | 296 | u8 status; /* read: status */ |
| 337 | |||
| 338 | union { /* 13: */ | ||
| 339 | u8 status; /*  read: status  */ | ||
| 340 | u8 command; /* write: command */ | 297 | u8 command; /* write: command */ |
| 341 | }; | 298 | }; |
| 342 | }; | 299 | }; |
| 343 | 300 | ||
| 344 | struct ide_cmd { | 301 | struct ide_cmd { |
| 345 | union { | 302 | struct ide_taskfile tf; |
| 346 | struct ide_taskfile tf; | 303 | struct ide_taskfile hob; |
| 347 | u8 tf_array[14]; | 304 | struct { |
| 348 | }; | 305 | struct { |
| 306 | u8 tf; | ||
| 307 | u8 hob; | ||
| 308 | } out, in; | ||
| 309 | } valid; | ||
| 310 | |||
| 311 | u8 tf_flags; | ||
| 349 | u8 ftf_flags; /* for TASKFILE ioctl */ | 312 | u8 ftf_flags; /* for TASKFILE ioctl */ |
| 350 | u32 tf_flags; | ||
| 351 | int protocol; | 313 | int protocol; |
| 352 | 314 | ||
| 353 | int sg_nents; /* number of sg entries */ | 315 | int sg_nents; /* number of sg entries */ |
| @@ -662,8 +624,8 @@ struct ide_tp_ops { | |||
| 662 | void (*write_devctl)(struct hwif_s *, u8); | 624 | void (*write_devctl)(struct hwif_s *, u8); |
| 663 | 625 | ||
| 664 | void (*dev_select)(ide_drive_t *); | 626 | void (*dev_select)(ide_drive_t *); |
| 665 | void (*tf_load)(ide_drive_t *, struct ide_cmd *); | 627 | void (*tf_load)(ide_drive_t *, struct ide_taskfile *, u8); |
| 666 | void (*tf_read)(ide_drive_t *, struct ide_cmd *); | 628 | void (*tf_read)(ide_drive_t *, struct ide_taskfile *, u8); |
| 667 | 629 | ||
| 668 | void (*input_data)(ide_drive_t *, struct ide_cmd *, | 630 | void (*input_data)(ide_drive_t *, struct ide_cmd *, |
| 669 | void *, unsigned int); | 631 | void *, unsigned int); |
| @@ -1162,7 +1124,8 @@ extern int ide_devset_execute(ide_drive_t *drive, | |||
| 1162 | void ide_complete_cmd(ide_drive_t *, struct ide_cmd *, u8, u8); | 1124 | void ide_complete_cmd(ide_drive_t *, struct ide_cmd *, u8, u8); |
| 1163 | int ide_complete_rq(ide_drive_t *, int, unsigned int); | 1125 | int ide_complete_rq(ide_drive_t *, int, unsigned int); |
| 1164 | 1126 | ||
| 1165 | void ide_tf_dump(const char *, struct ide_taskfile *); | 1127 | void ide_tf_readback(ide_drive_t *drive, struct ide_cmd *cmd); |
| 1128 | void ide_tf_dump(const char *, struct ide_cmd *); | ||
| 1166 | 1129 | ||
| 1167 | void ide_exec_command(ide_hwif_t *, u8); | 1130 | void ide_exec_command(ide_hwif_t *, u8); |
| 1168 | u8 ide_read_status(ide_hwif_t *); | 1131 | u8 ide_read_status(ide_hwif_t *); |
| @@ -1170,8 +1133,8 @@ u8 ide_read_altstatus(ide_hwif_t *); | |||
| 1170 | void ide_write_devctl(ide_hwif_t *, u8); | 1133 | void ide_write_devctl(ide_hwif_t *, u8); |
| 1171 | 1134 | ||
| 1172 | void ide_dev_select(ide_drive_t *); | 1135 | void ide_dev_select(ide_drive_t *); |
| 1173 | void ide_tf_load(ide_drive_t *, struct ide_cmd *); | 1136 | void ide_tf_load(ide_drive_t *, struct ide_taskfile *, u8); |
| 1174 | void ide_tf_read(ide_drive_t *, struct ide_cmd *); | 1137 | void ide_tf_read(ide_drive_t *, struct ide_taskfile *, u8); |
| 1175 | 1138 | ||
| 1176 | void ide_input_data(ide_drive_t *, struct ide_cmd *, void *, unsigned int); | 1139 | void ide_input_data(ide_drive_t *, struct ide_cmd *, void *, unsigned int); |
| 1177 | void ide_output_data(ide_drive_t *, struct ide_cmd *, void *, unsigned int); | 1140 | void ide_output_data(ide_drive_t *, struct ide_cmd *, void *, unsigned int); |
| @@ -1529,7 +1492,7 @@ static inline void ide_set_hwifdata (ide_hwif_t * hwif, void *data) | |||
| 1529 | 1492 | ||
| 1530 | extern void ide_toggle_bounce(ide_drive_t *drive, int on); | 1493 | extern void ide_toggle_bounce(ide_drive_t *drive, int on); |
| 1531 | 1494 | ||
| 1532 | u64 ide_get_lba_addr(struct ide_taskfile *, int); | 1495 | u64 ide_get_lba_addr(struct ide_cmd *, int); |
| 1533 | u8 ide_dump_status(ide_drive_t *, const char *, u8); | 1496 | u8 ide_dump_status(ide_drive_t *, const char *, u8); |
| 1534 | 1497 | ||
| 1535 | struct ide_timing { | 1498 | struct ide_timing { |
diff --git a/include/linux/irq.h b/include/linux/irq.h index ca507c9426b0..b7cbeed972e4 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
| @@ -487,6 +487,16 @@ static inline void init_copy_desc_masks(struct irq_desc *old_desc, | |||
| 487 | #endif | 487 | #endif |
| 488 | } | 488 | } |
| 489 | 489 | ||
| 490 | static inline void free_desc_masks(struct irq_desc *old_desc, | ||
| 491 | struct irq_desc *new_desc) | ||
| 492 | { | ||
| 493 | free_cpumask_var(old_desc->affinity); | ||
| 494 | |||
| 495 | #ifdef CONFIG_GENERIC_PENDING_IRQ | ||
| 496 | free_cpumask_var(old_desc->pending_mask); | ||
| 497 | #endif | ||
| 498 | } | ||
| 499 | |||
| 490 | #else /* !CONFIG_SMP */ | 500 | #else /* !CONFIG_SMP */ |
| 491 | 501 | ||
| 492 | static inline bool init_alloc_desc_masks(struct irq_desc *desc, int cpu, | 502 | static inline bool init_alloc_desc_masks(struct irq_desc *desc, int cpu, |
| @@ -500,6 +510,10 @@ static inline void init_copy_desc_masks(struct irq_desc *old_desc, | |||
| 500 | { | 510 | { |
| 501 | } | 511 | } |
| 502 | 512 | ||
| 513 | static inline void free_desc_masks(struct irq_desc *old_desc, | ||
| 514 | struct irq_desc *new_desc) | ||
| 515 | { | ||
| 516 | } | ||
| 503 | #endif /* CONFIG_SMP */ | 517 | #endif /* CONFIG_SMP */ |
| 504 | 518 | ||
| 505 | #endif /* _LINUX_IRQ_H */ | 519 | #endif /* _LINUX_IRQ_H */ |
diff --git a/include/linux/kmod.h b/include/linux/kmod.h index d5fa565086d1..384ca8bbf1ac 100644 --- a/include/linux/kmod.h +++ b/include/linux/kmod.h | |||
| @@ -34,7 +34,7 @@ extern int __request_module(bool wait, const char *name, ...) \ | |||
| 34 | #define request_module(mod...) __request_module(true, mod) | 34 | #define request_module(mod...) __request_module(true, mod) |
| 35 | #define request_module_nowait(mod...) __request_module(false, mod) | 35 | #define request_module_nowait(mod...) __request_module(false, mod) |
| 36 | #define try_then_request_module(x, mod...) \ | 36 | #define try_then_request_module(x, mod...) \ |
| 37 | ((x) ?: (__request_module(false, mod), (x))) | 37 | ((x) ?: (__request_module(true, mod), (x))) |
| 38 | #else | 38 | #else |
| 39 | static inline int request_module(const char *name, ...) { return -ENOSYS; } | 39 | static inline int request_module(const char *name, ...) { return -ENOSYS; } |
| 40 | static inline int request_module_nowait(const char *name, ...) { return -ENOSYS; } | 40 | static inline int request_module_nowait(const char *name, ...) { return -ENOSYS; } |
diff --git a/include/linux/mfd/pcf50633/core.h b/include/linux/mfd/pcf50633/core.h index 4455b212d75a..c8f51c3c0a72 100644 --- a/include/linux/mfd/pcf50633/core.h +++ b/include/linux/mfd/pcf50633/core.h | |||
| @@ -29,6 +29,8 @@ struct pcf50633_platform_data { | |||
| 29 | char **batteries; | 29 | char **batteries; |
| 30 | int num_batteries; | 30 | int num_batteries; |
| 31 | 31 | ||
| 32 | int charging_restart_interval; | ||
| 33 | |||
| 32 | /* Callbacks */ | 34 | /* Callbacks */ |
| 33 | void (*probe_done)(struct pcf50633 *); | 35 | void (*probe_done)(struct pcf50633 *); |
| 34 | void (*mbc_event_callback)(struct pcf50633 *, int); | 36 | void (*mbc_event_callback)(struct pcf50633 *, int); |
diff --git a/include/linux/mfd/pcf50633/mbc.h b/include/linux/mfd/pcf50633/mbc.h index 6e17619b773a..4119579acf2c 100644 --- a/include/linux/mfd/pcf50633/mbc.h +++ b/include/linux/mfd/pcf50633/mbc.h | |||
| @@ -128,7 +128,6 @@ enum pcf50633_reg_mbcs3 { | |||
| 128 | int pcf50633_mbc_usb_curlim_set(struct pcf50633 *pcf, int ma); | 128 | int pcf50633_mbc_usb_curlim_set(struct pcf50633 *pcf, int ma); |
| 129 | 129 | ||
| 130 | int pcf50633_mbc_get_status(struct pcf50633 *); | 130 | int pcf50633_mbc_get_status(struct pcf50633 *); |
| 131 | void pcf50633_mbc_set_status(struct pcf50633 *, int what, int status); | ||
| 132 | 131 | ||
| 133 | #endif | 132 | #endif |
| 134 | 133 | ||
diff --git a/include/linux/pda_power.h b/include/linux/pda_power.h index cb7d10f30763..d4cf7a2ceb3e 100644 --- a/include/linux/pda_power.h +++ b/include/linux/pda_power.h | |||
| @@ -31,6 +31,8 @@ struct pda_power_pdata { | |||
| 31 | unsigned int wait_for_status; /* msecs, default is 500 */ | 31 | unsigned int wait_for_status; /* msecs, default is 500 */ |
| 32 | unsigned int wait_for_charger; /* msecs, default is 500 */ | 32 | unsigned int wait_for_charger; /* msecs, default is 500 */ |
| 33 | unsigned int polling_interval; /* msecs, default is 2000 */ | 33 | unsigned int polling_interval; /* msecs, default is 2000 */ |
| 34 | |||
| 35 | unsigned long ac_max_uA; /* current to draw when on AC */ | ||
| 34 | }; | 36 | }; |
| 35 | 37 | ||
| 36 | #endif /* __PDA_POWER_H__ */ | 38 | #endif /* __PDA_POWER_H__ */ |
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index ee5615d65211..cfda2d5ad319 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
| @@ -168,4 +168,56 @@ static inline void free_percpu(void *p) | |||
| 168 | #define alloc_percpu(type) (type *)__alloc_percpu(sizeof(type), \ | 168 | #define alloc_percpu(type) (type *)__alloc_percpu(sizeof(type), \ |
| 169 | __alignof__(type)) | 169 | __alignof__(type)) |
| 170 | 170 | ||
| 171 | /* | ||
| 172 | * Optional methods for optimized non-lvalue per-cpu variable access. | ||
| 173 | * | ||
| 174 | * @var can be a percpu variable or a field of it and its size should | ||
| 175 | * equal char, int or long. percpu_read() evaluates to a lvalue and | ||
| 176 | * all others to void. | ||
| 177 | * | ||
| 178 | * These operations are guaranteed to be atomic w.r.t. preemption. | ||
| 179 | * The generic versions use plain get/put_cpu_var(). Archs are | ||
| 180 | * encouraged to implement single-instruction alternatives which don't | ||
| 181 | * require preemption protection. | ||
| 182 | */ | ||
| 183 | #ifndef percpu_read | ||
| 184 | # define percpu_read(var) \ | ||
| 185 | ({ \ | ||
| 186 | typeof(per_cpu_var(var)) __tmp_var__; \ | ||
| 187 | __tmp_var__ = get_cpu_var(var); \ | ||
| 188 | put_cpu_var(var); \ | ||
| 189 | __tmp_var__; \ | ||
| 190 | }) | ||
| 191 | #endif | ||
| 192 | |||
| 193 | #define __percpu_generic_to_op(var, val, op) \ | ||
| 194 | do { \ | ||
| 195 | get_cpu_var(var) op val; \ | ||
| 196 | put_cpu_var(var); \ | ||
| 197 | } while (0) | ||
| 198 | |||
| 199 | #ifndef percpu_write | ||
| 200 | # define percpu_write(var, val) __percpu_generic_to_op(var, (val), =) | ||
| 201 | #endif | ||
| 202 | |||
| 203 | #ifndef percpu_add | ||
| 204 | # define percpu_add(var, val) __percpu_generic_to_op(var, (val), +=) | ||
| 205 | #endif | ||
| 206 | |||
| 207 | #ifndef percpu_sub | ||
| 208 | # define percpu_sub(var, val) __percpu_generic_to_op(var, (val), -=) | ||
| 209 | #endif | ||
| 210 | |||
| 211 | #ifndef percpu_and | ||
| 212 | # define percpu_and(var, val) __percpu_generic_to_op(var, (val), &=) | ||
| 213 | #endif | ||
| 214 | |||
| 215 | #ifndef percpu_or | ||
| 216 | # define percpu_or(var, val) __percpu_generic_to_op(var, (val), |=) | ||
| 217 | #endif | ||
| 218 | |||
| 219 | #ifndef percpu_xor | ||
| 220 | # define percpu_xor(var, val) __percpu_generic_to_op(var, (val), ^=) | ||
| 221 | #endif | ||
| 222 | |||
| 171 | #endif /* __LINUX_PERCPU_H */ | 223 | #endif /* __LINUX_PERCPU_H */ |
diff --git a/include/linux/rotary_encoder.h b/include/linux/rotary_encoder.h new file mode 100644 index 000000000000..12d63a30c347 --- /dev/null +++ b/include/linux/rotary_encoder.h | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | #ifndef __ROTARY_ENCODER_H__ | ||
| 2 | #define __ROTARY_ENCODER_H__ | ||
| 3 | |||
| 4 | struct rotary_encoder_platform_data { | ||
| 5 | unsigned int steps; | ||
| 6 | unsigned int axis; | ||
| 7 | unsigned int gpio_a; | ||
| 8 | unsigned int gpio_b; | ||
| 9 | unsigned int inverted_a; | ||
| 10 | unsigned int inverted_b; | ||
| 11 | }; | ||
| 12 | |||
| 13 | #endif /* __ROTARY_ENCODER_H__ */ | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index 98e1fe51601d..b4c38bc8049c 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -205,7 +205,8 @@ extern unsigned long long time_sync_thresh; | |||
| 205 | #define task_is_stopped_or_traced(task) \ | 205 | #define task_is_stopped_or_traced(task) \ |
| 206 | ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0) | 206 | ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0) |
| 207 | #define task_contributes_to_load(task) \ | 207 | #define task_contributes_to_load(task) \ |
| 208 | ((task->state & TASK_UNINTERRUPTIBLE) != 0) | 208 | ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \ |
| 209 | (task->flags & PF_FROZEN) == 0) | ||
| 209 | 210 | ||
| 210 | #define __set_task_state(tsk, state_value) \ | 211 | #define __set_task_state(tsk, state_value) \ |
| 211 | do { (tsk)->state = (state_value); } while (0) | 212 | do { (tsk)->state = (state_value); } while (0) |
diff --git a/include/linux/serial_max3100.h b/include/linux/serial_max3100.h new file mode 100644 index 000000000000..4976befb6aeb --- /dev/null +++ b/include/linux/serial_max3100.h | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | /* | ||
| 2 | * | ||
| 3 | * Copyright (C) 2007 Christian Pellegrin | ||
| 4 | * | ||
| 5 | * This program is free software; you can redistribute it and/or modify | ||
| 6 | * it under the terms of the GNU General Public License as published by | ||
| 7 | * the Free Software Foundation; either version 2 of the License, or | ||
| 8 | * (at your option) any later version. | ||
| 9 | */ | ||
| 10 | |||
| 11 | |||
| 12 | #ifndef _LINUX_SERIAL_MAX3100_H | ||
| 13 | #define _LINUX_SERIAL_MAX3100_H 1 | ||
| 14 | |||
| 15 | |||
| 16 | /** | ||
| 17 | * struct plat_max3100 - MAX3100 SPI UART platform data | ||
| 18 | * @loopback: force MAX3100 in loopback | ||
| 19 | * @crystal: 1 for 3.6864 Mhz, 0 for 1.8432 | ||
| 20 | * @max3100_hw_suspend: MAX3100 has a shutdown pin. This is a hook | ||
| 21 | * called on suspend and resume to activate it. | ||
| 22 | * @poll_time: poll time for CTS signal in ms, 0 disables (so no hw | ||
| 23 | * flow ctrl is possible but you have less CPU usage) | ||
| 24 | * | ||
| 25 | * You should use this structure in your machine description to specify | ||
| 26 | * how the MAX3100 is connected. Example: | ||
| 27 | * | ||
| 28 | * static struct plat_max3100 max3100_plat_data = { | ||
| 29 | * .loopback = 0, | ||
| 30 | * .crystal = 0, | ||
| 31 | * .poll_time = 100, | ||
| 32 | * }; | ||
| 33 | * | ||
| 34 | * static struct spi_board_info spi_board_info[] = { | ||
| 35 | * { | ||
| 36 | * .modalias = "max3100", | ||
| 37 | * .platform_data = &max3100_plat_data, | ||
| 38 | * .irq = IRQ_EINT12, | ||
| 39 | * .max_speed_hz = 5*1000*1000, | ||
| 40 | * .chip_select = 0, | ||
| 41 | * }, | ||
| 42 | * }; | ||
| 43 | * | ||
| 44 | **/ | ||
| 45 | struct plat_max3100 { | ||
| 46 | int loopback; | ||
| 47 | int crystal; | ||
| 48 | void (*max3100_hw_suspend) (int suspend); | ||
| 49 | int poll_time; | ||
| 50 | }; | ||
| 51 | |||
| 52 | #endif | ||
diff --git a/include/linux/spi/ad7879.h b/include/linux/spi/ad7879.h new file mode 100644 index 000000000000..4231104c9afa --- /dev/null +++ b/include/linux/spi/ad7879.h | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | /* linux/spi/ad7879.h */ | ||
| 2 | |||
| 3 | /* Touchscreen characteristics vary between boards and models. The | ||
| 4 | * platform_data for the device's "struct device" holds this information. | ||
| 5 | * | ||
| 6 | * It's OK if the min/max values are zero. | ||
| 7 | */ | ||
| 8 | struct ad7879_platform_data { | ||
| 9 | u16 model; /* 7879 */ | ||
| 10 | u16 x_plate_ohms; | ||
| 11 | u16 x_min, x_max; | ||
| 12 | u16 y_min, y_max; | ||
| 13 | u16 pressure_min, pressure_max; | ||
| 14 | |||
| 15 | /* [0..255] 0=OFF Starts at 1=550us and goes | ||
| 16 | * all the way to 9.440ms in steps of 35us. | ||
| 17 | */ | ||
| 18 | u8 pen_down_acc_interval; | ||
| 19 | /* [0..15] Starts at 0=128us and goes all the | ||
| 20 | * way to 4.096ms in steps of 128us. | ||
| 21 | */ | ||
| 22 | u8 first_conversion_delay; | ||
| 23 | /* [0..3] 0 = 2us, 1 = 4us, 2 = 8us, 3 = 16us */ | ||
| 24 | u8 acquisition_time; | ||
| 25 | /* [0..3] Average X middle samples 0 = 2, 1 = 4, 2 = 8, 3 = 16 */ | ||
| 26 | u8 averaging; | ||
| 27 | /* [0..3] Perform X measurements 0 = OFF, | ||
| 28 | * 1 = 4, 2 = 8, 3 = 16 (median > averaging) | ||
| 29 | */ | ||
| 30 | u8 median; | ||
| 31 | /* 1 = AUX/VBAT/GPIO set to GPIO Output */ | ||
| 32 | u8 gpio_output; | ||
| 33 | /* Initial GPIO pin state (valid if gpio_output = 1) */ | ||
| 34 | u8 gpio_default; | ||
| 35 | }; | ||
diff --git a/include/linux/stringify.h b/include/linux/stringify.h index 0b4388356c87..841cec8ed525 100644 --- a/include/linux/stringify.h +++ b/include/linux/stringify.h | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | * converts to "bar". | 6 | * converts to "bar". |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #define __stringify_1(x) #x | 9 | #define __stringify_1(x...) #x |
| 10 | #define __stringify(x) __stringify_1(x) | 10 | #define __stringify(x...) __stringify_1(x) |
| 11 | 11 | ||
| 12 | #endif /* !__LINUX_STRINGIFY_H */ | 12 | #endif /* !__LINUX_STRINGIFY_H */ |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 6470f74074af..dabe4ad89141 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
| @@ -65,7 +65,7 @@ struct old_linux_dirent; | |||
| 65 | #include <asm/signal.h> | 65 | #include <asm/signal.h> |
| 66 | #include <linux/quota.h> | 66 | #include <linux/quota.h> |
| 67 | #include <linux/key.h> | 67 | #include <linux/key.h> |
| 68 | #include <linux/ftrace.h> | 68 | #include <trace/syscall.h> |
| 69 | 69 | ||
| 70 | #define __SC_DECL1(t1, a1) t1 a1 | 70 | #define __SC_DECL1(t1, a1) t1 a1 |
| 71 | #define __SC_DECL2(t2, a2, ...) t2 a2, __SC_DECL1(__VA_ARGS__) | 71 | #define __SC_DECL2(t2, a2, ...) t2 a2, __SC_DECL1(__VA_ARGS__) |
