diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/amba/pl061.h | 15 | ||||
| -rw-r--r-- | include/linux/dma-mapping.h | 43 | ||||
| -rw-r--r-- | include/linux/i2c.h | 72 | ||||
| -rw-r--r-- | include/linux/kernel.h | 2 | ||||
| -rw-r--r-- | include/linux/types.h | 2 |
5 files changed, 68 insertions, 66 deletions
diff --git a/include/linux/amba/pl061.h b/include/linux/amba/pl061.h new file mode 100644 index 000000000000..b4fbd9862606 --- /dev/null +++ b/include/linux/amba/pl061.h | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | /* platform data for the PL061 GPIO driver */ | ||
| 2 | |||
| 3 | struct pl061_platform_data { | ||
| 4 | /* number of the first GPIO */ | ||
| 5 | unsigned gpio_base; | ||
| 6 | |||
| 7 | /* number of the first IRQ. | ||
| 8 | * If the IRQ functionality in not desired this must be set to | ||
| 9 | * (unsigned) -1. | ||
| 10 | */ | ||
| 11 | unsigned irq_base; | ||
| 12 | |||
| 13 | u8 directions; /* startup directions, 1: out, 0: in */ | ||
| 14 | u8 values; /* startup values */ | ||
| 15 | }; | ||
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index 8083b6a36a38..07dfd460d286 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h | |||
| @@ -63,24 +63,26 @@ struct dma_map_ops { | |||
| 63 | 63 | ||
| 64 | #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) | 64 | #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) |
| 65 | 65 | ||
| 66 | typedef u64 DMA_nnBIT_MASK __deprecated; | ||
| 67 | |||
| 66 | /* | 68 | /* |
| 67 | * NOTE: do not use the below macros in new code and do not add new definitions | 69 | * NOTE: do not use the below macros in new code and do not add new definitions |
| 68 | * here. | 70 | * here. |
| 69 | * | 71 | * |
| 70 | * Instead, just open-code DMA_BIT_MASK(n) within your driver | 72 | * Instead, just open-code DMA_BIT_MASK(n) within your driver |
| 71 | */ | 73 | */ |
| 72 | #define DMA_64BIT_MASK DMA_BIT_MASK(64) | 74 | #define DMA_64BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(64) |
| 73 | #define DMA_48BIT_MASK DMA_BIT_MASK(48) | 75 | #define DMA_48BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(48) |
| 74 | #define DMA_47BIT_MASK DMA_BIT_MASK(47) | 76 | #define DMA_47BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(47) |
| 75 | #define DMA_40BIT_MASK DMA_BIT_MASK(40) | 77 | #define DMA_40BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(40) |
| 76 | #define DMA_39BIT_MASK DMA_BIT_MASK(39) | 78 | #define DMA_39BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(39) |
| 77 | #define DMA_35BIT_MASK DMA_BIT_MASK(35) | 79 | #define DMA_35BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(35) |
| 78 | #define DMA_32BIT_MASK DMA_BIT_MASK(32) | 80 | #define DMA_32BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(32) |
| 79 | #define DMA_31BIT_MASK DMA_BIT_MASK(31) | 81 | #define DMA_31BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(31) |
| 80 | #define DMA_30BIT_MASK DMA_BIT_MASK(30) | 82 | #define DMA_30BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(30) |
| 81 | #define DMA_29BIT_MASK DMA_BIT_MASK(29) | 83 | #define DMA_29BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(29) |
| 82 | #define DMA_28BIT_MASK DMA_BIT_MASK(28) | 84 | #define DMA_28BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(28) |
| 83 | #define DMA_24BIT_MASK DMA_BIT_MASK(24) | 85 | #define DMA_24BIT_MASK (DMA_nnBIT_MASK)DMA_BIT_MASK(24) |
| 84 | 86 | ||
| 85 | #define DMA_MASK_NONE 0x0ULL | 87 | #define DMA_MASK_NONE 0x0ULL |
| 86 | 88 | ||
| @@ -107,9 +109,20 @@ static inline int is_buffer_dma_capable(u64 mask, dma_addr_t addr, size_t size) | |||
| 107 | #include <asm-generic/dma-mapping-broken.h> | 109 | #include <asm-generic/dma-mapping-broken.h> |
| 108 | #endif | 110 | #endif |
| 109 | 111 | ||
| 110 | /* Backwards compat, remove in 2.7.x */ | 112 | /* for backwards compatibility, removed soon */ |
| 111 | #define dma_sync_single dma_sync_single_for_cpu | 113 | static inline void __deprecated dma_sync_single(struct device *dev, |
| 112 | #define dma_sync_sg dma_sync_sg_for_cpu | 114 | dma_addr_t addr, size_t size, |
| 115 | enum dma_data_direction dir) | ||
| 116 | { | ||
| 117 | dma_sync_single_for_cpu(dev, addr, size, dir); | ||
| 118 | } | ||
| 119 | |||
| 120 | static inline void __deprecated dma_sync_sg(struct device *dev, | ||
| 121 | struct scatterlist *sg, int nelems, | ||
| 122 | enum dma_data_direction dir) | ||
| 123 | { | ||
| 124 | dma_sync_sg_for_cpu(dev, sg, nelems, dir); | ||
| 125 | } | ||
| 113 | 126 | ||
| 114 | static inline u64 dma_get_mask(struct device *dev) | 127 | static inline u64 dma_get_mask(struct device *dev) |
| 115 | { | 128 | { |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index ad2580596033..f4784c0fe975 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
| @@ -47,6 +47,7 @@ struct i2c_driver; | |||
| 47 | union i2c_smbus_data; | 47 | union i2c_smbus_data; |
| 48 | struct i2c_board_info; | 48 | struct i2c_board_info; |
| 49 | 49 | ||
| 50 | #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE) | ||
| 50 | /* | 51 | /* |
| 51 | * The master routines are the ones normally used to transmit data to devices | 52 | * The master routines are the ones normally used to transmit data to devices |
| 52 | * on a bus (or read from them). Apart from two basic transfer functions to | 53 | * on a bus (or read from them). Apart from two basic transfer functions to |
| @@ -93,6 +94,7 @@ extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client *client, | |||
| 93 | extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client *client, | 94 | extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client *client, |
| 94 | u8 command, u8 length, | 95 | u8 command, u8 length, |
| 95 | const u8 *values); | 96 | const u8 *values); |
| 97 | #endif /* I2C */ | ||
| 96 | 98 | ||
| 97 | /** | 99 | /** |
| 98 | * struct i2c_driver - represent an I2C device driver | 100 | * struct i2c_driver - represent an I2C device driver |
| @@ -100,9 +102,8 @@ extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client *client, | |||
| 100 | * @class: What kind of i2c device we instantiate (for detect) | 102 | * @class: What kind of i2c device we instantiate (for detect) |
| 101 | * @attach_adapter: Callback for bus addition (for legacy drivers) | 103 | * @attach_adapter: Callback for bus addition (for legacy drivers) |
| 102 | * @detach_adapter: Callback for bus removal (for legacy drivers) | 104 | * @detach_adapter: Callback for bus removal (for legacy drivers) |
| 103 | * @detach_client: Callback for device removal (for legacy drivers) | 105 | * @probe: Callback for device binding |
| 104 | * @probe: Callback for device binding (new-style drivers) | 106 | * @remove: Callback for device unbinding |
| 105 | * @remove: Callback for device unbinding (new-style drivers) | ||
| 106 | * @shutdown: Callback for device shutdown | 107 | * @shutdown: Callback for device shutdown |
| 107 | * @suspend: Callback for device suspend | 108 | * @suspend: Callback for device suspend |
| 108 | * @resume: Callback for device resume | 109 | * @resume: Callback for device resume |
| @@ -137,26 +138,14 @@ struct i2c_driver { | |||
| 137 | int id; | 138 | int id; |
| 138 | unsigned int class; | 139 | unsigned int class; |
| 139 | 140 | ||
| 140 | /* Notifies the driver that a new bus has appeared. This routine | 141 | /* Notifies the driver that a new bus has appeared or is about to be |
| 141 | * can be used by the driver to test if the bus meets its conditions | 142 | * removed. You should avoid using this if you can, it will probably |
| 142 | * & seek for the presence of the chip(s) it supports. If found, it | 143 | * be removed in a near future. |
| 143 | * registers the client(s) that are on the bus to the i2c admin. via | ||
| 144 | * i2c_attach_client. (LEGACY I2C DRIVERS ONLY) | ||
| 145 | */ | 144 | */ |
| 146 | int (*attach_adapter)(struct i2c_adapter *); | 145 | int (*attach_adapter)(struct i2c_adapter *); |
| 147 | int (*detach_adapter)(struct i2c_adapter *); | 146 | int (*detach_adapter)(struct i2c_adapter *); |
| 148 | 147 | ||
| 149 | /* tells the driver that a client is about to be deleted & gives it | 148 | /* Standard driver model interfaces */ |
| 150 | * the chance to remove its private data. Also, if the client struct | ||
| 151 | * has been dynamically allocated by the driver in the function above, | ||
| 152 | * it must be freed here. (LEGACY I2C DRIVERS ONLY) | ||
| 153 | */ | ||
| 154 | int (*detach_client)(struct i2c_client *) __deprecated; | ||
| 155 | |||
| 156 | /* Standard driver model interfaces, for "new style" i2c drivers. | ||
| 157 | * With the driver model, device enumeration is NEVER done by drivers; | ||
| 158 | * it's done by infrastructure. (NEW STYLE DRIVERS ONLY) | ||
| 159 | */ | ||
| 160 | int (*probe)(struct i2c_client *, const struct i2c_device_id *); | 149 | int (*probe)(struct i2c_client *, const struct i2c_device_id *); |
| 161 | int (*remove)(struct i2c_client *); | 150 | int (*remove)(struct i2c_client *); |
| 162 | 151 | ||
| @@ -191,9 +180,8 @@ struct i2c_driver { | |||
| 191 | * @driver: device's driver, hence pointer to access routines | 180 | * @driver: device's driver, hence pointer to access routines |
| 192 | * @dev: Driver model device node for the slave. | 181 | * @dev: Driver model device node for the slave. |
| 193 | * @irq: indicates the IRQ generated by this device (if any) | 182 | * @irq: indicates the IRQ generated by this device (if any) |
| 194 | * @list: list of active/busy clients (DEPRECATED) | 183 | * @detected: member of an i2c_driver.clients list or i2c-core's |
| 195 | * @detected: member of an i2c_driver.clients list | 184 | * userspace_devices list |
| 196 | * @released: used to synchronize client releases & detaches and references | ||
| 197 | * | 185 | * |
| 198 | * An i2c_client identifies a single device (i.e. chip) connected to an | 186 | * An i2c_client identifies a single device (i.e. chip) connected to an |
| 199 | * i2c bus. The behaviour exposed to Linux is defined by the driver | 187 | * i2c bus. The behaviour exposed to Linux is defined by the driver |
| @@ -209,9 +197,7 @@ struct i2c_client { | |||
| 209 | struct i2c_driver *driver; /* and our access routines */ | 197 | struct i2c_driver *driver; /* and our access routines */ |
| 210 | struct device dev; /* the device structure */ | 198 | struct device dev; /* the device structure */ |
| 211 | int irq; /* irq issued by device */ | 199 | int irq; /* irq issued by device */ |
| 212 | struct list_head list; /* DEPRECATED */ | ||
| 213 | struct list_head detected; | 200 | struct list_head detected; |
| 214 | struct completion released; | ||
| 215 | }; | 201 | }; |
| 216 | #define to_i2c_client(d) container_of(d, struct i2c_client, dev) | 202 | #define to_i2c_client(d) container_of(d, struct i2c_client, dev) |
| 217 | 203 | ||
| @@ -248,11 +234,10 @@ static inline void i2c_set_clientdata(struct i2c_client *dev, void *data) | |||
| 248 | * that, such as chip type, configuration, associated IRQ, and so on. | 234 | * that, such as chip type, configuration, associated IRQ, and so on. |
| 249 | * | 235 | * |
| 250 | * i2c_board_info is used to build tables of information listing I2C devices | 236 | * i2c_board_info is used to build tables of information listing I2C devices |
| 251 | * that are present. This information is used to grow the driver model tree | 237 | * that are present. This information is used to grow the driver model tree. |
| 252 | * for "new style" I2C drivers. For mainboards this is done statically using | 238 | * For mainboards this is done statically using i2c_register_board_info(); |
| 253 | * i2c_register_board_info(); bus numbers identify adapters that aren't | 239 | * bus numbers identify adapters that aren't yet available. For add-on boards, |
| 254 | * yet available. For add-on boards, i2c_new_device() does this dynamically | 240 | * i2c_new_device() does this dynamically with the adapter already known. |
| 255 | * with the adapter already known. | ||
| 256 | */ | 241 | */ |
| 257 | struct i2c_board_info { | 242 | struct i2c_board_info { |
| 258 | char type[I2C_NAME_SIZE]; | 243 | char type[I2C_NAME_SIZE]; |
| @@ -277,6 +262,7 @@ struct i2c_board_info { | |||
| 277 | .type = dev_type, .addr = (dev_addr) | 262 | .type = dev_type, .addr = (dev_addr) |
| 278 | 263 | ||
| 279 | 264 | ||
| 265 | #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE) | ||
| 280 | /* Add-on boards should register/unregister their devices; e.g. a board | 266 | /* Add-on boards should register/unregister their devices; e.g. a board |
| 281 | * with integrated I2C, a config eeprom, sensors, and a codec that's | 267 | * with integrated I2C, a config eeprom, sensors, and a codec that's |
| 282 | * used in conjunction with the primary hardware. | 268 | * used in conjunction with the primary hardware. |
| @@ -300,6 +286,7 @@ extern struct i2c_client * | |||
| 300 | i2c_new_dummy(struct i2c_adapter *adap, u16 address); | 286 | i2c_new_dummy(struct i2c_adapter *adap, u16 address); |
| 301 | 287 | ||
| 302 | extern void i2c_unregister_device(struct i2c_client *); | 288 | extern void i2c_unregister_device(struct i2c_client *); |
| 289 | #endif /* I2C */ | ||
| 303 | 290 | ||
| 304 | /* Mainboard arch_initcall() code should register all its I2C devices. | 291 | /* Mainboard arch_initcall() code should register all its I2C devices. |
| 305 | * This is done at arch_initcall time, before declaring any i2c adapters. | 292 | * This is done at arch_initcall time, before declaring any i2c adapters. |
| @@ -316,7 +303,7 @@ i2c_register_board_info(int busnum, struct i2c_board_info const *info, | |||
| 316 | { | 303 | { |
| 317 | return 0; | 304 | return 0; |
| 318 | } | 305 | } |
| 319 | #endif | 306 | #endif /* I2C_BOARDINFO */ |
| 320 | 307 | ||
| 321 | /* | 308 | /* |
| 322 | * The following structs are for those who like to implement new bus drivers: | 309 | * The following structs are for those who like to implement new bus drivers: |
| @@ -352,21 +339,15 @@ struct i2c_adapter { | |||
| 352 | const struct i2c_algorithm *algo; /* the algorithm to access the bus */ | 339 | const struct i2c_algorithm *algo; /* the algorithm to access the bus */ |
| 353 | void *algo_data; | 340 | void *algo_data; |
| 354 | 341 | ||
| 355 | /* --- administration stuff. */ | ||
| 356 | int (*client_register)(struct i2c_client *) __deprecated; | ||
| 357 | int (*client_unregister)(struct i2c_client *) __deprecated; | ||
| 358 | |||
| 359 | /* data fields that are valid for all devices */ | 342 | /* data fields that are valid for all devices */ |
| 360 | u8 level; /* nesting level for lockdep */ | 343 | u8 level; /* nesting level for lockdep */ |
| 361 | struct mutex bus_lock; | 344 | struct mutex bus_lock; |
| 362 | struct mutex clist_lock; | ||
| 363 | 345 | ||
| 364 | int timeout; /* in jiffies */ | 346 | int timeout; /* in jiffies */ |
| 365 | int retries; | 347 | int retries; |
| 366 | struct device dev; /* the adapter device */ | 348 | struct device dev; /* the adapter device */ |
| 367 | 349 | ||
| 368 | int nr; | 350 | int nr; |
| 369 | struct list_head clients; /* DEPRECATED */ | ||
| 370 | char name[48]; | 351 | char name[48]; |
| 371 | struct completion dev_released; | 352 | struct completion dev_released; |
| 372 | }; | 353 | }; |
| @@ -412,11 +393,16 @@ struct i2c_client_address_data { | |||
| 412 | /* The numbers to use to set I2C bus address */ | 393 | /* The numbers to use to set I2C bus address */ |
| 413 | #define ANY_I2C_BUS 0xffff | 394 | #define ANY_I2C_BUS 0xffff |
| 414 | 395 | ||
| 396 | /* Construct an I2C_CLIENT_END-terminated array of i2c addresses */ | ||
| 397 | #define I2C_ADDRS(addr, addrs...) \ | ||
| 398 | ((const unsigned short []){ addr, ## addrs, I2C_CLIENT_END }) | ||
| 399 | |||
| 415 | 400 | ||
| 416 | /* ----- functions exported by i2c.o */ | 401 | /* ----- functions exported by i2c.o */ |
| 417 | 402 | ||
| 418 | /* administration... | 403 | /* administration... |
| 419 | */ | 404 | */ |
| 405 | #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE) | ||
| 420 | extern int i2c_add_adapter(struct i2c_adapter *); | 406 | extern int i2c_add_adapter(struct i2c_adapter *); |
| 421 | extern int i2c_del_adapter(struct i2c_adapter *); | 407 | extern int i2c_del_adapter(struct i2c_adapter *); |
| 422 | extern int i2c_add_numbered_adapter(struct i2c_adapter *); | 408 | extern int i2c_add_numbered_adapter(struct i2c_adapter *); |
| @@ -429,11 +415,6 @@ static inline int i2c_add_driver(struct i2c_driver *driver) | |||
| 429 | return i2c_register_driver(THIS_MODULE, driver); | 415 | return i2c_register_driver(THIS_MODULE, driver); |
| 430 | } | 416 | } |
| 431 | 417 | ||
| 432 | /* These are deprecated, your driver should use the standard .probe() | ||
| 433 | * and .remove() methods instead. */ | ||
| 434 | extern int __deprecated i2c_attach_client(struct i2c_client *); | ||
| 435 | extern int __deprecated i2c_detach_client(struct i2c_client *); | ||
| 436 | |||
| 437 | extern struct i2c_client *i2c_use_client(struct i2c_client *client); | 418 | extern struct i2c_client *i2c_use_client(struct i2c_client *client); |
| 438 | extern void i2c_release_client(struct i2c_client *client); | 419 | extern void i2c_release_client(struct i2c_client *client); |
| 439 | 420 | ||
| @@ -442,14 +423,6 @@ extern void i2c_release_client(struct i2c_client *client); | |||
| 442 | extern void i2c_clients_command(struct i2c_adapter *adap, | 423 | extern void i2c_clients_command(struct i2c_adapter *adap, |
| 443 | unsigned int cmd, void *arg); | 424 | unsigned int cmd, void *arg); |
| 444 | 425 | ||
| 445 | /* Detect function. It iterates over all possible addresses itself. | ||
| 446 | * It will only call found_proc if some client is connected at the | ||
| 447 | * specific address (unless a 'force' matched); | ||
| 448 | */ | ||
| 449 | extern int i2c_probe(struct i2c_adapter *adapter, | ||
| 450 | const struct i2c_client_address_data *address_data, | ||
| 451 | int (*found_proc) (struct i2c_adapter *, int, int)); | ||
| 452 | |||
| 453 | extern struct i2c_adapter *i2c_get_adapter(int id); | 426 | extern struct i2c_adapter *i2c_get_adapter(int id); |
| 454 | extern void i2c_put_adapter(struct i2c_adapter *adap); | 427 | extern void i2c_put_adapter(struct i2c_adapter *adap); |
| 455 | 428 | ||
| @@ -471,6 +444,7 @@ static inline int i2c_adapter_id(struct i2c_adapter *adap) | |||
| 471 | { | 444 | { |
| 472 | return adap->nr; | 445 | return adap->nr; |
| 473 | } | 446 | } |
| 447 | #endif /* I2C */ | ||
| 474 | #endif /* __KERNEL__ */ | 448 | #endif /* __KERNEL__ */ |
| 475 | 449 | ||
| 476 | /** | 450 | /** |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index c5a71c38a95f..fac104e7186a 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -58,7 +58,7 @@ extern const char linux_proc_banner[]; | |||
| 58 | #define _RET_IP_ (unsigned long)__builtin_return_address(0) | 58 | #define _RET_IP_ (unsigned long)__builtin_return_address(0) |
| 59 | #define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; }) | 59 | #define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; }) |
| 60 | 60 | ||
| 61 | #ifdef CONFIG_LBD | 61 | #ifdef CONFIG_LBDAF |
| 62 | # include <asm/div64.h> | 62 | # include <asm/div64.h> |
| 63 | # define sector_div(a, b) do_div(a, b) | 63 | # define sector_div(a, b) do_div(a, b) |
| 64 | #else | 64 | #else |
diff --git a/include/linux/types.h b/include/linux/types.h index 5abe354020f9..c42724f8c802 100644 --- a/include/linux/types.h +++ b/include/linux/types.h | |||
| @@ -131,7 +131,7 @@ typedef __s64 int64_t; | |||
| 131 | * | 131 | * |
| 132 | * blkcnt_t is the type of the inode's block count. | 132 | * blkcnt_t is the type of the inode's block count. |
| 133 | */ | 133 | */ |
| 134 | #ifdef CONFIG_LBD | 134 | #ifdef CONFIG_LBDAF |
| 135 | typedef u64 sector_t; | 135 | typedef u64 sector_t; |
| 136 | typedef u64 blkcnt_t; | 136 | typedef u64 blkcnt_t; |
| 137 | #else | 137 | #else |
