diff options
Diffstat (limited to 'recipes/linux/linux-omap-2.6.29')
9 files changed, 231 insertions, 37 deletions
diff --git a/recipes/linux/linux-omap-2.6.29/0001-board-ldp-add-regulator-info-to-get-the-microSD-slo.patch b/recipes/linux/linux-omap-2.6.29/0001-board-ldp-add-regulator-info-to-get-the-microSD-slo.patch index ddee3088e1..49045f7bb1 100644 --- a/recipes/linux/linux-omap-2.6.29/0001-board-ldp-add-regulator-info-to-get-the-microSD-slo.patch +++ b/recipes/linux/linux-omap-2.6.29/0001-board-ldp-add-regulator-info-to-get-the-microSD-slo.patch @@ -1,17 +1,20 @@ -From 0561e7124500418e913a3b91ddc09d4bd8dc5032 Mon Sep 17 00:00:00 2001 -From: Koen Kooi <koen@beagleboard.org> +From 7efa7cc5b807cb840c62b5bf54bf47181c9b95a6 Mon Sep 17 00:00:00 2001 +From: Koen Kooi <koen@openembedded.org> Date: Mon, 30 Mar 2009 15:21:37 +0200 -Subject: [PATCH] ARM: OMAP: board-ldp: add regulator info to get the microSD slot working again +Subject: [PATCH v2] ARM: OMAP: board-ldp: add regulator info to get the microSD slot working again The ldp board was left behind when other boards got updated. The ldp info was copied from the beagleboard board file and s/beagle/ldp/g +Changes since v1: + * dropped vsim portion since only 4 pins are hooked up + Signed-off-by: Koen Kooi <koen@beagleboard.org> --- - arch/arm/mach-omap2/board-ldp.c | 55 +++++++++++++++++++++++++++++++++++++++ - 1 files changed, 55 insertions(+), 0 deletions(-) + arch/arm/mach-omap2/board-ldp.c | 32 ++++++++++++++++++++++++++++++++ + 1 files changed, 32 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c -index 30926b0..faf62f8 100644 +index 30926b0..19a5c15 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c @@ -22,6 +22,7 @@ @@ -22,7 +25,7 @@ index 30926b0..faf62f8 100644 #include <linux/i2c/twl4030.h> #include <mach/hardware.h> -@@ -450,7 +451,17 @@ static struct twl4030_script *twl4030_scripts[] __initdata = { +@@ -450,7 +451,16 @@ static struct twl4030_script *twl4030_scripts[] __initdata = { &wrst_script, }; @@ -31,7 +34,6 @@ index 30926b0..faf62f8 100644 + * devices' drivers should be managing these. + */ + { .resource = RES_VMMC1, }, -+ { .resource = RES_VSIM, }, + { 0, }, +}; + @@ -40,7 +42,7 @@ index 30926b0..faf62f8 100644 .scripts = twl4030_scripts, .size = ARRAY_SIZE(twl4030_scripts), }; -@@ -474,6 +485,44 @@ static struct twl4030_madc_platform_data ldp_madc_data = { +@@ -474,6 +484,25 @@ static struct twl4030_madc_platform_data ldp_madc_data = { .irq_line = 1, }; @@ -48,10 +50,6 @@ index 30926b0..faf62f8 100644 + .supply = "vmmc", +}; + -+static struct regulator_consumer_supply ldp_vsim_supply = { -+ .supply = "vmmc_aux", -+}; -+ +/* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */ +static struct regulator_init_data ldp_vmmc1 = { + .constraints = { @@ -67,41 +65,23 @@ index 30926b0..faf62f8 100644 + .consumer_supplies = &ldp_vmmc1_supply, +}; + -+/* VSIM for MMC1 pins DAT4..DAT7 (2 mA, plus card == max 50 mA) */ -+static struct regulator_init_data ldp_vsim = { -+ .constraints = { -+ .min_uV = 1800000, -+ .max_uV = 3000000, -+ .valid_modes_mask = REGULATOR_MODE_NORMAL -+ | REGULATOR_MODE_STANDBY, -+ .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE -+ | REGULATOR_CHANGE_MODE -+ | REGULATOR_CHANGE_STATUS, -+ }, -+ .num_consumer_supplies = 1, -+ .consumer_supplies = &ldp_vsim_supply, -+}; -+ static struct twl4030_platform_data ldp_twldata = { .irq_base = TWL4030_IRQ_BASE, .irq_end = TWL4030_IRQ_END, -@@ -483,6 +532,8 @@ static struct twl4030_platform_data ldp_twldata = { +@@ -483,6 +512,7 @@ static struct twl4030_platform_data ldp_twldata = { .madc = &ldp_madc_data, .usb = &ldp_usb_data, .power = &sdp3430_t2scripts_data, + .vmmc1 = &ldp_vmmc1, -+ .vsim = &ldp_vsim, .gpio = &ldp_gpio_data, .keypad = &ldp_kp_twl4030_data, }; -@@ -530,6 +581,10 @@ static void __init omap_ldp_init(void) +@@ -530,6 +560,8 @@ static void __init omap_ldp_init(void) omap_serial_init(); usb_musb_init(); twl4030_mmc_init(mmc); + /* link regulators to MMC adapters */ + ldp_vmmc1_supply.dev = mmc[0].dev; -+ ldp_vsim_supply.dev = mmc[0].dev; -+ } static void __init omap_ldp_map_io(void) diff --git a/recipes/linux/linux-omap-2.6.29/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.29/beagleboard/defconfig index f6c503c0b6..2292ae23b4 100644 --- a/recipes/linux/linux-omap-2.6.29/beagleboard/defconfig +++ b/recipes/linux/linux-omap-2.6.29/beagleboard/defconfig @@ -288,7 +288,7 @@ CONFIG_ZONE_DMA_FLAG=0 CONFIG_VIRT_TO_BUS=y CONFIG_UNEVICTABLE_LRU=y CONFIG_LEDS=y -CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALIGNMENT_TRAP=n # # Boot options diff --git a/recipes/linux/linux-omap-2.6.29/ehci.patch b/recipes/linux/linux-omap-2.6.29/ehci.patch new file mode 100644 index 0000000000..5a8c84471b --- /dev/null +++ b/recipes/linux/linux-omap-2.6.29/ehci.patch @@ -0,0 +1,131 @@ +Index: git/arch/arm/mach-omap2/board-omap3beagle.c +=================================================================== +--- git.orig/arch/arm/mach-omap2/board-omap3beagle.c ++++ git/arch/arm/mach-omap2/board-omap3beagle.c +@@ -154,6 +154,7 @@ static int beagle_twl_gpio_setup(struct + * power switch and overcurrent detect + */ + ++#if 0 /* TODO: This needs to be modified to not rely on u-boot */ + gpio_request(gpio + 1, "EHCI_nOC"); + gpio_direction_input(gpio + 1); + +@@ -163,7 +164,7 @@ static int beagle_twl_gpio_setup(struct + + /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ + gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; +- ++#endif + return 0; + } + +Index: git/arch/arm/mach-omap2/usb-ehci.c +=================================================================== +--- git.orig/arch/arm/mach-omap2/usb-ehci.c ++++ git/arch/arm/mach-omap2/usb-ehci.c +@@ -147,9 +147,11 @@ static void setup_ehci_io_mux(void) + + void __init usb_ehci_init(void) + { ++#if 0 /* TODO: Setup Pin IO MUX for EHCI - moved this temporarily to U-boot */ + /* Setup Pin IO MUX for EHCI */ + if (cpu_is_omap34xx()) + setup_ehci_io_mux(); ++#endif + + if (platform_device_register(&ehci_device) < 0) { + printk(KERN_ERR "Unable to register HS-USB (EHCI) device\n"); +Index: git/drivers/usb/host/ehci-omap.c +=================================================================== +--- git.orig/drivers/usb/host/ehci-omap.c ++++ git/drivers/usb/host/ehci-omap.c +@@ -48,16 +48,25 @@ + * to get the PHY state machine in working state + */ + #define EXTERNAL_PHY_RESET ++#ifdef CONFIG_MACH_OMAP3_BEAGLE ++#define EXT_PHY_RESET_GPIO_PORT2 (147) ++#else + #define EXT_PHY_RESET_GPIO_PORT1 (57) + #define EXT_PHY_RESET_GPIO_PORT2 (61) ++#endif + #define EXT_PHY_RESET_DELAY (10) + ++#define PHY_STP_PULLUP_ENABLE (0x10) ++#define PHY_STP_PULLUP_DISABLE (0x90) ++ + /* ISSUE2: + * USBHOST supports External charge pump PHYs only + * Use the VBUS from Port1 to power VBUS of Port2 externally + * So use Port2 as the working ULPI port + */ ++#ifndef CONFIG_MACH_OMAP3_BEAGLE + #define VBUS_INTERNAL_CHARGEPUMP_HACK ++#endif + + #endif /* CONFIG_OMAP_EHCI_PHY_MODE */ + +@@ -225,14 +234,43 @@ static int omap_start_ehc(struct platfor + + #ifdef EXTERNAL_PHY_RESET + /* Refer: ISSUE1 */ ++#ifndef CONFIG_MACH_OMAP3_BEAGLE + gpio_request(EXT_PHY_RESET_GPIO_PORT1, "USB1 PHY reset"); + gpio_direction_output(EXT_PHY_RESET_GPIO_PORT1, 0); ++#endif + gpio_request(EXT_PHY_RESET_GPIO_PORT2, "USB2 PHY reset"); + gpio_direction_output(EXT_PHY_RESET_GPIO_PORT2, 0); ++ gpio_set_value(EXT_PHY_RESET_GPIO_PORT2, 0); + /* Hold the PHY in RESET for enough time till DIR is high */ + udelay(EXT_PHY_RESET_DELAY); + #endif + ++ /* ++ * The PHY register 0x7 - Interface Control register is ++ * configured to disable the integrated STP pull-up resistor ++ * used for interface protection. ++ * ++ * May not need to be here. ++ */ ++ omap_writel((0x7 << EHCI_INSNREG05_ULPI_REGADD_SHIFT) |/* interface reg */ ++ (2 << EHCI_INSNREG05_ULPI_OPSEL_SHIFT) |/* Write */ ++ (1 << EHCI_INSNREG05_ULPI_PORTSEL_SHIFT) |/* Port1 */ ++ (1 << EHCI_INSNREG05_ULPI_CONTROL_SHIFT) |/* Start */ ++ (PHY_STP_PULLUP_DISABLE), ++ EHCI_INSNREG05_ULPI); ++ ++ while (!(omap_readl(EHCI_INSNREG05_ULPI) & (1<<EHCI_INSNREG05_ULPI_CONTROL_SHIFT))); ++ ++ /* Force PHY to HS */ ++ omap_writel((0x4 << EHCI_INSNREG05_ULPI_REGADD_SHIFT) |/* function ctrl */ ++ (2 << EHCI_INSNREG05_ULPI_OPSEL_SHIFT) |/* Write */ ++ (1 << EHCI_INSNREG05_ULPI_PORTSEL_SHIFT) |/* Port1 */ ++ (1 << EHCI_INSNREG05_ULPI_CONTROL_SHIFT) |/* Start */ ++ (0x40), ++ EHCI_INSNREG05_ULPI); ++ ++ while (!(omap_readl(EHCI_INSNREG05_ULPI) & (1<<EHCI_INSNREG05_ULPI_CONTROL_SHIFT))); ++ + /* Configure TLL for 60Mhz clk for ULPI */ + ehci_clocks->usbtll_fck_clk = clk_get(&dev->dev, USBHOST_TLL_FCLK); + if (IS_ERR(ehci_clocks->usbtll_fck_clk)) +@@ -307,7 +345,9 @@ static int omap_start_ehc(struct platfor + * Hold the PHY in RESET for enough time till PHY is settled and ready + */ + udelay(EXT_PHY_RESET_DELAY); ++#ifndef CONFIG_MACH_OMAP3_BEAGLE + gpio_set_value(EXT_PHY_RESET_GPIO_PORT1, 1); ++#endif + gpio_set_value(EXT_PHY_RESET_GPIO_PORT2, 1); + #endif + +@@ -393,7 +433,9 @@ static void omap_stop_ehc(struct platfor + + + #ifdef EXTERNAL_PHY_RESET ++#ifndef CONFIG_MACH_OMAP3_BEAGLE + gpio_free(EXT_PHY_RESET_GPIO_PORT1); ++#endif + gpio_free(EXT_PHY_RESET_GPIO_PORT2); + #endif + diff --git a/recipes/linux/linux-omap-2.6.29/fix-unaligned-access.diff b/recipes/linux/linux-omap-2.6.29/fix-unaligned-access.diff new file mode 100644 index 0000000000..c82090f54a --- /dev/null +++ b/recipes/linux/linux-omap-2.6.29/fix-unaligned-access.diff @@ -0,0 +1,41 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Sat, 28 Mar 2009 12:54:25 +0000 (+0000) +Subject: NSM: Fix unaligned accesses in nsm_init_private() +X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=8f2bd6fdde1ebfef57f65b6cf29b29008c23d297 + +NSM: Fix unaligned accesses in nsm_init_private() + +This fixes unaligned accesses in nsm_init_private() when +creating nlm_reboot keys. + +Signed-off-by: Mans Rullgard <mans@mansr.com> +--- + +diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c +index 5e2c4d5..6d5d4a4 100644 +--- a/fs/lockd/mon.c ++++ b/fs/lockd/mon.c +@@ -16,6 +16,8 @@ + #include <linux/sunrpc/svc.h> + #include <linux/lockd/lockd.h> + ++#include <asm/unaligned.h> ++ + #define NLMDBG_FACILITY NLMDBG_MONITOR + #define NSM_PROGRAM 100024 + #define NSM_VERSION 1 +@@ -274,10 +276,12 @@ static void nsm_init_private(struct nsm_handle *nsm) + { + u64 *p = (u64 *)&nsm->sm_priv.data; + struct timespec ts; ++ s64 ns; + + ktime_get_ts(&ts); +- *p++ = timespec_to_ns(&ts); +- *p = (unsigned long)nsm; ++ ns = timespec_to_ns(&ts); ++ put_unaligned(ns, p); ++ put_unaligned((unsigned long)nsm, p + 1); + } + + static struct nsm_handle *nsm_create_handle(const struct sockaddr *sap, diff --git a/recipes/linux/linux-omap-2.6.29/make-alignment-visible.diff b/recipes/linux/linux-omap-2.6.29/make-alignment-visible.diff new file mode 100644 index 0000000000..9b3958f82a --- /dev/null +++ b/recipes/linux/linux-omap-2.6.29/make-alignment-visible.diff @@ -0,0 +1,26 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Mon, 13 Oct 2008 19:32:16 +0000 (+0100) +Subject: ARM: Add prompt for CONFIG_ALIGNMENT_TRAP +X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=60d60f0ca47fcf4fbb649e45aa64f5a0a4c2f2c8 + +ARM: Add prompt for CONFIG_ALIGNMENT_TRAP + +This adds a prompt text for CONFIG_ALIGNMENT_TRAP, thus making it +visible in make *config. + +Signed-off-by: Mans Rullgard <mans@mansr.com> +--- + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index 61314f6..18d3119 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -971,7 +971,7 @@ config LEDS_CPU + will overrule the CPU usage LED. + + config ALIGNMENT_TRAP +- bool ++ bool "Enable alignment trap" + depends on CPU_CP15_MMU + default y if !ARCH_EBSA110 + help diff --git a/recipes/linux/linux-omap-2.6.29/mmctiming.patch b/recipes/linux/linux-omap-2.6.29/mmctiming.patch new file mode 100644 index 0000000000..ec540ab3cb --- /dev/null +++ b/recipes/linux/linux-omap-2.6.29/mmctiming.patch @@ -0,0 +1,16 @@ +Index: git/drivers/mmc/core/core.c +=================================================================== +--- git.orig/drivers/mmc/core/core.c ++++ git/drivers/mmc/core/core.c +@@ -284,9 +284,9 @@ void mmc_set_data_timeout(struct mmc_dat + * The limit is really 250 ms, but that is + * insufficient for some crappy cards. + */ +- limit_us = 300000; ++ limit_us = 500000; + else +- limit_us = 100000; ++ limit_us = 200000; + + /* + * SDHC cards always use these fixed values. diff --git a/recipes/linux/linux-omap-2.6.29/omap3-pandora/defconfig b/recipes/linux/linux-omap-2.6.29/omap3-pandora/defconfig index 5db83f08da..8ac420cc31 100644 --- a/recipes/linux/linux-omap-2.6.29/omap3-pandora/defconfig +++ b/recipes/linux/linux-omap-2.6.29/omap3-pandora/defconfig @@ -298,7 +298,7 @@ CONFIG_ZONE_DMA_FLAG=0 CONFIG_VIRT_TO_BUS=y CONFIG_UNEVICTABLE_LRU=y CONFIG_LEDS=y -CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALIGNMENT_TRAP=n # # Boot options diff --git a/recipes/linux/linux-omap-2.6.29/omap3evm/defconfig b/recipes/linux/linux-omap-2.6.29/omap3evm/defconfig index da5a8c4b90..da726718c4 100644 --- a/recipes/linux/linux-omap-2.6.29/omap3evm/defconfig +++ b/recipes/linux/linux-omap-2.6.29/omap3evm/defconfig @@ -298,7 +298,7 @@ CONFIG_ZONE_DMA_FLAG=0 CONFIG_VIRT_TO_BUS=y CONFIG_UNEVICTABLE_LRU=y CONFIG_LEDS=y -CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALIGNMENT_TRAP=n # # Boot options diff --git a/recipes/linux/linux-omap-2.6.29/omapzoom/defconfig b/recipes/linux/linux-omap-2.6.29/omapzoom/defconfig index d2d2ee59a4..aa11eb04fc 100644 --- a/recipes/linux/linux-omap-2.6.29/omapzoom/defconfig +++ b/recipes/linux/linux-omap-2.6.29/omapzoom/defconfig @@ -291,7 +291,7 @@ CONFIG_ZONE_DMA_FLAG=0 CONFIG_VIRT_TO_BUS=y CONFIG_UNEVICTABLE_LRU=y # CONFIG_LEDS is not set -CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALIGNMENT_TRAP=n # # Boot options |
