Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 5621
b: refs/heads/master
c: 11e981f
h: refs/heads/master
i:
  5619: b11c822
v: v3
  • Loading branch information
David Shaohua Li authored and Len Brown committed Aug 4, 2005
1 parent 346e90b commit 44ca303
Show file tree
Hide file tree
Showing 46 changed files with 567 additions and 447 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9d343219e33e8b49d754ea9b2e45f6c7da87f4fb
refs/heads/master: 11e981f1e02c2a36465cbb208b21cb8b6480f399
1 change: 0 additions & 1 deletion trunk/Documentation/dontdiff
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ logo_*.c
logo_*_clut224.c
logo_*_mono.c
lxdialog
mach-types
mach-types.h
make_times_h
map
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-ixp4xx/coyote-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ static struct plat_serial8250_port coyote_uart_data[] = {
.mapbase = IXP4XX_UART2_BASE_PHYS,
.membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
.irq = IRQ_IXP4XX_UART2,
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
.flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM,
.regshift = 2,
.uartclk = IXP4XX_UART_XTAL,
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/arm/mach-ixp4xx/gtwx5715-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ static struct plat_serial8250_port gtwx5715_uart_platform_data[] = {
.mapbase = IXP4XX_UART2_BASE_PHYS,
.membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
.irq = IRQ_IXP4XX_UART2,
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
.flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM,
.regshift = 2,
.uartclk = IXP4XX_UART_XTAL,
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/arm/mach-ixp4xx/ixdp425-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ static struct plat_serial8250_port ixdp425_uart_data[] = {
.mapbase = IXP4XX_UART1_BASE_PHYS,
.membase = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET,
.irq = IRQ_IXP4XX_UART1,
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
.flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM,
.regshift = 2,
.uartclk = IXP4XX_UART_XTAL,
Expand All @@ -91,7 +91,7 @@ static struct plat_serial8250_port ixdp425_uart_data[] = {
.mapbase = IXP4XX_UART2_BASE_PHYS,
.membase = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
.irq = IRQ_IXP4XX_UART1,
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
.flags = UPF_BOOT_AUTOCONF,
.iotype = UPIO_MEM,
.regshift = 2,
.uartclk = IXP4XX_UART_XTAL,
Expand Down
16 changes: 1 addition & 15 deletions trunk/arch/arm/mach-s3c2410/mach-bast.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
* 28-Jun-2005 BJD Moved pm functionality out to common code
* 17-Jul-2005 BJD Changed to platform device for SuperIO 16550s
* 25-Jul-2005 BJD Removed ASIX static mappings
* 27-Jul-2005 BJD Ensure maximum frequency of i2c bus
*/

#include <linux/kernel.h>
Expand Down Expand Up @@ -61,7 +60,6 @@
#include <asm/arch/regs-mem.h>
#include <asm/arch/regs-lcd.h>
#include <asm/arch/nand.h>
#include <asm/arch/iic.h>

#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
Expand Down Expand Up @@ -306,7 +304,7 @@ static void bast_nand_select(struct s3c2410_nand_set *set, int slot)
}

static struct s3c2410_platform_nand bast_nand_info = {
.tacls = 40,
.tacls = 80,
.twrph0 = 80,
.twrph1 = 80,
.nr_sets = ARRAY_SIZE(bast_nand_sets),
Expand Down Expand Up @@ -387,17 +385,6 @@ static struct platform_device bast_sio = {
},
};

/* we have devices on the bus which cannot work much over the
* standard 100KHz i2c bus frequency
*/

static struct s3c2410_platform_i2c bast_i2c_info = {
.flags = 0,
.slave_addr = 0x10,
.bus_freq = 100*1000,
.max_freq = 130*1000,
};

/* Standard BAST devices */

static struct platform_device *bast_devices[] __initdata = {
Expand Down Expand Up @@ -444,7 +431,6 @@ void __init bast_map_io(void)
s3c24xx_uclk.parent = &s3c24xx_clkout1;

s3c_device_nand.dev.platform_data = &bast_nand_info;
s3c_device_i2c.dev.platform_data = &bast_i2c_info;

s3c24xx_init_io(bast_iodesc, ARRAY_SIZE(bast_iodesc));
s3c24xx_init_clocks(0);
Expand Down
6 changes: 3 additions & 3 deletions trunk/arch/arm/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -238,9 +238,9 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
up_read(&mm->mmap_sem);

/*
* Handle the "normal" case first - VM_FAULT_MAJOR / VM_FAULT_MINOR
* Handle the "normal" case first
*/
if (fault >= VM_FAULT_MINOR)
if (fault > 0)
return 0;

/*
Expand All @@ -261,7 +261,7 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
do_exit(SIGKILL);
return 0;

case VM_FAULT_SIGBUS:
case 0:
/*
* We had some memory, but were unable to
* successfully fix up this page fault.
Expand Down
136 changes: 136 additions & 0 deletions trunk/arch/arm/mm/proc-xscale.S
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,142 @@ ENTRY(cpu_xscale_dcache_clean_area)
bhi 1b
mov pc, lr

/* ================================ CACHE LOCKING============================
*
* The XScale MicroArchitecture implements support for locking entries into
* the data and instruction cache. The following functions implement the core
* low level instructions needed to accomplish the locking. The developer's
* manual states that the code that performs the locking must be in non-cached
* memory. To accomplish this, the code in xscale-cache-lock.c copies the
* following functions from the cache into a non-cached memory region that
* is allocated through consistent_alloc().
*
*/
.align 5
/*
* xscale_icache_lock
*
* r0: starting address to lock
* r1: end address to lock
*/
ENTRY(xscale_icache_lock)

iLockLoop:
bic r0, r0, #CACHELINESIZE - 1
mcr p15, 0, r0, c9, c1, 0 @ lock into cache
cmp r0, r1 @ are we done?
add r0, r0, #CACHELINESIZE @ advance to next cache line
bls iLockLoop
mov pc, lr

/*
* xscale_icache_unlock
*/
ENTRY(xscale_icache_unlock)
mcr p15, 0, r0, c9, c1, 1 @ Unlock icache
mov pc, lr

/*
* xscale_dcache_lock
*
* r0: starting address to lock
* r1: end address to lock
*/
ENTRY(xscale_dcache_lock)
mcr p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov r2, #1
mcr p15, 0, r2, c9, c2, 0 @ Put dcache in lock mode
cpwait ip @ Wait for completion

mrs r2, cpsr
orr r3, r2, #PSR_F_BIT | PSR_I_BIT
dLockLoop:
msr cpsr_c, r3
mcr p15, 0, r0, c7, c10, 1 @ Write back line if it is dirty
mcr p15, 0, r0, c7, c6, 1 @ Flush/invalidate line
msr cpsr_c, r2
ldr ip, [r0], #CACHELINESIZE @ Preload 32 bytes into cache from
@ location [r0]. Post-increment
@ r3 to next cache line
cmp r0, r1 @ Are we done?
bls dLockLoop

mcr p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer
mov r2, #0
mcr p15, 0, r2, c9, c2, 0 @ Get out of lock mode
cpwait_ret lr, ip

/*
* xscale_dcache_unlock
*/
ENTRY(xscale_dcache_unlock)
mcr p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer
mcr p15, 0, ip, c9, c2, 1 @ Unlock cache
mov pc, lr

/*
* Needed to determine the length of the code that needs to be copied.
*/
.align 5
ENTRY(xscale_cache_dummy)
mov pc, lr

/* ================================ TLB LOCKING==============================
*
* The XScale MicroArchitecture implements support for locking entries into
* the Instruction and Data TLBs. The following functions provide the
* low level support for supporting these under Linux. xscale-lock.c
* implements some higher level management code. Most of the following
* is taken straight out of the Developer's Manual.
*/

/*
* Lock I-TLB entry
*
* r0: Virtual address to translate and lock
*/
.align 5
ENTRY(xscale_itlb_lock)
mrs r2, cpsr
orr r3, r2, #PSR_F_BIT | PSR_I_BIT
msr cpsr_c, r3 @ Disable interrupts
mcr p15, 0, r0, c8, c5, 1 @ Invalidate I-TLB entry
mcr p15, 0, r0, c10, c4, 0 @ Translate and lock
msr cpsr_c, r2 @ Restore interrupts
cpwait_ret lr, ip

/*
* Lock D-TLB entry
*
* r0: Virtual address to translate and lock
*/
.align 5
ENTRY(xscale_dtlb_lock)
mrs r2, cpsr
orr r3, r2, #PSR_F_BIT | PSR_I_BIT
msr cpsr_c, r3 @ Disable interrupts
mcr p15, 0, r0, c8, c6, 1 @ Invalidate D-TLB entry
mcr p15, 0, r0, c10, c8, 0 @ Translate and lock
msr cpsr_c, r2 @ Restore interrupts
cpwait_ret lr, ip

/*
* Unlock all I-TLB entries
*/
.align 5
ENTRY(xscale_itlb_unlock)
mcr p15, 0, ip, c10, c4, 1 @ Unlock I-TLB
mcr p15, 0, ip, c8, c5, 0 @ Invalidate I-TLB
cpwait_ret lr, ip

/*
* Unlock all D-TLB entries
*/
ENTRY(xscale_dtlb_unlock)
mcr p15, 0, ip, c10, c8, 1 @ Unlock D-TBL
mcr p15, 0, ip, c8, c6, 0 @ Invalidate D-TLB
cpwait_ret lr, ip

/* =============================== PageTable ============================== */

#define PTE_CACHE_WRITE_ALLOCATE 0
Expand Down
24 changes: 12 additions & 12 deletions trunk/arch/arm/nwfpe/double_cpdo.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,17 @@ float64 float64_arccos(float64 rFm);
float64 float64_pow(float64 rFn, float64 rFm);
float64 float64_pol(float64 rFn, float64 rFm);

static float64 float64_rsf(struct roundingData *roundData, float64 rFn, float64 rFm)
static float64 float64_rsf(float64 rFn, float64 rFm)
{
return float64_sub(roundData, rFm, rFn);
return float64_sub(rFm, rFn);
}

static float64 float64_rdv(struct roundingData *roundData, float64 rFn, float64 rFm)
static float64 float64_rdv(float64 rFn, float64 rFm)
{
return float64_div(roundData, rFm, rFn);
return float64_div(rFm, rFn);
}

static float64 (*const dyadic_double[16])(struct roundingData*, float64 rFn, float64 rFm) = {
static float64 (*const dyadic_double[16])(float64 rFn, float64 rFm) = {
[ADF_CODE >> 20] = float64_add,
[MUF_CODE >> 20] = float64_mul,
[SUF_CODE >> 20] = float64_sub,
Expand All @@ -65,12 +65,12 @@ static float64 (*const dyadic_double[16])(struct roundingData*, float64 rFn, flo
[FRD_CODE >> 20] = float64_rdv,
};

static float64 float64_mvf(struct roundingData *roundData,float64 rFm)
static float64 float64_mvf(float64 rFm)
{
return rFm;
}

static float64 float64_mnf(struct roundingData *roundData,float64 rFm)
static float64 float64_mnf(float64 rFm)
{
union float64_components u;

Expand All @@ -84,7 +84,7 @@ static float64 float64_mnf(struct roundingData *roundData,float64 rFm)
return u.f64;
}

static float64 float64_abs(struct roundingData *roundData,float64 rFm)
static float64 float64_abs(float64 rFm)
{
union float64_components u;

Expand All @@ -98,7 +98,7 @@ static float64 float64_abs(struct roundingData *roundData,float64 rFm)
return u.f64;
}

static float64 (*const monadic_double[16])(struct roundingData *, float64 rFm) = {
static float64 (*const monadic_double[16])(float64 rFm) = {
[MVF_CODE >> 20] = float64_mvf,
[MNF_CODE >> 20] = float64_mnf,
[ABS_CODE >> 20] = float64_abs,
Expand All @@ -108,7 +108,7 @@ static float64 (*const monadic_double[16])(struct roundingData *, float64 rFm) =
[NRM_CODE >> 20] = float64_mvf,
};

unsigned int DoubleCPDO(struct roundingData *roundData, const unsigned int opcode, FPREG * rFd)
unsigned int DoubleCPDO(const unsigned int opcode, FPREG * rFd)
{
FPA11 *fpa11 = GET_FPA11();
float64 rFm;
Expand Down Expand Up @@ -151,13 +151,13 @@ unsigned int DoubleCPDO(struct roundingData *roundData, const unsigned int opcod
}

if (dyadic_double[opc_mask_shift]) {
rFd->fDouble = dyadic_double[opc_mask_shift](roundData, rFn, rFm);
rFd->fDouble = dyadic_double[opc_mask_shift](rFn, rFm);
} else {
return 0;
}
} else {
if (monadic_double[opc_mask_shift]) {
rFd->fDouble = monadic_double[opc_mask_shift](roundData, rFm);
rFd->fDouble = monadic_double[opc_mask_shift](rFm);
} else {
return 0;
}
Expand Down
Loading

0 comments on commit 44ca303

Please sign in to comment.