diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/fs.h | 2 | ||||
| -rw-r--r-- | include/linux/input.h | 7 | ||||
| -rw-r--r-- | include/linux/irq.h | 59 | ||||
| -rw-r--r-- | include/linux/mfd/ab8500.h | 41 | ||||
| -rw-r--r-- | include/linux/mfd/ab8500/gpio.h | 21 | ||||
| -rw-r--r-- | include/linux/sonypi.h | 1 |
6 files changed, 127 insertions, 4 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index b677bd77f2d6..52f283c1edb2 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -357,6 +357,8 @@ struct inodes_stat_t { | |||
| 357 | #define FS_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/ | 357 | #define FS_TOPDIR_FL 0x00020000 /* Top of directory hierarchies*/ |
| 358 | #define FS_EXTENT_FL 0x00080000 /* Extents */ | 358 | #define FS_EXTENT_FL 0x00080000 /* Extents */ |
| 359 | #define FS_DIRECTIO_FL 0x00100000 /* Use direct i/o */ | 359 | #define FS_DIRECTIO_FL 0x00100000 /* Use direct i/o */ |
| 360 | #define FS_NOCOW_FL 0x00800000 /* Do not cow file */ | ||
| 361 | #define FS_COW_FL 0x02000000 /* Cow file */ | ||
| 360 | #define FS_RESERVED_FL 0x80000000 /* reserved for ext2 lib */ | 362 | #define FS_RESERVED_FL 0x80000000 /* reserved for ext2 lib */ |
| 361 | 363 | ||
| 362 | #define FS_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */ | 364 | #define FS_FL_USER_VISIBLE 0x0003DFFF /* User visible flags */ |
diff --git a/include/linux/input.h b/include/linux/input.h index 056ae8a5bd9b..f3a7794a18c4 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
| @@ -664,6 +664,13 @@ struct input_keymap_entry { | |||
| 664 | #define KEY_TOUCHPAD_ON 0x213 | 664 | #define KEY_TOUCHPAD_ON 0x213 |
| 665 | #define KEY_TOUCHPAD_OFF 0x214 | 665 | #define KEY_TOUCHPAD_OFF 0x214 |
| 666 | 666 | ||
| 667 | #define KEY_CAMERA_ZOOMIN 0x215 | ||
| 668 | #define KEY_CAMERA_ZOOMOUT 0x216 | ||
| 669 | #define KEY_CAMERA_UP 0x217 | ||
| 670 | #define KEY_CAMERA_DOWN 0x218 | ||
| 671 | #define KEY_CAMERA_LEFT 0x219 | ||
| 672 | #define KEY_CAMERA_RIGHT 0x21a | ||
| 673 | |||
| 667 | #define BTN_TRIGGER_HAPPY 0x2c0 | 674 | #define BTN_TRIGGER_HAPPY 0x2c0 |
| 668 | #define BTN_TRIGGER_HAPPY1 0x2c0 | 675 | #define BTN_TRIGGER_HAPPY1 0x2c0 |
| 669 | #define BTN_TRIGGER_HAPPY2 0x2c1 | 676 | #define BTN_TRIGGER_HAPPY2 0x2c1 |
diff --git a/include/linux/irq.h b/include/linux/irq.h index 5d876c9b3a3d..b3741c83774c 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
| @@ -135,7 +135,7 @@ struct msi_desc; | |||
| 135 | * struct irq_data - per irq and irq chip data passed down to chip functions | 135 | * struct irq_data - per irq and irq chip data passed down to chip functions |
| 136 | * @irq: interrupt number | 136 | * @irq: interrupt number |
| 137 | * @node: node index useful for balancing | 137 | * @node: node index useful for balancing |
| 138 | * @state_use_accessor: status information for irq chip functions. | 138 | * @state_use_accessors: status information for irq chip functions. |
| 139 | * Use accessor functions to deal with it | 139 | * Use accessor functions to deal with it |
| 140 | * @chip: low level interrupt hardware access | 140 | * @chip: low level interrupt hardware access |
| 141 | * @handler_data: per-IRQ data for the irq_chip methods | 141 | * @handler_data: per-IRQ data for the irq_chip methods |
| @@ -174,6 +174,9 @@ struct irq_data { | |||
| 174 | * from suspend | 174 | * from suspend |
| 175 | * IRDQ_MOVE_PCNTXT - Interrupt can be moved in process | 175 | * IRDQ_MOVE_PCNTXT - Interrupt can be moved in process |
| 176 | * context | 176 | * context |
| 177 | * IRQD_IRQ_DISABLED - Disabled state of the interrupt | ||
| 178 | * IRQD_IRQ_MASKED - Masked state of the interrupt | ||
| 179 | * IRQD_IRQ_INPROGRESS - In progress state of the interrupt | ||
| 177 | */ | 180 | */ |
| 178 | enum { | 181 | enum { |
| 179 | IRQD_TRIGGER_MASK = 0xf, | 182 | IRQD_TRIGGER_MASK = 0xf, |
| @@ -184,6 +187,9 @@ enum { | |||
| 184 | IRQD_LEVEL = (1 << 13), | 187 | IRQD_LEVEL = (1 << 13), |
| 185 | IRQD_WAKEUP_STATE = (1 << 14), | 188 | IRQD_WAKEUP_STATE = (1 << 14), |
| 186 | IRQD_MOVE_PCNTXT = (1 << 15), | 189 | IRQD_MOVE_PCNTXT = (1 << 15), |
| 190 | IRQD_IRQ_DISABLED = (1 << 16), | ||
| 191 | IRQD_IRQ_MASKED = (1 << 17), | ||
| 192 | IRQD_IRQ_INPROGRESS = (1 << 18), | ||
| 187 | }; | 193 | }; |
| 188 | 194 | ||
| 189 | static inline bool irqd_is_setaffinity_pending(struct irq_data *d) | 195 | static inline bool irqd_is_setaffinity_pending(struct irq_data *d) |
| @@ -206,6 +212,11 @@ static inline bool irqd_affinity_was_set(struct irq_data *d) | |||
| 206 | return d->state_use_accessors & IRQD_AFFINITY_SET; | 212 | return d->state_use_accessors & IRQD_AFFINITY_SET; |
| 207 | } | 213 | } |
| 208 | 214 | ||
| 215 | static inline void irqd_mark_affinity_was_set(struct irq_data *d) | ||
| 216 | { | ||
| 217 | d->state_use_accessors |= IRQD_AFFINITY_SET; | ||
| 218 | } | ||
| 219 | |||
| 209 | static inline u32 irqd_get_trigger_type(struct irq_data *d) | 220 | static inline u32 irqd_get_trigger_type(struct irq_data *d) |
| 210 | { | 221 | { |
| 211 | return d->state_use_accessors & IRQD_TRIGGER_MASK; | 222 | return d->state_use_accessors & IRQD_TRIGGER_MASK; |
| @@ -235,6 +246,36 @@ static inline bool irqd_can_move_in_process_context(struct irq_data *d) | |||
| 235 | return d->state_use_accessors & IRQD_MOVE_PCNTXT; | 246 | return d->state_use_accessors & IRQD_MOVE_PCNTXT; |
| 236 | } | 247 | } |
| 237 | 248 | ||
| 249 | static inline bool irqd_irq_disabled(struct irq_data *d) | ||
| 250 | { | ||
| 251 | return d->state_use_accessors & IRQD_IRQ_DISABLED; | ||
| 252 | } | ||
| 253 | |||
| 254 | static inline bool irqd_irq_masked(struct irq_data *d) | ||
| 255 | { | ||
| 256 | return d->state_use_accessors & IRQD_IRQ_MASKED; | ||
| 257 | } | ||
| 258 | |||
| 259 | static inline bool irqd_irq_inprogress(struct irq_data *d) | ||
| 260 | { | ||
| 261 | return d->state_use_accessors & IRQD_IRQ_INPROGRESS; | ||
| 262 | } | ||
| 263 | |||
| 264 | /* | ||
| 265 | * Functions for chained handlers which can be enabled/disabled by the | ||
| 266 | * standard disable_irq/enable_irq calls. Must be called with | ||
| 267 | * irq_desc->lock held. | ||
| 268 | */ | ||
| 269 | static inline void irqd_set_chained_irq_inprogress(struct irq_data *d) | ||
| 270 | { | ||
| 271 | d->state_use_accessors |= IRQD_IRQ_INPROGRESS; | ||
| 272 | } | ||
| 273 | |||
| 274 | static inline void irqd_clr_chained_irq_inprogress(struct irq_data *d) | ||
| 275 | { | ||
| 276 | d->state_use_accessors &= ~IRQD_IRQ_INPROGRESS; | ||
| 277 | } | ||
| 278 | |||
| 238 | /** | 279 | /** |
| 239 | * struct irq_chip - hardware interrupt chip descriptor | 280 | * struct irq_chip - hardware interrupt chip descriptor |
| 240 | * | 281 | * |
| @@ -271,6 +312,8 @@ static inline bool irqd_can_move_in_process_context(struct irq_data *d) | |||
| 271 | * @irq_set_wake: enable/disable power-management wake-on of an IRQ | 312 | * @irq_set_wake: enable/disable power-management wake-on of an IRQ |
| 272 | * @irq_bus_lock: function to lock access to slow bus (i2c) chips | 313 | * @irq_bus_lock: function to lock access to slow bus (i2c) chips |
| 273 | * @irq_bus_sync_unlock:function to sync and unlock slow bus (i2c) chips | 314 | * @irq_bus_sync_unlock:function to sync and unlock slow bus (i2c) chips |
| 315 | * @irq_cpu_online: configure an interrupt source for a secondary CPU | ||
| 316 | * @irq_cpu_offline: un-configure an interrupt source for a secondary CPU | ||
| 274 | * @irq_print_chip: optional to print special chip info in show_interrupts | 317 | * @irq_print_chip: optional to print special chip info in show_interrupts |
| 275 | * @flags: chip specific flags | 318 | * @flags: chip specific flags |
| 276 | * | 319 | * |
| @@ -319,6 +362,9 @@ struct irq_chip { | |||
| 319 | void (*irq_bus_lock)(struct irq_data *data); | 362 | void (*irq_bus_lock)(struct irq_data *data); |
| 320 | void (*irq_bus_sync_unlock)(struct irq_data *data); | 363 | void (*irq_bus_sync_unlock)(struct irq_data *data); |
| 321 | 364 | ||
| 365 | void (*irq_cpu_online)(struct irq_data *data); | ||
| 366 | void (*irq_cpu_offline)(struct irq_data *data); | ||
| 367 | |||
| 322 | void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); | 368 | void (*irq_print_chip)(struct irq_data *data, struct seq_file *p); |
| 323 | 369 | ||
| 324 | unsigned long flags; | 370 | unsigned long flags; |
| @@ -335,11 +381,14 @@ struct irq_chip { | |||
| 335 | * IRQCHIP_SET_TYPE_MASKED: Mask before calling chip.irq_set_type() | 381 | * IRQCHIP_SET_TYPE_MASKED: Mask before calling chip.irq_set_type() |
| 336 | * IRQCHIP_EOI_IF_HANDLED: Only issue irq_eoi() when irq was handled | 382 | * IRQCHIP_EOI_IF_HANDLED: Only issue irq_eoi() when irq was handled |
| 337 | * IRQCHIP_MASK_ON_SUSPEND: Mask non wake irqs in the suspend path | 383 | * IRQCHIP_MASK_ON_SUSPEND: Mask non wake irqs in the suspend path |
| 384 | * IRQCHIP_ONOFFLINE_ENABLED: Only call irq_on/off_line callbacks | ||
| 385 | * when irq enabled | ||
| 338 | */ | 386 | */ |
| 339 | enum { | 387 | enum { |
| 340 | IRQCHIP_SET_TYPE_MASKED = (1 << 0), | 388 | IRQCHIP_SET_TYPE_MASKED = (1 << 0), |
| 341 | IRQCHIP_EOI_IF_HANDLED = (1 << 1), | 389 | IRQCHIP_EOI_IF_HANDLED = (1 << 1), |
| 342 | IRQCHIP_MASK_ON_SUSPEND = (1 << 2), | 390 | IRQCHIP_MASK_ON_SUSPEND = (1 << 2), |
| 391 | IRQCHIP_ONOFFLINE_ENABLED = (1 << 3), | ||
| 343 | }; | 392 | }; |
| 344 | 393 | ||
| 345 | /* This include will go away once we isolated irq_desc usage to core code */ | 394 | /* This include will go away once we isolated irq_desc usage to core code */ |
| @@ -364,6 +413,10 @@ struct irqaction; | |||
| 364 | extern int setup_irq(unsigned int irq, struct irqaction *new); | 413 | extern int setup_irq(unsigned int irq, struct irqaction *new); |
| 365 | extern void remove_irq(unsigned int irq, struct irqaction *act); | 414 | extern void remove_irq(unsigned int irq, struct irqaction *act); |
| 366 | 415 | ||
| 416 | extern void irq_cpu_online(void); | ||
| 417 | extern void irq_cpu_offline(void); | ||
| 418 | extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask); | ||
| 419 | |||
| 367 | #ifdef CONFIG_GENERIC_HARDIRQS | 420 | #ifdef CONFIG_GENERIC_HARDIRQS |
| 368 | 421 | ||
| 369 | #if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ) | 422 | #if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ) |
| @@ -380,9 +433,6 @@ static inline void irq_move_masked_irq(struct irq_data *data) { } | |||
| 380 | 433 | ||
| 381 | extern int no_irq_affinity; | 434 | extern int no_irq_affinity; |
| 382 | 435 | ||
| 383 | /* Handle irq action chains: */ | ||
| 384 | extern irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action); | ||
| 385 | |||
| 386 | /* | 436 | /* |
| 387 | * Built-in IRQ handlers for various IRQ types, | 437 | * Built-in IRQ handlers for various IRQ types, |
| 388 | * callable via desc->handle_irq() | 438 | * callable via desc->handle_irq() |
| @@ -390,6 +440,7 @@ extern irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action); | |||
| 390 | extern void handle_level_irq(unsigned int irq, struct irq_desc *desc); | 440 | extern void handle_level_irq(unsigned int irq, struct irq_desc *desc); |
| 391 | extern void handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc); | 441 | extern void handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc); |
| 392 | extern void handle_edge_irq(unsigned int irq, struct irq_desc *desc); | 442 | extern void handle_edge_irq(unsigned int irq, struct irq_desc *desc); |
| 443 | extern void handle_edge_eoi_irq(unsigned int irq, struct irq_desc *desc); | ||
| 393 | extern void handle_simple_irq(unsigned int irq, struct irq_desc *desc); | 444 | extern void handle_simple_irq(unsigned int irq, struct irq_desc *desc); |
| 394 | extern void handle_percpu_irq(unsigned int irq, struct irq_desc *desc); | 445 | extern void handle_percpu_irq(unsigned int irq, struct irq_desc *desc); |
| 395 | extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc); | 446 | extern void handle_bad_irq(unsigned int irq, struct irq_desc *desc); |
diff --git a/include/linux/mfd/ab8500.h b/include/linux/mfd/ab8500.h index 6e4f77ef4d20..b31843075198 100644 --- a/include/linux/mfd/ab8500.h +++ b/include/linux/mfd/ab8500.h | |||
| @@ -74,6 +74,45 @@ | |||
| 74 | #define AB8500_INT_ACC_DETECT_21DB_F 37 | 74 | #define AB8500_INT_ACC_DETECT_21DB_F 37 |
| 75 | #define AB8500_INT_ACC_DETECT_21DB_R 38 | 75 | #define AB8500_INT_ACC_DETECT_21DB_R 38 |
| 76 | #define AB8500_INT_GP_SW_ADC_CONV_END 39 | 76 | #define AB8500_INT_GP_SW_ADC_CONV_END 39 |
| 77 | #define AB8500_INT_ACC_DETECT_1DB_F 33 | ||
| 78 | #define AB8500_INT_ACC_DETECT_1DB_R 34 | ||
| 79 | #define AB8500_INT_ACC_DETECT_22DB_F 35 | ||
| 80 | #define AB8500_INT_ACC_DETECT_22DB_R 36 | ||
| 81 | #define AB8500_INT_ACC_DETECT_21DB_F 37 | ||
| 82 | #define AB8500_INT_ACC_DETECT_21DB_R 38 | ||
| 83 | #define AB8500_INT_GP_SW_ADC_CONV_END 39 | ||
| 84 | #define AB8500_INT_GPIO6R 40 | ||
| 85 | #define AB8500_INT_GPIO7R 41 | ||
| 86 | #define AB8500_INT_GPIO8R 42 | ||
| 87 | #define AB8500_INT_GPIO9R 43 | ||
| 88 | #define AB8500_INT_GPIO10R 44 | ||
| 89 | #define AB8500_INT_GPIO11R 45 | ||
| 90 | #define AB8500_INT_GPIO12R 46 | ||
| 91 | #define AB8500_INT_GPIO13R 47 | ||
| 92 | #define AB8500_INT_GPIO24R 48 | ||
| 93 | #define AB8500_INT_GPIO25R 49 | ||
| 94 | #define AB8500_INT_GPIO36R 50 | ||
| 95 | #define AB8500_INT_GPIO37R 51 | ||
| 96 | #define AB8500_INT_GPIO38R 52 | ||
| 97 | #define AB8500_INT_GPIO39R 53 | ||
| 98 | #define AB8500_INT_GPIO40R 54 | ||
| 99 | #define AB8500_INT_GPIO41R 55 | ||
| 100 | #define AB8500_INT_GPIO6F 56 | ||
| 101 | #define AB8500_INT_GPIO7F 57 | ||
| 102 | #define AB8500_INT_GPIO8F 58 | ||
| 103 | #define AB8500_INT_GPIO9F 59 | ||
| 104 | #define AB8500_INT_GPIO10F 60 | ||
| 105 | #define AB8500_INT_GPIO11F 61 | ||
| 106 | #define AB8500_INT_GPIO12F 62 | ||
| 107 | #define AB8500_INT_GPIO13F 63 | ||
| 108 | #define AB8500_INT_GPIO24F 64 | ||
| 109 | #define AB8500_INT_GPIO25F 65 | ||
| 110 | #define AB8500_INT_GPIO36F 66 | ||
| 111 | #define AB8500_INT_GPIO37F 67 | ||
| 112 | #define AB8500_INT_GPIO38F 68 | ||
| 113 | #define AB8500_INT_GPIO39F 69 | ||
| 114 | #define AB8500_INT_GPIO40F 70 | ||
| 115 | #define AB8500_INT_GPIO41F 71 | ||
| 77 | #define AB8500_INT_ADP_SOURCE_ERROR 72 | 116 | #define AB8500_INT_ADP_SOURCE_ERROR 72 |
| 78 | #define AB8500_INT_ADP_SINK_ERROR 73 | 117 | #define AB8500_INT_ADP_SINK_ERROR 73 |
| 79 | #define AB8500_INT_ADP_PROBE_PLUG 74 | 118 | #define AB8500_INT_ADP_PROBE_PLUG 74 |
| @@ -141,6 +180,7 @@ struct ab8500 { | |||
| 141 | 180 | ||
| 142 | struct regulator_reg_init; | 181 | struct regulator_reg_init; |
| 143 | struct regulator_init_data; | 182 | struct regulator_init_data; |
| 183 | struct ab8500_gpio_platform_data; | ||
| 144 | 184 | ||
| 145 | /** | 185 | /** |
| 146 | * struct ab8500_platform_data - AB8500 platform data | 186 | * struct ab8500_platform_data - AB8500 platform data |
| @@ -158,6 +198,7 @@ struct ab8500_platform_data { | |||
| 158 | struct ab8500_regulator_reg_init *regulator_reg_init; | 198 | struct ab8500_regulator_reg_init *regulator_reg_init; |
| 159 | int num_regulator; | 199 | int num_regulator; |
| 160 | struct regulator_init_data *regulator; | 200 | struct regulator_init_data *regulator; |
| 201 | struct ab8500_gpio_platform_data *gpio; | ||
| 161 | }; | 202 | }; |
| 162 | 203 | ||
| 163 | extern int __devinit ab8500_init(struct ab8500 *ab8500); | 204 | extern int __devinit ab8500_init(struct ab8500 *ab8500); |
diff --git a/include/linux/mfd/ab8500/gpio.h b/include/linux/mfd/ab8500/gpio.h new file mode 100644 index 000000000000..488a8c920a29 --- /dev/null +++ b/include/linux/mfd/ab8500/gpio.h | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | /* | ||
| 2 | * Copyright ST-Ericsson 2010. | ||
| 3 | * | ||
| 4 | * Author: Bibek Basu <bibek.basu@stericsson.com> | ||
| 5 | * Licensed under GPLv2. | ||
| 6 | */ | ||
| 7 | |||
| 8 | #ifndef _AB8500_GPIO_H | ||
| 9 | #define _AB8500_GPIO_H | ||
| 10 | |||
| 11 | /* | ||
| 12 | * Platform data to register a block: only the initial gpio/irq number. | ||
| 13 | */ | ||
| 14 | |||
| 15 | struct ab8500_gpio_platform_data { | ||
| 16 | int gpio_base; | ||
| 17 | u32 irq_base; | ||
| 18 | u8 config_reg[7]; | ||
| 19 | }; | ||
| 20 | |||
| 21 | #endif /* _AB8500_GPIO_H */ | ||
diff --git a/include/linux/sonypi.h b/include/linux/sonypi.h index 0e6dc3891942..c0f87da78f8a 100644 --- a/include/linux/sonypi.h +++ b/include/linux/sonypi.h | |||
| @@ -40,6 +40,7 @@ | |||
| 40 | 40 | ||
| 41 | /* events the user application reading /dev/sonypi can use */ | 41 | /* events the user application reading /dev/sonypi can use */ |
| 42 | 42 | ||
| 43 | #define SONYPI_EVENT_IGNORE 0 | ||
| 43 | #define SONYPI_EVENT_JOGDIAL_DOWN 1 | 44 | #define SONYPI_EVENT_JOGDIAL_DOWN 1 |
| 44 | #define SONYPI_EVENT_JOGDIAL_UP 2 | 45 | #define SONYPI_EVENT_JOGDIAL_UP 2 |
| 45 | #define SONYPI_EVENT_JOGDIAL_DOWN_PRESSED 3 | 46 | #define SONYPI_EVENT_JOGDIAL_DOWN_PRESSED 3 |
