From d33625704f95c3ea191be1810b7c940e0fe1c5ea Mon Sep 17 00:00:00 2001 From: Tony Lindgren Date: Mon, 11 Feb 2013 14:46:00 -0800 Subject: [PATCH] --- yaml --- r: 361158 b: refs/heads/master c: 0adcbaf78f6267baf4eecc201107d8f8ff3b200c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/arm/boot/Makefile | 2 +- trunk/arch/arm/boot/dts/bcm2835.dtsi | 2 +- trunk/arch/arm/boot/dts/imx53-mba53.dts | 3 ++- trunk/arch/arm/boot/dts/tegra20.dtsi | 1 - trunk/arch/arm/boot/dts/tegra30.dtsi | 1 - trunk/arch/arm/configs/mxs_defconfig | 1 - trunk/arch/arm/mach-imx/headsmp.S | 18 +++++++++--------- trunk/arch/arm/mach-imx/pm-imx6q.c | 15 +++++++++++++++ trunk/arch/arm/mach-mxs/icoll.c | 2 +- trunk/arch/arm/mach-mxs/mm.c | 1 - trunk/arch/arm/mach-mxs/ocotp.c | 1 - trunk/arch/arm/mach-omap1/common.h | 2 ++ trunk/drivers/clk/tegra/clk-tegra20.c | 1 + trunk/drivers/clk/tegra/clk-tegra30.c | 1 + trunk/drivers/irqchip/irq-gic.c | 2 +- trunk/drivers/video/omap/lcd_ams_delta.c | 1 + trunk/drivers/video/omap/lcd_osk.c | 3 +++ 18 files changed, 39 insertions(+), 20 deletions(-) diff --git a/[refs] b/[refs] index 3b8568d8f86a..9f0c68d7e4c1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4246a9c9682fcced5e5dd997614a3d4f606efe7a +refs/heads/master: 0adcbaf78f6267baf4eecc201107d8f8ff3b200c diff --git a/trunk/arch/arm/boot/Makefile b/trunk/arch/arm/boot/Makefile index 84aa2caf07ed..71768b8a1ab9 100644 --- a/trunk/arch/arm/boot/Makefile +++ b/trunk/arch/arm/boot/Makefile @@ -115,4 +115,4 @@ i: $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \ $(obj)/Image System.map "$(INSTALL_PATH)" -subdir- := bootp compressed dts +subdir- := bootp compressed diff --git a/trunk/arch/arm/boot/dts/bcm2835.dtsi b/trunk/arch/arm/boot/dts/bcm2835.dtsi index 7e0481e2441a..4bf2a8774aa7 100644 --- a/trunk/arch/arm/boot/dts/bcm2835.dtsi +++ b/trunk/arch/arm/boot/dts/bcm2835.dtsi @@ -105,7 +105,7 @@ compatible = "fixed-clock"; reg = <1>; #clock-cells = <0>; - clock-frequency = <250000000>; + clock-frequency = <150000000>; }; }; }; diff --git a/trunk/arch/arm/boot/dts/imx53-mba53.dts b/trunk/arch/arm/boot/dts/imx53-mba53.dts index 468c0a1d48d9..e54fffd48369 100644 --- a/trunk/arch/arm/boot/dts/imx53-mba53.dts +++ b/trunk/arch/arm/boot/dts/imx53-mba53.dts @@ -42,9 +42,10 @@ fsl,pins = <689 0x10000 /* DISP1_DRDY */ 482 0x10000 /* DISP1_HSYNC */ 489 0x10000 /* DISP1_VSYNC */ + 684 0x10000 /* DISP1_DAT_0 */ 515 0x10000 /* DISP1_DAT_22 */ 523 0x10000 /* DISP1_DAT_23 */ - 545 0x10000 /* DISP1_DAT_21 */ + 543 0x10000 /* DISP1_DAT_21 */ 553 0x10000 /* DISP1_DAT_20 */ 558 0x10000 /* DISP1_DAT_19 */ 564 0x10000 /* DISP1_DAT_18 */ diff --git a/trunk/arch/arm/boot/dts/tegra20.dtsi b/trunk/arch/arm/boot/dts/tegra20.dtsi index 48d00a099ce3..9a428931d042 100644 --- a/trunk/arch/arm/boot/dts/tegra20.dtsi +++ b/trunk/arch/arm/boot/dts/tegra20.dtsi @@ -118,7 +118,6 @@ compatible = "arm,cortex-a9-twd-timer"; reg = <0x50040600 0x20>; interrupts = <1 13 0x304>; - clocks = <&tegra_car 132>; }; intc: interrupt-controller { diff --git a/trunk/arch/arm/boot/dts/tegra30.dtsi b/trunk/arch/arm/boot/dts/tegra30.dtsi index 9d87a3ffe998..767803e1fd55 100644 --- a/trunk/arch/arm/boot/dts/tegra30.dtsi +++ b/trunk/arch/arm/boot/dts/tegra30.dtsi @@ -119,7 +119,6 @@ compatible = "arm,cortex-a9-twd-timer"; reg = <0x50040600 0x20>; interrupts = <1 13 0xf04>; - clocks = <&tegra_car 214>; }; intc: interrupt-controller { diff --git a/trunk/arch/arm/configs/mxs_defconfig b/trunk/arch/arm/configs/mxs_defconfig index 6a99e30f81d2..fbbc5bb022d5 100644 --- a/trunk/arch/arm/configs/mxs_defconfig +++ b/trunk/arch/arm/configs/mxs_defconfig @@ -116,7 +116,6 @@ CONFIG_SND_SOC=y CONFIG_SND_MXS_SOC=y CONFIG_SND_SOC_MXS_SGTL5000=y CONFIG_USB=y -CONFIG_USB_EHCI_HCD=y CONFIG_USB_CHIPIDEA=y CONFIG_USB_CHIPIDEA_HOST=y CONFIG_USB_STORAGE=y diff --git a/trunk/arch/arm/mach-imx/headsmp.S b/trunk/arch/arm/mach-imx/headsmp.S index a58c8b0527cc..921fc1555854 100644 --- a/trunk/arch/arm/mach-imx/headsmp.S +++ b/trunk/arch/arm/mach-imx/headsmp.S @@ -26,16 +26,16 @@ ENDPROC(v7_secondary_startup) #ifdef CONFIG_PM /* - * The following code must assume it is running from physical address - * where absolute virtual addresses to the data section have to be - * turned into relative ones. + * The following code is located into the .data section. This is to + * allow phys_l2x0_saved_regs to be accessed with a relative load + * as we are running on physical address here. */ + .data + .align #ifdef CONFIG_CACHE_L2X0 .macro pl310_resume - adr r0, l2x0_saved_regs_offset - ldr r2, [r0] - add r2, r2, r0 + ldr r2, phys_l2x0_saved_regs ldr r0, [r2, #L2X0_R_PHY_BASE] @ get physical base of l2x0 ldr r1, [r2, #L2X0_R_AUX_CTRL] @ get aux_ctrl value str r1, [r0, #L2X0_AUX_CTRL] @ restore aux_ctrl @@ -43,9 +43,9 @@ ENDPROC(v7_secondary_startup) str r1, [r0, #L2X0_CTRL] @ re-enable L2 .endm -l2x0_saved_regs_offset: - .word l2x0_saved_regs - . - + .globl phys_l2x0_saved_regs +phys_l2x0_saved_regs: + .long 0 #else .macro pl310_resume .endm diff --git a/trunk/arch/arm/mach-imx/pm-imx6q.c b/trunk/arch/arm/mach-imx/pm-imx6q.c index 5faba7a3c95f..ee42d20cba19 100644 --- a/trunk/arch/arm/mach-imx/pm-imx6q.c +++ b/trunk/arch/arm/mach-imx/pm-imx6q.c @@ -22,6 +22,8 @@ #include "common.h" #include "hardware.h" +extern unsigned long phys_l2x0_saved_regs; + static int imx6q_suspend_finish(unsigned long val) { cpu_do_idle(); @@ -55,5 +57,18 @@ static const struct platform_suspend_ops imx6q_pm_ops = { void __init imx6q_pm_init(void) { + /* + * The l2x0 core code provides an infrastucture to save and restore + * l2x0 registers across suspend/resume cycle. But because imx6q + * retains L2 content during suspend and needs to resume L2 before + * MMU is enabled, it can only utilize register saving support and + * have to take care of restoring on its own. So we save physical + * address of the data structure used by l2x0 core to save registers, + * and later restore the necessary ones in imx6q resume entry. + */ +#ifdef CONFIG_CACHE_L2X0 + phys_l2x0_saved_regs = __pa(&l2x0_saved_regs); +#endif + suspend_set_ops(&imx6q_pm_ops); } diff --git a/trunk/arch/arm/mach-mxs/icoll.c b/trunk/arch/arm/mach-mxs/icoll.c index e26eeba46598..8fb23af154b3 100644 --- a/trunk/arch/arm/mach-mxs/icoll.c +++ b/trunk/arch/arm/mach-mxs/icoll.c @@ -100,7 +100,7 @@ static struct irq_domain_ops icoll_irq_domain_ops = { .xlate = irq_domain_xlate_onecell, }; -static void __init icoll_of_init(struct device_node *np, +void __init icoll_of_init(struct device_node *np, struct device_node *interrupt_parent) { /* diff --git a/trunk/arch/arm/mach-mxs/mm.c b/trunk/arch/arm/mach-mxs/mm.c index e63b7d87acbd..a4294aa9f301 100644 --- a/trunk/arch/arm/mach-mxs/mm.c +++ b/trunk/arch/arm/mach-mxs/mm.c @@ -18,7 +18,6 @@ #include #include -#include /* * Define the MX23 memory map. diff --git a/trunk/arch/arm/mach-mxs/ocotp.c b/trunk/arch/arm/mach-mxs/ocotp.c index 1dff46703753..54add60f94c9 100644 --- a/trunk/arch/arm/mach-mxs/ocotp.c +++ b/trunk/arch/arm/mach-mxs/ocotp.c @@ -19,7 +19,6 @@ #include /* for cpu_relax() */ #include -#include #define OCOTP_WORD_OFFSET 0x20 #define OCOTP_WORD_COUNT 0x20 diff --git a/trunk/arch/arm/mach-omap1/common.h b/trunk/arch/arm/mach-omap1/common.h index fb18831e88aa..14f7e9920479 100644 --- a/trunk/arch/arm/mach-omap1/common.h +++ b/trunk/arch/arm/mach-omap1/common.h @@ -31,6 +31,8 @@ #include +#include + #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) void omap7xx_map_io(void); #else diff --git a/trunk/drivers/clk/tegra/clk-tegra20.c b/trunk/drivers/clk/tegra/clk-tegra20.c index 1e2de7305362..143ce1f899ad 100644 --- a/trunk/drivers/clk/tegra/clk-tegra20.c +++ b/trunk/drivers/clk/tegra/clk-tegra20.c @@ -1292,6 +1292,7 @@ static struct tegra_clk_duplicate tegra_clk_duplicates[] = { TEGRA_CLK_DUPLICATE(usbd, "tegra-ehci.0", NULL), TEGRA_CLK_DUPLICATE(usbd, "tegra-otg", NULL), TEGRA_CLK_DUPLICATE(cclk, NULL, "cpu"), + TEGRA_CLK_DUPLICATE(twd, "smp_twd", NULL), TEGRA_CLK_DUPLICATE(clk_max, NULL, NULL), /* Must be the last entry */ }; diff --git a/trunk/drivers/clk/tegra/clk-tegra30.c b/trunk/drivers/clk/tegra/clk-tegra30.c index ba6f51bc9f3b..32c61cb6d0bb 100644 --- a/trunk/drivers/clk/tegra/clk-tegra30.c +++ b/trunk/drivers/clk/tegra/clk-tegra30.c @@ -1931,6 +1931,7 @@ static struct tegra_clk_duplicate tegra_clk_duplicates[] = { TEGRA_CLK_DUPLICATE(cml1, "tegra_sata_cml", NULL), TEGRA_CLK_DUPLICATE(cml0, "tegra_pcie", "cml"), TEGRA_CLK_DUPLICATE(pciex, "tegra_pcie", "pciex"), + TEGRA_CLK_DUPLICATE(twd, "smp_twd", NULL), TEGRA_CLK_DUPLICATE(vcp, "nvavp", "vcp"), TEGRA_CLK_DUPLICATE(clk_max, NULL, NULL), /* MUST be the last entry */ }; diff --git a/trunk/drivers/irqchip/irq-gic.c b/trunk/drivers/irqchip/irq-gic.c index a32e0d5aa45f..644d72468423 100644 --- a/trunk/drivers/irqchip/irq-gic.c +++ b/trunk/drivers/irqchip/irq-gic.c @@ -648,7 +648,7 @@ void gic_raise_softirq(const struct cpumask *mask, unsigned int irq) /* Convert our logical CPU mask into a physical one. */ for_each_cpu(cpu, mask) - map |= gic_cpu_map[cpu]; + map |= 1 << cpu_logical_map(cpu); /* * Ensure that stores to Normal memory are visible to the diff --git a/trunk/drivers/video/omap/lcd_ams_delta.c b/trunk/drivers/video/omap/lcd_ams_delta.c index ed4cad87fbcd..4a5f2cd3d3bf 100644 --- a/trunk/drivers/video/omap/lcd_ams_delta.c +++ b/trunk/drivers/video/omap/lcd_ams_delta.c @@ -27,6 +27,7 @@ #include #include +#include #include #include "omapfb.h" diff --git a/trunk/drivers/video/omap/lcd_osk.c b/trunk/drivers/video/omap/lcd_osk.c index 3aa62da89195..7fbe04bce0ed 100644 --- a/trunk/drivers/video/omap/lcd_osk.c +++ b/trunk/drivers/video/omap/lcd_osk.c @@ -24,7 +24,10 @@ #include #include + +#include #include + #include "omapfb.h" static int osk_panel_init(struct lcd_panel *panel, struct omapfb_device *fbdev)