提交 7243f214 编写于 作者: I Ingo Molnar

Merge branches 'tracing/ftrace', 'tracing/syscalls' and 'linus' into tracing/core

Conflicts:
	arch/parisc/kernel/irq.c
...@@ -3356,10 +3356,8 @@ S: Maintained ...@@ -3356,10 +3356,8 @@ S: Maintained
PARISC ARCHITECTURE PARISC ARCHITECTURE
P: Kyle McMartin P: Kyle McMartin
M: kyle@mcmartin.ca M: kyle@mcmartin.ca
P: Matthew Wilcox P: Helge Deller
M: matthew@wil.cx M: deller@gmx.de
P: Grant Grundler
M: grundler@parisc-linux.org
L: linux-parisc@vger.kernel.org L: linux-parisc@vger.kernel.org
W: http://www.parisc-linux.org/ W: http://www.parisc-linux.org/
T: git kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6.git T: git kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6.git
......
...@@ -111,6 +111,7 @@ ENTRY(mcount) ...@@ -111,6 +111,7 @@ ENTRY(mcount)
.globl mcount_call .globl mcount_call
mcount_call: mcount_call:
bl ftrace_stub bl ftrace_stub
ldr lr, [fp, #-4] @ restore lr
ldmia sp!, {r0-r3, pc} ldmia sp!, {r0-r3, pc}
ENTRY(ftrace_caller) ENTRY(ftrace_caller)
...@@ -122,6 +123,7 @@ ENTRY(ftrace_caller) ...@@ -122,6 +123,7 @@ ENTRY(ftrace_caller)
.globl ftrace_call .globl ftrace_call
ftrace_call: ftrace_call:
bl ftrace_stub bl ftrace_stub
ldr lr, [fp, #-4] @ restore lr
ldmia sp!, {r0-r3, pc} ldmia sp!, {r0-r3, pc}
#else #else
...@@ -133,6 +135,7 @@ ENTRY(mcount) ...@@ -133,6 +135,7 @@ ENTRY(mcount)
adr r0, ftrace_stub adr r0, ftrace_stub
cmp r0, r2 cmp r0, r2
bne trace bne trace
ldr lr, [fp, #-4] @ restore lr
ldmia sp!, {r0-r3, pc} ldmia sp!, {r0-r3, pc}
trace: trace:
...@@ -141,6 +144,7 @@ trace: ...@@ -141,6 +144,7 @@ trace:
sub r0, r0, #MCOUNT_INSN_SIZE sub r0, r0, #MCOUNT_INSN_SIZE
mov lr, pc mov lr, pc
mov pc, r2 mov pc, r2
mov lr, r1 @ restore lr
ldmia sp!, {r0-r3, pc} ldmia sp!, {r0-r3, pc}
#endif /* CONFIG_DYNAMIC_FTRACE */ #endif /* CONFIG_DYNAMIC_FTRACE */
......
...@@ -88,7 +88,7 @@ void set_fiq_handler(void *start, unsigned int length) ...@@ -88,7 +88,7 @@ void set_fiq_handler(void *start, unsigned int length)
* disable irqs for the duration. Note - these functions are almost * disable irqs for the duration. Note - these functions are almost
* entirely coded in assembly. * entirely coded in assembly.
*/ */
void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) void __naked set_fiq_regs(struct pt_regs *regs)
{ {
register unsigned long tmp; register unsigned long tmp;
asm volatile ( asm volatile (
...@@ -106,7 +106,7 @@ void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) ...@@ -106,7 +106,7 @@ void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs)
: "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); : "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE));
} }
void __attribute__((naked)) get_fiq_regs(struct pt_regs *regs) void __naked get_fiq_regs(struct pt_regs *regs)
{ {
register unsigned long tmp; register unsigned long tmp;
asm volatile ( asm volatile (
......
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
struct i2c_board_info;
struct ep93xx_eth_data struct ep93xx_eth_data
{ {
unsigned char dev_addr[6]; unsigned char dev_addr[6];
......
...@@ -23,6 +23,8 @@ ...@@ -23,6 +23,8 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <mach/irqs.h>
#include <mach/hardware.h> #include <mach/hardware.h>
static struct resource imx_csi_resources[] = { static struct resource imx_csi_resources[] = {
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <mach/irqs.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/common.h> #include <mach/common.h>
#include <mach/imx-uart.h> #include <mach/imx-uart.h>
......
...@@ -178,7 +178,9 @@ static int __init omap3_beagle_i2c_init(void) ...@@ -178,7 +178,9 @@ static int __init omap3_beagle_i2c_init(void)
#ifdef CONFIG_I2C2_OMAP_BEAGLE #ifdef CONFIG_I2C2_OMAP_BEAGLE
omap_register_i2c_bus(2, 400, NULL, 0); omap_register_i2c_bus(2, 400, NULL, 0);
#endif #endif
omap_register_i2c_bus(3, 400, NULL, 0); /* Bus 3 is attached to the DVI port where devices like the pico DLP
* projector don't work reliably with 400kHz */
omap_register_i2c_bus(3, 100, NULL, 0);
return 0; return 0;
} }
......
...@@ -431,6 +431,10 @@ void __init orion5x_uart1_init(void) ...@@ -431,6 +431,10 @@ void __init orion5x_uart1_init(void)
/***************************************************************************** /*****************************************************************************
* XOR engine * XOR engine
****************************************************************************/ ****************************************************************************/
struct mv_xor_platform_shared_data orion5x_xor_shared_data = {
.dram = &orion5x_mbus_dram_info,
};
static struct resource orion5x_xor_shared_resources[] = { static struct resource orion5x_xor_shared_resources[] = {
{ {
.name = "xor low", .name = "xor low",
...@@ -448,6 +452,9 @@ static struct resource orion5x_xor_shared_resources[] = { ...@@ -448,6 +452,9 @@ static struct resource orion5x_xor_shared_resources[] = {
static struct platform_device orion5x_xor_shared = { static struct platform_device orion5x_xor_shared = {
.name = MV_XOR_SHARED_NAME, .name = MV_XOR_SHARED_NAME,
.id = 0, .id = 0,
.dev = {
.platform_data = &orion5x_xor_shared_data,
},
.num_resources = ARRAY_SIZE(orion5x_xor_shared_resources), .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources),
.resource = orion5x_xor_shared_resources, .resource = orion5x_xor_shared_resources,
}; };
......
...@@ -129,7 +129,7 @@ static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = { ...@@ -129,7 +129,7 @@ static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = {
.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
}; };
struct map_desc smdk6410_iodesc[] = {}; static struct map_desc smdk6410_iodesc[] = {};
static struct platform_device *smdk6410_devices[] __initdata = { static struct platform_device *smdk6410_devices[] __initdata = {
#ifdef CONFIG_SMDK6410_SD_CH0 #ifdef CONFIG_SMDK6410_SD_CH0
...@@ -146,7 +146,7 @@ static struct platform_device *smdk6410_devices[] __initdata = { ...@@ -146,7 +146,7 @@ static struct platform_device *smdk6410_devices[] __initdata = {
static struct i2c_board_info i2c_devs0[] __initdata = { static struct i2c_board_info i2c_devs0[] __initdata = {
{ I2C_BOARD_INFO("24c08", 0x50), }, { I2C_BOARD_INFO("24c08", 0x50), },
{ I2C_BOARD_INFO("WM8580", 0X1b), }, { I2C_BOARD_INFO("wm8580", 0x1b), },
}; };
static struct i2c_board_info i2c_devs1[] __initdata = { static struct i2c_board_info i2c_devs1[] __initdata = {
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/highmem.h> #include <linux/highmem.h>
static void __attribute__((naked)) static void __naked
feroceon_copy_user_page(void *kto, const void *kfrom) feroceon_copy_user_page(void *kto, const void *kfrom)
{ {
asm("\ asm("\
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* *
* FIXME: do we need to handle cache stuff... * FIXME: do we need to handle cache stuff...
*/ */
static void __attribute__((naked)) static void __naked
v3_copy_user_page(void *kto, const void *kfrom) v3_copy_user_page(void *kto, const void *kfrom)
{ {
asm("\n\ asm("\n\
......
...@@ -44,7 +44,7 @@ static DEFINE_SPINLOCK(minicache_lock); ...@@ -44,7 +44,7 @@ static DEFINE_SPINLOCK(minicache_lock);
* instruction. If your processor does not supply this, you have to write your * instruction. If your processor does not supply this, you have to write your
* own copy_user_highpage that does the right thing. * own copy_user_highpage that does the right thing.
*/ */
static void __attribute__((naked)) static void __naked
mc_copy_user_page(void *from, void *to) mc_copy_user_page(void *from, void *to)
{ {
asm volatile( asm volatile(
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* instruction. If your processor does not supply this, you have to write your * instruction. If your processor does not supply this, you have to write your
* own copy_user_highpage that does the right thing. * own copy_user_highpage that does the right thing.
*/ */
static void __attribute__((naked)) static void __naked
v4wb_copy_user_page(void *kto, const void *kfrom) v4wb_copy_user_page(void *kto, const void *kfrom)
{ {
asm("\ asm("\
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* dirty data in the cache. However, we do have to ensure that * dirty data in the cache. However, we do have to ensure that
* subsequent reads are up to date. * subsequent reads are up to date.
*/ */
static void __attribute__((naked)) static void __naked
v4wt_copy_user_page(void *kto, const void *kfrom) v4wt_copy_user_page(void *kto, const void *kfrom)
{ {
asm("\ asm("\
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
* if we eventually end up using our copied page. * if we eventually end up using our copied page.
* *
*/ */
static void __attribute__((naked)) static void __naked
xsc3_mc_copy_user_page(void *kto, const void *kfrom) xsc3_mc_copy_user_page(void *kto, const void *kfrom)
{ {
asm("\ asm("\
......
...@@ -42,7 +42,7 @@ static DEFINE_SPINLOCK(minicache_lock); ...@@ -42,7 +42,7 @@ static DEFINE_SPINLOCK(minicache_lock);
* Dcache aliasing issue. The writes will be forwarded to the write buffer, * Dcache aliasing issue. The writes will be forwarded to the write buffer,
* and merged as appropriate. * and merged as appropriate.
*/ */
static void __attribute__((naked)) static void __naked
mc_copy_user_page(void *from, void *to) mc_copy_user_page(void *from, void *to)
{ {
/* /*
......
...@@ -490,26 +490,30 @@ core_initcall(consistent_init); ...@@ -490,26 +490,30 @@ core_initcall(consistent_init);
*/ */
void dma_cache_maint(const void *start, size_t size, int direction) void dma_cache_maint(const void *start, size_t size, int direction)
{ {
const void *end = start + size; void (*inner_op)(const void *, const void *);
void (*outer_op)(unsigned long, unsigned long);
BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(end - 1)); BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(start + size - 1));
switch (direction) { switch (direction) {
case DMA_FROM_DEVICE: /* invalidate only */ case DMA_FROM_DEVICE: /* invalidate only */
dmac_inv_range(start, end); inner_op = dmac_inv_range;
outer_inv_range(__pa(start), __pa(end)); outer_op = outer_inv_range;
break; break;
case DMA_TO_DEVICE: /* writeback only */ case DMA_TO_DEVICE: /* writeback only */
dmac_clean_range(start, end); inner_op = dmac_clean_range;
outer_clean_range(__pa(start), __pa(end)); outer_op = outer_clean_range;
break; break;
case DMA_BIDIRECTIONAL: /* writeback and invalidate */ case DMA_BIDIRECTIONAL: /* writeback and invalidate */
dmac_flush_range(start, end); inner_op = dmac_flush_range;
outer_flush_range(__pa(start), __pa(end)); outer_op = outer_flush_range;
break; break;
default: default:
BUG(); BUG();
} }
inner_op(start, start + size);
outer_op(__pa(start), __pa(start) + size);
} }
EXPORT_SYMBOL(dma_cache_maint); EXPORT_SYMBOL(dma_cache_maint);
......
...@@ -382,7 +382,7 @@ void __init bootmem_init(void) ...@@ -382,7 +382,7 @@ void __init bootmem_init(void)
for_each_node(node) for_each_node(node)
bootmem_free_node(node, mi); bootmem_free_node(node, mi);
high_memory = __va(memend_pfn << PAGE_SHIFT); high_memory = __va((memend_pfn << PAGE_SHIFT) - 1) + 1;
/* /*
* This doesn't seem to be used by the Linux memory manager any * This doesn't seem to be used by the Linux memory manager any
......
...@@ -124,7 +124,7 @@ int valid_phys_addr_range(unsigned long addr, size_t size) ...@@ -124,7 +124,7 @@ int valid_phys_addr_range(unsigned long addr, size_t size)
{ {
if (addr < PHYS_OFFSET) if (addr < PHYS_OFFSET)
return 0; return 0;
if (addr + size > __pa(high_memory)) if (addr + size >= __pa(high_memory - 1))
return 0; return 0;
return 1; return 1;
......
...@@ -18,7 +18,8 @@ obj-$(CONFIG_CPU_FREQ) += cpu-omap.o ...@@ -18,7 +18,8 @@ obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
obj-$(CONFIG_I2C_OMAP) += i2c.o i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o
obj-y += $(i2c-omap-m) $(i2c-omap-y)
# OMAP mailbox framework # OMAP mailbox framework
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
......
...@@ -199,21 +199,17 @@ static struct clocksource clocksource_32k = { ...@@ -199,21 +199,17 @@ static struct clocksource clocksource_32k = {
.flags = CLOCK_SOURCE_IS_CONTINUOUS, .flags = CLOCK_SOURCE_IS_CONTINUOUS,
}; };
/*
* Rounds down to nearest nsec.
*/
unsigned long long omap_32k_ticks_to_nsecs(unsigned long ticks_32k)
{
return cyc2ns(&clocksource_32k, ticks_32k);
}
/* /*
* Returns current time from boot in nsecs. It's OK for this to wrap * Returns current time from boot in nsecs. It's OK for this to wrap
* around for now, as it's just a relative time stamp. * around for now, as it's just a relative time stamp.
*/ */
unsigned long long sched_clock(void) unsigned long long sched_clock(void)
{ {
return omap_32k_ticks_to_nsecs(omap_32k_read()); unsigned long long ret;
ret = (unsigned long long)omap_32k_read();
ret = (ret * clocksource_32k.mult_orig) >> clocksource_32k.shift;
return ret;
} }
static int __init omap_init_clocksource_32k(void) static int __init omap_init_clocksource_32k(void)
......
...@@ -35,7 +35,7 @@ extern void omap_map_common_io(void); ...@@ -35,7 +35,7 @@ extern void omap_map_common_io(void);
extern struct sys_timer omap_timer; extern struct sys_timer omap_timer;
extern void omap_serial_init(void); extern void omap_serial_init(void);
extern void omap_serial_enable_clocks(int enable); extern void omap_serial_enable_clocks(int enable);
#ifdef CONFIG_I2C_OMAP #if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
extern int omap_register_i2c_bus(int bus_id, u32 clkrate, extern int omap_register_i2c_bus(int bus_id, u32 clkrate,
struct i2c_board_info const *info, struct i2c_board_info const *info,
unsigned len); unsigned len);
......
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
!defined(CONFIG_ARCH_OMAP15XX) && \ !defined(CONFIG_ARCH_OMAP15XX) && \
!defined(CONFIG_ARCH_OMAP16XX) && \ !defined(CONFIG_ARCH_OMAP16XX) && \
!defined(CONFIG_ARCH_OMAP24XX) !defined(CONFIG_ARCH_OMAP24XX)
#error "Power management for this processor not implemented yet" #warning "Power management for this processor not implemented yet"
#endif #endif
#ifndef __ASSEMBLER__ #ifndef __ASSEMBLER__
......
...@@ -248,7 +248,7 @@ static struct clk *clks[] __initdata = { ...@@ -248,7 +248,7 @@ static struct clk *clks[] __initdata = {
&clk_48m, &clk_48m,
}; };
void s3c64xx_register_clocks(void) void __init s3c64xx_register_clocks(void)
{ {
struct clk *clkp; struct clk *clkp;
int ret; int ret;
......
...@@ -417,4 +417,4 @@ static __init int s3c64xx_gpiolib_init(void) ...@@ -417,4 +417,4 @@ static __init int s3c64xx_gpiolib_init(void)
return 0; return 0;
} }
arch_initcall(s3c64xx_gpiolib_init); core_initcall(s3c64xx_gpiolib_init);
...@@ -117,7 +117,7 @@ ...@@ -117,7 +117,7 @@
#define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12) #define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12)
#define IRQ_NFC S3C64XX_IRQ_VIC1(13) #define IRQ_NFC S3C64XX_IRQ_VIC1(13)
#define IRQ_CFCON S3C64XX_IRQ_VIC1(14) #define IRQ_CFCON S3C64XX_IRQ_VIC1(14)
#define IRQ_UHOST S3C64XX_IRQ_VIC1(15) #define IRQ_USBH S3C64XX_IRQ_VIC1(15)
#define IRQ_SPI0 S3C64XX_IRQ_VIC1(16) #define IRQ_SPI0 S3C64XX_IRQ_VIC1(16)
#define IRQ_SPI1 S3C64XX_IRQ_VIC1(17) #define IRQ_SPI1 S3C64XX_IRQ_VIC1(17)
#define IRQ_IIC S3C64XX_IRQ_VIC1(18) #define IRQ_IIC S3C64XX_IRQ_VIC1(18)
......
...@@ -14,12 +14,15 @@ ...@@ -14,12 +14,15 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/gpio.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/io.h> #include <linux/io.h>
#include <asm/hardware/vic.h> #include <asm/hardware/vic.h>
#include <plat/regs-irqtype.h> #include <plat/regs-irqtype.h>
#include <plat/regs-gpio.h>
#include <plat/gpio-cfg.h>
#include <mach/map.h> #include <mach/map.h>
#include <plat/cpu.h> #include <plat/cpu.h>
...@@ -74,6 +77,7 @@ static void s3c_irq_eint_maskack(unsigned int irq) ...@@ -74,6 +77,7 @@ static void s3c_irq_eint_maskack(unsigned int irq)
static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type)
{ {
int offs = eint_offset(irq); int offs = eint_offset(irq);
int pin;
int shift; int shift;
u32 ctrl, mask; u32 ctrl, mask;
u32 newvalue = 0; u32 newvalue = 0;
...@@ -125,6 +129,15 @@ static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) ...@@ -125,6 +129,15 @@ static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type)
ctrl |= newvalue << shift; ctrl |= newvalue << shift;
__raw_writel(ctrl, reg); __raw_writel(ctrl, reg);
/* set the GPIO pin appropriately */
if (offs < 23)
pin = S3C64XX_GPN(offs);
else
pin = S3C64XX_GPM(offs - 23);
s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(2));
return 0; return 0;
} }
...@@ -181,7 +194,7 @@ static void s3c_irq_demux_eint20_27(unsigned int irq, struct irq_desc *desc) ...@@ -181,7 +194,7 @@ static void s3c_irq_demux_eint20_27(unsigned int irq, struct irq_desc *desc)
s3c_irq_demux_eint(20, 27); s3c_irq_demux_eint(20, 27);
} }
int __init s3c64xx_init_irq_eint(void) static int __init s3c64xx_init_irq_eint(void)
{ {
int irq; int irq;
......
...@@ -207,7 +207,7 @@ static struct irq_chip s3c_irq_uart = { ...@@ -207,7 +207,7 @@ static struct irq_chip s3c_irq_uart = {
static void __init s3c64xx_uart_irq(struct uart_irq *uirq) static void __init s3c64xx_uart_irq(struct uart_irq *uirq)
{ {
void *reg_base = uirq->regs; void __iomem *reg_base = uirq->regs;
unsigned int irq; unsigned int irq;
int offs; int offs;
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
* ext_xtal_mux for want of an actual name from the manual. * ext_xtal_mux for want of an actual name from the manual.
*/ */
struct clk clk_ext_xtal_mux = { static struct clk clk_ext_xtal_mux = {
.name = "ext_xtal", .name = "ext_xtal",
.id = -1, .id = -1,
}; };
...@@ -63,7 +63,7 @@ struct clksrc_clk { ...@@ -63,7 +63,7 @@ struct clksrc_clk {
void __iomem *reg_divider; void __iomem *reg_divider;
}; };
struct clk clk_fout_apll = { static struct clk clk_fout_apll = {
.name = "fout_apll", .name = "fout_apll",
.id = -1, .id = -1,
}; };
...@@ -78,7 +78,7 @@ static struct clk_sources clk_src_apll = { ...@@ -78,7 +78,7 @@ static struct clk_sources clk_src_apll = {
.nr_sources = ARRAY_SIZE(clk_src_apll_list), .nr_sources = ARRAY_SIZE(clk_src_apll_list),
}; };
struct clksrc_clk clk_mout_apll = { static struct clksrc_clk clk_mout_apll = {
.clk = { .clk = {
.name = "mout_apll", .name = "mout_apll",
.id = -1, .id = -1,
...@@ -88,7 +88,7 @@ struct clksrc_clk clk_mout_apll = { ...@@ -88,7 +88,7 @@ struct clksrc_clk clk_mout_apll = {
.sources = &clk_src_apll, .sources = &clk_src_apll,
}; };
struct clk clk_fout_epll = { static struct clk clk_fout_epll = {
.name = "fout_epll", .name = "fout_epll",
.id = -1, .id = -1,
}; };
...@@ -103,7 +103,7 @@ static struct clk_sources clk_src_epll = { ...@@ -103,7 +103,7 @@ static struct clk_sources clk_src_epll = {
.nr_sources = ARRAY_SIZE(clk_src_epll_list), .nr_sources = ARRAY_SIZE(clk_src_epll_list),
}; };
struct clksrc_clk clk_mout_epll = { static struct clksrc_clk clk_mout_epll = {
.clk = { .clk = {
.name = "mout_epll", .name = "mout_epll",
.id = -1, .id = -1,
...@@ -123,7 +123,7 @@ static struct clk_sources clk_src_mpll = { ...@@ -123,7 +123,7 @@ static struct clk_sources clk_src_mpll = {
.nr_sources = ARRAY_SIZE(clk_src_mpll_list), .nr_sources = ARRAY_SIZE(clk_src_mpll_list),
}; };
struct clksrc_clk clk_mout_mpll = { static struct clksrc_clk clk_mout_mpll = {
.clk = { .clk = {
.name = "mout_mpll", .name = "mout_mpll",
.id = -1, .id = -1,
...@@ -145,7 +145,7 @@ static unsigned long s3c64xx_clk_doutmpll_get_rate(struct clk *clk) ...@@ -145,7 +145,7 @@ static unsigned long s3c64xx_clk_doutmpll_get_rate(struct clk *clk)
return rate; return rate;
} }
struct clk clk_dout_mpll = { static struct clk clk_dout_mpll = {
.name = "dout_mpll", .name = "dout_mpll",
.id = -1, .id = -1,
.parent = &clk_mout_mpll.clk, .parent = &clk_mout_mpll.clk,
...@@ -189,10 +189,10 @@ static struct clk_sources clkset_uart = { ...@@ -189,10 +189,10 @@ static struct clk_sources clkset_uart = {
}; };
static struct clk *clkset_uhost_list[] = { static struct clk *clkset_uhost_list[] = {
&clk_48m,
&clk_mout_epll.clk, &clk_mout_epll.clk,
&clk_dout_mpll, &clk_dout_mpll,
&clk_fin_epll, &clk_fin_epll,
&clk_48m,
}; };
static struct clk_sources clkset_uhost = { static struct clk_sources clkset_uhost = {
...@@ -239,10 +239,12 @@ static int s3c64xx_setrate_clksrc(struct clk *clk, unsigned long rate) ...@@ -239,10 +239,12 @@ static int s3c64xx_setrate_clksrc(struct clk *clk, unsigned long rate)
rate = clk_round_rate(clk, rate); rate = clk_round_rate(clk, rate);
div = clk_get_rate(clk->parent) / rate; div = clk_get_rate(clk->parent) / rate;
if (div > 16)
return -EINVAL;
val = __raw_readl(reg); val = __raw_readl(reg);
val &= ~sclk->mask; val &= ~(0xf << sclk->shift);
val |= (rate - 1) << sclk->shift; val |= (div - 1) << sclk->shift;
__raw_writel(val, reg); __raw_writel(val, reg);
return 0; return 0;
...@@ -351,7 +353,7 @@ static struct clksrc_clk clk_mmc2 = { ...@@ -351,7 +353,7 @@ static struct clksrc_clk clk_mmc2 = {
static struct clksrc_clk clk_usbhost = { static struct clksrc_clk clk_usbhost = {
.clk = { .clk = {
.name = "usb-host-bus", .name = "usb-bus-host",
.id = -1, .id = -1,
.ctrlbit = S3C_CLKCON_SCLK_UHOST, .ctrlbit = S3C_CLKCON_SCLK_UHOST,
.enable = s3c64xx_sclk_ctrl, .enable = s3c64xx_sclk_ctrl,
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
# #
# http://www.arm.linux.org.uk/developer/machines/?action=new # http://www.arm.linux.org.uk/developer/machines/?action=new
# #
# Last update: Sun Nov 30 16:39:36 2008 # Last update: Thu Mar 12 18:01:45 2009
# #
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
# #
...@@ -1811,7 +1811,7 @@ pilz_pmi5 MACH_PILZ_PMI5 PILZ_PMI5 1820 ...@@ -1811,7 +1811,7 @@ pilz_pmi5 MACH_PILZ_PMI5 PILZ_PMI5 1820
jade MACH_JADE JADE 1821 jade MACH_JADE JADE 1821
ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822 ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822
gprisc3 MACH_GPRISC3 GPRISC3 1823 gprisc3 MACH_GPRISC3 GPRISC3 1823
stamp9260 MACH_STAMP9260 STAMP9260 1824 stamp9g20 MACH_STAMP9G20 STAMP9G20 1824
smdk6430 MACH_SMDK6430 SMDK6430 1825 smdk6430 MACH_SMDK6430 SMDK6430 1825
smdkc100 MACH_SMDKC100 SMDKC100 1826 smdkc100 MACH_SMDKC100 SMDKC100 1826
tavorevb MACH_TAVOREVB TAVOREVB 1827 tavorevb MACH_TAVOREVB TAVOREVB 1827
...@@ -1993,4 +1993,134 @@ spark MACH_SPARK SPARK 2002 ...@@ -1993,4 +1993,134 @@ spark MACH_SPARK SPARK 2002
benzina MACH_BENZINA BENZINA 2003 benzina MACH_BENZINA BENZINA 2003
blaze MACH_BLAZE BLAZE 2004 blaze MACH_BLAZE BLAZE 2004
linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005 linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005
htcvenus MACH_HTCVENUS HTCVENUS 2006 htckovsky MACH_HTCVENUS HTCVENUS 2006
sony_prs505 MACH_SONY_PRS505 SONY_PRS505 2007
hanlin_v3 MACH_HANLIN_V3 HANLIN_V3 2008
sapphira MACH_SAPPHIRA SAPPHIRA 2009
dack_sda_01 MACH_DACK_SDA_01 DACK_SDA_01 2010
armbox MACH_ARMBOX ARMBOX 2011
harris_rvp MACH_HARRIS_RVP HARRIS_RVP 2012
ribaldo MACH_RIBALDO RIBALDO 2013
agora MACH_AGORA AGORA 2014
omap3_mini MACH_OMAP3_MINI OMAP3_MINI 2015
a9sam6432_b MACH_A9SAM6432_B A9SAM6432_B 2016
usg2410 MACH_USG2410 USG2410 2017
pc72052_i10_revb MACH_PC72052_I10_REVB PC72052_I10_REVB 2018
mx35_exm32 MACH_MX35_EXM32 MX35_EXM32 2019
topas910 MACH_TOPAS910 TOPAS910 2020
hyena MACH_HYENA HYENA 2021
pospax MACH_POSPAX POSPAX 2022
hdl_gx MACH_HDL_GX HDL_GX 2023
ctera_4bay MACH_CTERA_4BAY CTERA_4BAY 2024
ctera_plug_c MACH_CTERA_PLUG_C CTERA_PLUG_C 2025
crwea_plug_i MACH_CRWEA_PLUG_I CRWEA_PLUG_I 2026
egauge2 MACH_EGAUGE2 EGAUGE2 2027
didj MACH_DIDJ DIDJ 2028
m_s3c2443 MACH_MEISTER MEISTER 2029
htcblackstone MACH_HTCBLACKSTONE HTCBLACKSTONE 2030
cpuat9g20 MACH_CPUAT9G20 CPUAT9G20 2031
smdk6440 MACH_SMDK6440 SMDK6440 2032
omap_35xx_mvp MACH_OMAP_35XX_MVP OMAP_35XX_MVP 2033
ctera_plug_i MACH_CTERA_PLUG_I CTERA_PLUG_I 2034
pvg610_100 MACH_PVG610 PVG610 2035
hprw6815 MACH_HPRW6815 HPRW6815 2036
omap3_oswald MACH_OMAP3_OSWALD OMAP3_OSWALD 2037
nas4220b MACH_NAS4220B NAS4220B 2038
htcraphael_cdma MACH_HTCRAPHAEL_CDMA HTCRAPHAEL_CDMA 2039
htcdiamond_cdma MACH_HTCDIAMOND_CDMA HTCDIAMOND_CDMA 2040
scaler MACH_SCALER SCALER 2041
zylonite2 MACH_ZYLONITE2 ZYLONITE2 2042
aspenite MACH_ASPENITE ASPENITE 2043
teton MACH_TETON TETON 2044
ttc_dkb MACH_TTC_DKB TTC_DKB 2045
bishop2 MACH_BISHOP2 BISHOP2 2046
ippv5 MACH_IPPV5 IPPV5 2047
farm926 MACH_FARM926 FARM926 2048
mmccpu MACH_MMCCPU MMCCPU 2049
sgmsfl MACH_SGMSFL SGMSFL 2050
tt8000 MACH_TT8000 TT8000 2051
zrn4300lp MACH_ZRN4300LP ZRN4300LP 2052
mptc MACH_MPTC MPTC 2053
h6051 MACH_H6051 H6051 2054
pvg610_101 MACH_PVG610_101 PVG610_101 2055
stamp9261_pc_evb MACH_STAMP9261_PC_EVB STAMP9261_PC_EVB 2056
pelco_odysseus MACH_PELCO_ODYSSEUS PELCO_ODYSSEUS 2057
tny_a9260 MACH_TNY_A9260 TNY_A9260 2058
tny_a9g20 MACH_TNY_A9G20 TNY_A9G20 2059
aesop_mp2530f MACH_AESOP_MP2530F AESOP_MP2530F 2060
dx900 MACH_DX900 DX900 2061
cpodc2 MACH_CPODC2 CPODC2 2062
tilt_8925 MACH_TILT_8925 TILT_8925 2063
davinci_dm357_evm MACH_DAVINCI_DM357_EVM DAVINCI_DM357_EVM 2064
swordfish MACH_SWORDFISH SWORDFISH 2065
corvus MACH_CORVUS CORVUS 2066
taurus MACH_TAURUS TAURUS 2067
axm MACH_AXM AXM 2068
axc MACH_AXC AXC 2069
baby MACH_BABY BABY 2070
mp200 MACH_MP200 MP200 2071
pcm043 MACH_PCM043 PCM043 2072
hanlin_v3c MACH_HANLIN_V3C HANLIN_V3C 2073
kbk9g20 MACH_KBK9G20 KBK9G20 2074
adsturbog5 MACH_ADSTURBOG5 ADSTURBOG5 2075
avenger_lite1 MACH_AVENGER_LITE1 AVENGER_LITE1 2076
suc82x MACH_SUC SUC 2077
at91sam7s256 MACH_AT91SAM7S256 AT91SAM7S256 2078
mendoza MACH_MENDOZA MENDOZA 2079
kira MACH_KIRA KIRA 2080
mx1hbm MACH_MX1HBM MX1HBM 2081
quatro43xx MACH_QUATRO43XX QUATRO43XX 2082
quatro4230 MACH_QUATRO4230 QUATRO4230 2083
nsb400 MACH_NSB400 NSB400 2084
drp255 MACH_DRP255 DRP255 2085
thoth MACH_THOTH THOTH 2086
firestone MACH_FIRESTONE FIRESTONE 2087
asusp750 MACH_ASUSP750 ASUSP750 2088
ctera_dl MACH_CTERA_DL CTERA_DL 2089
socr MACH_SOCR SOCR 2090
htcoxygen MACH_HTCOXYGEN HTCOXYGEN 2091
heroc MACH_HEROC HEROC 2092
zeno6800 MACH_ZENO6800 ZENO6800 2093
sc2mcs MACH_SC2MCS SC2MCS 2094
gene100 MACH_GENE100 GENE100 2095
as353x MACH_AS353X AS353X 2096
sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097
at91sam9g20 MACH_AT91SAM9G20 AT91SAM9G20 2098
mv88f6192gtw_fe MACH_MV88F6192GTW_FE MV88F6192GTW_FE 2099
cc9200 MACH_CC9200 CC9200 2100
sm9200 MACH_SM9200 SM9200 2101
tp9200 MACH_TP9200 TP9200 2102
snapperdv MACH_SNAPPERDV SNAPPERDV 2103
avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104
avengers_lite1 MACH_AVENGERS_LITE1 AVENGERS_LITE1 2105
omap3axon MACH_OMAP3AXON OMAP3AXON 2106
ma8xx MACH_MA8XX MA8XX 2107
mp201ek MACH_MP201EK MP201EK 2108
davinci_tux MACH_DAVINCI_TUX DAVINCI_TUX 2109
mpa1600 MACH_MPA1600 MPA1600 2110
pelco_troy MACH_PELCO_TROY PELCO_TROY 2111
nsb667 MACH_NSB667 NSB667 2112
rovers5_4mpix MACH_ROVERS5_4MPIX ROVERS5_4MPIX 2113
twocom MACH_TWOCOM TWOCOM 2114
ubisys_p9_rcu3r2 MACH_UBISYS_P9_RCU3R2 UBISYS_P9_RCU3R2 2115
hero_espresso MACH_HERO_ESPRESSO HERO_ESPRESSO 2116
afeusb MACH_AFEUSB AFEUSB 2117
t830 MACH_T830 T830 2118
spd8020_cc MACH_SPD8020_CC SPD8020_CC 2119
om_3d7k MACH_OM_3D7K OM_3D7K 2120
picocom2 MACH_PICOCOM2 PICOCOM2 2121
uwg4mx27 MACH_UWG4MX27 UWG4MX27 2122
uwg4mx31 MACH_UWG4MX31 UWG4MX31 2123
cherry MACH_CHERRY CHERRY 2124
mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125
s3c2440turkiye MACH_S3C2440TURKIYE S3C2440TURKIYE 2126
tx37 MACH_TX37 TX37 2127
sbc2800_9g20 MACH_SBC2800_9G20 SBC2800_9G20 2128
benzglb MACH_BENZGLB BENZGLB 2129
benztd MACH_BENZTD BENZTD 2130
cartesio_plus MACH_CARTESIO_PLUS CARTESIO_PLUS 2131
solrad_g20 MACH_SOLRAD_G20 SOLRAD_G20 2132
mx27wallace MACH_MX27WALLACE MX27WALLACE 2133
fmzwebmodul MACH_FMZWEBMODUL FMZWEBMODUL 2134
rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135
smallogger MACH_SMALLOGGER SMALLOGGER 2136
...@@ -238,8 +238,12 @@ config MIPS_SIM ...@@ -238,8 +238,12 @@ config MIPS_SIM
This option enables support for MIPS Technologies MIPSsim software This option enables support for MIPS Technologies MIPSsim software
emulator. emulator.
config MACH_EMMA config NEC_MARKEINS
bool "NEC EMMA series based machines" bool "NEC EMMA2RH Mark-eins board"
select SOC_EMMA2RH
select HW_HAS_PCI
help
This enables support for the NEC Electronics Mark-eins boards.
config MACH_VR41XX config MACH_VR41XX
bool "NEC VR4100 series based machines" bool "NEC VR4100 series based machines"
...@@ -637,7 +641,6 @@ endchoice ...@@ -637,7 +641,6 @@ endchoice
source "arch/mips/alchemy/Kconfig" source "arch/mips/alchemy/Kconfig"
source "arch/mips/basler/excite/Kconfig" source "arch/mips/basler/excite/Kconfig"
source "arch/mips/emma/Kconfig"
source "arch/mips/jazz/Kconfig" source "arch/mips/jazz/Kconfig"
source "arch/mips/lasat/Kconfig" source "arch/mips/lasat/Kconfig"
source "arch/mips/pmc-sierra/Kconfig" source "arch/mips/pmc-sierra/Kconfig"
...@@ -895,6 +898,18 @@ config MIPS_RM9122 ...@@ -895,6 +898,18 @@ config MIPS_RM9122
bool bool
select SERIAL_RM9000 select SERIAL_RM9000
config SOC_EMMA2RH
bool
select CEVT_R4K
select CSRC_R4K
select DMA_NONCOHERENT
select IRQ_CPU
select SWAP_IO_SPACE
select SYS_HAS_CPU_R5500
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL
select SYS_SUPPORTS_BIG_ENDIAN
config SOC_PNX833X config SOC_PNX833X
bool bool
select CEVT_R4K select CEVT_R4K
...@@ -930,11 +945,6 @@ config SOC_PNX8550 ...@@ -930,11 +945,6 @@ config SOC_PNX8550
config SWAP_IO_SPACE config SWAP_IO_SPACE
bool bool
config EMMA2RH
bool
depends on MARKEINS
default y
config SERIAL_RM9000 config SERIAL_RM9000
bool bool
......
...@@ -416,7 +416,7 @@ load-$(CONFIG_PNX8550_STB810) += 0xffffffff80060000 ...@@ -416,7 +416,7 @@ load-$(CONFIG_PNX8550_STB810) += 0xffffffff80060000
# #
# Common NEC EMMAXXX # Common NEC EMMAXXX
# #
core-$(CONFIG_SOC_EMMA) += arch/mips/emma/common/ core-$(CONFIG_SOC_EMMA2RH) += arch/mips/emma/common/
cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh
# #
......
...@@ -35,7 +35,7 @@ CONFIG_ZONE_DMA=y ...@@ -35,7 +35,7 @@ CONFIG_ZONE_DMA=y
# CONFIG_PNX8550_STB810 is not set # CONFIG_PNX8550_STB810 is not set
# CONFIG_MACH_VR41XX is not set # CONFIG_MACH_VR41XX is not set
# CONFIG_PMC_YOSEMITE is not set # CONFIG_PMC_YOSEMITE is not set
CONFIG_MARKEINS=y CONFIG_NEC_MARKEINS=y
# CONFIG_SGI_IP22 is not set # CONFIG_SGI_IP22 is not set
# CONFIG_SGI_IP27 is not set # CONFIG_SGI_IP27 is not set
# CONFIG_SGI_IP32 is not set # CONFIG_SGI_IP32 is not set
...@@ -68,7 +68,7 @@ CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y ...@@ -68,7 +68,7 @@ CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
CONFIG_IRQ_CPU=y CONFIG_IRQ_CPU=y
CONFIG_SWAP_IO_SPACE=y CONFIG_SWAP_IO_SPACE=y
CONFIG_EMMA2RH=y CONFIG_SOC_EMMA2RH=y
CONFIG_MIPS_L1_CACHE_SHIFT=5 CONFIG_MIPS_L1_CACHE_SHIFT=5
# #
...@@ -574,9 +574,9 @@ CONFIG_MTD_CFI_UTIL=y ...@@ -574,9 +574,9 @@ CONFIG_MTD_CFI_UTIL=y
# #
# CONFIG_MTD_COMPLEX_MAPPINGS is not set # CONFIG_MTD_COMPLEX_MAPPINGS is not set
CONFIG_MTD_PHYSMAP=y CONFIG_MTD_PHYSMAP=y
CONFIG_MTD_PHYSMAP_START=0x1e000000 CONFIG_MTD_PHYSMAP_START=0x0
CONFIG_MTD_PHYSMAP_LEN=0x02000000 CONFIG_MTD_PHYSMAP_LEN=0x0
CONFIG_MTD_PHYSMAP_BANKWIDTH=2 CONFIG_MTD_PHYSMAP_BANKWIDTH=0
# CONFIG_MTD_PLATRAM is not set # CONFIG_MTD_PLATRAM is not set
# #
......
choice
prompt "Machine type"
depends on MACH_EMMA
default NEC_MARKEINS
config NEC_MARKEINS
bool "NEC EMMA2RH Mark-eins board"
select SOC_EMMA2RH
select HW_HAS_PCI
help
This enables support for the NEC Electronics Mark-eins boards.
endchoice
config SOC_EMMA2RH
bool
select SOC_EMMA
select SYS_HAS_CPU_R5500
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL
config SOC_EMMA
bool
select CEVT_R4K
select CSRC_R4K
select DMA_NONCOHERENT
select IRQ_CPU
select SWAP_IO_SPACE
select SYS_SUPPORTS_BIG_ENDIAN
...@@ -141,13 +141,6 @@ static struct platform_device serial_emma = { ...@@ -141,13 +141,6 @@ static struct platform_device serial_emma = {
}, },
}; };
static struct platform_device *devices[] = {
&i2c_emma_devices[0],
&i2c_emma_devices[1],
&i2c_emma_devices[2],
&serial_emma,
};
static struct mtd_partition markeins_parts[] = { static struct mtd_partition markeins_parts[] = {
[0] = { [0] = {
.name = "RootFS", .name = "RootFS",
...@@ -181,11 +174,39 @@ static struct mtd_partition markeins_parts[] = { ...@@ -181,11 +174,39 @@ static struct mtd_partition markeins_parts[] = {
}, },
}; };
static struct physmap_flash_data markeins_flash_data = {
.width = 2,
.nr_parts = ARRAY_SIZE(markeins_parts),
.parts = markeins_parts
};
static struct resource markeins_flash_resource = {
.start = 0x1e000000,
.end = 0x02000000,
.flags = IORESOURCE_MEM
};
static struct platform_device markeins_flash_device = {
.name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &markeins_flash_data,
},
.num_resources = 1,
.resource = &markeins_flash_resource,
};
static struct platform_device *devices[] = {
i2c_emma_devices,
i2c_emma_devices + 1,
i2c_emma_devices + 2,
&serial_emma,
&markeins_flash_device,
};
static int __init platform_devices_setup(void) static int __init platform_devices_setup(void)
{ {
physmap_set_partitions(markeins_parts, ARRAY_SIZE(markeins_parts));
return platform_add_devices(devices, ARRAY_SIZE(devices)); return platform_add_devices(devices, ARRAY_SIZE(devices));
} }
arch_initcall(platform_devices_setup); arch_initcall(platform_devices_setup);
...@@ -15,8 +15,6 @@ ...@@ -15,8 +15,6 @@
*/ */
#ifdef CONFIG_MIPS32_O32 #ifdef CONFIG_MIPS32_O32
#define TIF_32BIT TIF_32BIT_REGS
#define __NR_seccomp_read_32 4003 #define __NR_seccomp_read_32 4003
#define __NR_seccomp_write_32 4004 #define __NR_seccomp_write_32 4004
#define __NR_seccomp_exit_32 4001 #define __NR_seccomp_exit_32 4001
...@@ -24,8 +22,6 @@ ...@@ -24,8 +22,6 @@
#elif defined(CONFIG_MIPS32_N32) #elif defined(CONFIG_MIPS32_N32)
#define TIF_32BIT _TIF_32BIT_ADDR
#define __NR_seccomp_read_32 6000 #define __NR_seccomp_read_32 6000
#define __NR_seccomp_write_32 6001 #define __NR_seccomp_write_32 6001
#define __NR_seccomp_exit_32 6058 #define __NR_seccomp_exit_32 6058
......
...@@ -127,6 +127,12 @@ register struct thread_info *__current_thread_info __asm__("$28"); ...@@ -127,6 +127,12 @@ register struct thread_info *__current_thread_info __asm__("$28");
#define TIF_LOAD_WATCH 25 /* If set, load watch registers */ #define TIF_LOAD_WATCH 25 /* If set, load watch registers */
#define TIF_SYSCALL_TRACE 31 /* syscall trace active */ #define TIF_SYSCALL_TRACE 31 /* syscall trace active */
#ifdef CONFIG_MIPS32_O32
#define TIF_32BIT TIF_32BIT_REGS
#elif defined(CONFIG_MIPS32_N32)
#define TIF_32BIT _TIF_32BIT_ADDR
#endif /* CONFIG_MIPS32_O32 */
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
#define _TIF_SIGPENDING (1<<TIF_SIGPENDING) #define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
...@@ -137,7 +137,6 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i ...@@ -137,7 +137,6 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i
error = count - buf.count; error = count - buf.count;
} }
out_putf:
fput(file); fput(file);
out: out:
return error; return error;
......
...@@ -79,6 +79,7 @@ ...@@ -79,6 +79,7 @@
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/types.h>
#include <asm/asmregs.h> #include <asm/asmregs.h>
...@@ -129,27 +130,27 @@ ...@@ -129,27 +130,27 @@
/* Shift Left - note the r and t can NOT be the same! */ /* Shift Left - note the r and t can NOT be the same! */
.macro shl r, sa, t .macro shl r, sa, t
dep,z \r, 31-\sa, 32-\sa, \t dep,z \r, 31-(\sa), 32-(\sa), \t
.endm .endm
/* The PA 2.0 shift left */ /* The PA 2.0 shift left */
.macro shlw r, sa, t .macro shlw r, sa, t
depw,z \r, 31-\sa, 32-\sa, \t depw,z \r, 31-(\sa), 32-(\sa), \t
.endm .endm
/* And the PA 2.0W shift left */ /* And the PA 2.0W shift left */
.macro shld r, sa, t .macro shld r, sa, t
depd,z \r, 63-\sa, 64-\sa, \t depd,z \r, 63-(\sa), 64-(\sa), \t
.endm .endm
/* Shift Right - note the r and t can NOT be the same! */ /* Shift Right - note the r and t can NOT be the same! */
.macro shr r, sa, t .macro shr r, sa, t
extru \r, 31-\sa, 32-\sa, \t extru \r, 31-(\sa), 32-(\sa), \t
.endm .endm
/* pa20w version of shift right */ /* pa20w version of shift right */
.macro shrd r, sa, t .macro shrd r, sa, t
extrd,u \r, 63-\sa, 64-\sa, \t extrd,u \r, 63-(\sa), 64-(\sa), \t
.endm .endm
/* load 32-bit 'value' into 'reg' compensating for the ldil /* load 32-bit 'value' into 'reg' compensating for the ldil
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册