diff options
| -rw-r--r-- | target/linux/xburst/patches-2.6.34/001-core.patch | 102 | ||||
| -rw-r--r-- | target/linux/xburst/patches-2.6.34/005-add-qi_lb60-board-support.patch | 12 | 
2 files changed, 55 insertions, 59 deletions
| diff --git a/target/linux/xburst/patches-2.6.34/001-core.patch b/target/linux/xburst/patches-2.6.34/001-core.patch index b43bcc252..ea7745743 100644 --- a/target/linux/xburst/patches-2.6.34/001-core.patch +++ b/target/linux/xburst/patches-2.6.34/001-core.patch @@ -1,4 +1,4 @@ -From 7efb2cae3df49ba749860a0df04933dc522da224 Mon Sep 17 00:00:00 2001 +From e1828438bbdd0623cf7f9c6672f2fe65b1349aa6 Mon Sep 17 00:00:00 2001  From: Lars-Peter Clausen <lars@metafoo.de>  Date: Sat, 24 Apr 2010 17:35:05 +0200  Subject: [PATCH] Add JZ4740 SoC core support @@ -18,13 +18,13 @@ Subject: [PATCH] Add JZ4740 SoC core support   arch/mips/include/asm/mach-jz4740/timer.h    |   22 +   arch/mips/include/asm/mach-jz4740/war.h      |   25 +   arch/mips/jz4740/Kconfig                     |   29 + - arch/mips/jz4740/Makefile                    |   17 + + arch/mips/jz4740/Makefile                    |   18 +   arch/mips/jz4740/clock-debugfs.c             |  109 +++   arch/mips/jz4740/clock.c                     |  935 ++++++++++++++++++++++++++   arch/mips/jz4740/clock.h                     |   75 ++ - arch/mips/jz4740/dma.c                       |  339 ++++++++++ + arch/mips/jz4740/dma.c                       |  336 +++++++++   arch/mips/jz4740/gpio.c                      |  598 ++++++++++++++++ - arch/mips/jz4740/irq.c                       |  174 +++++ + arch/mips/jz4740/irq.c                       |  170 +++++   arch/mips/jz4740/irq.h                       |   21 +   arch/mips/jz4740/platform.c                  |  246 +++++++   arch/mips/jz4740/pm.c                        |   59 ++ @@ -33,12 +33,12 @@ Subject: [PATCH] Add JZ4740 SoC core support   arch/mips/jz4740/reset.c                     |   81 +++   arch/mips/jz4740/reset.h                     |    7 +   arch/mips/jz4740/setup.c                     |   64 ++ - arch/mips/jz4740/time.c                      |  145 ++++ - arch/mips/jz4740/timer.c                     |   45 ++ + arch/mips/jz4740/time.c                      |  144 ++++ + arch/mips/jz4740/timer.c                     |   48 ++   arch/mips/jz4740/timer.h                     |  130 ++++   arch/mips/kernel/cpu-probe.c                 |   20 +   arch/mips/mm/tlbex.c                         |    5 + - 34 files changed, 4073 insertions(+), 1 deletions(-) + 34 files changed, 4069 insertions(+), 1 deletions(-)   create mode 100644 arch/mips/include/asm/mach-jz4740/base.h   create mode 100644 arch/mips/include/asm/mach-jz4740/clock.h   create mode 100644 arch/mips/include/asm/mach-jz4740/dma.h @@ -232,7 +232,7 @@ index 0000000..9069727  +#endif  diff --git a/arch/mips/include/asm/mach-jz4740/dma.h b/arch/mips/include/asm/mach-jz4740/dma.h  new file mode 100644 -index 0000000..d31d4e0 +index 0000000..bb7fc1e  --- /dev/null  +++ b/arch/mips/include/asm/mach-jz4740/dma.h  @@ -0,0 +1,90 @@ @@ -272,9 +272,9 @@ index 0000000..d31d4e0  +};  +  +enum jz4740_dma_width { -+	JZ4740_DMA_WIDTH_8BIT, -+	JZ4740_DMA_WIDTH_16BIT, -+	JZ4740_DMA_WIDTH_32BIT, ++	JZ4740_DMA_WIDTH_32BIT	= 0, ++	JZ4740_DMA_WIDTH_8BIT	= 1, ++	JZ4740_DMA_WIDTH_16BIT	= 2,  +};  +  +enum jz4740_dma_transfer_size { @@ -928,14 +928,14 @@ index 0000000..3a5bc17  +#endif /* __ASM_MIPS_MACH_JZ4740_WAR_H */  diff --git a/arch/mips/jz4740/Kconfig b/arch/mips/jz4740/Kconfig  new file mode 100644 -index 0000000..5f6da09 +index 0000000..b959769  --- /dev/null  +++ b/arch/mips/jz4740/Kconfig  @@ -0,0 +1,29 @@  +choice -+    prompt "Machine type" -+    depends on MACH_JZ -+    default JZ4740_QI_LB60 ++	prompt "Machine type" ++	depends on MACH_JZ ++	default JZ4740_QI_LB60  +  +endchoice  + @@ -963,10 +963,10 @@ index 0000000..5f6da09  +	bool  diff --git a/arch/mips/jz4740/Makefile b/arch/mips/jz4740/Makefile  new file mode 100644 -index 0000000..e389ddd +index 0000000..398ee91  --- /dev/null  +++ b/arch/mips/jz4740/Makefile -@@ -0,0 +1,17 @@ +@@ -0,0 +1,18 @@  +#  +# Makefile for the Ingenic JZ4740.  +# @@ -982,8 +982,9 @@ index 0000000..e389ddd  +  +# PM support  + -+obj-$(CONFIG_PM)         += pm.o ++obj-$(CONFIG_PM) += pm.o  + ++EXTRA_CFLAGS += -Werror -Wall  diff --git a/arch/mips/jz4740/clock-debugfs.c b/arch/mips/jz4740/clock-debugfs.c  new file mode 100644  index 0000000..993b91b @@ -1101,7 +1102,7 @@ index 0000000..993b91b  +}  diff --git a/arch/mips/jz4740/clock.c b/arch/mips/jz4740/clock.c  new file mode 100644 -index 0000000..3954a20 +index 0000000..df0d6d3  --- /dev/null  +++ b/arch/mips/jz4740/clock.c  @@ -0,0 +1,935 @@ @@ -1919,7 +1920,7 @@ index 0000000..3954a20  +	struct clk *clk;  +  +	list_for_each_entry(clk, &jz_clocks, list) { -+	    if (strcmp(clk->name, name) == 0) ++		if (strcmp(clk->name, name) == 0)  +			return clk;  +	}  +	return ERR_PTR(-ENOENT); @@ -2123,10 +2124,10 @@ index 0000000..96010a4  +#endif  diff --git a/arch/mips/jz4740/dma.c b/arch/mips/jz4740/dma.c  new file mode 100644 -index 0000000..217ddc8 +index 0000000..b712afc  --- /dev/null  +++ b/arch/mips/jz4740/dma.c -@@ -0,0 +1,339 @@ +@@ -0,0 +1,336 @@  +/*  + *  Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de>  + *  JZ4740 SoC DMA support @@ -2275,7 +2276,6 @@ index 0000000..217ddc8  +	const struct jz4740_dma_config *config)  +{  +	uint32_t cmd; -+	uint32_t ctrl;  +  +	switch (config->transfer_size) {  +	case JZ4740_DMA_TRANSFER_SIZE_2BYTE: @@ -2302,11 +2302,8 @@ index 0000000..217ddc8  +	cmd |= config->mode << JZ_DMA_CMD_MODE_OFFSET;  +	cmd |= JZ_DMA_CMD_TRANSFER_IRQ_ENABLE;  + -+	ctrl = JZ_DMA_STATUS_CTRL_NO_DESC; -+	ctrl |= JZ_DMA_STATUS_CTRL_HALT; -+  +	jz4740_dma_write(JZ_REG_DMA_CMD(dma->id), cmd); -+	jz4740_dma_write(JZ_REG_DMA_STATUS_CTRL(dma->id), ctrl); ++	jz4740_dma_write(JZ_REG_DMA_STATUS_CTRL(dma->id), 0);  +	jz4740_dma_write(JZ_REG_DMA_REQ_TYPE(dma->id), config->request_type);  +}  +EXPORT_SYMBOL_GPL(jz4740_dma_configure); @@ -2348,12 +2345,13 @@ index 0000000..217ddc8  +void jz4740_dma_enable(struct jz4740_dma_chan *dma)  +{  +	jz4740_dma_write_mask(JZ_REG_DMA_STATUS_CTRL(dma->id), -+			JZ_DMA_STATUS_CTRL_ENABLE, -+			JZ_DMA_STATUS_CTRL_ENABLE | JZ_DMA_STATUS_CTRL_HALT); ++			JZ_DMA_STATUS_CTRL_NO_DESC | JZ_DMA_STATUS_CTRL_ENABLE, ++			JZ_DMA_STATUS_CTRL_HALT | JZ_DMA_STATUS_CTRL_NO_DESC | ++			JZ_DMA_STATUS_CTRL_ENABLE);  +  +	jz4740_dma_write_mask(JZ_REG_DMA_CTRL,  +			JZ_DMA_CTRL_ENABLE, -+			JZ_DMA_CTRL_ENABLE | JZ_DMA_CTRL_HALT); ++			JZ_DMA_CTRL_HALT | JZ_DMA_CTRL_ENABLE);  +}  +EXPORT_SYMBOL_GPL(jz4740_dma_enable);  + @@ -2468,7 +2466,7 @@ index 0000000..217ddc8  +arch_initcall(jz4740_dma_init);  diff --git a/arch/mips/jz4740/gpio.c b/arch/mips/jz4740/gpio.c  new file mode 100644 -index 0000000..14d8288 +index 0000000..84f4ef9  --- /dev/null  +++ b/arch/mips/jz4740/gpio.c  @@ -0,0 +1,598 @@ @@ -2980,7 +2978,7 @@ index 0000000..14d8288  +	ret = sysdev_register(&chip->sysdev);  +  +	if (ret) -+	    return ret; ++		return ret;  +  +	spin_lock_init(&chip->lock);  + @@ -3011,7 +3009,7 @@ index 0000000..14d8288  +		return ret;  +  +	for (i = 0; i < ARRAY_SIZE(jz4740_gpio_chips); ++i) { -+	    jz4740_gpio_chip_init(&jz4740_gpio_chips[i], i); ++		jz4740_gpio_chip_init(&jz4740_gpio_chips[i], i);  +	}  +  +	printk(KERN_INFO "JZ4740 GPIO initalized\n"); @@ -3072,10 +3070,10 @@ index 0000000..14d8288  +#endif  diff --git a/arch/mips/jz4740/irq.c b/arch/mips/jz4740/irq.c  new file mode 100644 -index 0000000..a8c76af +index 0000000..46a03ee  --- /dev/null  +++ b/arch/mips/jz4740/irq.c -@@ -0,0 +1,174 @@ +@@ -0,0 +1,170 @@  +/*  + *  Copyright (C) 2009-2010, Lars-Peter Clausen <lars@metafoo.de>  + *  JZ4740 platform IRQ support @@ -3131,11 +3129,6 @@ index 0000000..a8c76af  +	writel(IRQ_BIT(irq), jz_intc_base + JZ_REG_INTC_SET_MASK);  +}  + -+static void intc_irq_ack(unsigned int irq) -+{ -+	writel(IRQ_BIT(irq), jz_intc_base + JZ_REG_INTC_PENDING); -+} -+  +static int intc_irq_set_wake(unsigned int irq, unsigned int on)  +{  +	if (on) @@ -3149,8 +3142,8 @@ index 0000000..a8c76af  +static struct irq_chip intc_irq_type = {  +	.name =		"INTC",  +	.mask =		intc_irq_mask, ++	.mask_ack =	intc_irq_mask,  +	.unmask =	intc_irq_unmask, -+	.ack =		intc_irq_ack,  +	.set_wake =	intc_irq_set_wake,  +};  + @@ -3160,6 +3153,7 @@ index 0000000..a8c76af  +	int intc_irq;  +  +	irq_reg = readl(jz_intc_base + JZ_REG_INTC_PENDING); ++  +	intc_irq = ffs(irq_reg);  +	if (intc_irq)  +		generic_handle_irq(intc_irq - 1 + JZ4740_IRQ_BASE); @@ -4014,10 +4008,10 @@ index 0000000..a6628f4  +}  diff --git a/arch/mips/jz4740/time.c b/arch/mips/jz4740/time.c  new file mode 100644 -index 0000000..7721ba7 +index 0000000..da8183f  --- /dev/null  +++ b/arch/mips/jz4740/time.c -@@ -0,0 +1,145 @@ +@@ -0,0 +1,144 @@  +/*  + *  Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de>  + *  JZ4740 platform time support @@ -4074,7 +4068,7 @@ index 0000000..7721ba7  +  +	cd->event_handler(cd);  + -+    return IRQ_HANDLED; ++	return IRQ_HANDLED;  +}  +  +static void jz4740_clockevent_set_mode(enum clock_event_mode mode, @@ -4120,7 +4114,7 @@ index 0000000..7721ba7  +	.handler	= jz4740_clockevent_irq,  +	.flags		= IRQF_PERCPU | IRQF_TIMER | IRQF_DISABLED,  +	.name		= "jz4740-timerirq", -+	.dev_id      = &jz4740_clockevent, ++	.dev_id		= &jz4740_clockevent,  +};  +  +void __init plat_time_init(void) @@ -4132,7 +4126,7 @@ index 0000000..7721ba7  +	jz4740_timer_init();  +  +	clk_rate = jz4740_clock_bdata.ext_rate >> 4; -+    jz4740_jiffies_per_tick = DIV_ROUND_CLOSEST(clk_rate, HZ); ++	jz4740_jiffies_per_tick = DIV_ROUND_CLOSEST(clk_rate, HZ);  +  +	clockevent_set_clock(&jz4740_clockevent, clk_rate);  +	jz4740_clockevent.min_delta_ns = clockevent_delta2ns(100, &jz4740_clockevent); @@ -4145,7 +4139,7 @@ index 0000000..7721ba7  +	ret = clocksource_register(&jz4740_clocksource);  +  +	if (ret) -+	    printk(KERN_ERR "Failed to register clocksource: %d\n", ret); ++		printk(KERN_ERR "Failed to register clocksource: %d\n", ret);  +  +	setup_irq(JZ4740_IRQ_TCU0, &timer_irqaction);  + @@ -4155,9 +4149,8 @@ index 0000000..7721ba7  +	jz4740_timer_set_ctrl(TIMER_CLOCKSOURCE, ctrl);  +  +	jz4740_timer_set_period(TIMER_CLOCKEVENT, jz4740_jiffies_per_tick); -+    jz4740_timer_irq_full_enable(TIMER_CLOCKEVENT); ++	jz4740_timer_irq_full_enable(TIMER_CLOCKEVENT);  + -+    jz4740_timer_irq_full_disable(TIMER_CLOCKSOURCE);  +	jz4740_timer_set_period(TIMER_CLOCKSOURCE, 0xffff);  +  +	jz4740_timer_enable(TIMER_CLOCKEVENT); @@ -4165,10 +4158,10 @@ index 0000000..7721ba7  +}  diff --git a/arch/mips/jz4740/timer.c b/arch/mips/jz4740/timer.c  new file mode 100644 -index 0000000..208f14c +index 0000000..6e09cae  --- /dev/null  +++ b/arch/mips/jz4740/timer.c -@@ -0,0 +1,45 @@ +@@ -0,0 +1,48 @@  +/*  + *  Copyright (C) 2010, Lars-Peter Clausen <lars@metafoo.de>  + *  JZ4740 platform timer support @@ -4211,8 +4204,11 @@ index 0000000..208f14c  +	if (!jz4740_timer_base)  +		panic("Failed to ioremap timer registers");  + -+	/* Disable all timers except those used as system timers */ -+	writel(0x100fc, jz4740_timer_base + JZ_REG_TIMER_STOP_SET); ++	/* Disable all timer clocks except for those used as system timers */ ++	writel(0x000100fc, jz4740_timer_base + JZ_REG_TIMER_STOP_SET); ++ ++	/* Timer irqs are unmasked by default, mask them */ ++	writel(0x00ff00ff, jz4740_timer_base + JZ_REG_TIMER_MASK_SET);  +}  diff --git a/arch/mips/jz4740/timer.h b/arch/mips/jz4740/timer.h  new file mode 100644 diff --git a/target/linux/xburst/patches-2.6.34/005-add-qi_lb60-board-support.patch b/target/linux/xburst/patches-2.6.34/005-add-qi_lb60-board-support.patch index b06debfaf..fa40d411c 100644 --- a/target/linux/xburst/patches-2.6.34/005-add-qi_lb60-board-support.patch +++ b/target/linux/xburst/patches-2.6.34/005-add-qi_lb60-board-support.patch @@ -1,4 +1,4 @@ -From 876a111075de6fcffbaa0814ee4118ac739df1a9 Mon Sep 17 00:00:00 2001 +From eb15b4f5046dbb1a530ec3e6134b1b68753e1f31 Mon Sep 17 00:00:00 2001  From: Lars-Peter Clausen <lars@metafoo.de>  Date: Sat, 24 Apr 2010 17:24:26 +0200  Subject: [PATCH] Add qi_lb60 board support @@ -70,12 +70,12 @@ index 0000000..cfbf073  +  +#endif /* __ASM_JZ4740_QI_LB60_H__ */  diff --git a/arch/mips/jz4740/Kconfig b/arch/mips/jz4740/Kconfig -index 5f6da09..3de3b99 100644 +index b959769..a255c1a 100644  --- a/arch/mips/jz4740/Kconfig  +++ b/arch/mips/jz4740/Kconfig  @@ -3,6 +3,10 @@ choice -     depends on MACH_JZ -     default JZ4740_QI_LB60 + 	depends on MACH_JZ + 	default JZ4740_QI_LB60  +config JZ4740_QI_LB60  +	bool "Qi Hardware Ben NanoNote" @@ -85,7 +85,7 @@ index 5f6da09..3de3b99 100644   config HAVE_PWM  diff --git a/arch/mips/jz4740/Makefile b/arch/mips/jz4740/Makefile -index e389ddd..deca88e 100644 +index 398ee91..dd27b49 100644  --- a/arch/mips/jz4740/Makefile  +++ b/arch/mips/jz4740/Makefile  @@ -11,6 +11,8 @@ obj-$(CONFIG_DEBUG_FS) += clock-debugfs.o @@ -96,7 +96,7 @@ index e389ddd..deca88e 100644  +   # PM support - obj-$(CONFIG_PM)         += pm.o + obj-$(CONFIG_PM) += pm.o  diff --git a/arch/mips/jz4740/board-qi_lb60.c b/arch/mips/jz4740/board-qi_lb60.c  new file mode 100644  index 0000000..b3cc308 | 
