mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 05:29:04 -04:00
Merge branches 'for-3.16/i2c-hid', 'for-3.16/rmi4', 'for-3.16/sony' and 'for-3.16/thingm' into for-linus
This commit is contained in:
commit
beea3f4a29
934 changed files with 11559 additions and 27157 deletions
|
|
@ -221,6 +221,8 @@ struct dentry_operations {
|
|||
#define DCACHE_SYMLINK_TYPE 0x00300000 /* Symlink */
|
||||
#define DCACHE_FILE_TYPE 0x00400000 /* Other file type */
|
||||
|
||||
#define DCACHE_MAY_FREE 0x00800000
|
||||
|
||||
extern seqlock_t rename_lock;
|
||||
|
||||
static inline int dname_external(const struct dentry *dentry)
|
||||
|
|
|
|||
|
|
@ -566,12 +566,6 @@ extern int __must_check device_create_bin_file(struct device *dev,
|
|||
const struct bin_attribute *attr);
|
||||
extern void device_remove_bin_file(struct device *dev,
|
||||
const struct bin_attribute *attr);
|
||||
extern int device_schedule_callback_owner(struct device *dev,
|
||||
void (*func)(struct device *dev), struct module *owner);
|
||||
|
||||
/* This is a macro to avoid include problems with THIS_MODULE */
|
||||
#define device_schedule_callback(dev, func) \
|
||||
device_schedule_callback_owner(dev, func, THIS_MODULE)
|
||||
|
||||
/* device resource management */
|
||||
typedef void (*dr_release_t)(struct device *dev, void *res);
|
||||
|
|
@ -932,10 +926,7 @@ extern int device_online(struct device *dev);
|
|||
extern struct device *__root_device_register(const char *name,
|
||||
struct module *owner);
|
||||
|
||||
/*
|
||||
* This is a macro to avoid include problems with THIS_MODULE,
|
||||
* just as per what is done for device_schedule_callback() above.
|
||||
*/
|
||||
/* This is a macro to avoid include problems with THIS_MODULE */
|
||||
#define root_device_register(name) \
|
||||
__root_device_register(name, THIS_MODULE)
|
||||
|
||||
|
|
|
|||
|
|
@ -815,7 +815,7 @@ static inline struct file *get_file(struct file *f)
|
|||
#define FL_SLEEP 128 /* A blocking lock */
|
||||
#define FL_DOWNGRADE_PENDING 256 /* Lease is being downgraded */
|
||||
#define FL_UNLOCK_PENDING 512 /* Lease is being broken */
|
||||
#define FL_FILE_PVT 1024 /* lock is private to the file */
|
||||
#define FL_OFDLCK 1024 /* lock is "owned" by struct file */
|
||||
|
||||
/*
|
||||
* Special return value from posix_lock_file() and vfs_lock_file() for
|
||||
|
|
|
|||
|
|
@ -535,6 +535,7 @@ static inline int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_a
|
|||
extern int ftrace_arch_read_dyn_info(char *buf, int size);
|
||||
|
||||
extern int skip_trace(unsigned long ip);
|
||||
extern void ftrace_module_init(struct module *mod);
|
||||
|
||||
extern void ftrace_disable_daemon(void);
|
||||
extern void ftrace_enable_daemon(void);
|
||||
|
|
@ -544,6 +545,7 @@ static inline int ftrace_force_update(void) { return 0; }
|
|||
static inline void ftrace_disable_daemon(void) { }
|
||||
static inline void ftrace_enable_daemon(void) { }
|
||||
static inline void ftrace_release_mod(struct module *mod) {}
|
||||
static inline void ftrace_module_init(struct module *mod) {}
|
||||
static inline __init int register_ftrace_command(struct ftrace_func_command *cmd)
|
||||
{
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -296,12 +296,20 @@ struct hid_item {
|
|||
|
||||
/*
|
||||
* HID device groups
|
||||
*
|
||||
* Note: HID_GROUP_ANY is declared in linux/mod_devicetable.h
|
||||
* and has a value of 0x0000
|
||||
*/
|
||||
#define HID_GROUP_GENERIC 0x0001
|
||||
#define HID_GROUP_MULTITOUCH 0x0002
|
||||
#define HID_GROUP_SENSOR_HUB 0x0003
|
||||
#define HID_GROUP_MULTITOUCH_WIN_8 0x0004
|
||||
|
||||
/*
|
||||
* Vendor specific HID device groups
|
||||
*/
|
||||
#define HID_GROUP_RMI 0x0100
|
||||
|
||||
/*
|
||||
* This is the global environment of the parser. This information is
|
||||
* persistent for main-items. The global environment can be saved and
|
||||
|
|
@ -567,6 +575,8 @@ struct hid_descriptor {
|
|||
.bus = BUS_USB, .vendor = (ven), .product = (prod)
|
||||
#define HID_BLUETOOTH_DEVICE(ven, prod) \
|
||||
.bus = BUS_BLUETOOTH, .vendor = (ven), .product = (prod)
|
||||
#define HID_I2C_DEVICE(ven, prod) \
|
||||
.bus = BUS_I2C, .vendor = (ven), .product = (prod)
|
||||
|
||||
#define HID_REPORT_ID(rep) \
|
||||
.report_type = (rep)
|
||||
|
|
|
|||
|
|
@ -412,6 +412,16 @@ static inline spinlock_t *huge_pte_lockptr(struct hstate *h,
|
|||
return &mm->page_table_lock;
|
||||
}
|
||||
|
||||
static inline bool hugepages_supported(void)
|
||||
{
|
||||
/*
|
||||
* Some platform decide whether they support huge pages at boot
|
||||
* time. On these, such as powerpc, HPAGE_SHIFT is set to 0 when
|
||||
* there is no such support
|
||||
*/
|
||||
return HPAGE_SHIFT != 0;
|
||||
}
|
||||
|
||||
#else /* CONFIG_HUGETLB_PAGE */
|
||||
struct hstate {};
|
||||
#define alloc_huge_page_node(h, nid) NULL
|
||||
|
|
|
|||
|
|
@ -147,15 +147,17 @@ hv_get_ringbuffer_availbytes(struct hv_ring_buffer_info *rbi,
|
|||
* 0 . 13 (Windows Server 2008)
|
||||
* 1 . 1 (Windows 7)
|
||||
* 2 . 4 (Windows 8)
|
||||
* 3 . 0 (Windows 8 R2)
|
||||
*/
|
||||
|
||||
#define VERSION_WS2008 ((0 << 16) | (13))
|
||||
#define VERSION_WIN7 ((1 << 16) | (1))
|
||||
#define VERSION_WIN8 ((2 << 16) | (4))
|
||||
#define VERSION_WIN8_1 ((3 << 16) | (0))
|
||||
|
||||
#define VERSION_INVAL -1
|
||||
|
||||
#define VERSION_CURRENT VERSION_WIN8
|
||||
#define VERSION_CURRENT VERSION_WIN8_1
|
||||
|
||||
/* Make maximum size of pipe payload of 16K */
|
||||
#define MAX_PIPE_DATA_PAYLOAD (sizeof(u8) * 16384)
|
||||
|
|
|
|||
|
|
@ -203,7 +203,40 @@ static inline int check_wakeup_irqs(void) { return 0; }
|
|||
|
||||
extern cpumask_var_t irq_default_affinity;
|
||||
|
||||
extern int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask);
|
||||
/* Internal implementation. Use the helpers below */
|
||||
extern int __irq_set_affinity(unsigned int irq, const struct cpumask *cpumask,
|
||||
bool force);
|
||||
|
||||
/**
|
||||
* irq_set_affinity - Set the irq affinity of a given irq
|
||||
* @irq: Interrupt to set affinity
|
||||
* @cpumask: cpumask
|
||||
*
|
||||
* Fails if cpumask does not contain an online CPU
|
||||
*/
|
||||
static inline int
|
||||
irq_set_affinity(unsigned int irq, const struct cpumask *cpumask)
|
||||
{
|
||||
return __irq_set_affinity(irq, cpumask, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* irq_force_affinity - Force the irq affinity of a given irq
|
||||
* @irq: Interrupt to set affinity
|
||||
* @cpumask: cpumask
|
||||
*
|
||||
* Same as irq_set_affinity, but without checking the mask against
|
||||
* online cpus.
|
||||
*
|
||||
* Solely for low level cpu hotplug code, where we need to make per
|
||||
* cpu interrupts affine before the cpu becomes online.
|
||||
*/
|
||||
static inline int
|
||||
irq_force_affinity(unsigned int irq, const struct cpumask *cpumask)
|
||||
{
|
||||
return __irq_set_affinity(irq, cpumask, true);
|
||||
}
|
||||
|
||||
extern int irq_can_set_affinity(unsigned int irq);
|
||||
extern int irq_select_affinity(unsigned int irq);
|
||||
|
||||
|
|
|
|||
|
|
@ -394,7 +394,8 @@ extern void remove_percpu_irq(unsigned int irq, struct irqaction *act);
|
|||
|
||||
extern void irq_cpu_online(void);
|
||||
extern void irq_cpu_offline(void);
|
||||
extern int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *cpumask);
|
||||
extern int irq_set_affinity_locked(struct irq_data *data,
|
||||
const struct cpumask *cpumask, bool force);
|
||||
|
||||
#if defined(CONFIG_SMP) && defined(CONFIG_GENERIC_PENDING_IRQ)
|
||||
void irq_move_irq(struct irq_data *data);
|
||||
|
|
@ -602,6 +603,8 @@ static inline u32 irq_get_trigger_type(unsigned int irq)
|
|||
return d ? irqd_get_trigger_type(d) : 0;
|
||||
}
|
||||
|
||||
unsigned int arch_dynirq_lower_bound(unsigned int from);
|
||||
|
||||
int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node,
|
||||
struct module *owner);
|
||||
|
||||
|
|
|
|||
|
|
@ -822,6 +822,7 @@ struct ata_port {
|
|||
unsigned long qc_allocated;
|
||||
unsigned int qc_active;
|
||||
int nr_active_links; /* #links with active qcs */
|
||||
unsigned int last_tag; /* track next tag hw expects */
|
||||
|
||||
struct ata_link link; /* host default link */
|
||||
struct ata_link *slave_link; /* see ata_slave_link_init() */
|
||||
|
|
|
|||
|
|
@ -17,6 +17,11 @@ struct mdio_gpio_platform_data {
|
|||
/* GPIO numbers for bus pins */
|
||||
unsigned int mdc;
|
||||
unsigned int mdio;
|
||||
unsigned int mdo;
|
||||
|
||||
bool mdc_active_low;
|
||||
bool mdio_active_low;
|
||||
bool mdo_active_low;
|
||||
|
||||
unsigned int phy_mask;
|
||||
int irqs[PHY_MAX_ADDR];
|
||||
|
|
|
|||
|
|
@ -179,6 +179,7 @@ enum {
|
|||
MLX5_DEV_CAP_FLAG_BAD_QKEY_CNTR = 1LL << 9,
|
||||
MLX5_DEV_CAP_FLAG_APM = 1LL << 17,
|
||||
MLX5_DEV_CAP_FLAG_ATOMIC = 1LL << 18,
|
||||
MLX5_DEV_CAP_FLAG_BLOCK_MCAST = 1LL << 23,
|
||||
MLX5_DEV_CAP_FLAG_ON_DMND_PG = 1LL << 24,
|
||||
MLX5_DEV_CAP_FLAG_CQ_MODER = 1LL << 29,
|
||||
MLX5_DEV_CAP_FLAG_RESIZE_CQ = 1LL << 30,
|
||||
|
|
|
|||
|
|
@ -146,6 +146,7 @@ enum {
|
|||
|
||||
enum {
|
||||
MLX5_QP_LAT_SENSITIVE = 1 << 28,
|
||||
MLX5_QP_BLOCK_MCAST = 1 << 30,
|
||||
MLX5_QP_ENABLE_SIG = 1 << 31,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -370,6 +370,8 @@ static inline int is_vmalloc_or_module_addr(const void *x)
|
|||
}
|
||||
#endif
|
||||
|
||||
extern void kvfree(const void *addr);
|
||||
|
||||
static inline void compound_lock(struct page *page)
|
||||
{
|
||||
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* Copyright © 2010 ST Microelectronics
|
||||
* Shiraz Hashim <shiraz.hashim@st.com>
|
||||
* Shiraz Hashim <shiraz.linux.kernel@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
|
||||
|
|
|
|||
|
|
@ -169,4 +169,11 @@ struct netlink_tap {
|
|||
extern int netlink_add_tap(struct netlink_tap *nt);
|
||||
extern int netlink_remove_tap(struct netlink_tap *nt);
|
||||
|
||||
bool __netlink_ns_capable(const struct netlink_skb_parms *nsp,
|
||||
struct user_namespace *ns, int cap);
|
||||
bool netlink_ns_capable(const struct sk_buff *skb,
|
||||
struct user_namespace *ns, int cap);
|
||||
bool netlink_capable(const struct sk_buff *skb, int cap);
|
||||
bool netlink_net_capable(const struct sk_buff *skb, int cap);
|
||||
|
||||
#endif /* __LINUX_NETLINK_H */
|
||||
|
|
|
|||
|
|
@ -44,11 +44,16 @@ extern void of_irq_init(const struct of_device_id *matches);
|
|||
|
||||
#ifdef CONFIG_OF_IRQ
|
||||
extern int of_irq_count(struct device_node *dev);
|
||||
extern int of_irq_get(struct device_node *dev, int index);
|
||||
#else
|
||||
static inline int of_irq_count(struct device_node *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int of_irq_get(struct device_node *dev, int index)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_OF)
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ typedef enum {
|
|||
PHY_INTERFACE_MODE_SMII,
|
||||
PHY_INTERFACE_MODE_XGMII,
|
||||
PHY_INTERFACE_MODE_MOCA,
|
||||
PHY_INTERFACE_MODE_QSGMII,
|
||||
PHY_INTERFACE_MODE_MAX,
|
||||
} phy_interface_t;
|
||||
|
||||
|
|
@ -116,6 +117,8 @@ static inline const char *phy_modes(phy_interface_t interface)
|
|||
return "xgmii";
|
||||
case PHY_INTERFACE_MODE_MOCA:
|
||||
return "moca";
|
||||
case PHY_INTERFACE_MODE_QSGMII:
|
||||
return "qsgmii";
|
||||
default:
|
||||
return "unknown";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -174,21 +174,29 @@ void devm_of_phy_provider_unregister(struct device *dev,
|
|||
#else
|
||||
static inline int phy_pm_runtime_get(struct phy *phy)
|
||||
{
|
||||
if (!phy)
|
||||
return 0;
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int phy_pm_runtime_get_sync(struct phy *phy)
|
||||
{
|
||||
if (!phy)
|
||||
return 0;
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int phy_pm_runtime_put(struct phy *phy)
|
||||
{
|
||||
if (!phy)
|
||||
return 0;
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int phy_pm_runtime_put_sync(struct phy *phy)
|
||||
{
|
||||
if (!phy)
|
||||
return 0;
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
|
|
@ -204,21 +212,29 @@ static inline void phy_pm_runtime_forbid(struct phy *phy)
|
|||
|
||||
static inline int phy_init(struct phy *phy)
|
||||
{
|
||||
if (!phy)
|
||||
return 0;
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int phy_exit(struct phy *phy)
|
||||
{
|
||||
if (!phy)
|
||||
return 0;
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int phy_power_on(struct phy *phy)
|
||||
{
|
||||
if (!phy)
|
||||
return 0;
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int phy_power_off(struct phy *phy)
|
||||
{
|
||||
if (!phy)
|
||||
return 0;
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -258,14 +258,14 @@ regulator_get_exclusive(struct device *dev, const char *id)
|
|||
static inline struct regulator *__must_check
|
||||
regulator_get_optional(struct device *dev, const char *id)
|
||||
{
|
||||
return NULL;
|
||||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
|
||||
|
||||
static inline struct regulator *__must_check
|
||||
devm_regulator_get_optional(struct device *dev, const char *id)
|
||||
{
|
||||
return NULL;
|
||||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
|
||||
static inline void regulator_put(struct regulator *regulator)
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ struct serio {
|
|||
|
||||
char name[32];
|
||||
char phys[32];
|
||||
char firmware_id[128];
|
||||
|
||||
bool manual_bind;
|
||||
|
||||
|
|
|
|||
|
|
@ -101,4 +101,13 @@ struct kmem_cache {
|
|||
struct kmem_cache_node *node[MAX_NUMNODES];
|
||||
};
|
||||
|
||||
#ifdef CONFIG_SYSFS
|
||||
#define SLAB_SUPPORTS_SYSFS
|
||||
void sysfs_slab_remove(struct kmem_cache *);
|
||||
#else
|
||||
static inline void sysfs_slab_remove(struct kmem_cache *s)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_SLUB_DEF_H */
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ int sock_diag_check_cookie(void *sk, __u32 *cookie);
|
|||
void sock_diag_save_cookie(void *sk, __u32 *cookie);
|
||||
|
||||
int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attr);
|
||||
int sock_diag_put_filterinfo(struct user_namespace *user_ns, struct sock *sk,
|
||||
int sock_diag_put_filterinfo(bool may_report_filterinfo, struct sock *sk,
|
||||
struct sk_buff *skb, int attrtype);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -179,9 +179,6 @@ struct sysfs_ops {
|
|||
|
||||
#ifdef CONFIG_SYSFS
|
||||
|
||||
int sysfs_schedule_callback(struct kobject *kobj, void (*func)(void *),
|
||||
void *data, struct module *owner);
|
||||
|
||||
int __must_check sysfs_create_dir_ns(struct kobject *kobj, const void *ns);
|
||||
void sysfs_remove_dir(struct kobject *kobj);
|
||||
int __must_check sysfs_rename_dir_ns(struct kobject *kobj, const char *new_name,
|
||||
|
|
@ -255,12 +252,6 @@ static inline void sysfs_enable_ns(struct kernfs_node *kn)
|
|||
|
||||
#else /* CONFIG_SYSFS */
|
||||
|
||||
static inline int sysfs_schedule_callback(struct kobject *kobj,
|
||||
void (*func)(void *), void *data, struct module *owner)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
|
||||
{
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -191,11 +191,23 @@ wait_queue_head_t *bit_waitqueue(void *, int);
|
|||
(!__builtin_constant_p(state) || \
|
||||
state == TASK_INTERRUPTIBLE || state == TASK_KILLABLE) \
|
||||
|
||||
/*
|
||||
* The below macro ___wait_event() has an explicit shadow of the __ret
|
||||
* variable when used from the wait_event_*() macros.
|
||||
*
|
||||
* This is so that both can use the ___wait_cond_timeout() construct
|
||||
* to wrap the condition.
|
||||
*
|
||||
* The type inconsistency of the wait_event_*() __ret variable is also
|
||||
* on purpose; we use long where we can return timeout values and int
|
||||
* otherwise.
|
||||
*/
|
||||
|
||||
#define ___wait_event(wq, condition, state, exclusive, ret, cmd) \
|
||||
({ \
|
||||
__label__ __out; \
|
||||
wait_queue_t __wait; \
|
||||
long __ret = ret; \
|
||||
long __ret = ret; /* explicit shadow */ \
|
||||
\
|
||||
INIT_LIST_HEAD(&__wait.task_list); \
|
||||
if (exclusive) \
|
||||
|
|
|
|||
Loading…
Reference in a new issue