mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 05:29:04 -04:00
Merge branch 'master'
This commit is contained in:
commit
323cb3ce6e
42 changed files with 692 additions and 290 deletions
|
|
@ -15,25 +15,26 @@
|
|||
ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET)
|
||||
ldr \irqstat, [\irqstat] @ get interrupts
|
||||
cmp \irqstat, #0
|
||||
beq 1001f
|
||||
beq 1001f @ upper IRQ?
|
||||
clz \irqnr, \irqstat
|
||||
mov \base, #31
|
||||
subs \irqnr, \base, \irqnr
|
||||
sub \irqnr, \base, \irqnr
|
||||
b 1002f @ lower IRQ being
|
||||
@ handled
|
||||
|
||||
1001:
|
||||
/*
|
||||
* IXP465 has an upper IRQ status register
|
||||
*/
|
||||
#if defined(CONFIG_CPU_IXP46X)
|
||||
bne 1002f
|
||||
ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP2_OFFSET)
|
||||
ldr \irqstat, [\irqstat] @ get upper interrupts
|
||||
mov \irqnr, #63
|
||||
clz \irqstat, \irqstat
|
||||
cmp \irqstat, #32
|
||||
subne \irqnr, \irqnr, \irqstat
|
||||
1002:
|
||||
#endif
|
||||
1002:
|
||||
.endm
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#define pcibios_assign_all_busses() 1
|
||||
|
||||
#if defined(CONFIG_CPU_IXP465) && !defined(__ASSEMBLY__)
|
||||
#if defined(CONFIG_CPU_IXP46X) && !defined(__ASSEMBLY__)
|
||||
extern unsigned int processor_id;
|
||||
#define cpu_is_ixp465() ((processor_id & 0xffffffc0) == 0x69054200)
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -653,7 +653,7 @@
|
|||
|
||||
#define UDCCS_IO_RFS (1 << 0) /* Receive FIFO service */
|
||||
#define UDCCS_IO_RPC (1 << 1) /* Receive packet complete */
|
||||
#define UDCCS_IO_ROF (1 << 3) /* Receive overflow */
|
||||
#define UDCCS_IO_ROF (1 << 2) /* Receive overflow */
|
||||
#define UDCCS_IO_DME (1 << 3) /* DMA enable */
|
||||
#define UDCCS_IO_RNE (1 << 6) /* Receive FIFO not empty */
|
||||
#define UDCCS_IO_RSP (1 << 7) /* Receive short packet */
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@
|
|||
({ \
|
||||
smp_mb(); \
|
||||
__asm__ __volatile__( \
|
||||
"@ up_op_read\n" \
|
||||
"@ up_op_write\n" \
|
||||
"1: ldrex lr, [%0]\n" \
|
||||
" adds lr, lr, %1\n" \
|
||||
" strex ip, lr, [%0]\n" \
|
||||
|
|
@ -231,7 +231,7 @@
|
|||
#define __up_op_write(ptr,wake) \
|
||||
({ \
|
||||
__asm__ __volatile__( \
|
||||
"@ up_op_read\n" \
|
||||
"@ up_op_write\n" \
|
||||
" mrs ip, cpsr\n" \
|
||||
" orr lr, ip, #128\n" \
|
||||
" msr cpsr_c, lr\n" \
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ typedef struct bootmem_data {
|
|||
extern unsigned long __init bootmem_bootmap_pages (unsigned long);
|
||||
extern unsigned long __init init_bootmem (unsigned long addr, unsigned long memend);
|
||||
extern void __init free_bootmem (unsigned long addr, unsigned long size);
|
||||
extern void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal);
|
||||
extern void * __init __alloc_bootmem_limit (unsigned long size, unsigned long align, unsigned long goal, unsigned long limit);
|
||||
#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE
|
||||
extern void __init reserve_bootmem (unsigned long addr, unsigned long size);
|
||||
#define alloc_bootmem(x) \
|
||||
|
|
@ -54,6 +54,16 @@ extern void __init reserve_bootmem (unsigned long addr, unsigned long size);
|
|||
__alloc_bootmem((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
|
||||
#define alloc_bootmem_low_pages(x) \
|
||||
__alloc_bootmem((x), PAGE_SIZE, 0)
|
||||
|
||||
#define alloc_bootmem_limit(x, limit) \
|
||||
__alloc_bootmem_limit((x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS), (limit))
|
||||
#define alloc_bootmem_low_limit(x, limit) \
|
||||
__alloc_bootmem_limit((x), SMP_CACHE_BYTES, 0, (limit))
|
||||
#define alloc_bootmem_pages_limit(x, limit) \
|
||||
__alloc_bootmem_limit((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS), (limit))
|
||||
#define alloc_bootmem_low_pages_limit(x, limit) \
|
||||
__alloc_bootmem_limit((x), PAGE_SIZE, 0, (limit))
|
||||
|
||||
#endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */
|
||||
extern unsigned long __init free_all_bootmem (void);
|
||||
|
||||
|
|
@ -61,7 +71,7 @@ extern unsigned long __init init_bootmem_node (pg_data_t *pgdat, unsigned long f
|
|||
extern void __init reserve_bootmem_node (pg_data_t *pgdat, unsigned long physaddr, unsigned long size);
|
||||
extern void __init free_bootmem_node (pg_data_t *pgdat, unsigned long addr, unsigned long size);
|
||||
extern unsigned long __init free_all_bootmem_node (pg_data_t *pgdat);
|
||||
extern void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsigned long align, unsigned long goal);
|
||||
extern void * __init __alloc_bootmem_node_limit (pg_data_t *pgdat, unsigned long size, unsigned long align, unsigned long goal, unsigned long limit);
|
||||
#ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE
|
||||
#define alloc_bootmem_node(pgdat, x) \
|
||||
__alloc_bootmem_node((pgdat), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
|
||||
|
|
@ -69,6 +79,14 @@ extern void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size,
|
|||
__alloc_bootmem_node((pgdat), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
|
||||
#define alloc_bootmem_low_pages_node(pgdat, x) \
|
||||
__alloc_bootmem_node((pgdat), (x), PAGE_SIZE, 0)
|
||||
|
||||
#define alloc_bootmem_node_limit(pgdat, x, limit) \
|
||||
__alloc_bootmem_node_limit((pgdat), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS), (limit))
|
||||
#define alloc_bootmem_pages_node_limit(pgdat, x, limit) \
|
||||
__alloc_bootmem_node_limit((pgdat), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS), (limit))
|
||||
#define alloc_bootmem_low_pages_node_limit(pgdat, x, limit) \
|
||||
__alloc_bootmem_node_limit((pgdat), (x), PAGE_SIZE, 0, (limit))
|
||||
|
||||
#endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */
|
||||
|
||||
#ifdef CONFIG_HAVE_ARCH_ALLOC_REMAP
|
||||
|
|
@ -105,5 +123,15 @@ extern void *__init alloc_large_system_hash(const char *tablename,
|
|||
#endif
|
||||
extern int __initdata hashdist; /* Distribute hashes across NUMA nodes? */
|
||||
|
||||
static inline void *__alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal)
|
||||
{
|
||||
return __alloc_bootmem_limit(size, align, goal, 0);
|
||||
}
|
||||
|
||||
static inline void *__alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsigned long align,
|
||||
unsigned long goal)
|
||||
{
|
||||
return __alloc_bootmem_node_limit(pgdat, size, align, goal, 0);
|
||||
}
|
||||
|
||||
#endif /* _LINUX_BOOTMEM_H */
|
||||
|
|
|
|||
|
|
@ -155,11 +155,24 @@ static inline void set_file_hugepages(struct file *file)
|
|||
{
|
||||
file->f_op = &hugetlbfs_file_operations;
|
||||
}
|
||||
|
||||
static inline int valid_hugetlb_file_off(struct vm_area_struct *vma,
|
||||
unsigned long address)
|
||||
{
|
||||
struct inode *inode = vma->vm_file->f_dentry->d_inode;
|
||||
loff_t file_off = address - vma->vm_start;
|
||||
|
||||
file_off += (vma->vm_pgoff << PAGE_SHIFT);
|
||||
|
||||
return (file_off < inode->i_size);
|
||||
}
|
||||
|
||||
#else /* !CONFIG_HUGETLBFS */
|
||||
|
||||
#define is_file_hugepages(file) 0
|
||||
#define set_file_hugepages(file) BUG()
|
||||
#define hugetlb_zero_setup(size) ERR_PTR(-ENOSYS)
|
||||
#define valid_hugetlb_file_off(vma, address) 0
|
||||
|
||||
#endif /* !CONFIG_HUGETLBFS */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue