Merge branches 'acpi_pad', 'acpica', 'apei-bugzilla-43282', 'battery', 'cpuidle-coupled', 'cpuidle-tweaks', 'intel_idle-ivb', 'ost', 'red-hat-bz-772730', 'thermal', 'thermal-spear' and 'turbostat-v2' into release
This commit is contained in:
parent
fa7584e13a
819f1a64be
f712c71f7b
a58e115022
20ff51a36b
1b0a0e9a15
6edab08c24
c2f4191a9c
f197ac13f6
8eaa8d6ca2
b9c7aff481
c3ae331d1c
commit
ec033d0a02
1437 changed files with 17253 additions and 9607 deletions
|
|
@ -277,7 +277,7 @@ acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context);
|
|||
#define OSC_SB_PAD_SUPPORT 1
|
||||
#define OSC_SB_PPC_OST_SUPPORT 2
|
||||
#define OSC_SB_PR3_SUPPORT 4
|
||||
#define OSC_SB_CPUHP_OST_SUPPORT 8
|
||||
#define OSC_SB_HOTPLUG_OST_SUPPORT 8
|
||||
#define OSC_SB_APEI_SUPPORT 16
|
||||
|
||||
extern bool osc_sb_apei_support_acked;
|
||||
|
|
@ -309,6 +309,44 @@ extern bool osc_sb_apei_support_acked;
|
|||
|
||||
extern acpi_status acpi_pci_osc_control_set(acpi_handle handle,
|
||||
u32 *mask, u32 req);
|
||||
|
||||
/* Enable _OST when all relevant hotplug operations are enabled */
|
||||
#if defined(CONFIG_ACPI_HOTPLUG_CPU) && \
|
||||
(defined(CONFIG_ACPI_HOTPLUG_MEMORY) || \
|
||||
defined(CONFIG_ACPI_HOTPLUG_MEMORY_MODULE)) && \
|
||||
(defined(CONFIG_ACPI_CONTAINER) || \
|
||||
defined(CONFIG_ACPI_CONTAINER_MODULE))
|
||||
#define ACPI_HOTPLUG_OST
|
||||
#endif
|
||||
|
||||
/* _OST Source Event Code (OSPM Action) */
|
||||
#define ACPI_OST_EC_OSPM_SHUTDOWN 0x100
|
||||
#define ACPI_OST_EC_OSPM_EJECT 0x103
|
||||
#define ACPI_OST_EC_OSPM_INSERTION 0x200
|
||||
|
||||
/* _OST General Processing Status Code */
|
||||
#define ACPI_OST_SC_SUCCESS 0x0
|
||||
#define ACPI_OST_SC_NON_SPECIFIC_FAILURE 0x1
|
||||
#define ACPI_OST_SC_UNRECOGNIZED_NOTIFY 0x2
|
||||
|
||||
/* _OST OS Shutdown Processing (0x100) Status Code */
|
||||
#define ACPI_OST_SC_OS_SHUTDOWN_DENIED 0x80
|
||||
#define ACPI_OST_SC_OS_SHUTDOWN_IN_PROGRESS 0x81
|
||||
#define ACPI_OST_SC_OS_SHUTDOWN_COMPLETED 0x82
|
||||
#define ACPI_OST_SC_OS_SHUTDOWN_NOT_SUPPORTED 0x83
|
||||
|
||||
/* _OST Ejection Request (0x3, 0x103) Status Code */
|
||||
#define ACPI_OST_SC_EJECT_NOT_SUPPORTED 0x80
|
||||
#define ACPI_OST_SC_DEVICE_IN_USE 0x81
|
||||
#define ACPI_OST_SC_DEVICE_BUSY 0x82
|
||||
#define ACPI_OST_SC_EJECT_DEPENDENCY_BUSY 0x83
|
||||
#define ACPI_OST_SC_EJECT_IN_PROGRESS 0x84
|
||||
|
||||
/* _OST Insertion Request (0x200) Status Code */
|
||||
#define ACPI_OST_SC_INSERT_IN_PROGRESS 0x80
|
||||
#define ACPI_OST_SC_DRIVER_LOAD_FAILURE 0x81
|
||||
#define ACPI_OST_SC_INSERT_NOT_SUPPORTED 0x82
|
||||
|
||||
extern void acpi_early_init(void);
|
||||
|
||||
extern int acpi_nvs_register(__u64 start, __u64 size);
|
||||
|
|
|
|||
|
|
@ -140,6 +140,7 @@ struct kiocb {
|
|||
(x)->ki_dtor = NULL; \
|
||||
(x)->ki_obj.tsk = tsk; \
|
||||
(x)->ki_user_data = 0; \
|
||||
(x)->private = NULL; \
|
||||
} while (0)
|
||||
|
||||
#define AIO_RING_MAGIC 0xa10a10a1
|
||||
|
|
|
|||
|
|
@ -827,7 +827,6 @@ extern bool __blk_end_request_err(struct request *rq, int error);
|
|||
extern void blk_complete_request(struct request *);
|
||||
extern void __blk_complete_request(struct request *);
|
||||
extern void blk_abort_request(struct request *);
|
||||
extern void blk_abort_queue(struct request_queue *);
|
||||
extern void blk_unprep_request(struct request *);
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -91,6 +91,11 @@ extern void *__alloc_bootmem_node_nopanic(pg_data_t *pgdat,
|
|||
unsigned long size,
|
||||
unsigned long align,
|
||||
unsigned long goal);
|
||||
void *___alloc_bootmem_node_nopanic(pg_data_t *pgdat,
|
||||
unsigned long size,
|
||||
unsigned long align,
|
||||
unsigned long goal,
|
||||
unsigned long limit);
|
||||
extern void *__alloc_bootmem_low(unsigned long size,
|
||||
unsigned long align,
|
||||
unsigned long goal);
|
||||
|
|
|
|||
|
|
@ -360,11 +360,11 @@ struct cpu_vfs_cap_data {
|
|||
|
||||
#define CAP_WAKE_ALARM 35
|
||||
|
||||
/* Allow preventing system suspends while epoll events are pending */
|
||||
/* Allow preventing system suspends */
|
||||
|
||||
#define CAP_EPOLLWAKEUP 36
|
||||
#define CAP_BLOCK_SUSPEND 36
|
||||
|
||||
#define CAP_LAST_CAP CAP_EPOLLWAKEUP
|
||||
#define CAP_LAST_CAP CAP_BLOCK_SUSPEND
|
||||
|
||||
#define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
|
||||
|
||||
|
|
|
|||
|
|
@ -163,16 +163,8 @@ struct ceph_connection {
|
|||
|
||||
/* connection negotiation temps */
|
||||
char in_banner[CEPH_BANNER_MAX_LEN];
|
||||
union {
|
||||
struct { /* outgoing connection */
|
||||
struct ceph_msg_connect out_connect;
|
||||
struct ceph_msg_connect_reply in_reply;
|
||||
};
|
||||
struct { /* incoming */
|
||||
struct ceph_msg_connect in_connect;
|
||||
struct ceph_msg_connect_reply out_reply;
|
||||
};
|
||||
};
|
||||
struct ceph_msg_connect out_connect;
|
||||
struct ceph_msg_connect_reply in_reply;
|
||||
struct ceph_entity_addr actual_peer_addr;
|
||||
|
||||
/* message out temps */
|
||||
|
|
|
|||
|
|
@ -47,9 +47,9 @@
|
|||
*/
|
||||
#if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \
|
||||
!defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4)
|
||||
# define inline inline __attribute__((always_inline))
|
||||
# define __inline__ __inline__ __attribute__((always_inline))
|
||||
# define __inline __inline __attribute__((always_inline))
|
||||
# define inline inline __attribute__((always_inline)) notrace
|
||||
# define __inline__ __inline__ __attribute__((always_inline)) notrace
|
||||
# define __inline __inline __attribute__((always_inline)) notrace
|
||||
#else
|
||||
/* A lot of inline functions can cause havoc with function tracing */
|
||||
# define inline inline notrace
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ struct cpuidle_state {
|
|||
|
||||
/* Idle State Flags */
|
||||
#define CPUIDLE_FLAG_TIME_VALID (0x01) /* is residency time measurable? */
|
||||
#define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */
|
||||
|
||||
#define CPUIDLE_DRIVER_FLAGS_MASK (0xFFFF0000)
|
||||
|
||||
|
|
@ -100,6 +101,12 @@ struct cpuidle_device {
|
|||
struct list_head device_list;
|
||||
struct kobject kobj;
|
||||
struct completion kobj_unregister;
|
||||
|
||||
#ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED
|
||||
int safe_state_index;
|
||||
cpumask_t coupled_cpus;
|
||||
struct cpuidle_coupled *coupled;
|
||||
#endif
|
||||
};
|
||||
|
||||
DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices);
|
||||
|
|
@ -176,6 +183,10 @@ static inline int cpuidle_play_dead(void) {return -ENODEV; }
|
|||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED
|
||||
void cpuidle_coupled_parallel_barrier(struct cpuidle_device *dev, atomic_t *a);
|
||||
#endif
|
||||
|
||||
/******************************
|
||||
* CPUIDLE GOVERNOR INTERFACE *
|
||||
******************************/
|
||||
|
|
|
|||
|
|
@ -865,8 +865,6 @@ extern int (*platform_notify_remove)(struct device *dev);
|
|||
extern struct device *get_device(struct device *dev);
|
||||
extern void put_device(struct device *dev);
|
||||
|
||||
extern void wait_for_device_probe(void);
|
||||
|
||||
#ifdef CONFIG_DEVTMPFS
|
||||
extern int devtmpfs_create_node(struct device *dev);
|
||||
extern int devtmpfs_delete_node(struct device *dev);
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
* re-allowed until epoll_wait is called again after consuming the wakeup
|
||||
* event(s).
|
||||
*
|
||||
* Requires CAP_EPOLLWAKEUP
|
||||
* Requires CAP_BLOCK_SUSPEND
|
||||
*/
|
||||
#define EPOLLWAKEUP (1 << 29)
|
||||
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@
|
|||
/* Gpio pin is open source */
|
||||
#define GPIOF_OPEN_SOURCE (1 << 3)
|
||||
|
||||
#define GPIOF_EXPORT (1 << 2)
|
||||
#define GPIOF_EXPORT_CHANGEABLE (1 << 3)
|
||||
#define GPIOF_EXPORT (1 << 4)
|
||||
#define GPIOF_EXPORT_CHANGEABLE (1 << 5)
|
||||
#define GPIOF_EXPORT_DIR_FIXED (GPIOF_EXPORT)
|
||||
#define GPIOF_EXPORT_DIR_CHANGEABLE (GPIOF_EXPORT | GPIOF_EXPORT_CHANGEABLE)
|
||||
|
||||
|
|
|
|||
|
|
@ -165,6 +165,7 @@ enum hrtimer_base_type {
|
|||
* @lock: lock protecting the base and associated clock bases
|
||||
* and timers
|
||||
* @active_bases: Bitfield to mark bases with active timers
|
||||
* @clock_was_set: Indicates that clock was set from irq context.
|
||||
* @expires_next: absolute time of the next event which was scheduled
|
||||
* via clock_set_next_event()
|
||||
* @hres_active: State of high resolution mode
|
||||
|
|
@ -177,7 +178,8 @@ enum hrtimer_base_type {
|
|||
*/
|
||||
struct hrtimer_cpu_base {
|
||||
raw_spinlock_t lock;
|
||||
unsigned long active_bases;
|
||||
unsigned int active_bases;
|
||||
unsigned int clock_was_set;
|
||||
#ifdef CONFIG_HIGH_RES_TIMERS
|
||||
ktime_t expires_next;
|
||||
int hres_active;
|
||||
|
|
@ -286,6 +288,8 @@ extern void hrtimer_peek_ahead_timers(void);
|
|||
# define MONOTONIC_RES_NSEC HIGH_RES_NSEC
|
||||
# define KTIME_MONOTONIC_RES KTIME_HIGH_RES
|
||||
|
||||
extern void clock_was_set_delayed(void);
|
||||
|
||||
#else
|
||||
|
||||
# define MONOTONIC_RES_NSEC LOW_RES_NSEC
|
||||
|
|
@ -306,6 +310,9 @@ static inline int hrtimer_is_hres_active(struct hrtimer *timer)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void clock_was_set_delayed(void) { }
|
||||
|
||||
#endif
|
||||
|
||||
extern void clock_was_set(void);
|
||||
|
|
@ -320,6 +327,7 @@ extern ktime_t ktime_get(void);
|
|||
extern ktime_t ktime_get_real(void);
|
||||
extern ktime_t ktime_get_boottime(void);
|
||||
extern ktime_t ktime_get_monotonic_offset(void);
|
||||
extern ktime_t ktime_get_update_offsets(ktime_t *offs_real, ktime_t *offs_boot);
|
||||
|
||||
DECLARE_PER_CPU(struct tick_device, tick_cpu_device);
|
||||
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@ struct input_keymap_entry {
|
|||
|
||||
/**
|
||||
* EVIOCGMTSLOTS(len) - get MT slot values
|
||||
* @len: size of the data buffer in bytes
|
||||
*
|
||||
* The ioctl buffer argument should be binary equivalent to
|
||||
*
|
||||
|
|
|
|||
|
|
@ -301,8 +301,6 @@ static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d)
|
|||
* @irq_pm_shutdown: function called from core code on shutdown once per chip
|
||||
* @irq_print_chip: optional to print special chip info in show_interrupts
|
||||
* @flags: chip specific flags
|
||||
*
|
||||
* @release: release function solely used by UML
|
||||
*/
|
||||
struct irq_chip {
|
||||
const char *name;
|
||||
|
|
|
|||
|
|
@ -377,7 +377,6 @@ extern enum system_states {
|
|||
SYSTEM_HALT,
|
||||
SYSTEM_POWER_OFF,
|
||||
SYSTEM_RESTART,
|
||||
SYSTEM_SUSPEND_DISK,
|
||||
} system_state;
|
||||
|
||||
#define TAINT_PROPRIETARY_MODULE 0
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@
|
|||
* is passed to the kernel.
|
||||
*/
|
||||
enum kmsg_dump_reason {
|
||||
KMSG_DUMP_UNDEF,
|
||||
KMSG_DUMP_PANIC,
|
||||
KMSG_DUMP_OOPS,
|
||||
KMSG_DUMP_EMERG,
|
||||
|
|
@ -31,23 +32,42 @@ enum kmsg_dump_reason {
|
|||
|
||||
/**
|
||||
* struct kmsg_dumper - kernel crash message dumper structure
|
||||
* @dump: The callback which gets called on crashes. The buffer is passed
|
||||
* as two sections, where s1 (length l1) contains the older
|
||||
* messages and s2 (length l2) contains the newer.
|
||||
* @list: Entry in the dumper list (private)
|
||||
* @dump: Call into dumping code which will retrieve the data with
|
||||
* through the record iterator
|
||||
* @max_reason: filter for highest reason number that should be dumped
|
||||
* @registered: Flag that specifies if this is already registered
|
||||
*/
|
||||
struct kmsg_dumper {
|
||||
void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason,
|
||||
const char *s1, unsigned long l1,
|
||||
const char *s2, unsigned long l2);
|
||||
struct list_head list;
|
||||
int registered;
|
||||
void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason);
|
||||
enum kmsg_dump_reason max_reason;
|
||||
bool active;
|
||||
bool registered;
|
||||
|
||||
/* private state of the kmsg iterator */
|
||||
u32 cur_idx;
|
||||
u32 next_idx;
|
||||
u64 cur_seq;
|
||||
u64 next_seq;
|
||||
};
|
||||
|
||||
#ifdef CONFIG_PRINTK
|
||||
void kmsg_dump(enum kmsg_dump_reason reason);
|
||||
|
||||
bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, bool syslog,
|
||||
char *line, size_t size, size_t *len);
|
||||
|
||||
bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog,
|
||||
char *line, size_t size, size_t *len);
|
||||
|
||||
bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
|
||||
char *buf, size_t size, size_t *len);
|
||||
|
||||
void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper);
|
||||
|
||||
void kmsg_dump_rewind(struct kmsg_dumper *dumper);
|
||||
|
||||
int kmsg_dump_register(struct kmsg_dumper *dumper);
|
||||
|
||||
int kmsg_dump_unregister(struct kmsg_dumper *dumper);
|
||||
|
|
@ -56,6 +76,33 @@ static inline void kmsg_dump(enum kmsg_dump_reason reason)
|
|||
{
|
||||
}
|
||||
|
||||
static inline bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper,
|
||||
bool syslog, const char *line,
|
||||
size_t size, size_t *len)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog,
|
||||
const char *line, size_t size, size_t *len)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog,
|
||||
char *buf, size_t size, size_t *len)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void kmsg_dump_rewind(struct kmsg_dumper *dumper)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int kmsg_dump_register(struct kmsg_dumper *dumper)
|
||||
{
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -815,7 +815,7 @@ static inline void kvm_free_irq_routing(struct kvm *kvm) {}
|
|||
#ifdef CONFIG_HAVE_KVM_EVENTFD
|
||||
|
||||
void kvm_eventfd_init(struct kvm *kvm);
|
||||
int kvm_irqfd(struct kvm *kvm, int fd, int gsi, int flags);
|
||||
int kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args);
|
||||
void kvm_irqfd_release(struct kvm *kvm);
|
||||
void kvm_irq_routing_update(struct kvm *, struct kvm_irq_routing_table *);
|
||||
int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args);
|
||||
|
|
@ -824,7 +824,7 @@ int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args);
|
|||
|
||||
static inline void kvm_eventfd_init(struct kvm *kvm) {}
|
||||
|
||||
static inline int kvm_irqfd(struct kvm *kvm, int fd, int gsi, int flags)
|
||||
static inline int kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,9 +50,7 @@ phys_addr_t memblock_find_in_range_node(phys_addr_t start, phys_addr_t end,
|
|||
phys_addr_t size, phys_addr_t align, int nid);
|
||||
phys_addr_t memblock_find_in_range(phys_addr_t start, phys_addr_t end,
|
||||
phys_addr_t size, phys_addr_t align);
|
||||
int memblock_free_reserved_regions(void);
|
||||
int memblock_reserve_reserved_regions(void);
|
||||
|
||||
phys_addr_t get_allocated_memblock_reserved_regions_info(phys_addr_t *addr);
|
||||
void memblock_allow_resize(void);
|
||||
int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid);
|
||||
int memblock_add(phys_addr_t base, phys_addr_t size);
|
||||
|
|
|
|||
|
|
@ -57,8 +57,18 @@ struct page {
|
|||
};
|
||||
|
||||
union {
|
||||
#if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \
|
||||
defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE)
|
||||
/* Used for cmpxchg_double in slub */
|
||||
unsigned long counters;
|
||||
#else
|
||||
/*
|
||||
* Keep _count separate from slub cmpxchg_double data.
|
||||
* As the rest of the double word is protected by
|
||||
* slab_lock but _count is not.
|
||||
*/
|
||||
unsigned counters;
|
||||
#endif
|
||||
|
||||
struct {
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
* SDHCI declarations specific to ST SPEAr platform
|
||||
*
|
||||
* Copyright (C) 2010 ST Microelectronics
|
||||
* Viresh Kumar<viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
|||
|
|
@ -98,7 +98,9 @@
|
|||
|
||||
#define SDIO_CCCR_IF 0x07 /* bus interface controls */
|
||||
|
||||
#define SDIO_BUS_WIDTH_MASK 0x03 /* data bus width setting */
|
||||
#define SDIO_BUS_WIDTH_1BIT 0x00
|
||||
#define SDIO_BUS_WIDTH_RESERVED 0x01
|
||||
#define SDIO_BUS_WIDTH_4BIT 0x02
|
||||
#define SDIO_BUS_ECSI 0x20 /* Enable continuous SPI interrupt */
|
||||
#define SDIO_BUS_SCSI 0x40 /* Support continuous SPI interrupt */
|
||||
|
|
|
|||
|
|
@ -694,7 +694,7 @@ typedef struct pglist_data {
|
|||
range, including holes */
|
||||
int node_id;
|
||||
wait_queue_head_t kswapd_wait;
|
||||
struct task_struct *kswapd;
|
||||
struct task_struct *kswapd; /* Protected by lock_memory_hotplug() */
|
||||
int kswapd_max_order;
|
||||
enum zone_type classzone_idx;
|
||||
} pg_data_t;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,12 @@ union hmark_ports {
|
|||
__u16 src;
|
||||
__u16 dst;
|
||||
} p16;
|
||||
struct {
|
||||
__be16 src;
|
||||
__be16 dst;
|
||||
} b16;
|
||||
__u32 v32;
|
||||
__be32 b32;
|
||||
};
|
||||
|
||||
struct xt_hmark_info {
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ struct nfs41_impl_id;
|
|||
*/
|
||||
struct nfs_client {
|
||||
atomic_t cl_count;
|
||||
atomic_t cl_mds_count;
|
||||
int cl_cons_state; /* current construction state (-ve: init error) */
|
||||
#define NFS_CS_READY 0 /* ready to be used */
|
||||
#define NFS_CS_INITING 1 /* busy initialising */
|
||||
|
|
|
|||
|
|
@ -348,6 +348,7 @@ struct nfs_openargs {
|
|||
const struct qstr * name;
|
||||
const struct nfs_server *server; /* Needed for ID mapping */
|
||||
const u32 * bitmask;
|
||||
const u32 * open_bitmap;
|
||||
__u32 claim;
|
||||
struct nfs4_sequence_args seq_args;
|
||||
};
|
||||
|
|
@ -1236,6 +1237,7 @@ struct nfs_pgio_header {
|
|||
struct list_head rpc_list;
|
||||
atomic_t refcnt;
|
||||
struct nfs_page *req;
|
||||
struct nfs_writeverf *verf;
|
||||
struct pnfs_layout_segment *lseg;
|
||||
loff_t io_start;
|
||||
const struct rpc_call_ops *mds_ops;
|
||||
|
|
@ -1273,6 +1275,7 @@ struct nfs_write_data {
|
|||
struct nfs_write_header {
|
||||
struct nfs_pgio_header header;
|
||||
struct nfs_write_data rpc_data;
|
||||
struct nfs_writeverf verf;
|
||||
};
|
||||
|
||||
struct nfs_mds_commit_info {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
* Arasan Compact Flash host controller platform data header file
|
||||
*
|
||||
* Copyright (C) 2011 ST Microelectronics
|
||||
* Viresh Kumar <viresh.kumar@st.com>
|
||||
* Viresh Kumar <viresh.linux@gmail.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
* License version 2. This program is licensed "as is" without any
|
||||
|
|
|
|||
|
|
@ -1,26 +0,0 @@
|
|||
/*
|
||||
* SPEAr thermal driver platform data.
|
||||
*
|
||||
* Copyright (C) 2011-2012 ST Microelectronics
|
||||
* Author: Vincenzo Frascino <vincenzo.frascino@st.com>
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
* may be copied, distributed, and modified under those terms.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
#ifndef SPEAR_THERMAL_H
|
||||
#define SPEAR_THERMAL_H
|
||||
|
||||
/* SPEAr Thermal Sensor Platform Data */
|
||||
struct spear_thermal_pdata {
|
||||
/* flags used to enable thermal sensor */
|
||||
unsigned int thermal_flags;
|
||||
};
|
||||
|
||||
#endif /* SPEAR_THERMAL_H */
|
||||
|
|
@ -141,6 +141,8 @@
|
|||
* Changing LSM security domain is considered a new privilege. So, for example,
|
||||
* asking selinux for a specific new context (e.g. with runcon) will result
|
||||
* in execve returning -EPERM.
|
||||
*
|
||||
* See Documentation/prctl/no_new_privs.txt for more details.
|
||||
*/
|
||||
#define PR_SET_NO_NEW_PRIVS 38
|
||||
#define PR_GET_NO_NEW_PRIVS 39
|
||||
|
|
|
|||
|
|
@ -69,12 +69,14 @@ struct persistent_ram_zone * __init persistent_ram_new(phys_addr_t start,
|
|||
size_t size,
|
||||
bool ecc);
|
||||
void persistent_ram_free(struct persistent_ram_zone *prz);
|
||||
void persistent_ram_zap(struct persistent_ram_zone *prz);
|
||||
struct persistent_ram_zone *persistent_ram_init_ringbuffer(struct device *dev,
|
||||
bool ecc);
|
||||
|
||||
int persistent_ram_write(struct persistent_ram_zone *prz, const void *s,
|
||||
unsigned int count);
|
||||
|
||||
void persistent_ram_save_old(struct persistent_ram_zone *prz);
|
||||
size_t persistent_ram_old_size(struct persistent_ram_zone *prz);
|
||||
void *persistent_ram_old(struct persistent_ram_zone *prz);
|
||||
void persistent_ram_free_old(struct persistent_ram_zone *prz);
|
||||
|
|
|
|||
|
|
@ -160,7 +160,9 @@ enum pxa_ssp_type {
|
|||
PXA25x_SSP, /* pxa 210, 250, 255, 26x */
|
||||
PXA25x_NSSP, /* pxa 255, 26x (including ASSP) */
|
||||
PXA27x_SSP,
|
||||
PXA3xx_SSP,
|
||||
PXA168_SSP,
|
||||
PXA910_SSP,
|
||||
CE4100_SSP,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -184,7 +184,6 @@ static inline int rcu_preempt_depth(void)
|
|||
/* Internal to kernel */
|
||||
extern void rcu_sched_qs(int cpu);
|
||||
extern void rcu_bh_qs(int cpu);
|
||||
extern void rcu_preempt_note_context_switch(void);
|
||||
extern void rcu_check_callbacks(int cpu, int user);
|
||||
struct notifier_block;
|
||||
extern void rcu_idle_enter(void);
|
||||
|
|
|
|||
|
|
@ -87,17 +87,24 @@ static inline void kfree_call_rcu(struct rcu_head *head,
|
|||
|
||||
#ifdef CONFIG_TINY_RCU
|
||||
|
||||
static inline int rcu_needs_cpu(int cpu)
|
||||
static inline void rcu_preempt_note_context_switch(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies)
|
||||
{
|
||||
*delta_jiffies = ULONG_MAX;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else /* #ifdef CONFIG_TINY_RCU */
|
||||
|
||||
void rcu_preempt_note_context_switch(void);
|
||||
int rcu_preempt_needs_cpu(void);
|
||||
|
||||
static inline int rcu_needs_cpu(int cpu)
|
||||
static inline int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies)
|
||||
{
|
||||
*delta_jiffies = ULONG_MAX;
|
||||
return rcu_preempt_needs_cpu();
|
||||
}
|
||||
|
||||
|
|
@ -106,6 +113,7 @@ static inline int rcu_needs_cpu(int cpu)
|
|||
static inline void rcu_note_context_switch(int cpu)
|
||||
{
|
||||
rcu_sched_qs(cpu);
|
||||
rcu_preempt_note_context_switch();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
extern void rcu_init(void);
|
||||
extern void rcu_note_context_switch(int cpu);
|
||||
extern int rcu_needs_cpu(int cpu);
|
||||
extern int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies);
|
||||
extern void rcu_cpu_stall_reset(void);
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -38,6 +38,8 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/kref.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
/* The feature bitmap for virtio rpmsg */
|
||||
#define VIRTIO_RPMSG_F_NS 0 /* RP supports name service notifications */
|
||||
|
|
@ -120,7 +122,9 @@ typedef void (*rpmsg_rx_cb_t)(struct rpmsg_channel *, void *, int, void *, u32);
|
|||
/**
|
||||
* struct rpmsg_endpoint - binds a local rpmsg address to its user
|
||||
* @rpdev: rpmsg channel device
|
||||
* @refcount: when this drops to zero, the ept is deallocated
|
||||
* @cb: rx callback handler
|
||||
* @cb_lock: must be taken before accessing/changing @cb
|
||||
* @addr: local rpmsg address
|
||||
* @priv: private data for the driver's use
|
||||
*
|
||||
|
|
@ -140,7 +144,9 @@ typedef void (*rpmsg_rx_cb_t)(struct rpmsg_channel *, void *, int, void *, u32);
|
|||
*/
|
||||
struct rpmsg_endpoint {
|
||||
struct rpmsg_channel *rpdev;
|
||||
struct kref refcount;
|
||||
rpmsg_rx_cb_t cb;
|
||||
struct mutex cb_lock;
|
||||
u32 addr;
|
||||
void *priv;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1871,22 +1871,12 @@ static inline void rcu_copy_process(struct task_struct *p)
|
|||
INIT_LIST_HEAD(&p->rcu_node_entry);
|
||||
}
|
||||
|
||||
static inline void rcu_switch_from(struct task_struct *prev)
|
||||
{
|
||||
if (prev->rcu_read_lock_nesting != 0)
|
||||
rcu_preempt_note_context_switch();
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static inline void rcu_copy_process(struct task_struct *p)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void rcu_switch_from(struct task_struct *prev)
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
|
@ -1909,6 +1899,14 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p,
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_NO_HZ
|
||||
void calc_load_enter_idle(void);
|
||||
void calc_load_exit_idle(void);
|
||||
#else
|
||||
static inline void calc_load_enter_idle(void) { }
|
||||
static inline void calc_load_exit_idle(void) { }
|
||||
#endif /* CONFIG_NO_HZ */
|
||||
|
||||
#ifndef CONFIG_CPUMASK_OFFSTACK
|
||||
static inline int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -225,14 +225,11 @@ enum {
|
|||
/* device driver is going to provide hardware time stamp */
|
||||
SKBTX_IN_PROGRESS = 1 << 2,
|
||||
|
||||
/* ensure the originating sk reference is available on driver level */
|
||||
SKBTX_DRV_NEEDS_SK_REF = 1 << 3,
|
||||
|
||||
/* device driver supports TX zero-copy buffers */
|
||||
SKBTX_DEV_ZEROCOPY = 1 << 4,
|
||||
SKBTX_DEV_ZEROCOPY = 1 << 3,
|
||||
|
||||
/* generate wifi status information (where possible) */
|
||||
SKBTX_WIFI_STATUS = 1 << 5,
|
||||
SKBTX_WIFI_STATUS = 1 << 4,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ struct pxa2xx_spi_chip {
|
|||
void (*cs_control)(u32 command);
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ARCH_PXA
|
||||
#if defined(CONFIG_ARCH_PXA) || defined(CONFIG_ARCH_MMP)
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <mach/dma.h>
|
||||
|
|
|
|||
|
|
@ -51,7 +51,8 @@ struct partial_page {
|
|||
struct splice_pipe_desc {
|
||||
struct page **pages; /* page map */
|
||||
struct partial_page *partial; /* pages[] may not be contig */
|
||||
int nr_pages; /* number of pages in map */
|
||||
int nr_pages; /* number of populated pages in map */
|
||||
unsigned int nr_pages_max; /* pages[] & partial[] arrays size */
|
||||
unsigned int flags; /* splice flags */
|
||||
const struct pipe_buf_operations *ops;/* ops associated with output pipe */
|
||||
void (*spd_release)(struct splice_pipe_desc *, unsigned int);
|
||||
|
|
@ -85,9 +86,8 @@ extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
|
|||
/*
|
||||
* for dynamic pipe sizing
|
||||
*/
|
||||
extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
|
||||
extern void splice_shrink_spd(struct pipe_inode_info *,
|
||||
struct splice_pipe_desc *);
|
||||
extern int splice_grow_spd(const struct pipe_inode_info *, struct splice_pipe_desc *);
|
||||
extern void splice_shrink_spd(struct splice_pipe_desc *);
|
||||
extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
|
||||
|
||||
extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
|
||||
|
|
|
|||
|
|
@ -9,13 +9,15 @@
|
|||
* get good packing density in that tree, so the index should be dense in
|
||||
* the low-order bits.
|
||||
*
|
||||
* We arrange the `type' and `offset' fields so that `type' is at the five
|
||||
* We arrange the `type' and `offset' fields so that `type' is at the seven
|
||||
* high-order bits of the swp_entry_t and `offset' is right-aligned in the
|
||||
* remaining bits.
|
||||
* remaining bits. Although `type' itself needs only five bits, we allow for
|
||||
* shmem/tmpfs to shift it all up a further two bits: see swp_to_radix_entry().
|
||||
*
|
||||
* swp_entry_t's are *never* stored anywhere in their arch-dependent format.
|
||||
*/
|
||||
#define SWP_TYPE_SHIFT(e) (sizeof(e.val) * 8 - MAX_SWAPFILES_SHIFT)
|
||||
#define SWP_TYPE_SHIFT(e) ((sizeof(e.val) * 8) - \
|
||||
(MAX_SWAPFILES_SHIFT + RADIX_TREE_EXCEPTIONAL_SHIFT))
|
||||
#define SWP_OFFSET_MASK(e) ((1UL << SWP_TYPE_SHIFT(e)) - 1)
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -69,16 +69,16 @@ union tcp_word_hdr {
|
|||
#define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3])
|
||||
|
||||
enum {
|
||||
TCP_FLAG_CWR = __cpu_to_be32(0x00800000),
|
||||
TCP_FLAG_ECE = __cpu_to_be32(0x00400000),
|
||||
TCP_FLAG_URG = __cpu_to_be32(0x00200000),
|
||||
TCP_FLAG_ACK = __cpu_to_be32(0x00100000),
|
||||
TCP_FLAG_PSH = __cpu_to_be32(0x00080000),
|
||||
TCP_FLAG_RST = __cpu_to_be32(0x00040000),
|
||||
TCP_FLAG_SYN = __cpu_to_be32(0x00020000),
|
||||
TCP_FLAG_FIN = __cpu_to_be32(0x00010000),
|
||||
TCP_RESERVED_BITS = __cpu_to_be32(0x0F000000),
|
||||
TCP_DATA_OFFSET = __cpu_to_be32(0xF0000000)
|
||||
TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),
|
||||
TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),
|
||||
TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),
|
||||
TCP_FLAG_ACK = __constant_cpu_to_be32(0x00100000),
|
||||
TCP_FLAG_PSH = __constant_cpu_to_be32(0x00080000),
|
||||
TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000),
|
||||
TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000),
|
||||
TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),
|
||||
TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000),
|
||||
TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -58,6 +58,12 @@ struct thermal_zone_device_ops {
|
|||
enum thermal_trip_type *);
|
||||
int (*get_trip_temp) (struct thermal_zone_device *, int,
|
||||
unsigned long *);
|
||||
int (*set_trip_temp) (struct thermal_zone_device *, int,
|
||||
unsigned long);
|
||||
int (*get_trip_hyst) (struct thermal_zone_device *, int,
|
||||
unsigned long *);
|
||||
int (*set_trip_hyst) (struct thermal_zone_device *, int,
|
||||
unsigned long);
|
||||
int (*get_crit_temp) (struct thermal_zone_device *, unsigned long *);
|
||||
int (*notify) (struct thermal_zone_device *, int,
|
||||
enum thermal_trip_type);
|
||||
|
|
@ -85,10 +91,18 @@ struct thermal_cooling_device {
|
|||
((long)t-2732+5)/10 : ((long)t-2732-5)/10)
|
||||
#define CELSIUS_TO_KELVIN(t) ((t)*10+2732)
|
||||
|
||||
struct thermal_attr {
|
||||
struct device_attribute attr;
|
||||
char name[THERMAL_NAME_LENGTH];
|
||||
};
|
||||
|
||||
struct thermal_zone_device {
|
||||
int id;
|
||||
char type[THERMAL_NAME_LENGTH];
|
||||
struct device device;
|
||||
struct thermal_attr *trip_temp_attrs;
|
||||
struct thermal_attr *trip_type_attrs;
|
||||
struct thermal_attr *trip_hyst_attrs;
|
||||
void *devdata;
|
||||
int trips;
|
||||
int tc1;
|
||||
|
|
@ -137,9 +151,9 @@ enum {
|
|||
};
|
||||
#define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1)
|
||||
|
||||
struct thermal_zone_device *thermal_zone_device_register(char *, int, void *,
|
||||
const struct thermal_zone_device_ops *, int tc1, int tc2,
|
||||
int passive_freq, int polling_freq);
|
||||
struct thermal_zone_device *thermal_zone_device_register(char *, int, int,
|
||||
void *, const struct thermal_zone_device_ops *, int tc1,
|
||||
int tc2, int passive_freq, int polling_freq);
|
||||
void thermal_zone_device_unregister(struct thermal_zone_device *);
|
||||
|
||||
int thermal_zone_bind_cooling_device(struct thermal_zone_device *, int,
|
||||
|
|
|
|||
|
|
@ -126,8 +126,6 @@ struct usb_hcd {
|
|||
unsigned wireless:1; /* Wireless USB HCD */
|
||||
unsigned authorized_default:1;
|
||||
unsigned has_tt:1; /* Integrated TT in root hub */
|
||||
unsigned broken_pci_sleep:1; /* Don't put the
|
||||
controller in PCI-D3 for system sleep */
|
||||
|
||||
unsigned int irq; /* irq allocated */
|
||||
void __iomem *regs; /* device memory/io */
|
||||
|
|
|
|||
|
|
@ -7,11 +7,19 @@
|
|||
* vga_switcheroo.h - Support for laptop with dual GPU using one set of outputs
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_VGA_SWITCHEROO_H_
|
||||
#define _LINUX_VGA_SWITCHEROO_H_
|
||||
|
||||
#include <linux/fb.h>
|
||||
|
||||
struct pci_dev;
|
||||
|
||||
enum vga_switcheroo_state {
|
||||
VGA_SWITCHEROO_OFF,
|
||||
VGA_SWITCHEROO_ON,
|
||||
/* below are referred only from vga_switcheroo_get_client_state() */
|
||||
VGA_SWITCHEROO_INIT,
|
||||
VGA_SWITCHEROO_NOT_FOUND,
|
||||
};
|
||||
|
||||
enum vga_switcheroo_client_id {
|
||||
|
|
@ -50,6 +58,8 @@ void vga_switcheroo_unregister_handler(void);
|
|||
|
||||
int vga_switcheroo_process_delayed_switch(void);
|
||||
|
||||
int vga_switcheroo_get_client_state(struct pci_dev *dev);
|
||||
|
||||
#else
|
||||
|
||||
static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {}
|
||||
|
|
@ -62,5 +72,8 @@ static inline int vga_switcheroo_register_audio_client(struct pci_dev *pdev,
|
|||
int id, bool active) { return 0; }
|
||||
static inline void vga_switcheroo_unregister_handler(void) {}
|
||||
static inline int vga_switcheroo_process_delayed_switch(void) { return 0; }
|
||||
static inline int vga_switcheroo_get_client_state(struct pci_dev *dev) { return VGA_SWITCHEROO_ON; }
|
||||
|
||||
|
||||
#endif
|
||||
#endif /* _LINUX_VGA_SWITCHEROO_H_ */
|
||||
|
|
|
|||
|
|
@ -2640,9 +2640,9 @@ struct v4l2_create_buffers {
|
|||
|
||||
/* Experimental, these three ioctls may change over the next couple of kernel
|
||||
versions. */
|
||||
#define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 96, struct v4l2_enum_dv_timings)
|
||||
#define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 97, struct v4l2_dv_timings)
|
||||
#define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 98, struct v4l2_dv_timings_cap)
|
||||
#define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings)
|
||||
#define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings)
|
||||
#define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap)
|
||||
|
||||
/* Reminder: when adding new ioctls please add support for them to
|
||||
drivers/media/video/v4l2-compat-ioctl32.c as well! */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue