mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-23 21:19:04 -04:00
Merge branch 'master'
This commit is contained in:
commit
d7fc3ca1cd
269 changed files with 2293 additions and 1692 deletions
|
|
@ -340,6 +340,12 @@ static inline void local_flush_tlb_kernel_page(unsigned long kaddr)
|
|||
asm("mcr%? p15, 0, %0, c8, c6, 1" : : "r" (kaddr));
|
||||
if (tlb_flag(TLB_V6_I_PAGE))
|
||||
asm("mcr%? p15, 0, %0, c8, c5, 1" : : "r" (kaddr));
|
||||
|
||||
/* The ARM ARM states that the completion of a TLB maintenance
|
||||
* operation is only guaranteed by a DSB instruction
|
||||
*/
|
||||
if (tlb_flag(TLB_V6_U_PAGE | TLB_V6_D_PAGE | TLB_V6_I_PAGE))
|
||||
asm("mcr%? p15, 0, %0, c7, c10, 4" : : "r" (zero));
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ static inline void __ustw(__u16 val, __u16 *addr)
|
|||
|
||||
#define __get_unaligned(ptr, size) ({ \
|
||||
const void *__gu_p = ptr; \
|
||||
__typeof__(*(ptr)) val; \
|
||||
__u64 val; \
|
||||
switch (size) { \
|
||||
case 1: \
|
||||
val = *(const __u8 *)__gu_p; \
|
||||
|
|
@ -95,7 +95,7 @@ static inline void __ustw(__u16 val, __u16 *addr)
|
|||
default: \
|
||||
bad_unaligned_access_length(); \
|
||||
}; \
|
||||
val; \
|
||||
(__typeof__(*(ptr)))val; \
|
||||
})
|
||||
|
||||
#define __put_unaligned(val, ptr, size) \
|
||||
|
|
|
|||
|
|
@ -137,6 +137,8 @@ void switch_APIC_timer_to_ipi(void *cpumask);
|
|||
void switch_ipi_to_APIC_timer(void *cpumask);
|
||||
#define ARCH_APICTIMER_STOPS_ON_C3 1
|
||||
|
||||
extern int timer_over_8254;
|
||||
|
||||
#else /* !CONFIG_X86_LOCAL_APIC */
|
||||
static inline void lapic_shutdown(void) { }
|
||||
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ static inline int atomic_inc_and_test(atomic_t *v)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_RMW_INSNS
|
||||
|
||||
static inline int atomic_add_return(int i, atomic_t *v)
|
||||
{
|
||||
int t, tmp;
|
||||
|
|
@ -82,7 +83,12 @@ static inline int atomic_sub_return(int i, atomic_t *v)
|
|||
: "g" (i), "2" (atomic_read(v)));
|
||||
return t;
|
||||
}
|
||||
|
||||
#define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n)))
|
||||
#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
|
||||
|
||||
#else /* !CONFIG_RMW_INSNS */
|
||||
|
||||
static inline int atomic_add_return(int i, atomic_t * v)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
|
@ -110,6 +116,32 @@ static inline int atomic_sub_return(int i, atomic_t * v)
|
|||
|
||||
return t;
|
||||
}
|
||||
|
||||
static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
|
||||
{
|
||||
unsigned long flags;
|
||||
int prev;
|
||||
|
||||
local_irq_save(flags);
|
||||
prev = atomic_read(v);
|
||||
if (prev == old)
|
||||
atomic_set(v, new);
|
||||
local_irq_restore(flags);
|
||||
return prev;
|
||||
}
|
||||
|
||||
static inline int atomic_xchg(atomic_t *v, int new)
|
||||
{
|
||||
unsigned long flags;
|
||||
int prev;
|
||||
|
||||
local_irq_save(flags);
|
||||
prev = atomic_read(v);
|
||||
atomic_set(v, new);
|
||||
local_irq_restore(flags);
|
||||
return prev;
|
||||
}
|
||||
|
||||
#endif /* !CONFIG_RMW_INSNS */
|
||||
|
||||
#define atomic_dec_return(v) atomic_sub_return(1, (v))
|
||||
|
|
@ -139,9 +171,6 @@ static inline void atomic_set_mask(unsigned long mask, unsigned long *v)
|
|||
__asm__ __volatile__("orl %1,%0" : "+m" (*v) : "id" (mask));
|
||||
}
|
||||
|
||||
#define atomic_cmpxchg(v, o, n) ((int)cmpxchg(&((v)->counter), (o), (n)))
|
||||
#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
|
||||
|
||||
#define atomic_add_unless(v, a, u) \
|
||||
({ \
|
||||
int c, old; \
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@
|
|||
* <linux/vt_buffer.h> has already done the right job for us.
|
||||
*/
|
||||
|
||||
#undef scr_writew
|
||||
#undef scr_readw
|
||||
|
||||
static inline void scr_writew(u16 val, volatile u16 *addr)
|
||||
{
|
||||
*addr = cpu_to_le16(val);
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@
|
|||
#define PPC_FEATURE_POWER5_PLUS 0x00020000
|
||||
#define PPC_FEATURE_CELL 0x00010000
|
||||
#define PPC_FEATURE_BOOKE 0x00008000
|
||||
#define PPC_FEATURE_SMT 0x00004000
|
||||
#define PPC_FEATURE_ICACHE_SNOOP 0x00002000
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#ifndef __ASSEMBLY__
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ void __init pci_addr_cache_build(void);
|
|||
* to finish the eeh setup for this device.
|
||||
*/
|
||||
void eeh_add_device_early(struct device_node *);
|
||||
void eeh_add_device_late(struct pci_dev *dev);
|
||||
void eeh_add_device_tree_early(struct device_node *);
|
||||
void eeh_add_device_tree_late(struct pci_bus *);
|
||||
|
||||
|
|
@ -117,6 +118,8 @@ static inline void pci_addr_cache_build(void) { }
|
|||
|
||||
static inline void eeh_add_device_early(struct device_node *dn) { }
|
||||
|
||||
static inline void eeh_add_device_late(struct pci_dev *dev) { }
|
||||
|
||||
static inline void eeh_remove_device(struct pci_dev *dev) { }
|
||||
|
||||
static inline void eeh_add_device_tree_early(struct device_node *dn) { }
|
||||
|
|
|
|||
|
|
@ -93,7 +93,8 @@ static inline void crash_setup_regs(struct pt_regs *newregs,
|
|||
"mfxer %0\n"
|
||||
"std %0, 296(%2)\n"
|
||||
: "=&r" (tmp1), "=&r" (tmp2)
|
||||
: "b" (newregs));
|
||||
: "b" (newregs)
|
||||
: "memory");
|
||||
}
|
||||
}
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -88,4 +88,4 @@
|
|||
(((addr) >> PUD_SHIFT) & (PTRS_PER_PUD - 1)))
|
||||
|
||||
#define pud_ERROR(e) \
|
||||
printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pud_val(e))
|
||||
printk("%s:%d: bad pud %08lx.\n", __FILE__, __LINE__, pud_val(e))
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ struct thread_info {
|
|||
int preempt_count; /* 0 => preemptable,
|
||||
<0 => BUG */
|
||||
struct restart_block restart_block;
|
||||
void __user *nvgprs_frame;
|
||||
/* low level flags - has atomic operations done on it */
|
||||
unsigned long flags ____cacheline_aligned_in_smp;
|
||||
};
|
||||
|
|
@ -120,7 +119,6 @@ static inline struct thread_info *current_thread_info(void)
|
|||
#define TIF_MEMDIE 10
|
||||
#define TIF_SECCOMP 11 /* secure computing */
|
||||
#define TIF_RESTOREALL 12 /* Restore all regs (implies NOERROR) */
|
||||
#define TIF_SAVE_NVGPRS 13 /* Save r14-r31 in signal frame */
|
||||
#define TIF_NOERROR 14 /* Force successful syscall return */
|
||||
#define TIF_RESTORE_SIGMASK 15 /* Restore signal mask in do_signal */
|
||||
|
||||
|
|
@ -137,15 +135,13 @@ static inline struct thread_info *current_thread_info(void)
|
|||
#define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP)
|
||||
#define _TIF_SECCOMP (1<<TIF_SECCOMP)
|
||||
#define _TIF_RESTOREALL (1<<TIF_RESTOREALL)
|
||||
#define _TIF_SAVE_NVGPRS (1<<TIF_SAVE_NVGPRS)
|
||||
#define _TIF_NOERROR (1<<TIF_NOERROR)
|
||||
#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
|
||||
#define _TIF_SYSCALL_T_OR_A (_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP)
|
||||
|
||||
#define _TIF_USER_WORK_MASK (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING | \
|
||||
_TIF_NEED_RESCHED | _TIF_RESTOREALL | \
|
||||
_TIF_RESTORE_SIGMASK)
|
||||
#define _TIF_PERSYSCALL_MASK (_TIF_RESTOREALL|_TIF_NOERROR|_TIF_SAVE_NVGPRS)
|
||||
_TIF_NEED_RESCHED | _TIF_RESTORE_SIGMASK)
|
||||
#define _TIF_PERSYSCALL_MASK (_TIF_RESTOREALL|_TIF_NOERROR)
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
|
|
|
|||
|
|
@ -118,6 +118,8 @@ static inline void sched_cacheflush(void)
|
|||
extern void account_vtime(struct task_struct *);
|
||||
extern void account_tick_vtime(struct task_struct *);
|
||||
extern void account_system_vtime(struct task_struct *);
|
||||
#else
|
||||
#define account_vtime(x) do { /* empty */ } while (0)
|
||||
#endif
|
||||
|
||||
#define finish_arch_switch(prev) do { \
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
"4: ba 3b\n" \
|
||||
" mov %5, %0\n" \
|
||||
" .previous\n" \
|
||||
" .section __ex_table,#alloc\n" \
|
||||
" .section __ex_table,\"a\"\n" \
|
||||
" .align 4\n" \
|
||||
" .word 1b, 4b\n" \
|
||||
" .word 2b, 4b\n" \
|
||||
|
|
|
|||
|
|
@ -136,7 +136,7 @@ __asm__ __volatile__( \
|
|||
"b 2b\n\t" \
|
||||
" mov %3, %0\n\n\t" \
|
||||
".previous\n\t" \
|
||||
".section __ex_table,#alloc\n\t" \
|
||||
".section __ex_table,\"a\"\n\t" \
|
||||
".align 4\n\t" \
|
||||
".word 1b, 3b\n\t" \
|
||||
".previous\n\n\t" \
|
||||
|
|
@ -148,7 +148,7 @@ if (__builtin_constant_p(ret) && ret == -EFAULT) \
|
|||
__asm__ __volatile__( \
|
||||
"/* Put user asm ret, inline. */\n" \
|
||||
"1:\t" "st"#size "a %1, [%2] %%asi\n\n\t" \
|
||||
".section __ex_table,#alloc\n\t" \
|
||||
".section __ex_table,\"a\"\n\t" \
|
||||
".align 4\n\t" \
|
||||
".word 1b, __ret_efault\n\n\t" \
|
||||
".previous\n\n\t" \
|
||||
|
|
@ -163,7 +163,7 @@ __asm__ __volatile__( \
|
|||
"ret\n\t" \
|
||||
" restore %%g0, %3, %%o0\n\n\t" \
|
||||
".previous\n\t" \
|
||||
".section __ex_table,#alloc\n\t" \
|
||||
".section __ex_table,\"a\"\n\t" \
|
||||
".align 4\n\t" \
|
||||
".word 1b, 3b\n\n\t" \
|
||||
".previous\n\n\t" \
|
||||
|
|
@ -206,7 +206,7 @@ __asm__ __volatile__( \
|
|||
"b 2b\n\t" \
|
||||
" mov %3, %0\n\n\t" \
|
||||
".previous\n\t" \
|
||||
".section __ex_table,#alloc\n\t" \
|
||||
".section __ex_table,\"a\"\n\t" \
|
||||
".align 4\n\t" \
|
||||
".word 1b, 3b\n\n\t" \
|
||||
".previous\n\t" \
|
||||
|
|
@ -218,7 +218,7 @@ if (__builtin_constant_p(retval) && retval == -EFAULT) \
|
|||
__asm__ __volatile__( \
|
||||
"/* Get user asm ret, inline. */\n" \
|
||||
"1:\t" "ld"#size "a [%1] %%asi, %0\n\n\t" \
|
||||
".section __ex_table,#alloc\n\t" \
|
||||
".section __ex_table,\"a\"\n\t" \
|
||||
".align 4\n\t" \
|
||||
".word 1b,__ret_efault\n\n\t" \
|
||||
".previous\n\t" \
|
||||
|
|
@ -233,7 +233,7 @@ __asm__ __volatile__( \
|
|||
"ret\n\t" \
|
||||
" restore %%g0, %2, %%o0\n\n\t" \
|
||||
".previous\n\t" \
|
||||
".section __ex_table,#alloc\n\t" \
|
||||
".section __ex_table,\"a\"\n\t" \
|
||||
".align 4\n\t" \
|
||||
".word 1b, 3b\n\n\t" \
|
||||
".previous\n\t" \
|
||||
|
|
|
|||
|
|
@ -696,6 +696,8 @@ COMPATIBLE_IOCTL(MEMLOCK)
|
|||
COMPATIBLE_IOCTL(MEMUNLOCK)
|
||||
COMPATIBLE_IOCTL(MEMGETREGIONCOUNT)
|
||||
COMPATIBLE_IOCTL(MEMGETREGIONINFO)
|
||||
COMPATIBLE_IOCTL(MEMGETBADBLOCK)
|
||||
COMPATIBLE_IOCTL(MEMSETBADBLOCK)
|
||||
/* NBD */
|
||||
ULONG_IOCTL(NBD_SET_SOCK)
|
||||
ULONG_IOCTL(NBD_SET_BLKSIZE)
|
||||
|
|
|
|||
|
|
@ -60,8 +60,6 @@ extern void put_filp(struct file *);
|
|||
extern int get_unused_fd(void);
|
||||
extern void FASTCALL(put_unused_fd(unsigned int fd));
|
||||
struct kmem_cache;
|
||||
extern void filp_ctor(void * objp, struct kmem_cache *cachep, unsigned long cflags);
|
||||
extern void filp_dtor(void * objp, struct kmem_cache *cachep, unsigned long dflags);
|
||||
|
||||
extern struct file ** alloc_fd_array(int);
|
||||
extern void free_fd_array(struct file **, int);
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ struct files_stat_struct {
|
|||
int max_files; /* tunable */
|
||||
};
|
||||
extern struct files_stat_struct files_stat;
|
||||
extern int get_max_files(void);
|
||||
|
||||
struct inodes_stat_t {
|
||||
int nr_inodes;
|
||||
|
|
@ -1418,9 +1419,6 @@ extern int is_bad_inode(struct inode *);
|
|||
extern struct file_operations read_fifo_fops;
|
||||
extern struct file_operations write_fifo_fops;
|
||||
extern struct file_operations rdwr_fifo_fops;
|
||||
extern struct file_operations read_pipe_fops;
|
||||
extern struct file_operations write_pipe_fops;
|
||||
extern struct file_operations rdwr_pipe_fops;
|
||||
|
||||
extern int fs_may_remount_ro(struct super_block *);
|
||||
|
||||
|
|
@ -1666,6 +1664,8 @@ extern int vfs_follow_link(struct nameidata *, const char *);
|
|||
extern int page_readlink(struct dentry *, char __user *, int);
|
||||
extern void *page_follow_link_light(struct dentry *, struct nameidata *);
|
||||
extern void page_put_link(struct dentry *, struct nameidata *, void *);
|
||||
extern int __page_symlink(struct inode *inode, const char *symname, int len,
|
||||
gfp_t gfp_mask);
|
||||
extern int page_symlink(struct inode *inode, const char *symname, int len);
|
||||
extern struct inode_operations page_symlink_inode_operations;
|
||||
extern int generic_readlink(struct dentry *, char __user *, int);
|
||||
|
|
|
|||
|
|
@ -157,9 +157,9 @@ extern void FASTCALL(free_cold_page(struct page *page));
|
|||
|
||||
void page_alloc_init(void);
|
||||
#ifdef CONFIG_NUMA
|
||||
void drain_remote_pages(void);
|
||||
void drain_node_pages(int node);
|
||||
#else
|
||||
static inline void drain_remote_pages(void) { };
|
||||
static inline void drain_node_pages(int node) { };
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_GFP_H */
|
||||
|
|
|
|||
|
|
@ -116,6 +116,10 @@ extern int hrtimer_try_to_cancel(struct hrtimer *timer);
|
|||
extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
|
||||
extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
|
||||
|
||||
#ifdef CONFIG_NO_IDLE_HZ
|
||||
extern ktime_t hrtimer_get_next_event(void);
|
||||
#endif
|
||||
|
||||
static inline int hrtimer_active(const struct hrtimer *timer)
|
||||
{
|
||||
return timer->state == HRTIMER_PENDING;
|
||||
|
|
|
|||
|
|
@ -19,8 +19,10 @@
|
|||
CACHE(32768)
|
||||
CACHE(65536)
|
||||
CACHE(131072)
|
||||
#ifndef CONFIG_MMU
|
||||
#if (NR_CPUS > 512) || (MAX_NUMNODES > 256) || !defined(CONFIG_MMU)
|
||||
CACHE(262144)
|
||||
#endif
|
||||
#ifndef CONFIG_MMU
|
||||
CACHE(524288)
|
||||
CACHE(1048576)
|
||||
#ifdef CONFIG_LARGE_ALLOCS
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@
|
|||
#include <linux/mmzone.h>
|
||||
#include <linux/notifier.h>
|
||||
|
||||
struct page;
|
||||
struct zone;
|
||||
struct pglist_data;
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
/*
|
||||
* pgdat resizing functions
|
||||
|
|
|
|||
|
|
@ -1752,6 +1752,8 @@
|
|||
#define PCI_DEVICE_ID_CCD_B00B 0xb00b
|
||||
#define PCI_DEVICE_ID_CCD_B00C 0xb00c
|
||||
#define PCI_DEVICE_ID_CCD_B100 0xb100
|
||||
#define PCI_DEVICE_ID_CCD_B700 0xb700
|
||||
#define PCI_DEVICE_ID_CCD_B701 0xb701
|
||||
|
||||
#define PCI_VENDOR_ID_EXAR 0x13a8
|
||||
#define PCI_DEVICE_ID_EXAR_XR17C152 0x0152
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ static inline void percpu_counter_destroy(struct percpu_counter *fbc)
|
|||
}
|
||||
|
||||
void percpu_counter_mod(struct percpu_counter *fbc, long amount);
|
||||
long percpu_counter_sum(struct percpu_counter *fbc);
|
||||
|
||||
static inline long percpu_counter_read(struct percpu_counter *fbc)
|
||||
{
|
||||
|
|
@ -92,6 +93,11 @@ static inline long percpu_counter_read_positive(struct percpu_counter *fbc)
|
|||
return fbc->count;
|
||||
}
|
||||
|
||||
static inline long percpu_counter_sum(struct percpu_counter *fbc)
|
||||
{
|
||||
return percpu_counter_read_positive(fbc);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
static inline void percpu_counter_inc(struct percpu_counter *fbc)
|
||||
|
|
|
|||
|
|
@ -98,13 +98,17 @@ struct rcu_data {
|
|||
long batch; /* Batch # for current RCU batch */
|
||||
struct rcu_head *nxtlist;
|
||||
struct rcu_head **nxttail;
|
||||
long count; /* # of queued items */
|
||||
long qlen; /* # of queued callbacks */
|
||||
struct rcu_head *curlist;
|
||||
struct rcu_head **curtail;
|
||||
struct rcu_head *donelist;
|
||||
struct rcu_head **donetail;
|
||||
long blimit; /* Upper limit on a processed batch */
|
||||
int cpu;
|
||||
struct rcu_head barrier;
|
||||
#ifdef CONFIG_SMP
|
||||
long last_rs_qlen; /* qlen during the last resched */
|
||||
#endif
|
||||
};
|
||||
|
||||
DECLARE_PER_CPU(struct rcu_data, rcu_data);
|
||||
|
|
|
|||
|
|
@ -1052,7 +1052,7 @@ struct reiserfs_dir_entry {
|
|||
int de_entrylen;
|
||||
int de_namelen;
|
||||
char *de_name;
|
||||
char *de_gen_number_bit_string;
|
||||
unsigned long *de_gen_number_bit_string;
|
||||
|
||||
__u32 de_dir_id;
|
||||
__u32 de_objectid;
|
||||
|
|
|
|||
|
|
@ -892,7 +892,6 @@ static inline int pid_alive(struct task_struct *p)
|
|||
}
|
||||
|
||||
extern void free_task(struct task_struct *tsk);
|
||||
extern void __put_task_struct(struct task_struct *tsk);
|
||||
#define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0)
|
||||
|
||||
extern void __put_task_struct_cb(struct rcu_head *rhp);
|
||||
|
|
|
|||
|
|
@ -72,6 +72,15 @@
|
|||
.prod_id = { (v1), (v2), (v3), (v4) }, \
|
||||
.prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, }
|
||||
|
||||
#define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \
|
||||
.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
|
||||
PCMCIA_DEV_ID_MATCH_CARD_ID| \
|
||||
PCMCIA_DEV_ID_MATCH_PROD_ID1, \
|
||||
.manf_id = (manf), \
|
||||
.card_id = (card), \
|
||||
.prod_id = { (v1), NULL, NULL, NULL }, \
|
||||
.prod_id_hash = { (vh1), 0, 0, 0 }, }
|
||||
|
||||
|
||||
/* multi-function devices */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue