diff options
| author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-12-21 03:51:23 -0500 |
|---|---|---|
| committer | Rafael J. Wysocki <rjw@sisk.pl> | 2011-12-21 03:51:23 -0500 |
| commit | dfa9d178cd28caf5d76bc4f37f4b3e7e8df8e697 (patch) | |
| tree | d97ca7790d8a622cba9fdd19832decdb0aa6418a /include/linux | |
| parent | 3f19f08a7ec74cfc50fbad3c5e615760afbd23a0 (diff) | |
| parent | 7b4050381127ae11fcfc74a106d715a5fbbf888a (diff) | |
Merge branch 'devfreq-for-next' of git://git.infradead.org/users/kmpark/linux-samsung into pm-devfreq
* 'devfreq-for-next' of git://git.infradead.org/users/kmpark/linux-samsung: (765 commits)
PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412.
pci: Fix hotplug of Express Module with pci bridges
i2c-eg20t: correct the driver init order of pch_i2c_probe()
I2C: OMAP: fix FIFO usage for OMAP4
i2c-s3c2410: Fix return code of s3c24xx_i2c_parse_dt_gpio
i2c: i2c-s3c2410: Add a cpu_relax() to busy wait for bus idle
Linux 3.2-rc6
Revert "drm/i915: fix infinite recursion on unbind due to ilk vt-d w/a"
btrfs: lower the dirty balance poll interval
drm/i915/dp: Dither down to 6bpc if it makes the mode fit
drm/i915: enable semaphores on per-device defaults
drm/i915: don't set unpin_work if vblank_get fails
drm/i915: By default, enable RC6 on IVB and SNB when reasonable
iommu: Export intel_iommu_enabled to signal when iommu is in use
drm/i915/sdvo: Include LVDS panels for the IS_DIGITAL check
drm/i915: prevent division by zero when asking for chipset power
drm/i915: add PCH info to i915_capabilities
drm/i915: set the right SDVO transcoder for CPT
drm/i915: no-lvds quirk for ASUS AT5NM10T-I
sched: Fix select_idle_sibling() regression in selecting an idle SMT sibling
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/blkdev.h | 3 | ||||
| -rw-r--r-- | include/linux/clocksource.h | 3 | ||||
| -rw-r--r-- | include/linux/compat.h | 9 | ||||
| -rw-r--r-- | include/linux/dcache.h | 3 | ||||
| -rw-r--r-- | include/linux/dma_remapping.h | 2 | ||||
| -rw-r--r-- | include/linux/fs.h | 3 | ||||
| -rw-r--r-- | include/linux/ftrace_event.h | 2 | ||||
| -rw-r--r-- | include/linux/init_task.h | 4 | ||||
| -rw-r--r-- | include/linux/log2.h | 1 | ||||
| -rw-r--r-- | include/linux/mm.h | 1 | ||||
| -rw-r--r-- | include/linux/mmc/card.h | 6 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 2 | ||||
| -rw-r--r-- | include/linux/pci-ats.h | 6 | ||||
| -rw-r--r-- | include/linux/pci.h | 2 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 4 | ||||
| -rw-r--r-- | include/linux/perf_event.h | 1 | ||||
| -rw-r--r-- | include/linux/pkt_sched.h | 6 | ||||
| -rw-r--r-- | include/linux/pm.h | 229 | ||||
| -rw-r--r-- | include/linux/pstore.h | 4 | ||||
| -rw-r--r-- | include/linux/shrinker.h | 2 | ||||
| -rw-r--r-- | include/linux/sigma.h | 13 | ||||
| -rw-r--r-- | include/linux/virtio_config.h | 2 | ||||
| -rw-r--r-- | include/linux/virtio_mmio.h | 2 |
23 files changed, 188 insertions, 122 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index c7a6d3b5bc7b..94acd8172b5b 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
| @@ -805,9 +805,6 @@ extern void blk_unprep_request(struct request *); | |||
| 805 | */ | 805 | */ |
| 806 | extern struct request_queue *blk_init_queue_node(request_fn_proc *rfn, | 806 | extern struct request_queue *blk_init_queue_node(request_fn_proc *rfn, |
| 807 | spinlock_t *lock, int node_id); | 807 | spinlock_t *lock, int node_id); |
| 808 | extern struct request_queue *blk_init_allocated_queue_node(struct request_queue *, | ||
| 809 | request_fn_proc *, | ||
| 810 | spinlock_t *, int node_id); | ||
| 811 | extern struct request_queue *blk_init_queue(request_fn_proc *, spinlock_t *); | 808 | extern struct request_queue *blk_init_queue(request_fn_proc *, spinlock_t *); |
| 812 | extern struct request_queue *blk_init_allocated_queue(struct request_queue *, | 809 | extern struct request_queue *blk_init_allocated_queue(struct request_queue *, |
| 813 | request_fn_proc *, spinlock_t *); | 810 | request_fn_proc *, spinlock_t *); |
diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index 139c4db55f17..c86c940d1de3 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h | |||
| @@ -156,6 +156,7 @@ extern u64 timecounter_cyc2time(struct timecounter *tc, | |||
| 156 | * @mult: cycle to nanosecond multiplier | 156 | * @mult: cycle to nanosecond multiplier |
| 157 | * @shift: cycle to nanosecond divisor (power of two) | 157 | * @shift: cycle to nanosecond divisor (power of two) |
| 158 | * @max_idle_ns: max idle time permitted by the clocksource (nsecs) | 158 | * @max_idle_ns: max idle time permitted by the clocksource (nsecs) |
| 159 | * @maxadj maximum adjustment value to mult (~11%) | ||
| 159 | * @flags: flags describing special properties | 160 | * @flags: flags describing special properties |
| 160 | * @archdata: arch-specific data | 161 | * @archdata: arch-specific data |
| 161 | * @suspend: suspend function for the clocksource, if necessary | 162 | * @suspend: suspend function for the clocksource, if necessary |
| @@ -172,7 +173,7 @@ struct clocksource { | |||
| 172 | u32 mult; | 173 | u32 mult; |
| 173 | u32 shift; | 174 | u32 shift; |
| 174 | u64 max_idle_ns; | 175 | u64 max_idle_ns; |
| 175 | 176 | u32 maxadj; | |
| 176 | #ifdef CONFIG_ARCH_CLOCKSOURCE_DATA | 177 | #ifdef CONFIG_ARCH_CLOCKSOURCE_DATA |
| 177 | struct arch_clocksource_data archdata; | 178 | struct arch_clocksource_data archdata; |
| 178 | #endif | 179 | #endif |
diff --git a/include/linux/compat.h b/include/linux/compat.h index 154bf5683015..66ed067fb729 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -552,5 +552,14 @@ extern ssize_t compat_rw_copy_check_uvector(int type, | |||
| 552 | 552 | ||
| 553 | extern void __user *compat_alloc_user_space(unsigned long len); | 553 | extern void __user *compat_alloc_user_space(unsigned long len); |
| 554 | 554 | ||
| 555 | asmlinkage ssize_t compat_sys_process_vm_readv(compat_pid_t pid, | ||
| 556 | const struct compat_iovec __user *lvec, | ||
| 557 | unsigned long liovcnt, const struct compat_iovec __user *rvec, | ||
| 558 | unsigned long riovcnt, unsigned long flags); | ||
| 559 | asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid, | ||
| 560 | const struct compat_iovec __user *lvec, | ||
| 561 | unsigned long liovcnt, const struct compat_iovec __user *rvec, | ||
| 562 | unsigned long riovcnt, unsigned long flags); | ||
| 563 | |||
| 555 | #endif /* CONFIG_COMPAT */ | 564 | #endif /* CONFIG_COMPAT */ |
| 556 | #endif /* _LINUX_COMPAT_H */ | 565 | #endif /* _LINUX_COMPAT_H */ |
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index 4df926199369..ed9f74f6c519 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h | |||
| @@ -339,7 +339,8 @@ extern int d_validate(struct dentry *, struct dentry *); | |||
| 339 | */ | 339 | */ |
| 340 | extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); | 340 | extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...); |
| 341 | 341 | ||
| 342 | extern char *__d_path(const struct path *path, struct path *root, char *, int); | 342 | extern char *__d_path(const struct path *, const struct path *, char *, int); |
| 343 | extern char *d_absolute_path(const struct path *, char *, int); | ||
| 343 | extern char *d_path(const struct path *, char *, int); | 344 | extern char *d_path(const struct path *, char *, int); |
| 344 | extern char *d_path_with_unreachable(const struct path *, char *, int); | 345 | extern char *d_path_with_unreachable(const struct path *, char *, int); |
| 345 | extern char *dentry_path_raw(struct dentry *, char *, int); | 346 | extern char *dentry_path_raw(struct dentry *, char *, int); |
diff --git a/include/linux/dma_remapping.h b/include/linux/dma_remapping.h index ef90cbd8e173..57c9a8ae4f2d 100644 --- a/include/linux/dma_remapping.h +++ b/include/linux/dma_remapping.h | |||
| @@ -31,6 +31,7 @@ extern void free_dmar_iommu(struct intel_iommu *iommu); | |||
| 31 | extern int iommu_calculate_agaw(struct intel_iommu *iommu); | 31 | extern int iommu_calculate_agaw(struct intel_iommu *iommu); |
| 32 | extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu); | 32 | extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu); |
| 33 | extern int dmar_disabled; | 33 | extern int dmar_disabled; |
| 34 | extern int intel_iommu_enabled; | ||
| 34 | #else | 35 | #else |
| 35 | static inline int iommu_calculate_agaw(struct intel_iommu *iommu) | 36 | static inline int iommu_calculate_agaw(struct intel_iommu *iommu) |
| 36 | { | 37 | { |
| @@ -44,6 +45,7 @@ static inline void free_dmar_iommu(struct intel_iommu *iommu) | |||
| 44 | { | 45 | { |
| 45 | } | 46 | } |
| 46 | #define dmar_disabled (1) | 47 | #define dmar_disabled (1) |
| 48 | #define intel_iommu_enabled (0) | ||
| 47 | #endif | 49 | #endif |
| 48 | 50 | ||
| 49 | 51 | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index e3130220ce3e..e0bc4ffb8e7f 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -393,8 +393,8 @@ struct inodes_stat_t { | |||
| 393 | #include <linux/semaphore.h> | 393 | #include <linux/semaphore.h> |
| 394 | #include <linux/fiemap.h> | 394 | #include <linux/fiemap.h> |
| 395 | #include <linux/rculist_bl.h> | 395 | #include <linux/rculist_bl.h> |
| 396 | #include <linux/shrinker.h> | ||
| 397 | #include <linux/atomic.h> | 396 | #include <linux/atomic.h> |
| 397 | #include <linux/shrinker.h> | ||
| 398 | 398 | ||
| 399 | #include <asm/byteorder.h> | 399 | #include <asm/byteorder.h> |
| 400 | 400 | ||
| @@ -1942,6 +1942,7 @@ extern int fd_statfs(int, struct kstatfs *); | |||
| 1942 | extern int statfs_by_dentry(struct dentry *, struct kstatfs *); | 1942 | extern int statfs_by_dentry(struct dentry *, struct kstatfs *); |
| 1943 | extern int freeze_super(struct super_block *super); | 1943 | extern int freeze_super(struct super_block *super); |
| 1944 | extern int thaw_super(struct super_block *super); | 1944 | extern int thaw_super(struct super_block *super); |
| 1945 | extern bool our_mnt(struct vfsmount *mnt); | ||
| 1945 | 1946 | ||
| 1946 | extern int current_umask(void); | 1947 | extern int current_umask(void); |
| 1947 | 1948 | ||
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h index 96efa6794ea5..c3da42dd22ba 100644 --- a/include/linux/ftrace_event.h +++ b/include/linux/ftrace_event.h | |||
| @@ -172,6 +172,7 @@ enum { | |||
| 172 | TRACE_EVENT_FL_FILTERED_BIT, | 172 | TRACE_EVENT_FL_FILTERED_BIT, |
| 173 | TRACE_EVENT_FL_RECORDED_CMD_BIT, | 173 | TRACE_EVENT_FL_RECORDED_CMD_BIT, |
| 174 | TRACE_EVENT_FL_CAP_ANY_BIT, | 174 | TRACE_EVENT_FL_CAP_ANY_BIT, |
| 175 | TRACE_EVENT_FL_NO_SET_FILTER_BIT, | ||
| 175 | }; | 176 | }; |
| 176 | 177 | ||
| 177 | enum { | 178 | enum { |
| @@ -179,6 +180,7 @@ enum { | |||
| 179 | TRACE_EVENT_FL_FILTERED = (1 << TRACE_EVENT_FL_FILTERED_BIT), | 180 | TRACE_EVENT_FL_FILTERED = (1 << TRACE_EVENT_FL_FILTERED_BIT), |
| 180 | TRACE_EVENT_FL_RECORDED_CMD = (1 << TRACE_EVENT_FL_RECORDED_CMD_BIT), | 181 | TRACE_EVENT_FL_RECORDED_CMD = (1 << TRACE_EVENT_FL_RECORDED_CMD_BIT), |
| 181 | TRACE_EVENT_FL_CAP_ANY = (1 << TRACE_EVENT_FL_CAP_ANY_BIT), | 182 | TRACE_EVENT_FL_CAP_ANY = (1 << TRACE_EVENT_FL_CAP_ANY_BIT), |
| 183 | TRACE_EVENT_FL_NO_SET_FILTER = (1 << TRACE_EVENT_FL_NO_SET_FILTER_BIT), | ||
| 182 | }; | 184 | }; |
| 183 | 185 | ||
| 184 | struct ftrace_event_call { | 186 | struct ftrace_event_call { |
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 94b1e356c02a..32574eef9394 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
| @@ -126,6 +126,8 @@ extern struct cred init_cred; | |||
| 126 | # define INIT_PERF_EVENTS(tsk) | 126 | # define INIT_PERF_EVENTS(tsk) |
| 127 | #endif | 127 | #endif |
| 128 | 128 | ||
| 129 | #define INIT_TASK_COMM "swapper" | ||
| 130 | |||
| 129 | /* | 131 | /* |
| 130 | * INIT_TASK is used to set up the first task table, touch at | 132 | * INIT_TASK is used to set up the first task table, touch at |
| 131 | * your own risk!. Base=0, limit=0x1fffff (=2MB) | 133 | * your own risk!. Base=0, limit=0x1fffff (=2MB) |
| @@ -162,7 +164,7 @@ extern struct cred init_cred; | |||
| 162 | .group_leader = &tsk, \ | 164 | .group_leader = &tsk, \ |
| 163 | RCU_INIT_POINTER(.real_cred, &init_cred), \ | 165 | RCU_INIT_POINTER(.real_cred, &init_cred), \ |
| 164 | RCU_INIT_POINTER(.cred, &init_cred), \ | 166 | RCU_INIT_POINTER(.cred, &init_cred), \ |
| 165 | .comm = "swapper", \ | 167 | .comm = INIT_TASK_COMM, \ |
| 166 | .thread = INIT_THREAD, \ | 168 | .thread = INIT_THREAD, \ |
| 167 | .fs = &init_fs, \ | 169 | .fs = &init_fs, \ |
| 168 | .files = &init_files, \ | 170 | .files = &init_files, \ |
diff --git a/include/linux/log2.h b/include/linux/log2.h index 25b808631cd9..fd7ff3d91e6a 100644 --- a/include/linux/log2.h +++ b/include/linux/log2.h | |||
| @@ -185,7 +185,6 @@ unsigned long __rounddown_pow_of_two(unsigned long n) | |||
| 185 | #define rounddown_pow_of_two(n) \ | 185 | #define rounddown_pow_of_two(n) \ |
| 186 | ( \ | 186 | ( \ |
| 187 | __builtin_constant_p(n) ? ( \ | 187 | __builtin_constant_p(n) ? ( \ |
| 188 | (n == 1) ? 0 : \ | ||
| 189 | (1UL << ilog2(n))) : \ | 188 | (1UL << ilog2(n))) : \ |
| 190 | __rounddown_pow_of_two(n) \ | 189 | __rounddown_pow_of_two(n) \ |
| 191 | ) | 190 | ) |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 3dc3a8c2c485..4baadd18f4ad 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <linux/mmzone.h> | 10 | #include <linux/mmzone.h> |
| 11 | #include <linux/rbtree.h> | 11 | #include <linux/rbtree.h> |
| 12 | #include <linux/prio_tree.h> | 12 | #include <linux/prio_tree.h> |
| 13 | #include <linux/atomic.h> | ||
| 13 | #include <linux/debug_locks.h> | 14 | #include <linux/debug_locks.h> |
| 14 | #include <linux/mm_types.h> | 15 | #include <linux/mm_types.h> |
| 15 | #include <linux/range.h> | 16 | #include <linux/range.h> |
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 415f2db414e1..c8ef9bc54d50 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h | |||
| @@ -218,6 +218,7 @@ struct mmc_card { | |||
| 218 | #define MMC_QUIRK_INAND_CMD38 (1<<6) /* iNAND devices have broken CMD38 */ | 218 | #define MMC_QUIRK_INAND_CMD38 (1<<6) /* iNAND devices have broken CMD38 */ |
| 219 | #define MMC_QUIRK_BLK_NO_CMD23 (1<<7) /* Avoid CMD23 for regular multiblock */ | 219 | #define MMC_QUIRK_BLK_NO_CMD23 (1<<7) /* Avoid CMD23 for regular multiblock */ |
| 220 | #define MMC_QUIRK_BROKEN_BYTE_MODE_512 (1<<8) /* Avoid sending 512 bytes in */ | 220 | #define MMC_QUIRK_BROKEN_BYTE_MODE_512 (1<<8) /* Avoid sending 512 bytes in */ |
| 221 | #define MMC_QUIRK_LONG_READ_TIME (1<<9) /* Data read time > CSD says */ | ||
| 221 | /* byte mode */ | 222 | /* byte mode */ |
| 222 | unsigned int poweroff_notify_state; /* eMMC4.5 notify feature */ | 223 | unsigned int poweroff_notify_state; /* eMMC4.5 notify feature */ |
| 223 | #define MMC_NO_POWER_NOTIFICATION 0 | 224 | #define MMC_NO_POWER_NOTIFICATION 0 |
| @@ -433,6 +434,11 @@ static inline int mmc_card_broken_byte_mode_512(const struct mmc_card *c) | |||
| 433 | return c->quirks & MMC_QUIRK_BROKEN_BYTE_MODE_512; | 434 | return c->quirks & MMC_QUIRK_BROKEN_BYTE_MODE_512; |
| 434 | } | 435 | } |
| 435 | 436 | ||
| 437 | static inline int mmc_card_long_read_time(const struct mmc_card *c) | ||
| 438 | { | ||
| 439 | return c->quirks & MMC_QUIRK_LONG_READ_TIME; | ||
| 440 | } | ||
| 441 | |||
| 436 | #define mmc_card_name(c) ((c)->cid.prod_name) | 442 | #define mmc_card_name(c) ((c)->cid.prod_name) |
| 437 | #define mmc_card_id(c) (dev_name(&(c)->dev)) | 443 | #define mmc_card_id(c) (dev_name(&(c)->dev)) |
| 438 | 444 | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index cbeb5867cff7..a82ad4dd306a 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -2536,6 +2536,8 @@ extern void net_disable_timestamp(void); | |||
| 2536 | extern void *dev_seq_start(struct seq_file *seq, loff_t *pos); | 2536 | extern void *dev_seq_start(struct seq_file *seq, loff_t *pos); |
| 2537 | extern void *dev_seq_next(struct seq_file *seq, void *v, loff_t *pos); | 2537 | extern void *dev_seq_next(struct seq_file *seq, void *v, loff_t *pos); |
| 2538 | extern void dev_seq_stop(struct seq_file *seq, void *v); | 2538 | extern void dev_seq_stop(struct seq_file *seq, void *v); |
| 2539 | extern int dev_seq_open_ops(struct inode *inode, struct file *file, | ||
| 2540 | const struct seq_operations *ops); | ||
| 2539 | #endif | 2541 | #endif |
| 2540 | 2542 | ||
| 2541 | extern int netdev_class_create_file(struct class_attribute *class_attr); | 2543 | extern int netdev_class_create_file(struct class_attribute *class_attr); |
diff --git a/include/linux/pci-ats.h b/include/linux/pci-ats.h index e3d0b3890249..7ef68724f0f0 100644 --- a/include/linux/pci-ats.h +++ b/include/linux/pci-ats.h | |||
| @@ -12,7 +12,7 @@ struct pci_ats { | |||
| 12 | unsigned int is_enabled:1; /* Enable bit is set */ | 12 | unsigned int is_enabled:1; /* Enable bit is set */ |
| 13 | }; | 13 | }; |
| 14 | 14 | ||
| 15 | #ifdef CONFIG_PCI_IOV | 15 | #ifdef CONFIG_PCI_ATS |
| 16 | 16 | ||
| 17 | extern int pci_enable_ats(struct pci_dev *dev, int ps); | 17 | extern int pci_enable_ats(struct pci_dev *dev, int ps); |
| 18 | extern void pci_disable_ats(struct pci_dev *dev); | 18 | extern void pci_disable_ats(struct pci_dev *dev); |
| @@ -29,7 +29,7 @@ static inline int pci_ats_enabled(struct pci_dev *dev) | |||
| 29 | return dev->ats && dev->ats->is_enabled; | 29 | return dev->ats && dev->ats->is_enabled; |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | #else /* CONFIG_PCI_IOV */ | 32 | #else /* CONFIG_PCI_ATS */ |
| 33 | 33 | ||
| 34 | static inline int pci_enable_ats(struct pci_dev *dev, int ps) | 34 | static inline int pci_enable_ats(struct pci_dev *dev, int ps) |
| 35 | { | 35 | { |
| @@ -50,7 +50,7 @@ static inline int pci_ats_enabled(struct pci_dev *dev) | |||
| 50 | return 0; | 50 | return 0; |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | #endif /* CONFIG_PCI_IOV */ | 53 | #endif /* CONFIG_PCI_ATS */ |
| 54 | 54 | ||
| 55 | #ifdef CONFIG_PCI_PRI | 55 | #ifdef CONFIG_PCI_PRI |
| 56 | 56 | ||
diff --git a/include/linux/pci.h b/include/linux/pci.h index 337df0d5d5f7..7cda65b5f798 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -338,7 +338,7 @@ struct pci_dev { | |||
| 338 | struct list_head msi_list; | 338 | struct list_head msi_list; |
| 339 | #endif | 339 | #endif |
| 340 | struct pci_vpd *vpd; | 340 | struct pci_vpd *vpd; |
| 341 | #ifdef CONFIG_PCI_IOV | 341 | #ifdef CONFIG_PCI_ATS |
| 342 | union { | 342 | union { |
| 343 | struct pci_sriov *sriov; /* SR-IOV capability related */ | 343 | struct pci_sriov *sriov; /* SR-IOV capability related */ |
| 344 | struct pci_dev *physfn; /* the PF this VF is associated with */ | 344 | struct pci_dev *physfn; /* the PF this VF is associated with */ |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 172ba70306d1..2aaee0ca9da8 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -517,8 +517,12 @@ | |||
| 517 | #define PCI_DEVICE_ID_AMD_11H_NB_DRAM 0x1302 | 517 | #define PCI_DEVICE_ID_AMD_11H_NB_DRAM 0x1302 |
| 518 | #define PCI_DEVICE_ID_AMD_11H_NB_MISC 0x1303 | 518 | #define PCI_DEVICE_ID_AMD_11H_NB_MISC 0x1303 |
| 519 | #define PCI_DEVICE_ID_AMD_11H_NB_LINK 0x1304 | 519 | #define PCI_DEVICE_ID_AMD_11H_NB_LINK 0x1304 |
| 520 | #define PCI_DEVICE_ID_AMD_15H_NB_F0 0x1600 | ||
| 521 | #define PCI_DEVICE_ID_AMD_15H_NB_F1 0x1601 | ||
| 522 | #define PCI_DEVICE_ID_AMD_15H_NB_F2 0x1602 | ||
| 520 | #define PCI_DEVICE_ID_AMD_15H_NB_F3 0x1603 | 523 | #define PCI_DEVICE_ID_AMD_15H_NB_F3 0x1603 |
| 521 | #define PCI_DEVICE_ID_AMD_15H_NB_F4 0x1604 | 524 | #define PCI_DEVICE_ID_AMD_15H_NB_F4 0x1604 |
| 525 | #define PCI_DEVICE_ID_AMD_15H_NB_F5 0x1605 | ||
| 522 | #define PCI_DEVICE_ID_AMD_CNB17H_F3 0x1703 | 526 | #define PCI_DEVICE_ID_AMD_CNB17H_F3 0x1703 |
| 523 | #define PCI_DEVICE_ID_AMD_LANCE 0x2000 | 527 | #define PCI_DEVICE_ID_AMD_LANCE 0x2000 |
| 524 | #define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001 | 528 | #define PCI_DEVICE_ID_AMD_LANCE_HOME 0x2001 |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 1e9ebe5e0091..b1f89122bf6a 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
| @@ -822,6 +822,7 @@ struct perf_event { | |||
| 822 | int mmap_locked; | 822 | int mmap_locked; |
| 823 | struct user_struct *mmap_user; | 823 | struct user_struct *mmap_user; |
| 824 | struct ring_buffer *rb; | 824 | struct ring_buffer *rb; |
| 825 | struct list_head rb_entry; | ||
| 825 | 826 | ||
| 826 | /* poll related */ | 827 | /* poll related */ |
| 827 | wait_queue_head_t waitq; | 828 | wait_queue_head_t waitq; |
diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h index c5336705921f..7281d5acf2f9 100644 --- a/include/linux/pkt_sched.h +++ b/include/linux/pkt_sched.h | |||
| @@ -30,7 +30,7 @@ | |||
| 30 | */ | 30 | */ |
| 31 | 31 | ||
| 32 | struct tc_stats { | 32 | struct tc_stats { |
| 33 | __u64 bytes; /* NUmber of enqueues bytes */ | 33 | __u64 bytes; /* Number of enqueued bytes */ |
| 34 | __u32 packets; /* Number of enqueued packets */ | 34 | __u32 packets; /* Number of enqueued packets */ |
| 35 | __u32 drops; /* Packets dropped because of lack of resources */ | 35 | __u32 drops; /* Packets dropped because of lack of resources */ |
| 36 | __u32 overlimits; /* Number of throttle events when this | 36 | __u32 overlimits; /* Number of throttle events when this |
| @@ -297,7 +297,7 @@ struct tc_htb_glob { | |||
| 297 | __u32 debug; /* debug flags */ | 297 | __u32 debug; /* debug flags */ |
| 298 | 298 | ||
| 299 | /* stats */ | 299 | /* stats */ |
| 300 | __u32 direct_pkts; /* count of non shapped packets */ | 300 | __u32 direct_pkts; /* count of non shaped packets */ |
| 301 | }; | 301 | }; |
| 302 | enum { | 302 | enum { |
| 303 | TCA_HTB_UNSPEC, | 303 | TCA_HTB_UNSPEC, |
| @@ -503,7 +503,7 @@ enum { | |||
| 503 | }; | 503 | }; |
| 504 | #define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1) | 504 | #define NETEM_LOSS_MAX (__NETEM_LOSS_MAX - 1) |
| 505 | 505 | ||
| 506 | /* State transition probablities for 4 state model */ | 506 | /* State transition probabilities for 4 state model */ |
| 507 | struct tc_netem_gimodel { | 507 | struct tc_netem_gimodel { |
| 508 | __u32 p13; | 508 | __u32 p13; |
| 509 | __u32 p31; | 509 | __u32 p31; |
diff --git a/include/linux/pm.h b/include/linux/pm.h index 5c4c8b18c8b7..3f3ed83a9aa5 100644 --- a/include/linux/pm.h +++ b/include/linux/pm.h | |||
| @@ -54,118 +54,145 @@ typedef struct pm_message { | |||
| 54 | /** | 54 | /** |
| 55 | * struct dev_pm_ops - device PM callbacks | 55 | * struct dev_pm_ops - device PM callbacks |
| 56 | * | 56 | * |
| 57 | * Several driver power state transitions are externally visible, affecting | 57 | * Several device power state transitions are externally visible, affecting |
| 58 | * the state of pending I/O queues and (for drivers that touch hardware) | 58 | * the state of pending I/O queues and (for drivers that touch hardware) |
| 59 | * interrupts, wakeups, DMA, and other hardware state. There may also be | 59 | * interrupts, wakeups, DMA, and other hardware state. There may also be |
| 60 | * internal transitions to various low power modes, which are transparent | 60 | * internal transitions to various low-power modes which are transparent |
| 61 | * to the rest of the driver stack (such as a driver that's ON gating off | 61 | * to the rest of the driver stack (such as a driver that's ON gating off |
| 62 | * clocks which are not in active use). | 62 | * clocks which are not in active use). |
| 63 | * | 63 | * |
| 64 | * The externally visible transitions are handled with the help of the following | 64 | * The externally visible transitions are handled with the help of callbacks |
| 65 | * callbacks included in this structure: | 65 | * included in this structure in such a way that two levels of callbacks are |
| 66 | * | 66 | * involved. First, the PM core executes callbacks provided by PM domains, |
| 67 | * @prepare: Prepare the device for the upcoming transition, but do NOT change | 67 | * device types, classes and bus types. They are the subsystem-level callbacks |
| 68 | * its hardware state. Prevent new children of the device from being | 68 | * supposed to execute callbacks provided by device drivers, although they may |
| 69 | * registered after @prepare() returns (the driver's subsystem and | 69 | * choose not to do that. If the driver callbacks are executed, they have to |
| 70 | * generally the rest of the kernel is supposed to prevent new calls to the | 70 | * collaborate with the subsystem-level callbacks to achieve the goals |
| 71 | * probe method from being made too once @prepare() has succeeded). If | 71 | * appropriate for the given system transition, given transition phase and the |
| 72 | * @prepare() detects a situation it cannot handle (e.g. registration of a | 72 | * subsystem the device belongs to. |
| 73 | * child already in progress), it may return -EAGAIN, so that the PM core | 73 | * |
| 74 | * can execute it once again (e.g. after the new child has been registered) | 74 | * @prepare: The principal role of this callback is to prevent new children of |
| 75 | * to recover from the race condition. This method is executed for all | 75 | * the device from being registered after it has returned (the driver's |
| 76 | * kinds of suspend transitions and is followed by one of the suspend | 76 | * subsystem and generally the rest of the kernel is supposed to prevent |
| 77 | * callbacks: @suspend(), @freeze(), or @poweroff(). | 77 | * new calls to the probe method from being made too once @prepare() has |
| 78 | * The PM core executes @prepare() for all devices before starting to | 78 | * succeeded). If @prepare() detects a situation it cannot handle (e.g. |
| 79 | * execute suspend callbacks for any of them, so drivers may assume all of | 79 | * registration of a child already in progress), it may return -EAGAIN, so |
| 80 | * the other devices to be present and functional while @prepare() is being | 80 | * that the PM core can execute it once again (e.g. after a new child has |
| 81 | * executed. In particular, it is safe to make GFP_KERNEL memory | 81 | * been registered) to recover from the race condition. |
| 82 | * allocations from within @prepare(). However, drivers may NOT assume | 82 | * This method is executed for all kinds of suspend transitions and is |
| 83 | * anything about the availability of the user space at that time and it | 83 | * followed by one of the suspend callbacks: @suspend(), @freeze(), or |
| 84 | * is not correct to request firmware from within @prepare() (it's too | 84 | * @poweroff(). The PM core executes subsystem-level @prepare() for all |
| 85 | * late to do that). [To work around this limitation, drivers may | 85 | * devices before starting to invoke suspend callbacks for any of them, so |
| 86 | * register suspend and hibernation notifiers that are executed before the | 86 | * generally devices may be assumed to be functional or to respond to |
| 87 | * freezing of tasks.] | 87 | * runtime resume requests while @prepare() is being executed. However, |
| 88 | * device drivers may NOT assume anything about the availability of user | ||
| 89 | * space at that time and it is NOT valid to request firmware from within | ||
| 90 | * @prepare() (it's too late to do that). It also is NOT valid to allocate | ||
| 91 | * substantial amounts of memory from @prepare() in the GFP_KERNEL mode. | ||
| 92 | * [To work around these limitations, drivers may register suspend and | ||
| 93 | * hibernation notifiers to be executed before the freezing of tasks.] | ||
| 88 | * | 94 | * |
| 89 | * @complete: Undo the changes made by @prepare(). This method is executed for | 95 | * @complete: Undo the changes made by @prepare(). This method is executed for |
| 90 | * all kinds of resume transitions, following one of the resume callbacks: | 96 | * all kinds of resume transitions, following one of the resume callbacks: |
| 91 | * @resume(), @thaw(), @restore(). Also called if the state transition | 97 | * @resume(), @thaw(), @restore(). Also called if the state transition |
| 92 | * fails before the driver's suspend callback (@suspend(), @freeze(), | 98 | * fails before the driver's suspend callback: @suspend(), @freeze() or |
| 93 | * @poweroff()) can be executed (e.g. if the suspend callback fails for one | 99 | * @poweroff(), can be executed (e.g. if the suspend callback fails for one |
| 94 | * of the other devices that the PM core has unsuccessfully attempted to | 100 | * of the other devices that the PM core has unsuccessfully attempted to |
| 95 | * suspend earlier). | 101 | * suspend earlier). |
| 96 | * The PM core executes @complete() after it has executed the appropriate | 102 | * The PM core executes subsystem-level @complete() after it has executed |
| 97 | * resume callback for all devices. | 103 | * the appropriate resume callbacks for all devices. |
| 98 | * | 104 | * |
| 99 | * @suspend: Executed before putting the system into a sleep state in which the | 105 | * @suspend: Executed before putting the system into a sleep state in which the |
| 100 | * contents of main memory are preserved. Quiesce the device, put it into | 106 | * contents of main memory are preserved. The exact action to perform |
| 101 | * a low power state appropriate for the upcoming system state (such as | 107 | * depends on the device's subsystem (PM domain, device type, class or bus |
| 102 | * PCI_D3hot), and enable wakeup events as appropriate. | 108 | * type), but generally the device must be quiescent after subsystem-level |
| 109 | * @suspend() has returned, so that it doesn't do any I/O or DMA. | ||
| 110 | * Subsystem-level @suspend() is executed for all devices after invoking | ||
| 111 | * subsystem-level @prepare() for all of them. | ||
| 103 | * | 112 | * |
| 104 | * @resume: Executed after waking the system up from a sleep state in which the | 113 | * @resume: Executed after waking the system up from a sleep state in which the |
| 105 | * contents of main memory were preserved. Put the device into the | 114 | * contents of main memory were preserved. The exact action to perform |
| 106 | * appropriate state, according to the information saved in memory by the | 115 | * depends on the device's subsystem, but generally the driver is expected |
| 107 | * preceding @suspend(). The driver starts working again, responding to | 116 | * to start working again, responding to hardware events and software |
| 108 | * hardware events and software requests. The hardware may have gone | 117 | * requests (the device itself may be left in a low-power state, waiting |
| 109 | * through a power-off reset, or it may have maintained state from the | 118 | * for a runtime resume to occur). The state of the device at the time its |
| 110 | * previous suspend() which the driver may rely on while resuming. On most | 119 | * driver's @resume() callback is run depends on the platform and subsystem |
| 111 | * platforms, there are no restrictions on availability of resources like | 120 | * the device belongs to. On most platforms, there are no restrictions on |
| 112 | * clocks during @resume(). | 121 | * availability of resources like clocks during @resume(). |
| 122 | * Subsystem-level @resume() is executed for all devices after invoking | ||
| 123 | * subsystem-level @resume_noirq() for all of them. | ||
| 113 | * | 124 | * |
| 114 | * @freeze: Hibernation-specific, executed before creating a hibernation image. | 125 | * @freeze: Hibernation-specific, executed before creating a hibernation image. |
| 115 | * Quiesce operations so that a consistent image can be created, but do NOT | 126 | * Analogous to @suspend(), but it should not enable the device to signal |
| 116 | * otherwise put the device into a low power device state and do NOT emit | 127 | * wakeup events or change its power state. The majority of subsystems |
| 117 | * system wakeup events. Save in main memory the device settings to be | 128 | * (with the notable exception of the PCI bus type) expect the driver-level |
| 118 | * used by @restore() during the subsequent resume from hibernation or by | 129 | * @freeze() to save the device settings in memory to be used by @restore() |
| 119 | * the subsequent @thaw(), if the creation of the image or the restoration | 130 | * during the subsequent resume from hibernation. |
| 120 | * of main memory contents from it fails. | 131 | * Subsystem-level @freeze() is executed for all devices after invoking |
| 132 | * subsystem-level @prepare() for all of them. | ||
| 121 | * | 133 | * |
| 122 | * @thaw: Hibernation-specific, executed after creating a hibernation image OR | 134 | * @thaw: Hibernation-specific, executed after creating a hibernation image OR |
| 123 | * if the creation of the image fails. Also executed after a failing | 135 | * if the creation of an image has failed. Also executed after a failing |
| 124 | * attempt to restore the contents of main memory from such an image. | 136 | * attempt to restore the contents of main memory from such an image. |
| 125 | * Undo the changes made by the preceding @freeze(), so the device can be | 137 | * Undo the changes made by the preceding @freeze(), so the device can be |
| 126 | * operated in the same way as immediately before the call to @freeze(). | 138 | * operated in the same way as immediately before the call to @freeze(). |
| 139 | * Subsystem-level @thaw() is executed for all devices after invoking | ||
| 140 | * subsystem-level @thaw_noirq() for all of them. It also may be executed | ||
| 141 | * directly after @freeze() in case of a transition error. | ||
| 127 | * | 142 | * |
| 128 | * @poweroff: Hibernation-specific, executed after saving a hibernation image. | 143 | * @poweroff: Hibernation-specific, executed after saving a hibernation image. |
| 129 | * Quiesce the device, put it into a low power state appropriate for the | 144 | * Analogous to @suspend(), but it need not save the device's settings in |
| 130 | * upcoming system state (such as PCI_D3hot), and enable wakeup events as | 145 | * memory. |
| 131 | * appropriate. | 146 | * Subsystem-level @poweroff() is executed for all devices after invoking |
| 147 | * subsystem-level @prepare() for all of them. | ||
| 132 | * | 148 | * |
| 133 | * @restore: Hibernation-specific, executed after restoring the contents of main | 149 | * @restore: Hibernation-specific, executed after restoring the contents of main |
| 134 | * memory from a hibernation image. Driver starts working again, | 150 | * memory from a hibernation image, analogous to @resume(). |
| 135 | * responding to hardware events and software requests. Drivers may NOT | 151 | * |
| 136 | * make ANY assumptions about the hardware state right prior to @restore(). | 152 | * @suspend_noirq: Complete the actions started by @suspend(). Carry out any |
| 137 | * On most platforms, there are no restrictions on availability of | 153 | * additional operations required for suspending the device that might be |
| 138 | * resources like clocks during @restore(). | 154 | * racing with its driver's interrupt handler, which is guaranteed not to |
| 139 | * | 155 | * run while @suspend_noirq() is being executed. |
| 140 | * @suspend_noirq: Complete the operations of ->suspend() by carrying out any | 156 | * It generally is expected that the device will be in a low-power state |
| 141 | * actions required for suspending the device that need interrupts to be | 157 | * (appropriate for the target system sleep state) after subsystem-level |
| 142 | * disabled | 158 | * @suspend_noirq() has returned successfully. If the device can generate |
| 143 | * | 159 | * system wakeup signals and is enabled to wake up the system, it should be |
| 144 | * @resume_noirq: Prepare for the execution of ->resume() by carrying out any | 160 | * configured to do so at that time. However, depending on the platform |
| 145 | * actions required for resuming the device that need interrupts to be | 161 | * and device's subsystem, @suspend() may be allowed to put the device into |
| 146 | * disabled | 162 | * the low-power state and configure it to generate wakeup signals, in |
| 147 | * | 163 | * which case it generally is not necessary to define @suspend_noirq(). |
| 148 | * @freeze_noirq: Complete the operations of ->freeze() by carrying out any | 164 | * |
| 149 | * actions required for freezing the device that need interrupts to be | 165 | * @resume_noirq: Prepare for the execution of @resume() by carrying out any |
| 150 | * disabled | 166 | * operations required for resuming the device that might be racing with |
| 151 | * | 167 | * its driver's interrupt handler, which is guaranteed not to run while |
| 152 | * @thaw_noirq: Prepare for the execution of ->thaw() by carrying out any | 168 | * @resume_noirq() is being executed. |
| 153 | * actions required for thawing the device that need interrupts to be | 169 | * |
| 154 | * disabled | 170 | * @freeze_noirq: Complete the actions started by @freeze(). Carry out any |
| 155 | * | 171 | * additional operations required for freezing the device that might be |
| 156 | * @poweroff_noirq: Complete the operations of ->poweroff() by carrying out any | 172 | * racing with its driver's interrupt handler, which is guaranteed not to |
| 157 | * actions required for handling the device that need interrupts to be | 173 | * run while @freeze_noirq() is being executed. |
| 158 | * disabled | 174 | * The power state of the device should not be changed by either @freeze() |
| 159 | * | 175 | * or @freeze_noirq() and it should not be configured to signal system |
| 160 | * @restore_noirq: Prepare for the execution of ->restore() by carrying out any | 176 | * wakeup by any of these callbacks. |
| 161 | * actions required for restoring the operations of the device that need | 177 | * |
| 162 | * interrupts to be disabled | 178 | * @thaw_noirq: Prepare for the execution of @thaw() by carrying out any |
| 179 | * operations required for thawing the device that might be racing with its | ||
| 180 | * driver's interrupt handler, which is guaranteed not to run while | ||
| 181 | * @thaw_noirq() is being executed. | ||
| 182 | * | ||
| 183 | * @poweroff_noirq: Complete the actions started by @poweroff(). Analogous to | ||
| 184 | * @suspend_noirq(), but it need not save the device's settings in memory. | ||
| 185 | * | ||
| 186 | * @restore_noirq: Prepare for the execution of @restore() by carrying out any | ||
| 187 | * operations required for thawing the device that might be racing with its | ||
| 188 | * driver's interrupt handler, which is guaranteed not to run while | ||
| 189 | * @restore_noirq() is being executed. Analogous to @resume_noirq(). | ||
| 163 | * | 190 | * |
| 164 | * All of the above callbacks, except for @complete(), return error codes. | 191 | * All of the above callbacks, except for @complete(), return error codes. |
| 165 | * However, the error codes returned by the resume operations, @resume(), | 192 | * However, the error codes returned by the resume operations, @resume(), |
| 166 | * @thaw(), @restore(), @resume_noirq(), @thaw_noirq(), and @restore_noirq() do | 193 | * @thaw(), @restore(), @resume_noirq(), @thaw_noirq(), and @restore_noirq(), do |
| 167 | * not cause the PM core to abort the resume transition during which they are | 194 | * not cause the PM core to abort the resume transition during which they are |
| 168 | * returned. The error codes returned in that cases are only printed by the PM | 195 | * returned. The error codes returned in those cases are only printed by the PM |
| 169 | * core to the system logs for debugging purposes. Still, it is recommended | 196 | * core to the system logs for debugging purposes. Still, it is recommended |
| 170 | * that drivers only return error codes from their resume methods in case of an | 197 | * that drivers only return error codes from their resume methods in case of an |
| 171 | * unrecoverable failure (i.e. when the device being handled refuses to resume | 198 | * unrecoverable failure (i.e. when the device being handled refuses to resume |
| @@ -174,31 +201,43 @@ typedef struct pm_message { | |||
| 174 | * their children. | 201 | * their children. |
| 175 | * | 202 | * |
| 176 | * It is allowed to unregister devices while the above callbacks are being | 203 | * It is allowed to unregister devices while the above callbacks are being |
| 177 | * executed. However, it is not allowed to unregister a device from within any | 204 | * executed. However, a callback routine must NOT try to unregister the device |
| 178 | * of its own callbacks. | 205 | * it was called for, although it may unregister children of that device (for |
| 206 | * example, if it detects that a child was unplugged while the system was | ||
| 207 | * asleep). | ||
| 208 | * | ||
| 209 | * Refer to Documentation/power/devices.txt for more information about the role | ||
| 210 | * of the above callbacks in the system suspend process. | ||
| 179 | * | 211 | * |
| 180 | * There also are the following callbacks related to run-time power management | 212 | * There also are callbacks related to runtime power management of devices. |
| 181 | * of devices: | 213 | * Again, these callbacks are executed by the PM core only for subsystems |
| 214 | * (PM domains, device types, classes and bus types) and the subsystem-level | ||
| 215 | * callbacks are supposed to invoke the driver callbacks. Moreover, the exact | ||
| 216 | * actions to be performed by a device driver's callbacks generally depend on | ||
| 217 | * the platform and subsystem the device belongs to. | ||
| 182 | * | 218 | * |
| 183 | * @runtime_suspend: Prepare the device for a condition in which it won't be | 219 | * @runtime_suspend: Prepare the device for a condition in which it won't be |
| 184 | * able to communicate with the CPU(s) and RAM due to power management. | 220 | * able to communicate with the CPU(s) and RAM due to power management. |
| 185 | * This need not mean that the device should be put into a low power state. | 221 | * This need not mean that the device should be put into a low-power state. |
| 186 | * For example, if the device is behind a link which is about to be turned | 222 | * For example, if the device is behind a link which is about to be turned |
| 187 | * off, the device may remain at full power. If the device does go to low | 223 | * off, the device may remain at full power. If the device does go to low |
| 188 | * power and is capable of generating run-time wake-up events, remote | 224 | * power and is capable of generating runtime wakeup events, remote wakeup |
| 189 | * wake-up (i.e., a hardware mechanism allowing the device to request a | 225 | * (i.e., a hardware mechanism allowing the device to request a change of |
| 190 | * change of its power state via a wake-up event, such as PCI PME) should | 226 | * its power state via an interrupt) should be enabled for it. |
| 191 | * be enabled for it. | ||
| 192 | * | 227 | * |
| 193 | * @runtime_resume: Put the device into the fully active state in response to a | 228 | * @runtime_resume: Put the device into the fully active state in response to a |
| 194 | * wake-up event generated by hardware or at the request of software. If | 229 | * wakeup event generated by hardware or at the request of software. If |
| 195 | * necessary, put the device into the full power state and restore its | 230 | * necessary, put the device into the full-power state and restore its |
| 196 | * registers, so that it is fully operational. | 231 | * registers, so that it is fully operational. |
| 197 | * | 232 | * |
| 198 | * @runtime_idle: Device appears to be inactive and it might be put into a low | 233 | * @runtime_idle: Device appears to be inactive and it might be put into a |
| 199 | * power state if all of the necessary conditions are satisfied. Check | 234 | * low-power state if all of the necessary conditions are satisfied. Check |
| 200 | * these conditions and handle the device as appropriate, possibly queueing | 235 | * these conditions and handle the device as appropriate, possibly queueing |
| 201 | * a suspend request for it. The return value is ignored by the PM core. | 236 | * a suspend request for it. The return value is ignored by the PM core. |
| 237 | * | ||
| 238 | * Refer to Documentation/power/runtime_pm.txt for more information about the | ||
| 239 | * role of the above callbacks in device runtime power management. | ||
| 240 | * | ||
| 202 | */ | 241 | */ |
| 203 | 242 | ||
| 204 | struct dev_pm_ops { | 243 | struct dev_pm_ops { |
diff --git a/include/linux/pstore.h b/include/linux/pstore.h index ea567321ae3c..2ca8cde5459d 100644 --- a/include/linux/pstore.h +++ b/include/linux/pstore.h | |||
| @@ -35,10 +35,12 @@ struct pstore_info { | |||
| 35 | spinlock_t buf_lock; /* serialize access to 'buf' */ | 35 | spinlock_t buf_lock; /* serialize access to 'buf' */ |
| 36 | char *buf; | 36 | char *buf; |
| 37 | size_t bufsize; | 37 | size_t bufsize; |
| 38 | struct mutex read_mutex; /* serialize open/read/close */ | ||
| 38 | int (*open)(struct pstore_info *psi); | 39 | int (*open)(struct pstore_info *psi); |
| 39 | int (*close)(struct pstore_info *psi); | 40 | int (*close)(struct pstore_info *psi); |
| 40 | ssize_t (*read)(u64 *id, enum pstore_type_id *type, | 41 | ssize_t (*read)(u64 *id, enum pstore_type_id *type, |
| 41 | struct timespec *time, struct pstore_info *psi); | 42 | struct timespec *time, char **buf, |
| 43 | struct pstore_info *psi); | ||
| 42 | int (*write)(enum pstore_type_id type, u64 *id, | 44 | int (*write)(enum pstore_type_id type, u64 *id, |
| 43 | unsigned int part, size_t size, struct pstore_info *psi); | 45 | unsigned int part, size_t size, struct pstore_info *psi); |
| 44 | int (*erase)(enum pstore_type_id type, u64 id, | 46 | int (*erase)(enum pstore_type_id type, u64 id, |
diff --git a/include/linux/shrinker.h b/include/linux/shrinker.h index a83833a1f7a2..07ceb97d53fa 100644 --- a/include/linux/shrinker.h +++ b/include/linux/shrinker.h | |||
| @@ -35,7 +35,7 @@ struct shrinker { | |||
| 35 | 35 | ||
| 36 | /* These are for internal use */ | 36 | /* These are for internal use */ |
| 37 | struct list_head list; | 37 | struct list_head list; |
| 38 | long nr; /* objs pending delete */ | 38 | atomic_long_t nr_in_batch; /* objs pending delete */ |
| 39 | }; | 39 | }; |
| 40 | #define DEFAULT_SEEKS 2 /* A good number if you don't know better. */ | 40 | #define DEFAULT_SEEKS 2 /* A good number if you don't know better. */ |
| 41 | extern void register_shrinker(struct shrinker *); | 41 | extern void register_shrinker(struct shrinker *); |
diff --git a/include/linux/sigma.h b/include/linux/sigma.h index e2accb3164d8..d0de882c0d96 100644 --- a/include/linux/sigma.h +++ b/include/linux/sigma.h | |||
| @@ -24,7 +24,7 @@ struct sigma_firmware { | |||
| 24 | struct sigma_firmware_header { | 24 | struct sigma_firmware_header { |
| 25 | unsigned char magic[7]; | 25 | unsigned char magic[7]; |
| 26 | u8 version; | 26 | u8 version; |
| 27 | u32 crc; | 27 | __le32 crc; |
| 28 | }; | 28 | }; |
| 29 | 29 | ||
| 30 | enum { | 30 | enum { |
| @@ -40,19 +40,14 @@ enum { | |||
| 40 | struct sigma_action { | 40 | struct sigma_action { |
| 41 | u8 instr; | 41 | u8 instr; |
| 42 | u8 len_hi; | 42 | u8 len_hi; |
| 43 | u16 len; | 43 | __le16 len; |
| 44 | u16 addr; | 44 | __be16 addr; |
| 45 | unsigned char payload[]; | 45 | unsigned char payload[]; |
| 46 | }; | 46 | }; |
| 47 | 47 | ||
| 48 | static inline u32 sigma_action_len(struct sigma_action *sa) | 48 | static inline u32 sigma_action_len(struct sigma_action *sa) |
| 49 | { | 49 | { |
| 50 | return (sa->len_hi << 16) | sa->len; | 50 | return (sa->len_hi << 16) | le16_to_cpu(sa->len); |
| 51 | } | ||
| 52 | |||
| 53 | static inline size_t sigma_action_size(struct sigma_action *sa, u32 payload_len) | ||
| 54 | { | ||
| 55 | return sizeof(*sa) + payload_len + (payload_len % 2); | ||
| 56 | } | 51 | } |
| 57 | 52 | ||
| 58 | extern int process_sigma_firmware(struct i2c_client *client, const char *name); | 53 | extern int process_sigma_firmware(struct i2c_client *client, const char *name); |
diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h index add4790b21fe..e9e72bda1b72 100644 --- a/include/linux/virtio_config.h +++ b/include/linux/virtio_config.h | |||
| @@ -85,6 +85,8 @@ | |||
| 85 | * @reset: reset the device | 85 | * @reset: reset the device |
| 86 | * vdev: the virtio device | 86 | * vdev: the virtio device |
| 87 | * After this, status and feature negotiation must be done again | 87 | * After this, status and feature negotiation must be done again |
| 88 | * Device must not be reset from its vq/config callbacks, or in | ||
| 89 | * parallel with being added/removed. | ||
| 88 | * @find_vqs: find virtqueues and instantiate them. | 90 | * @find_vqs: find virtqueues and instantiate them. |
| 89 | * vdev: the virtio_device | 91 | * vdev: the virtio_device |
| 90 | * nvqs: the number of virtqueues to find | 92 | * nvqs: the number of virtqueues to find |
diff --git a/include/linux/virtio_mmio.h b/include/linux/virtio_mmio.h index 27c7edefbc86..5c7b6f0daef8 100644 --- a/include/linux/virtio_mmio.h +++ b/include/linux/virtio_mmio.h | |||
| @@ -63,7 +63,7 @@ | |||
| 63 | #define VIRTIO_MMIO_GUEST_FEATURES 0x020 | 63 | #define VIRTIO_MMIO_GUEST_FEATURES 0x020 |
| 64 | 64 | ||
| 65 | /* Activated features set selector - Write Only */ | 65 | /* Activated features set selector - Write Only */ |
| 66 | #define VIRTIO_MMIO_GUEST_FEATURES_SET 0x024 | 66 | #define VIRTIO_MMIO_GUEST_FEATURES_SEL 0x024 |
| 67 | 67 | ||
| 68 | /* Guest's memory page size in bytes - Write Only */ | 68 | /* Guest's memory page size in bytes - Write Only */ |
| 69 | #define VIRTIO_MMIO_GUEST_PAGE_SIZE 0x028 | 69 | #define VIRTIO_MMIO_GUEST_PAGE_SIZE 0x028 |
