diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/efi.h | 13 | ||||
| -rw-r--r-- | include/linux/fuse.h | 2 | ||||
| -rw-r--r-- | include/linux/gpio-pxa.h | 4 | ||||
| -rw-r--r-- | include/linux/hsi/hsi.h | 31 | ||||
| -rw-r--r-- | include/linux/i2c/twl.h | 12 | ||||
| -rw-r--r-- | include/linux/irq.h | 7 | ||||
| -rw-r--r-- | include/linux/kvm_host.h | 6 | ||||
| -rw-r--r-- | include/linux/libata.h | 3 | ||||
| -rw-r--r-- | include/linux/mfd/db5500-prcmu.h | 88 | ||||
| -rw-r--r-- | include/linux/mfd/rc5t583.h | 47 | ||||
| -rw-r--r-- | include/linux/mfd/twl6040.h | 27 | ||||
| -rw-r--r-- | include/linux/mm.h | 27 | ||||
| -rw-r--r-- | include/linux/mmc/card.h | 2 | ||||
| -rw-r--r-- | include/linux/netfilter_bridge.h | 9 | ||||
| -rw-r--r-- | include/linux/nfs_xdr.h | 7 | ||||
| -rw-r--r-- | include/linux/nfsd/Kbuild | 1 | ||||
| -rw-r--r-- | include/linux/pinctrl/machine.h | 4 | ||||
| -rw-r--r-- | include/linux/pipe_fs_i.h | 1 | ||||
| -rw-r--r-- | include/linux/seqlock.h | 23 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 11 | ||||
| -rw-r--r-- | include/linux/spi/spi.h | 2 | ||||
| -rw-r--r-- | include/linux/usb/hcd.h | 2 | ||||
| -rw-r--r-- | include/linux/usb/otg.h | 1 | ||||
| -rw-r--r-- | include/linux/vm_event_item.h | 5 |
24 files changed, 217 insertions, 118 deletions
diff --git a/include/linux/efi.h b/include/linux/efi.h index 88ec80670d5f..ec45ccd8708a 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h | |||
| @@ -554,7 +554,18 @@ extern int __init efi_setup_pcdp_console(char *); | |||
| 554 | #define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 | 554 | #define EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 |
| 555 | #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 | 555 | #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 |
| 556 | #define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 | 556 | #define EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 |
| 557 | 557 | #define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x0000000000000008 | |
| 558 | #define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x0000000000000010 | ||
| 559 | #define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x0000000000000020 | ||
| 560 | #define EFI_VARIABLE_APPEND_WRITE 0x0000000000000040 | ||
| 561 | |||
| 562 | #define EFI_VARIABLE_MASK (EFI_VARIABLE_NON_VOLATILE | \ | ||
| 563 | EFI_VARIABLE_BOOTSERVICE_ACCESS | \ | ||
| 564 | EFI_VARIABLE_RUNTIME_ACCESS | \ | ||
| 565 | EFI_VARIABLE_HARDWARE_ERROR_RECORD | \ | ||
| 566 | EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS | \ | ||
| 567 | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS | \ | ||
| 568 | EFI_VARIABLE_APPEND_WRITE) | ||
| 558 | /* | 569 | /* |
| 559 | * The type of search to perform when calling boottime->locate_handle | 570 | * The type of search to perform when calling boottime->locate_handle |
| 560 | */ | 571 | */ |
diff --git a/include/linux/fuse.h b/include/linux/fuse.h index 8ba2c9460b28..8f2ab8fef929 100644 --- a/include/linux/fuse.h +++ b/include/linux/fuse.h | |||
| @@ -593,7 +593,7 @@ struct fuse_dirent { | |||
| 593 | __u64 off; | 593 | __u64 off; |
| 594 | __u32 namelen; | 594 | __u32 namelen; |
| 595 | __u32 type; | 595 | __u32 type; |
| 596 | char name[0]; | 596 | char name[]; |
| 597 | }; | 597 | }; |
| 598 | 598 | ||
| 599 | #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name) | 599 | #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name) |
diff --git a/include/linux/gpio-pxa.h b/include/linux/gpio-pxa.h index 05071ee34c3f..d755b28ba635 100644 --- a/include/linux/gpio-pxa.h +++ b/include/linux/gpio-pxa.h | |||
| @@ -13,4 +13,8 @@ extern int pxa_last_gpio; | |||
| 13 | 13 | ||
| 14 | extern int pxa_irq_to_gpio(int irq); | 14 | extern int pxa_irq_to_gpio(int irq); |
| 15 | 15 | ||
| 16 | struct pxa_gpio_platform_data { | ||
| 17 | int (*gpio_set_wake)(unsigned int gpio, unsigned int on); | ||
| 18 | }; | ||
| 19 | |||
| 16 | #endif /* __GPIO_PXA_H */ | 20 | #endif /* __GPIO_PXA_H */ |
diff --git a/include/linux/hsi/hsi.h b/include/linux/hsi/hsi.h index 4b178067f405..56fae865e272 100644 --- a/include/linux/hsi/hsi.h +++ b/include/linux/hsi/hsi.h | |||
| @@ -26,9 +26,9 @@ | |||
| 26 | #include <linux/device.h> | 26 | #include <linux/device.h> |
| 27 | #include <linux/mutex.h> | 27 | #include <linux/mutex.h> |
| 28 | #include <linux/scatterlist.h> | 28 | #include <linux/scatterlist.h> |
| 29 | #include <linux/spinlock.h> | ||
| 30 | #include <linux/list.h> | 29 | #include <linux/list.h> |
| 31 | #include <linux/module.h> | 30 | #include <linux/module.h> |
| 31 | #include <linux/notifier.h> | ||
| 32 | 32 | ||
| 33 | /* HSI message ttype */ | 33 | /* HSI message ttype */ |
| 34 | #define HSI_MSG_READ 0 | 34 | #define HSI_MSG_READ 0 |
| @@ -121,18 +121,18 @@ static inline int hsi_register_board_info(struct hsi_board_info const *info, | |||
| 121 | * @device: Driver model representation of the device | 121 | * @device: Driver model representation of the device |
| 122 | * @tx_cfg: HSI TX configuration | 122 | * @tx_cfg: HSI TX configuration |
| 123 | * @rx_cfg: HSI RX configuration | 123 | * @rx_cfg: HSI RX configuration |
| 124 | * @hsi_start_rx: Called after incoming wake line goes high | 124 | * @e_handler: Callback for handling port events (RX Wake High/Low) |
| 125 | * @hsi_stop_rx: Called after incoming wake line goes low | 125 | * @pclaimed: Keeps tracks if the clients claimed its associated HSI port |
| 126 | * @nb: Notifier block for port events | ||
| 126 | */ | 127 | */ |
| 127 | struct hsi_client { | 128 | struct hsi_client { |
| 128 | struct device device; | 129 | struct device device; |
| 129 | struct hsi_config tx_cfg; | 130 | struct hsi_config tx_cfg; |
| 130 | struct hsi_config rx_cfg; | 131 | struct hsi_config rx_cfg; |
| 131 | void (*hsi_start_rx)(struct hsi_client *cl); | ||
| 132 | void (*hsi_stop_rx)(struct hsi_client *cl); | ||
| 133 | /* private: */ | 132 | /* private: */ |
| 133 | void (*ehandler)(struct hsi_client *, unsigned long); | ||
| 134 | unsigned int pclaimed:1; | 134 | unsigned int pclaimed:1; |
| 135 | struct list_head link; | 135 | struct notifier_block nb; |
| 136 | }; | 136 | }; |
| 137 | 137 | ||
| 138 | #define to_hsi_client(dev) container_of(dev, struct hsi_client, device) | 138 | #define to_hsi_client(dev) container_of(dev, struct hsi_client, device) |
| @@ -147,6 +147,10 @@ static inline void *hsi_client_drvdata(struct hsi_client *cl) | |||
| 147 | return dev_get_drvdata(&cl->device); | 147 | return dev_get_drvdata(&cl->device); |
| 148 | } | 148 | } |
| 149 | 149 | ||
| 150 | int hsi_register_port_event(struct hsi_client *cl, | ||
| 151 | void (*handler)(struct hsi_client *, unsigned long)); | ||
| 152 | int hsi_unregister_port_event(struct hsi_client *cl); | ||
| 153 | |||
| 150 | /** | 154 | /** |
| 151 | * struct hsi_client_driver - Driver associated to an HSI client | 155 | * struct hsi_client_driver - Driver associated to an HSI client |
| 152 | * @driver: Driver model representation of the driver | 156 | * @driver: Driver model representation of the driver |
| @@ -214,8 +218,7 @@ void hsi_free_msg(struct hsi_msg *msg); | |||
| 214 | * @start_tx: Callback to inform that a client wants to TX data | 218 | * @start_tx: Callback to inform that a client wants to TX data |
| 215 | * @stop_tx: Callback to inform that a client no longer wishes to TX data | 219 | * @stop_tx: Callback to inform that a client no longer wishes to TX data |
| 216 | * @release: Callback to inform that a client no longer uses the port | 220 | * @release: Callback to inform that a client no longer uses the port |
| 217 | * @clients: List of hsi_clients using the port. | 221 | * @n_head: Notifier chain for signaling port events to the clients. |
| 218 | * @clock: Lock to serialize access to the clients list. | ||
| 219 | */ | 222 | */ |
| 220 | struct hsi_port { | 223 | struct hsi_port { |
| 221 | struct device device; | 224 | struct device device; |
| @@ -231,14 +234,14 @@ struct hsi_port { | |||
| 231 | int (*start_tx)(struct hsi_client *cl); | 234 | int (*start_tx)(struct hsi_client *cl); |
| 232 | int (*stop_tx)(struct hsi_client *cl); | 235 | int (*stop_tx)(struct hsi_client *cl); |
| 233 | int (*release)(struct hsi_client *cl); | 236 | int (*release)(struct hsi_client *cl); |
| 234 | struct list_head clients; | 237 | /* private */ |
| 235 | spinlock_t clock; | 238 | struct atomic_notifier_head n_head; |
| 236 | }; | 239 | }; |
| 237 | 240 | ||
| 238 | #define to_hsi_port(dev) container_of(dev, struct hsi_port, device) | 241 | #define to_hsi_port(dev) container_of(dev, struct hsi_port, device) |
| 239 | #define hsi_get_port(cl) to_hsi_port((cl)->device.parent) | 242 | #define hsi_get_port(cl) to_hsi_port((cl)->device.parent) |
| 240 | 243 | ||
| 241 | void hsi_event(struct hsi_port *port, unsigned int event); | 244 | int hsi_event(struct hsi_port *port, unsigned long event); |
| 242 | int hsi_claim_port(struct hsi_client *cl, unsigned int share); | 245 | int hsi_claim_port(struct hsi_client *cl, unsigned int share); |
| 243 | void hsi_release_port(struct hsi_client *cl); | 246 | void hsi_release_port(struct hsi_client *cl); |
| 244 | 247 | ||
| @@ -270,13 +273,13 @@ struct hsi_controller { | |||
| 270 | struct module *owner; | 273 | struct module *owner; |
| 271 | unsigned int id; | 274 | unsigned int id; |
| 272 | unsigned int num_ports; | 275 | unsigned int num_ports; |
| 273 | struct hsi_port *port; | 276 | struct hsi_port **port; |
| 274 | }; | 277 | }; |
| 275 | 278 | ||
| 276 | #define to_hsi_controller(dev) container_of(dev, struct hsi_controller, device) | 279 | #define to_hsi_controller(dev) container_of(dev, struct hsi_controller, device) |
| 277 | 280 | ||
| 278 | struct hsi_controller *hsi_alloc_controller(unsigned int n_ports, gfp_t flags); | 281 | struct hsi_controller *hsi_alloc_controller(unsigned int n_ports, gfp_t flags); |
| 279 | void hsi_free_controller(struct hsi_controller *hsi); | 282 | void hsi_put_controller(struct hsi_controller *hsi); |
| 280 | int hsi_register_controller(struct hsi_controller *hsi); | 283 | int hsi_register_controller(struct hsi_controller *hsi); |
| 281 | void hsi_unregister_controller(struct hsi_controller *hsi); | 284 | void hsi_unregister_controller(struct hsi_controller *hsi); |
| 282 | 285 | ||
| @@ -294,7 +297,7 @@ static inline void *hsi_controller_drvdata(struct hsi_controller *hsi) | |||
| 294 | static inline struct hsi_port *hsi_find_port_num(struct hsi_controller *hsi, | 297 | static inline struct hsi_port *hsi_find_port_num(struct hsi_controller *hsi, |
| 295 | unsigned int num) | 298 | unsigned int num) |
| 296 | { | 299 | { |
| 297 | return (num < hsi->num_ports) ? &hsi->port[num] : NULL; | 300 | return (num < hsi->num_ports) ? hsi->port[num] : NULL; |
| 298 | } | 301 | } |
| 299 | 302 | ||
| 300 | /* | 303 | /* |
diff --git a/include/linux/i2c/twl.h b/include/linux/i2c/twl.h index 2463b6100333..1f90de0cfdbe 100644 --- a/include/linux/i2c/twl.h +++ b/include/linux/i2c/twl.h | |||
| @@ -666,23 +666,11 @@ struct twl4030_codec_data { | |||
| 666 | unsigned int check_defaults:1; | 666 | unsigned int check_defaults:1; |
| 667 | unsigned int reset_registers:1; | 667 | unsigned int reset_registers:1; |
| 668 | unsigned int hs_extmute:1; | 668 | unsigned int hs_extmute:1; |
| 669 | u16 hs_left_step; | ||
| 670 | u16 hs_right_step; | ||
| 671 | u16 hf_left_step; | ||
| 672 | u16 hf_right_step; | ||
| 673 | void (*set_hs_extmute)(int mute); | 669 | void (*set_hs_extmute)(int mute); |
| 674 | }; | 670 | }; |
| 675 | 671 | ||
| 676 | struct twl4030_vibra_data { | 672 | struct twl4030_vibra_data { |
| 677 | unsigned int coexist; | 673 | unsigned int coexist; |
| 678 | |||
| 679 | /* twl6040 */ | ||
| 680 | unsigned int vibldrv_res; /* left driver resistance */ | ||
| 681 | unsigned int vibrdrv_res; /* right driver resistance */ | ||
| 682 | unsigned int viblmotor_res; /* left motor resistance */ | ||
| 683 | unsigned int vibrmotor_res; /* right motor resistance */ | ||
| 684 | int vddvibl_uV; /* VDDVIBL volt, set 0 for fixed reg */ | ||
| 685 | int vddvibr_uV; /* VDDVIBR volt, set 0 for fixed reg */ | ||
| 686 | }; | 674 | }; |
| 687 | 675 | ||
| 688 | struct twl4030_audio_data { | 676 | struct twl4030_audio_data { |
diff --git a/include/linux/irq.h b/include/linux/irq.h index 7810406f3d80..b27cfcfd3a59 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
| @@ -49,6 +49,12 @@ typedef void (*irq_preflow_handler_t)(struct irq_data *data); | |||
| 49 | * IRQ_TYPE_LEVEL_LOW - low level triggered | 49 | * IRQ_TYPE_LEVEL_LOW - low level triggered |
| 50 | * IRQ_TYPE_LEVEL_MASK - Mask to filter out the level bits | 50 | * IRQ_TYPE_LEVEL_MASK - Mask to filter out the level bits |
| 51 | * IRQ_TYPE_SENSE_MASK - Mask for all the above bits | 51 | * IRQ_TYPE_SENSE_MASK - Mask for all the above bits |
| 52 | * IRQ_TYPE_DEFAULT - For use by some PICs to ask irq_set_type | ||
| 53 | * to setup the HW to a sane default (used | ||
| 54 | * by irqdomain map() callbacks to synchronize | ||
| 55 | * the HW state and SW flags for a newly | ||
| 56 | * allocated descriptor). | ||
| 57 | * | ||
| 52 | * IRQ_TYPE_PROBE - Special flag for probing in progress | 58 | * IRQ_TYPE_PROBE - Special flag for probing in progress |
| 53 | * | 59 | * |
| 54 | * Bits which can be modified via irq_set/clear/modify_status_flags() | 60 | * Bits which can be modified via irq_set/clear/modify_status_flags() |
| @@ -77,6 +83,7 @@ enum { | |||
| 77 | IRQ_TYPE_LEVEL_LOW = 0x00000008, | 83 | IRQ_TYPE_LEVEL_LOW = 0x00000008, |
| 78 | IRQ_TYPE_LEVEL_MASK = (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH), | 84 | IRQ_TYPE_LEVEL_MASK = (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH), |
| 79 | IRQ_TYPE_SENSE_MASK = 0x0000000f, | 85 | IRQ_TYPE_SENSE_MASK = 0x0000000f, |
| 86 | IRQ_TYPE_DEFAULT = IRQ_TYPE_SENSE_MASK, | ||
| 80 | 87 | ||
| 81 | IRQ_TYPE_PROBE = 0x00000010, | 88 | IRQ_TYPE_PROBE = 0x00000010, |
| 82 | 89 | ||
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 665a260c7e09..72cbf08d45fb 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
| @@ -596,6 +596,7 @@ void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id); | |||
| 596 | 596 | ||
| 597 | #ifdef CONFIG_IOMMU_API | 597 | #ifdef CONFIG_IOMMU_API |
| 598 | int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot); | 598 | int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot); |
| 599 | void kvm_iommu_unmap_pages(struct kvm *kvm, struct kvm_memory_slot *slot); | ||
| 599 | int kvm_iommu_map_guest(struct kvm *kvm); | 600 | int kvm_iommu_map_guest(struct kvm *kvm); |
| 600 | int kvm_iommu_unmap_guest(struct kvm *kvm); | 601 | int kvm_iommu_unmap_guest(struct kvm *kvm); |
| 601 | int kvm_assign_device(struct kvm *kvm, | 602 | int kvm_assign_device(struct kvm *kvm, |
| @@ -609,6 +610,11 @@ static inline int kvm_iommu_map_pages(struct kvm *kvm, | |||
| 609 | return 0; | 610 | return 0; |
| 610 | } | 611 | } |
| 611 | 612 | ||
| 613 | static inline void kvm_iommu_unmap_pages(struct kvm *kvm, | ||
| 614 | struct kvm_memory_slot *slot) | ||
| 615 | { | ||
| 616 | } | ||
| 617 | |||
| 612 | static inline int kvm_iommu_map_guest(struct kvm *kvm) | 618 | static inline int kvm_iommu_map_guest(struct kvm *kvm) |
| 613 | { | 619 | { |
| 614 | return -ENODEV; | 620 | return -ENODEV; |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 42378d637ffb..e926df7b54c9 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
| @@ -996,7 +996,8 @@ extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev, | |||
| 996 | extern void ata_sas_port_destroy(struct ata_port *); | 996 | extern void ata_sas_port_destroy(struct ata_port *); |
| 997 | extern struct ata_port *ata_sas_port_alloc(struct ata_host *, | 997 | extern struct ata_port *ata_sas_port_alloc(struct ata_host *, |
| 998 | struct ata_port_info *, struct Scsi_Host *); | 998 | struct ata_port_info *, struct Scsi_Host *); |
| 999 | extern int ata_sas_async_port_init(struct ata_port *); | 999 | extern void ata_sas_async_probe(struct ata_port *ap); |
| 1000 | extern int ata_sas_sync_probe(struct ata_port *ap); | ||
| 1000 | extern int ata_sas_port_init(struct ata_port *); | 1001 | extern int ata_sas_port_init(struct ata_port *); |
| 1001 | extern int ata_sas_port_start(struct ata_port *ap); | 1002 | extern int ata_sas_port_start(struct ata_port *ap); |
| 1002 | extern void ata_sas_port_stop(struct ata_port *ap); | 1003 | extern void ata_sas_port_stop(struct ata_port *ap); |
diff --git a/include/linux/mfd/db5500-prcmu.h b/include/linux/mfd/db5500-prcmu.h index 9890687f582d..5a049dfaf153 100644 --- a/include/linux/mfd/db5500-prcmu.h +++ b/include/linux/mfd/db5500-prcmu.h | |||
| @@ -8,41 +8,14 @@ | |||
| 8 | #ifndef __MFD_DB5500_PRCMU_H | 8 | #ifndef __MFD_DB5500_PRCMU_H |
| 9 | #define __MFD_DB5500_PRCMU_H | 9 | #define __MFD_DB5500_PRCMU_H |
| 10 | 10 | ||
| 11 | #ifdef CONFIG_MFD_DB5500_PRCMU | 11 | static inline int prcmu_resetout(u8 resoutn, u8 state) |
| 12 | |||
| 13 | void db5500_prcmu_early_init(void); | ||
| 14 | int db5500_prcmu_set_epod(u16 epod_id, u8 epod_state); | ||
| 15 | int db5500_prcmu_set_display_clocks(void); | ||
| 16 | int db5500_prcmu_disable_dsipll(void); | ||
| 17 | int db5500_prcmu_enable_dsipll(void); | ||
| 18 | int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size); | ||
| 19 | int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size); | ||
| 20 | void db5500_prcmu_enable_wakeups(u32 wakeups); | ||
| 21 | int db5500_prcmu_request_clock(u8 clock, bool enable); | ||
| 22 | void db5500_prcmu_config_abb_event_readout(u32 abb_events); | ||
| 23 | void db5500_prcmu_get_abb_event_buffer(void __iomem **buf); | ||
| 24 | int prcmu_resetout(u8 resoutn, u8 state); | ||
| 25 | int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, | ||
| 26 | bool keep_ap_pll); | ||
| 27 | int db5500_prcmu_config_esram0_deep_sleep(u8 state); | ||
| 28 | void db5500_prcmu_system_reset(u16 reset_code); | ||
| 29 | u16 db5500_prcmu_get_reset_code(void); | ||
| 30 | bool db5500_prcmu_is_ac_wake_requested(void); | ||
| 31 | int db5500_prcmu_set_arm_opp(u8 opp); | ||
| 32 | int db5500_prcmu_get_arm_opp(void); | ||
| 33 | |||
| 34 | #else /* !CONFIG_UX500_SOC_DB5500 */ | ||
| 35 | |||
| 36 | static inline void db5500_prcmu_early_init(void) {} | ||
| 37 | |||
| 38 | static inline int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size) | ||
| 39 | { | 12 | { |
| 40 | return -ENOSYS; | 13 | return 0; |
| 41 | } | 14 | } |
| 42 | 15 | ||
| 43 | static inline int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size) | 16 | static inline int db5500_prcmu_set_epod(u16 epod_id, u8 epod_state) |
| 44 | { | 17 | { |
| 45 | return -ENOSYS; | 18 | return 0; |
| 46 | } | 19 | } |
| 47 | 20 | ||
| 48 | static inline int db5500_prcmu_request_clock(u8 clock, bool enable) | 21 | static inline int db5500_prcmu_request_clock(u8 clock, bool enable) |
| @@ -50,69 +23,82 @@ static inline int db5500_prcmu_request_clock(u8 clock, bool enable) | |||
| 50 | return 0; | 23 | return 0; |
| 51 | } | 24 | } |
| 52 | 25 | ||
| 53 | static inline int db5500_prcmu_set_display_clocks(void) | 26 | static inline int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, |
| 27 | bool keep_ap_pll) | ||
| 54 | { | 28 | { |
| 55 | return 0; | 29 | return 0; |
| 56 | } | 30 | } |
| 57 | 31 | ||
| 58 | static inline int db5500_prcmu_disable_dsipll(void) | 32 | static inline int db5500_prcmu_config_esram0_deep_sleep(u8 state) |
| 59 | { | 33 | { |
| 60 | return 0; | 34 | return 0; |
| 61 | } | 35 | } |
| 62 | 36 | ||
| 63 | static inline int db5500_prcmu_enable_dsipll(void) | 37 | static inline u16 db5500_prcmu_get_reset_code(void) |
| 64 | { | 38 | { |
| 65 | return 0; | 39 | return 0; |
| 66 | } | 40 | } |
| 67 | 41 | ||
| 68 | static inline int db5500_prcmu_config_esram0_deep_sleep(u8 state) | 42 | static inline bool db5500_prcmu_is_ac_wake_requested(void) |
| 69 | { | 43 | { |
| 70 | return 0; | 44 | return 0; |
| 71 | } | 45 | } |
| 72 | 46 | ||
| 73 | static inline void db5500_prcmu_enable_wakeups(u32 wakeups) {} | 47 | static inline int db5500_prcmu_set_arm_opp(u8 opp) |
| 74 | |||
| 75 | static inline int prcmu_resetout(u8 resoutn, u8 state) | ||
| 76 | { | 48 | { |
| 77 | return 0; | 49 | return 0; |
| 78 | } | 50 | } |
| 79 | 51 | ||
| 80 | static inline int db5500_prcmu_set_epod(u16 epod_id, u8 epod_state) | 52 | static inline int db5500_prcmu_get_arm_opp(void) |
| 81 | { | 53 | { |
| 82 | return 0; | 54 | return 0; |
| 83 | } | 55 | } |
| 84 | 56 | ||
| 85 | static inline void db5500_prcmu_get_abb_event_buffer(void __iomem **buf) {} | ||
| 86 | static inline void db5500_prcmu_config_abb_event_readout(u32 abb_events) {} | 57 | static inline void db5500_prcmu_config_abb_event_readout(u32 abb_events) {} |
| 87 | 58 | ||
| 88 | static inline int db5500_prcmu_set_power_state(u8 state, bool keep_ulp_clk, | 59 | static inline void db5500_prcmu_get_abb_event_buffer(void __iomem **buf) {} |
| 89 | bool keep_ap_pll) | ||
| 90 | { | ||
| 91 | return 0; | ||
| 92 | } | ||
| 93 | 60 | ||
| 94 | static inline void db5500_prcmu_system_reset(u16 reset_code) {} | 61 | static inline void db5500_prcmu_system_reset(u16 reset_code) {} |
| 95 | 62 | ||
| 96 | static inline u16 db5500_prcmu_get_reset_code(void) | 63 | static inline void db5500_prcmu_enable_wakeups(u32 wakeups) {} |
| 64 | |||
| 65 | #ifdef CONFIG_MFD_DB5500_PRCMU | ||
| 66 | |||
| 67 | void db5500_prcmu_early_init(void); | ||
| 68 | int db5500_prcmu_set_display_clocks(void); | ||
| 69 | int db5500_prcmu_disable_dsipll(void); | ||
| 70 | int db5500_prcmu_enable_dsipll(void); | ||
| 71 | int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size); | ||
| 72 | int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size); | ||
| 73 | |||
| 74 | #else /* !CONFIG_UX500_SOC_DB5500 */ | ||
| 75 | |||
| 76 | static inline void db5500_prcmu_early_init(void) {} | ||
| 77 | |||
| 78 | static inline int db5500_prcmu_abb_read(u8 slave, u8 reg, u8 *value, u8 size) | ||
| 97 | { | 79 | { |
| 98 | return 0; | 80 | return -ENOSYS; |
| 99 | } | 81 | } |
| 100 | 82 | ||
| 101 | static inline bool db5500_prcmu_is_ac_wake_requested(void) | 83 | static inline int db5500_prcmu_abb_write(u8 slave, u8 reg, u8 *value, u8 size) |
| 102 | { | 84 | { |
| 103 | return 0; | 85 | return -ENOSYS; |
| 104 | } | 86 | } |
| 105 | 87 | ||
| 106 | static inline int db5500_prcmu_set_arm_opp(u8 opp) | 88 | static inline int db5500_prcmu_set_display_clocks(void) |
| 107 | { | 89 | { |
| 108 | return 0; | 90 | return 0; |
| 109 | } | 91 | } |
| 110 | 92 | ||
| 111 | static inline int db5500_prcmu_get_arm_opp(void) | 93 | static inline int db5500_prcmu_disable_dsipll(void) |
| 112 | { | 94 | { |
| 113 | return 0; | 95 | return 0; |
| 114 | } | 96 | } |
| 115 | 97 | ||
| 98 | static inline int db5500_prcmu_enable_dsipll(void) | ||
| 99 | { | ||
| 100 | return 0; | ||
| 101 | } | ||
| 116 | 102 | ||
| 117 | #endif /* CONFIG_MFD_DB5500_PRCMU */ | 103 | #endif /* CONFIG_MFD_DB5500_PRCMU */ |
| 118 | 104 | ||
diff --git a/include/linux/mfd/rc5t583.h b/include/linux/mfd/rc5t583.h index a2c61609d21d..0b64b19d81ab 100644 --- a/include/linux/mfd/rc5t583.h +++ b/include/linux/mfd/rc5t583.h | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | 26 | ||
| 27 | #include <linux/mutex.h> | 27 | #include <linux/mutex.h> |
| 28 | #include <linux/types.h> | 28 | #include <linux/types.h> |
| 29 | #include <linux/regmap.h> | ||
| 29 | 30 | ||
| 30 | #define RC5T583_MAX_REGS 0xF8 | 31 | #define RC5T583_MAX_REGS 0xF8 |
| 31 | 32 | ||
| @@ -279,14 +280,44 @@ struct rc5t583_platform_data { | |||
| 279 | bool enable_shutdown; | 280 | bool enable_shutdown; |
| 280 | }; | 281 | }; |
| 281 | 282 | ||
| 282 | int rc5t583_write(struct device *dev, u8 reg, uint8_t val); | 283 | static inline int rc5t583_write(struct device *dev, uint8_t reg, uint8_t val) |
| 283 | int rc5t583_read(struct device *dev, uint8_t reg, uint8_t *val); | 284 | { |
| 284 | int rc5t583_set_bits(struct device *dev, unsigned int reg, | 285 | struct rc5t583 *rc5t583 = dev_get_drvdata(dev); |
| 285 | unsigned int bit_mask); | 286 | return regmap_write(rc5t583->regmap, reg, val); |
| 286 | int rc5t583_clear_bits(struct device *dev, unsigned int reg, | 287 | } |
| 287 | unsigned int bit_mask); | 288 | |
| 288 | int rc5t583_update(struct device *dev, unsigned int reg, | 289 | static inline int rc5t583_read(struct device *dev, uint8_t reg, uint8_t *val) |
| 289 | unsigned int val, unsigned int mask); | 290 | { |
| 291 | struct rc5t583 *rc5t583 = dev_get_drvdata(dev); | ||
| 292 | unsigned int ival; | ||
| 293 | int ret; | ||
| 294 | ret = regmap_read(rc5t583->regmap, reg, &ival); | ||
| 295 | if (!ret) | ||
| 296 | *val = (uint8_t)ival; | ||
| 297 | return ret; | ||
| 298 | } | ||
| 299 | |||
| 300 | static inline int rc5t583_set_bits(struct device *dev, unsigned int reg, | ||
| 301 | unsigned int bit_mask) | ||
| 302 | { | ||
| 303 | struct rc5t583 *rc5t583 = dev_get_drvdata(dev); | ||
| 304 | return regmap_update_bits(rc5t583->regmap, reg, bit_mask, bit_mask); | ||
| 305 | } | ||
| 306 | |||
| 307 | static inline int rc5t583_clear_bits(struct device *dev, unsigned int reg, | ||
| 308 | unsigned int bit_mask) | ||
| 309 | { | ||
| 310 | struct rc5t583 *rc5t583 = dev_get_drvdata(dev); | ||
| 311 | return regmap_update_bits(rc5t583->regmap, reg, bit_mask, 0); | ||
| 312 | } | ||
| 313 | |||
| 314 | static inline int rc5t583_update(struct device *dev, unsigned int reg, | ||
| 315 | unsigned int val, unsigned int mask) | ||
| 316 | { | ||
| 317 | struct rc5t583 *rc5t583 = dev_get_drvdata(dev); | ||
| 318 | return regmap_update_bits(rc5t583->regmap, reg, mask, val); | ||
| 319 | } | ||
| 320 | |||
| 290 | int rc5t583_ext_power_req_config(struct device *dev, int deepsleep_id, | 321 | int rc5t583_ext_power_req_config(struct device *dev, int deepsleep_id, |
| 291 | int ext_pwr_req, int deepsleep_slot_nr); | 322 | int ext_pwr_req, int deepsleep_slot_nr); |
| 292 | int rc5t583_irq_init(struct rc5t583 *rc5t583, int irq, int irq_base); | 323 | int rc5t583_irq_init(struct rc5t583 *rc5t583, int irq, int irq_base); |
diff --git a/include/linux/mfd/twl6040.h b/include/linux/mfd/twl6040.h index 9bc9ac651dad..b15b5f03f5c4 100644 --- a/include/linux/mfd/twl6040.h +++ b/include/linux/mfd/twl6040.h | |||
| @@ -174,8 +174,35 @@ | |||
| 174 | #define TWL6040_SYSCLK_SEL_LPPLL 0 | 174 | #define TWL6040_SYSCLK_SEL_LPPLL 0 |
| 175 | #define TWL6040_SYSCLK_SEL_HPPLL 1 | 175 | #define TWL6040_SYSCLK_SEL_HPPLL 1 |
| 176 | 176 | ||
| 177 | struct twl6040_codec_data { | ||
| 178 | u16 hs_left_step; | ||
| 179 | u16 hs_right_step; | ||
| 180 | u16 hf_left_step; | ||
| 181 | u16 hf_right_step; | ||
| 182 | }; | ||
| 183 | |||
| 184 | struct twl6040_vibra_data { | ||
| 185 | unsigned int vibldrv_res; /* left driver resistance */ | ||
| 186 | unsigned int vibrdrv_res; /* right driver resistance */ | ||
| 187 | unsigned int viblmotor_res; /* left motor resistance */ | ||
| 188 | unsigned int vibrmotor_res; /* right motor resistance */ | ||
| 189 | int vddvibl_uV; /* VDDVIBL volt, set 0 for fixed reg */ | ||
| 190 | int vddvibr_uV; /* VDDVIBR volt, set 0 for fixed reg */ | ||
| 191 | }; | ||
| 192 | |||
| 193 | struct twl6040_platform_data { | ||
| 194 | int audpwron_gpio; /* audio power-on gpio */ | ||
| 195 | unsigned int irq_base; | ||
| 196 | |||
| 197 | struct twl6040_codec_data *codec; | ||
| 198 | struct twl6040_vibra_data *vibra; | ||
| 199 | }; | ||
| 200 | |||
| 201 | struct regmap; | ||
| 202 | |||
| 177 | struct twl6040 { | 203 | struct twl6040 { |
| 178 | struct device *dev; | 204 | struct device *dev; |
| 205 | struct regmap *regmap; | ||
| 179 | struct mutex mutex; | 206 | struct mutex mutex; |
| 180 | struct mutex io_mutex; | 207 | struct mutex io_mutex; |
| 181 | struct mutex irq_mutex; | 208 | struct mutex irq_mutex; |
diff --git a/include/linux/mm.h b/include/linux/mm.h index d8738a464b94..74aa71bea1e4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -1393,29 +1393,20 @@ extern int install_special_mapping(struct mm_struct *mm, | |||
| 1393 | 1393 | ||
| 1394 | extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); | 1394 | extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); |
| 1395 | 1395 | ||
| 1396 | extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, | ||
| 1397 | unsigned long len, unsigned long prot, | ||
| 1398 | unsigned long flag, unsigned long pgoff); | ||
| 1399 | extern unsigned long mmap_region(struct file *file, unsigned long addr, | 1396 | extern unsigned long mmap_region(struct file *file, unsigned long addr, |
| 1400 | unsigned long len, unsigned long flags, | 1397 | unsigned long len, unsigned long flags, |
| 1401 | vm_flags_t vm_flags, unsigned long pgoff); | 1398 | vm_flags_t vm_flags, unsigned long pgoff); |
| 1402 | 1399 | extern unsigned long do_mmap(struct file *, unsigned long, | |
| 1403 | static inline unsigned long do_mmap(struct file *file, unsigned long addr, | 1400 | unsigned long, unsigned long, |
| 1404 | unsigned long len, unsigned long prot, | 1401 | unsigned long, unsigned long); |
| 1405 | unsigned long flag, unsigned long offset) | ||
| 1406 | { | ||
| 1407 | unsigned long ret = -EINVAL; | ||
| 1408 | if ((offset + PAGE_ALIGN(len)) < offset) | ||
| 1409 | goto out; | ||
| 1410 | if (!(offset & ~PAGE_MASK)) | ||
| 1411 | ret = do_mmap_pgoff(file, addr, len, prot, flag, offset >> PAGE_SHIFT); | ||
| 1412 | out: | ||
| 1413 | return ret; | ||
| 1414 | } | ||
| 1415 | |||
| 1416 | extern int do_munmap(struct mm_struct *, unsigned long, size_t); | 1402 | extern int do_munmap(struct mm_struct *, unsigned long, size_t); |
| 1417 | 1403 | ||
| 1418 | extern unsigned long do_brk(unsigned long, unsigned long); | 1404 | /* These take the mm semaphore themselves */ |
| 1405 | extern unsigned long vm_brk(unsigned long, unsigned long); | ||
| 1406 | extern int vm_munmap(unsigned long, size_t); | ||
| 1407 | extern unsigned long vm_mmap(struct file *, unsigned long, | ||
| 1408 | unsigned long, unsigned long, | ||
| 1409 | unsigned long, unsigned long); | ||
| 1419 | 1410 | ||
| 1420 | /* truncate.c */ | 1411 | /* truncate.c */ |
| 1421 | extern void truncate_inode_pages(struct address_space *, loff_t); | 1412 | extern void truncate_inode_pages(struct address_space *, loff_t); |
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 01beae78f079..629b823f8836 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h | |||
| @@ -481,7 +481,7 @@ struct mmc_driver { | |||
| 481 | struct device_driver drv; | 481 | struct device_driver drv; |
| 482 | int (*probe)(struct mmc_card *); | 482 | int (*probe)(struct mmc_card *); |
| 483 | void (*remove)(struct mmc_card *); | 483 | void (*remove)(struct mmc_card *); |
| 484 | int (*suspend)(struct mmc_card *, pm_message_t); | 484 | int (*suspend)(struct mmc_card *); |
| 485 | int (*resume)(struct mmc_card *); | 485 | int (*resume)(struct mmc_card *); |
| 486 | }; | 486 | }; |
| 487 | 487 | ||
diff --git a/include/linux/netfilter_bridge.h b/include/linux/netfilter_bridge.h index 0ddd161f3b06..31d2844e6572 100644 --- a/include/linux/netfilter_bridge.h +++ b/include/linux/netfilter_bridge.h | |||
| @@ -104,9 +104,18 @@ struct bridge_skb_cb { | |||
| 104 | } daddr; | 104 | } daddr; |
| 105 | }; | 105 | }; |
| 106 | 106 | ||
| 107 | static inline void br_drop_fake_rtable(struct sk_buff *skb) | ||
| 108 | { | ||
| 109 | struct dst_entry *dst = skb_dst(skb); | ||
| 110 | |||
| 111 | if (dst && (dst->flags & DST_FAKE_RTABLE)) | ||
| 112 | skb_dst_drop(skb); | ||
| 113 | } | ||
| 114 | |||
| 107 | #else | 115 | #else |
| 108 | #define nf_bridge_maybe_copy_header(skb) (0) | 116 | #define nf_bridge_maybe_copy_header(skb) (0) |
| 109 | #define nf_bridge_pad(skb) (0) | 117 | #define nf_bridge_pad(skb) (0) |
| 118 | #define br_drop_fake_rtable(skb) do { } while (0) | ||
| 110 | #endif /* CONFIG_BRIDGE_NETFILTER */ | 119 | #endif /* CONFIG_BRIDGE_NETFILTER */ |
| 111 | 120 | ||
| 112 | #endif /* __KERNEL__ */ | 121 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index bfd0d1bf6707..7ba3551a0414 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -312,6 +312,11 @@ struct nfs4_layoutreturn { | |||
| 312 | int rpc_status; | 312 | int rpc_status; |
| 313 | }; | 313 | }; |
| 314 | 314 | ||
| 315 | struct stateowner_id { | ||
| 316 | __u64 create_time; | ||
| 317 | __u32 uniquifier; | ||
| 318 | }; | ||
| 319 | |||
| 315 | /* | 320 | /* |
| 316 | * Arguments to the open call. | 321 | * Arguments to the open call. |
| 317 | */ | 322 | */ |
| @@ -321,7 +326,7 @@ struct nfs_openargs { | |||
| 321 | int open_flags; | 326 | int open_flags; |
| 322 | fmode_t fmode; | 327 | fmode_t fmode; |
| 323 | __u64 clientid; | 328 | __u64 clientid; |
| 324 | __u64 id; | 329 | struct stateowner_id id; |
| 325 | union { | 330 | union { |
| 326 | struct { | 331 | struct { |
| 327 | struct iattr * attrs; /* UNCHECKED, GUARDED */ | 332 | struct iattr * attrs; /* UNCHECKED, GUARDED */ |
diff --git a/include/linux/nfsd/Kbuild b/include/linux/nfsd/Kbuild index b8d4001212b3..5b7d84ac954a 100644 --- a/include/linux/nfsd/Kbuild +++ b/include/linux/nfsd/Kbuild | |||
| @@ -1,3 +1,4 @@ | |||
| 1 | header-y += cld.h | ||
| 1 | header-y += debug.h | 2 | header-y += debug.h |
| 2 | header-y += export.h | 3 | header-y += export.h |
| 3 | header-y += nfsfh.h | 4 | header-y += nfsfh.h |
diff --git a/include/linux/pinctrl/machine.h b/include/linux/pinctrl/machine.h index fee4349364f7..e4d1de742502 100644 --- a/include/linux/pinctrl/machine.h +++ b/include/linux/pinctrl/machine.h | |||
| @@ -12,6 +12,8 @@ | |||
| 12 | #ifndef __LINUX_PINCTRL_MACHINE_H | 12 | #ifndef __LINUX_PINCTRL_MACHINE_H |
| 13 | #define __LINUX_PINCTRL_MACHINE_H | 13 | #define __LINUX_PINCTRL_MACHINE_H |
| 14 | 14 | ||
| 15 | #include <linux/bug.h> | ||
| 16 | |||
| 15 | #include "pinctrl-state.h" | 17 | #include "pinctrl-state.h" |
| 16 | 18 | ||
| 17 | enum pinctrl_map_type { | 19 | enum pinctrl_map_type { |
| @@ -148,7 +150,7 @@ struct pinctrl_map { | |||
| 148 | #define PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(dev, grp, cfgs) \ | 150 | #define PIN_MAP_CONFIGS_GROUP_HOG_DEFAULT(dev, grp, cfgs) \ |
| 149 | PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, cfgs) | 151 | PIN_MAP_CONFIGS_GROUP(dev, PINCTRL_STATE_DEFAULT, dev, grp, cfgs) |
| 150 | 152 | ||
| 151 | #ifdef CONFIG_PINMUX | 153 | #ifdef CONFIG_PINCTRL |
| 152 | 154 | ||
| 153 | extern int pinctrl_register_mappings(struct pinctrl_map const *map, | 155 | extern int pinctrl_register_mappings(struct pinctrl_map const *map, |
| 154 | unsigned num_maps); | 156 | unsigned num_maps); |
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index 6d626ff0cfd0..e1ac1ce16fb0 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #define PIPE_BUF_FLAG_LRU 0x01 /* page is on the LRU */ | 6 | #define PIPE_BUF_FLAG_LRU 0x01 /* page is on the LRU */ |
| 7 | #define PIPE_BUF_FLAG_ATOMIC 0x02 /* was atomically mapped */ | 7 | #define PIPE_BUF_FLAG_ATOMIC 0x02 /* was atomically mapped */ |
| 8 | #define PIPE_BUF_FLAG_GIFT 0x04 /* page is a gift */ | 8 | #define PIPE_BUF_FLAG_GIFT 0x04 /* page is a gift */ |
| 9 | #define PIPE_BUF_FLAG_PACKET 0x08 /* read() as a packet */ | ||
| 9 | 10 | ||
| 10 | /** | 11 | /** |
| 11 | * struct pipe_buffer - a linux kernel pipe buffer | 12 | * struct pipe_buffer - a linux kernel pipe buffer |
diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h index c6db9fb33c44..600060e25ec6 100644 --- a/include/linux/seqlock.h +++ b/include/linux/seqlock.h | |||
| @@ -141,7 +141,7 @@ static inline unsigned __read_seqcount_begin(const seqcount_t *s) | |||
| 141 | unsigned ret; | 141 | unsigned ret; |
| 142 | 142 | ||
| 143 | repeat: | 143 | repeat: |
| 144 | ret = s->sequence; | 144 | ret = ACCESS_ONCE(s->sequence); |
| 145 | if (unlikely(ret & 1)) { | 145 | if (unlikely(ret & 1)) { |
| 146 | cpu_relax(); | 146 | cpu_relax(); |
| 147 | goto repeat; | 147 | goto repeat; |
| @@ -166,6 +166,27 @@ static inline unsigned read_seqcount_begin(const seqcount_t *s) | |||
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | /** | 168 | /** |
| 169 | * raw_seqcount_begin - begin a seq-read critical section | ||
| 170 | * @s: pointer to seqcount_t | ||
| 171 | * Returns: count to be passed to read_seqcount_retry | ||
| 172 | * | ||
| 173 | * raw_seqcount_begin opens a read critical section of the given seqcount. | ||
| 174 | * Validity of the critical section is tested by checking read_seqcount_retry | ||
| 175 | * function. | ||
| 176 | * | ||
| 177 | * Unlike read_seqcount_begin(), this function will not wait for the count | ||
| 178 | * to stabilize. If a writer is active when we begin, we will fail the | ||
| 179 | * read_seqcount_retry() instead of stabilizing at the beginning of the | ||
| 180 | * critical section. | ||
| 181 | */ | ||
| 182 | static inline unsigned raw_seqcount_begin(const seqcount_t *s) | ||
| 183 | { | ||
| 184 | unsigned ret = ACCESS_ONCE(s->sequence); | ||
| 185 | smp_rmb(); | ||
| 186 | return ret & ~1; | ||
| 187 | } | ||
| 188 | |||
| 189 | /** | ||
| 169 | * __read_seqcount_retry - end a seq-read critical section (without barrier) | 190 | * __read_seqcount_retry - end a seq-read critical section (without barrier) |
| 170 | * @s: pointer to seqcount_t | 191 | * @s: pointer to seqcount_t |
| 171 | * @start: count, from read_seqcount_begin | 192 | * @start: count, from read_seqcount_begin |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 70a3f8d49118..111f26b6e28b 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
| @@ -238,11 +238,12 @@ enum { | |||
| 238 | /* | 238 | /* |
| 239 | * The callback notifies userspace to release buffers when skb DMA is done in | 239 | * The callback notifies userspace to release buffers when skb DMA is done in |
| 240 | * lower device, the skb last reference should be 0 when calling this. | 240 | * lower device, the skb last reference should be 0 when calling this. |
| 241 | * The desc is used to track userspace buffer index. | 241 | * The ctx field is used to track device context. |
| 242 | * The desc field is used to track userspace buffer index. | ||
| 242 | */ | 243 | */ |
| 243 | struct ubuf_info { | 244 | struct ubuf_info { |
| 244 | void (*callback)(void *); | 245 | void (*callback)(struct ubuf_info *); |
| 245 | void *arg; | 246 | void *ctx; |
| 246 | unsigned long desc; | 247 | unsigned long desc; |
| 247 | }; | 248 | }; |
| 248 | 249 | ||
| @@ -1019,7 +1020,7 @@ static inline void skb_queue_splice(const struct sk_buff_head *list, | |||
| 1019 | } | 1020 | } |
| 1020 | 1021 | ||
| 1021 | /** | 1022 | /** |
| 1022 | * skb_queue_splice - join two skb lists and reinitialise the emptied list | 1023 | * skb_queue_splice_init - join two skb lists and reinitialise the emptied list |
| 1023 | * @list: the new list to add | 1024 | * @list: the new list to add |
| 1024 | * @head: the place to add it in the first list | 1025 | * @head: the place to add it in the first list |
| 1025 | * | 1026 | * |
| @@ -1050,7 +1051,7 @@ static inline void skb_queue_splice_tail(const struct sk_buff_head *list, | |||
| 1050 | } | 1051 | } |
| 1051 | 1052 | ||
| 1052 | /** | 1053 | /** |
| 1053 | * skb_queue_splice_tail - join two skb lists and reinitialise the emptied list | 1054 | * skb_queue_splice_tail_init - join two skb lists and reinitialise the emptied list |
| 1054 | * @list: the new list to add | 1055 | * @list: the new list to add |
| 1055 | * @head: the place to add it in the first list | 1056 | * @head: the place to add it in the first list |
| 1056 | * | 1057 | * |
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 98679b061b63..fa702aeb5038 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h | |||
| @@ -254,7 +254,7 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv) | |||
| 254 | * driver is finished with this message, it must call | 254 | * driver is finished with this message, it must call |
| 255 | * spi_finalize_current_message() so the subsystem can issue the next | 255 | * spi_finalize_current_message() so the subsystem can issue the next |
| 256 | * transfer | 256 | * transfer |
| 257 | * @prepare_transfer_hardware: there are currently no more messages on the | 257 | * @unprepare_transfer_hardware: there are currently no more messages on the |
| 258 | * queue so the subsystem notifies the driver that it may relax the | 258 | * queue so the subsystem notifies the driver that it may relax the |
| 259 | * hardware by issuing this call | 259 | * hardware by issuing this call |
| 260 | * | 260 | * |
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h index 5de415707c23..d28cc78a38e4 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h | |||
| @@ -126,6 +126,8 @@ struct usb_hcd { | |||
| 126 | unsigned wireless:1; /* Wireless USB HCD */ | 126 | unsigned wireless:1; /* Wireless USB HCD */ |
| 127 | unsigned authorized_default:1; | 127 | unsigned authorized_default:1; |
| 128 | unsigned has_tt:1; /* Integrated TT in root hub */ | 128 | unsigned has_tt:1; /* Integrated TT in root hub */ |
| 129 | unsigned broken_pci_sleep:1; /* Don't put the | ||
| 130 | controller in PCI-D3 for system sleep */ | ||
| 129 | 131 | ||
| 130 | unsigned int irq; /* irq allocated */ | 132 | unsigned int irq; /* irq allocated */ |
| 131 | void __iomem *regs; /* device memory/io */ | 133 | void __iomem *regs; /* device memory/io */ |
diff --git a/include/linux/usb/otg.h b/include/linux/usb/otg.h index f67810f8f21b..38ab3f46346f 100644 --- a/include/linux/usb/otg.h +++ b/include/linux/usb/otg.h | |||
| @@ -94,6 +94,7 @@ struct usb_phy { | |||
| 94 | 94 | ||
| 95 | struct usb_otg *otg; | 95 | struct usb_otg *otg; |
| 96 | 96 | ||
| 97 | struct device *io_dev; | ||
| 97 | struct usb_phy_io_ops *io_ops; | 98 | struct usb_phy_io_ops *io_ops; |
| 98 | void __iomem *io_priv; | 99 | void __iomem *io_priv; |
| 99 | 100 | ||
diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index 03b90cdc1921..06f8e3858251 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h | |||
| @@ -26,13 +26,14 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, | |||
| 26 | PGFREE, PGACTIVATE, PGDEACTIVATE, | 26 | PGFREE, PGACTIVATE, PGDEACTIVATE, |
| 27 | PGFAULT, PGMAJFAULT, | 27 | PGFAULT, PGMAJFAULT, |
| 28 | FOR_ALL_ZONES(PGREFILL), | 28 | FOR_ALL_ZONES(PGREFILL), |
| 29 | FOR_ALL_ZONES(PGSTEAL), | 29 | FOR_ALL_ZONES(PGSTEAL_KSWAPD), |
| 30 | FOR_ALL_ZONES(PGSTEAL_DIRECT), | ||
| 30 | FOR_ALL_ZONES(PGSCAN_KSWAPD), | 31 | FOR_ALL_ZONES(PGSCAN_KSWAPD), |
| 31 | FOR_ALL_ZONES(PGSCAN_DIRECT), | 32 | FOR_ALL_ZONES(PGSCAN_DIRECT), |
| 32 | #ifdef CONFIG_NUMA | 33 | #ifdef CONFIG_NUMA |
| 33 | PGSCAN_ZONE_RECLAIM_FAILED, | 34 | PGSCAN_ZONE_RECLAIM_FAILED, |
| 34 | #endif | 35 | #endif |
| 35 | PGINODESTEAL, SLABS_SCANNED, KSWAPD_STEAL, KSWAPD_INODESTEAL, | 36 | PGINODESTEAL, SLABS_SCANNED, KSWAPD_INODESTEAL, |
| 36 | KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, | 37 | KSWAPD_LOW_WMARK_HIT_QUICKLY, KSWAPD_HIGH_WMARK_HIT_QUICKLY, |
| 37 | KSWAPD_SKIP_CONGESTION_WAIT, | 38 | KSWAPD_SKIP_CONGESTION_WAIT, |
| 38 | PAGEOUTRUN, ALLOCSTALL, PGROTATED, | 39 | PAGEOUTRUN, ALLOCSTALL, PGROTATED, |
