Add 2.6.27.7 patches for AVR32
This commit is contained in:
parent
80b526fd3c
commit
c923379e8a
@ -2,6 +2,7 @@ choice
|
||||
prompt "Add AVR32 specific patches"
|
||||
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
|
||||
depends on BR2_avr32
|
||||
default BR2_ARCH_AVR32_2_6_27_6 if BR2_LINUX_2_6_27_6
|
||||
default BR2_ARCH_AVR32_2_6_25_10 if BR2_LINUX_2_6_25
|
||||
default BR2_ARCH_AVR32_2_6_24 if BR2_LINUX_2_6_24
|
||||
default BR2_ARCH_AVR32_2_6_23 if BR2_LINUX_2_6_23
|
||||
@ -13,6 +14,11 @@ choice
|
||||
help
|
||||
Select a patch to add to the Linux kernel
|
||||
|
||||
config BR2_ARCH_AVR32_2_6_27_6
|
||||
bool "2.6.27.6"
|
||||
help
|
||||
Apply the avr32 linux-2.6.27.6 patches
|
||||
|
||||
config BR2_ARCH_AVR32_2_6_25_10
|
||||
bool "2.6.25.10"
|
||||
help
|
||||
@ -54,6 +60,7 @@ config BR2_KERNEL_ARCH_PATCH_VERSION
|
||||
string
|
||||
depends on BR2_KERNEL_ARCH_PATCH_ENABLED
|
||||
depends on BR2_avr32
|
||||
default "2.6.27.6" if BR2_ARCH_AVR32_2_6_27_6
|
||||
default "2.6.25.10" if BR2_ARCH_AVR32_2_6_25_10
|
||||
default "2.6.24" if BR2_ARCH_AVR32_2_6_24
|
||||
default "2.6.22.10" if BR2_ARCH_AVR32_2_6_22_10
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,27 @@
|
||||
From 474d77e07d5adfe7976b6f3ed131660867489778 Mon Sep 17 00:00:00 2001
|
||||
From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
|
||||
Date: Wed, 26 Nov 2008 11:38:35 +0100
|
||||
Subject: [PATCH 1/3] avr32: remove .note.gnu.build-id section when making vmlinux.bin
|
||||
|
||||
This patch will remove the section .note.gnu.build-id added in binutils
|
||||
2.18 from the vmlinux.bin binary. Not removing this section results in a
|
||||
huge multiple gigabyte binary and likewize large uImage.
|
||||
|
||||
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
|
||||
|
||||
diff --git a/arch/avr32/boot/images/Makefile b/arch/avr32/boot/images/Makefile
|
||||
index 219720a..1848bf0 100644
|
||||
--- a/arch/avr32/boot/images/Makefile
|
||||
+++ b/arch/avr32/boot/images/Makefile
|
||||
@@ -10,7 +10,7 @@ MKIMAGE := $(srctree)/scripts/mkuboot.sh
|
||||
|
||||
extra-y := vmlinux.bin vmlinux.gz
|
||||
|
||||
-OBJCOPYFLAGS_vmlinux.bin := -O binary
|
||||
+OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note.gnu.build-id
|
||||
$(obj)/vmlinux.bin: vmlinux FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
--
|
||||
1.5.6.3
|
||||
|
@ -0,0 +1,23 @@
|
||||
From f26e2224d46430ac4f6c0ddeb518f5766ba62b16 Mon Sep 17 00:00:00 2001
|
||||
From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
|
||||
Date: Wed, 26 Nov 2008 14:10:45 +0100
|
||||
Subject: [PATCH 2/3] atmel_mpopfb: remove define DEBUG to disable debug output
|
||||
|
||||
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
|
||||
|
||||
diff --git a/drivers/video/atmel_mpopfb.c b/drivers/video/atmel_mpopfb.c
|
||||
index 0a07f7b..3b4b668 100644
|
||||
--- a/drivers/video/atmel_mpopfb.c
|
||||
+++ b/drivers/video/atmel_mpopfb.c
|
||||
@@ -8,8 +8,6 @@
|
||||
* more details.
|
||||
*/
|
||||
|
||||
-#define DEBUG
|
||||
-
|
||||
#include <linux/clk.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
--
|
||||
1.5.6.3
|
||||
|
@ -0,0 +1,59 @@
|
||||
From 86fd2e3e74a191ae43122ac18f62f5163c577d4b Mon Sep 17 00:00:00 2001
|
||||
From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
|
||||
Date: Wed, 26 Nov 2008 14:11:59 +0100
|
||||
Subject: [PATCH 3/3] atmel_mpopfb: add signal to disable line caching and set correct output
|
||||
|
||||
This patch adds a signal to disable line caching, due to an errata in
|
||||
silicon revision A. It also sets the output from MPOP to BGR to match
|
||||
big endian framebuffer memory.
|
||||
|
||||
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
|
||||
|
||||
diff --git a/drivers/video/atmel_mpopfb.c b/drivers/video/atmel_mpopfb.c
|
||||
index 3b4b668..350303b 100644
|
||||
--- a/drivers/video/atmel_mpopfb.c
|
||||
+++ b/drivers/video/atmel_mpopfb.c
|
||||
@@ -313,6 +313,10 @@ static int atmel_mpopfb_check_var(struct fb_var_screeninfo *var,
|
||||
static void atmel_mpopfb_start(struct atmel_mpopfb_info *sinfo)
|
||||
{
|
||||
if (!sinfo->running) {
|
||||
+ unsigned int line_cache_disable =
|
||||
+ sinfo->baseimg_info.line_cache_disable ?
|
||||
+ ATMEL_MPOP_CR_CACHEDIS_MASK : 0;
|
||||
+
|
||||
dev_dbg(sinfo->info->device, " * Starting MPOP.\n");
|
||||
|
||||
/* Enable all error interrupts. */
|
||||
@@ -323,9 +327,9 @@ static void atmel_mpopfb_start(struct atmel_mpopfb_info *sinfo)
|
||||
* reading from the slave interface it will start
|
||||
* generating a frame.
|
||||
*/
|
||||
- mpop_writel(sinfo, ATMEL_MPOP_CR,
|
||||
- ATMEL_MPOP_CR_EN_MASK
|
||||
- /*| ATMEL_MPOP_CR_OUT_BGR_MASK */ );
|
||||
+ mpop_writel(sinfo, ATMEL_MPOP_CR, ATMEL_MPOP_CR_EN_MASK
|
||||
+ | line_cache_disable
|
||||
+ | ATMEL_MPOP_CR_OUT_BGR_MASK);
|
||||
|
||||
sinfo->running = 1;
|
||||
}
|
||||
diff --git a/include/linux/atmel_mpopfb.h b/include/linux/atmel_mpopfb.h
|
||||
index cd12e16..d0f2505 100644
|
||||
--- a/include/linux/atmel_mpopfb.h
|
||||
+++ b/include/linux/atmel_mpopfb.h
|
||||
@@ -42,9 +42,11 @@ struct atmel_mpopfb_baseimg_info {
|
||||
unsigned xsize;
|
||||
unsigned ysize;
|
||||
|
||||
- /* Signal that we should flip the video. */
|
||||
+ /* Signal for flipping the video. */
|
||||
int flip;
|
||||
|
||||
+ /* Signal for disabling the line cache. */
|
||||
+ int line_cache_disable;
|
||||
};
|
||||
|
||||
enum atmel_mpopfb_overlay_type {
|
||||
--
|
||||
1.5.6.3
|
||||
|
@ -0,0 +1,35 @@
|
||||
Index: linux-2.6.27.6/arch/avr32/include/asm/byteorder.h
|
||||
===================================================================
|
||||
--- linux-2.6.27.6.orig/arch/avr32/include/asm/byteorder.h 2008-11-28 16:47:15.000000000 +0100
|
||||
+++ linux-2.6.27.6/arch/avr32/include/asm/byteorder.h 2008-11-28 16:47:31.000000000 +0100
|
||||
@@ -7,8 +7,9 @@
|
||||
#include <asm/types.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
-#define __BIG_ENDIAN
|
||||
+#define __BIG_ENDIAN 4321
|
||||
#define __SWAB_64_THRU_32__
|
||||
+#define __BYTEORDER_HAS_U64__
|
||||
|
||||
#ifdef __CHECKER__
|
||||
extern unsigned long __builtin_bswap_32(unsigned long x);
|
||||
@@ -33,5 +34,5 @@
|
||||
#define __arch_swab32 __arch_swab32
|
||||
#endif
|
||||
|
||||
-#include <linux/byteorder.h>
|
||||
+#include <linux/byteorder/big_endian.h>
|
||||
#endif /* __ASM_AVR32_BYTEORDER_H */
|
||||
Index: linux-2.6.27.6/arch/avr32/mach-at32ap/include/mach/io.h
|
||||
===================================================================
|
||||
--- linux-2.6.27.6.orig/arch/avr32/mach-at32ap/include/mach/io.h 2008-11-28 16:47:58.000000000 +0100
|
||||
+++ linux-2.6.27.6/arch/avr32/mach-at32ap/include/mach/io.h 2008-11-28 16:48:15.000000000 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef __ASM_AVR32_ARCH_AT32AP_IO_H
|
||||
#define __ASM_AVR32_ARCH_AT32AP_IO_H
|
||||
|
||||
-#include <linux/swab.h>
|
||||
+#include <linux/byteorder/swabb.h>
|
||||
|
||||
#if defined(CONFIG_AP700X_32_BIT_SMC)
|
||||
# define __swizzle_addr_b(addr) (addr ^ 3UL)
|
@ -0,0 +1,31 @@
|
||||
--- a/arch/avr32/boards/atstk1000/atstk1002.c
|
||||
+++ b/arch/avr32/boards/atstk1000/atstk1002.c
|
||||
@@ -99,6 +99,7 @@ static struct mtd_partition *nand_part_i
|
||||
static struct atmel_nand_data atstk1006_nand_data __initdata = {
|
||||
.cle = 21,
|
||||
.ale = 22,
|
||||
+ .det_pin = GPIO_PIN_NONE,
|
||||
.rdy_pin = GPIO_PIN_PB(30),
|
||||
.enable_pin = GPIO_PIN_PB(29),
|
||||
.partition_info = nand_part_info,
|
||||
--- a/arch/avr32/mach-at32ap/at32ap700x.c
|
||||
+++ b/arch/avr32/mach-at32ap/at32ap700x.c
|
||||
@@ -1969,13 +1969,14 @@ at32_add_device_nand(unsigned int id, st
|
||||
goto fail;
|
||||
|
||||
hmatrix_sfr_set_bits(HMATRIX_SLAVE_EBI, HMATRIX_EBI_NAND_ENABLE);
|
||||
- if (data->enable_pin)
|
||||
+
|
||||
+ if (gpio_is_valid(data->enable_pin))
|
||||
at32_select_gpio(data->enable_pin,
|
||||
AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH);
|
||||
- if (data->rdy_pin)
|
||||
- at32_select_gpio(data->rdy_pin, 0);
|
||||
- if (data->det_pin)
|
||||
+ if (gpio_is_valid(data->det_pin))
|
||||
at32_select_gpio(data->det_pin, 0);
|
||||
+ if (gpio_is_valid(data->rdy_pin))
|
||||
+ at32_select_gpio(data->rdy_pin, 0);
|
||||
|
||||
platform_device_add(pdev);
|
||||
return pdev;
|
Loading…
Reference in New Issue
Block a user