mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 22:23:14 -04:00
Merge master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc
* master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc: (61 commits) [POWERPC] Use udbg_early_init() on ppc32 [POWERPC] Open Firmware serial port driver [POWERPC] Move MPIC smp routines into mpic.c [POWERPC] Cleanup pseries kexec code [POWERPC] Cleanup pseries smp initialisation code [POWERPC] Consolidate pseries platform header files into pseries.h [POWERPC] 85xx: Drop use of SYNC macro in head_fsl_booke.S [POWERPC] cell: pm_rtas_activat_signals routine cleanup [POWERPC] cell: PPU Oprofile cleanup patch [POWERPC] spufs: avoid accessing kernel memory through mmapped /mem node [POWERPC] spu sched: static timeslicing for SCHED_RR contexts [POWERPC] spu sched: use DECLARE_BITMAP [POWERPC] spu sched: forced preemption at execution [POWERPC] spu sched: update some comments [POWERPC] spu sched: simplity spu_remove_from_active_list [POWERPC] spufs: optimize spu_run [POWERPC] spufs: runqueue simplification [POWERPC] spufs: move prio to spu_context [POWERPC] spufs: state_mutex cleanup [POWERPC] spufs: simplify state_mutex ...
This commit is contained in:
commit
f90203e0cf
104 changed files with 8495 additions and 1473 deletions
|
|
@ -53,6 +53,11 @@
|
|||
#define CBE_PM_CTR_POLARITY 0x01000000
|
||||
#define CBE_PM_CTR_COUNT_CYCLES 0x00800000
|
||||
#define CBE_PM_CTR_ENABLE 0x00400000
|
||||
#define PM07_CTR_INPUT_MUX(x) (((x) & 0x3F) << 26)
|
||||
#define PM07_CTR_INPUT_CONTROL(x) (((x) & 1) << 25)
|
||||
#define PM07_CTR_POLARITY(x) (((x) & 1) << 24)
|
||||
#define PM07_CTR_COUNT_CYCLES(x) (((x) & 1) << 23)
|
||||
#define PM07_CTR_ENABLE(x) (((x) & 1) << 22)
|
||||
|
||||
/* Macros for the pm_status register. */
|
||||
#define CBE_PM_CTR_OVERFLOW_INTR(ctr) (1 << (31 - ((ctr) & 7)))
|
||||
|
|
@ -89,8 +94,7 @@ extern void cbe_read_trace_buffer(u32 cpu, u64 *buf);
|
|||
|
||||
extern void cbe_enable_pm_interrupts(u32 cpu, u32 thread, u32 mask);
|
||||
extern void cbe_disable_pm_interrupts(u32 cpu);
|
||||
extern u32 cbe_query_pm_interrupts(u32 cpu);
|
||||
extern u32 cbe_clear_pm_interrupts(u32 cpu);
|
||||
extern u32 cbe_get_and_clear_pm_interrupts(u32 cpu);
|
||||
extern void cbe_sync_irq(int node);
|
||||
|
||||
/* Utility functions, macros */
|
||||
|
|
@ -103,11 +107,4 @@ extern u32 cbe_get_hw_thread_id(int cpu);
|
|||
#define CBE_COUNT_PROBLEM_MODE 2
|
||||
#define CBE_COUNT_ALL_MODES 3
|
||||
|
||||
/* Macros for the pm07_control registers. */
|
||||
#define PM07_CTR_INPUT_MUX(x) (((x) & 0x3F) << 26)
|
||||
#define PM07_CTR_INPUT_CONTROL(x) (((x) & 1) << 25)
|
||||
#define PM07_CTR_POLARITY(x) (((x) & 1) << 24)
|
||||
#define PM07_CTR_COUNT_CYCLES(x) (((x) & 1) << 23)
|
||||
#define PM07_CTR_ENABLE(x) (((x) & 1) << 22)
|
||||
|
||||
#endif /* __ASM_CELL_PMU_H__ */
|
||||
|
|
|
|||
|
|
@ -17,28 +17,115 @@
|
|||
#define fd_outb(value,port) outb_p(value,port)
|
||||
|
||||
#define fd_enable_dma() enable_dma(FLOPPY_DMA)
|
||||
#define fd_disable_dma() disable_dma(FLOPPY_DMA)
|
||||
#define fd_request_dma() request_dma(FLOPPY_DMA, "floppy")
|
||||
#define fd_free_dma() free_dma(FLOPPY_DMA)
|
||||
#define fd_disable_dma() fd_ops->_disable_dma(FLOPPY_DMA)
|
||||
#define fd_free_dma() fd_ops->_free_dma(FLOPPY_DMA)
|
||||
#define fd_clear_dma_ff() clear_dma_ff(FLOPPY_DMA)
|
||||
#define fd_set_dma_mode(mode) set_dma_mode(FLOPPY_DMA, mode)
|
||||
#define fd_set_dma_count(count) set_dma_count(FLOPPY_DMA, count)
|
||||
#define fd_get_dma_residue() fd_ops->_get_dma_residue(FLOPPY_DMA)
|
||||
#define fd_enable_irq() enable_irq(FLOPPY_IRQ)
|
||||
#define fd_disable_irq() disable_irq(FLOPPY_IRQ)
|
||||
#define fd_cacheflush(addr,size) /* nothing */
|
||||
#define fd_request_irq() request_irq(FLOPPY_IRQ, floppy_interrupt, \
|
||||
IRQF_DISABLED, "floppy", NULL)
|
||||
#define fd_free_irq() free_irq(FLOPPY_IRQ, NULL);
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <asm/ppc-pci.h> /* for ppc64_isabridge_dev */
|
||||
|
||||
#define fd_dma_setup(addr,size,mode,io) powerpc_fd_dma_setup(addr,size,mode,io)
|
||||
#define fd_dma_setup(addr,size,mode,io) fd_ops->_dma_setup(addr,size,mode,io)
|
||||
|
||||
static __inline__ int powerpc_fd_dma_setup(char *addr, unsigned long size,
|
||||
int mode, int io)
|
||||
static int fd_request_dma(void);
|
||||
|
||||
struct fd_dma_ops {
|
||||
void (*_disable_dma)(unsigned int dmanr);
|
||||
void (*_free_dma)(unsigned int dmanr);
|
||||
int (*_get_dma_residue)(unsigned int dummy);
|
||||
int (*_dma_setup)(char *addr, unsigned long size, int mode, int io);
|
||||
};
|
||||
|
||||
static int virtual_dma_count;
|
||||
static int virtual_dma_residue;
|
||||
static char *virtual_dma_addr;
|
||||
static int virtual_dma_mode;
|
||||
static int doing_vdma;
|
||||
static struct fd_dma_ops *fd_ops;
|
||||
|
||||
static irqreturn_t floppy_hardint(int irq, void *dev_id)
|
||||
{
|
||||
unsigned char st;
|
||||
int lcount;
|
||||
char *lptr;
|
||||
|
||||
if (!doing_vdma)
|
||||
return floppy_interrupt(irq, dev_id);
|
||||
|
||||
|
||||
st = 1;
|
||||
for (lcount=virtual_dma_count, lptr=virtual_dma_addr;
|
||||
lcount; lcount--, lptr++) {
|
||||
st=inb(virtual_dma_port+4) & 0xa0 ;
|
||||
if (st != 0xa0)
|
||||
break;
|
||||
if (virtual_dma_mode)
|
||||
outb_p(*lptr, virtual_dma_port+5);
|
||||
else
|
||||
*lptr = inb_p(virtual_dma_port+5);
|
||||
}
|
||||
virtual_dma_count = lcount;
|
||||
virtual_dma_addr = lptr;
|
||||
st = inb(virtual_dma_port+4);
|
||||
|
||||
if (st == 0x20)
|
||||
return IRQ_HANDLED;
|
||||
if (!(st & 0x20)) {
|
||||
virtual_dma_residue += virtual_dma_count;
|
||||
virtual_dma_count=0;
|
||||
doing_vdma = 0;
|
||||
floppy_interrupt(irq, dev_id);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static void vdma_disable_dma(unsigned int dummy)
|
||||
{
|
||||
doing_vdma = 0;
|
||||
virtual_dma_residue += virtual_dma_count;
|
||||
virtual_dma_count=0;
|
||||
}
|
||||
|
||||
static void vdma_nop(unsigned int dummy)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
static int vdma_get_dma_residue(unsigned int dummy)
|
||||
{
|
||||
return virtual_dma_count + virtual_dma_residue;
|
||||
}
|
||||
|
||||
|
||||
static int fd_request_irq(void)
|
||||
{
|
||||
if (can_use_virtual_dma)
|
||||
return request_irq(FLOPPY_IRQ, floppy_hardint,
|
||||
IRQF_DISABLED, "floppy", NULL);
|
||||
else
|
||||
return request_irq(FLOPPY_IRQ, floppy_interrupt,
|
||||
IRQF_DISABLED, "floppy", NULL);
|
||||
}
|
||||
|
||||
static int vdma_dma_setup(char *addr, unsigned long size, int mode, int io)
|
||||
{
|
||||
doing_vdma = 1;
|
||||
virtual_dma_port = io;
|
||||
virtual_dma_mode = (mode == DMA_MODE_WRITE);
|
||||
virtual_dma_addr = addr;
|
||||
virtual_dma_count = size;
|
||||
virtual_dma_residue = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int hard_dma_setup(char *addr, unsigned long size, int mode, int io)
|
||||
{
|
||||
static unsigned long prev_size;
|
||||
static dma_addr_t bus_addr = 0;
|
||||
|
|
@ -46,6 +133,7 @@ static __inline__ int powerpc_fd_dma_setup(char *addr, unsigned long size,
|
|||
static int prev_dir;
|
||||
int dir;
|
||||
|
||||
doing_vdma = 0;
|
||||
dir = (mode == DMA_MODE_READ) ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE;
|
||||
|
||||
if (bus_addr
|
||||
|
|
@ -74,11 +162,32 @@ static __inline__ int powerpc_fd_dma_setup(char *addr, unsigned long size,
|
|||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PCI */
|
||||
|
||||
__inline__ void virtual_dma_init(void)
|
||||
static struct fd_dma_ops real_dma_ops =
|
||||
{
|
||||
/* Nothing to do on PowerPC */
|
||||
._disable_dma = disable_dma,
|
||||
._free_dma = free_dma,
|
||||
._get_dma_residue = get_dma_residue,
|
||||
._dma_setup = hard_dma_setup
|
||||
};
|
||||
|
||||
static struct fd_dma_ops virt_dma_ops =
|
||||
{
|
||||
._disable_dma = vdma_disable_dma,
|
||||
._free_dma = vdma_nop,
|
||||
._get_dma_residue = vdma_get_dma_residue,
|
||||
._dma_setup = vdma_dma_setup
|
||||
};
|
||||
|
||||
static int fd_request_dma()
|
||||
{
|
||||
if (can_use_virtual_dma & 1) {
|
||||
fd_ops = &virt_dma_ops;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
fd_ops = &real_dma_ops;
|
||||
return request_dma(FLOPPY_DMA, "floppy");
|
||||
}
|
||||
}
|
||||
|
||||
static int FDC1 = 0x3f0;
|
||||
|
|
|
|||
|
|
@ -129,7 +129,6 @@ struct spu {
|
|||
struct spu_runqueue *rq;
|
||||
unsigned long long timestamp;
|
||||
pid_t pid;
|
||||
int prio;
|
||||
int class_0_pending;
|
||||
spinlock_t register_lock;
|
||||
|
||||
|
|
|
|||
|
|
@ -305,3 +305,4 @@ SYSCALL_SPU(faccessat)
|
|||
COMPAT_SYS_SPU(get_robust_list)
|
||||
COMPAT_SYS_SPU(set_robust_list)
|
||||
COMPAT_SYS(move_pages)
|
||||
SYSCALL_SPU(getcpu)
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ struct ucc_slow_info {
|
|||
int ucc_num;
|
||||
enum qe_clock rx_clock;
|
||||
enum qe_clock tx_clock;
|
||||
struct ucc_slow *us_regs;
|
||||
struct ucc_slow *regs;
|
||||
int irq;
|
||||
u16 uccm_mask;
|
||||
int data_mem_part;
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ extern void __init udbg_init_iseries(void);
|
|||
extern void __init udbg_init_rtas_panel(void);
|
||||
extern void __init udbg_init_rtas_console(void);
|
||||
extern void __init udbg_init_debug_beat(void);
|
||||
extern void __init udbg_init_btext(void);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _ASM_POWERPC_UDBG_H */
|
||||
|
|
|
|||
|
|
@ -18,16 +18,11 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
extern unsigned int vdso64_pages;
|
||||
extern unsigned int vdso32_pages;
|
||||
|
||||
/* Offsets relative to thread->vdso_base */
|
||||
extern unsigned long vdso64_rt_sigtramp;
|
||||
extern unsigned long vdso32_sigtramp;
|
||||
extern unsigned long vdso32_rt_sigtramp;
|
||||
|
||||
extern void vdso_init(void);
|
||||
|
||||
#else /* __ASSEMBLY__ */
|
||||
|
||||
#ifdef __VDSO64__
|
||||
|
|
|
|||
|
|
@ -109,6 +109,10 @@ void ppc4xx_init(unsigned long r3, unsigned long r4, unsigned long r5,
|
|||
#include <platforms/4xx/ocotea.h>
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_TAISHAN)
|
||||
#include <platforms/4xx/taishan.h>
|
||||
#endif
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#ifdef CONFIG_40x
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue