Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

Pull ARM SoC low-priority fixes from Olof Johansson:
"This branch contains a handful of fixes for various platforms that
weren't serious enough to be included in late 3.11-rc releases. Most
of them are for minor cleanups and cosmetic fixes.

There's also a bit of code removal here, one board file removal for
clps711x, and removal of some legacy device creation on OMAP2+"

* tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (25 commits)
ARM: OMAP2: use 'int' instead of 'unsigned' for variable 'gpmc_irq_start'
ARM: OMAP2: remove useless variable 'ret'
ARM: OMAP: dma: fix error return code in omap_system_dma_probe()
ARM: OMAP2+: fix wrong address when loading PRM_FRAC_INCREMENTOR_DENUMERATOR_RELOAD
ARM: OMAP2+: am33xx-restart: trigger warm reset on omap2+ boards
ARM: OMAP2: Use a consistent AM33XX SoC option description
ARM: OMAP2+: Remove legacy device creation for McPDM and DMIC
ARM: clps711x: edb7211: Remove extra iotable_init() call
ARM: clps711x: autcpu12: Remove incorrect config checking
ARM: clps711x: Drop fortunet board support
ARM: clps711x: Remove the special name for the syscon driver
ARM: dts: Fix memory node in skeleton64.dtsi
ARM: Keystone: Convert device tree file to use IRQ defines
ARM: keystone: use #include to include skeleton.dtsi
ARM: keystone: Drop the un-necessary dsb from keystone_cpu_smc()
ARM: Keystone: No need to preserve r12 across smc call
ARM: keystone: remove redundant smp_init_cpus definition
ARM: keystone: drop useless HAVE_SCHED_CLOCK
ARM: dove: fix missing __init section of dove_mpp_gpio_mode
ARM: shmobile: armadillo800eva-reference: fix compiler warning
...

+83 -190
+39 -4
arch/arm/boot/compressed/head-shmobile.S
··· 55 55 __continue: 56 56 #endif /* CONFIG_ZBOOT_ROM_MMC || CONFIG_ZBOOT_ROM_SH_MOBILE_SDHI */ 57 57 58 - /* Set board ID necessary for boot */ 59 - ldr r7, 1f @ Set machine type register 60 - mov r8, #0 @ pass null pointer as atag 58 + adr r0, dtb_info 59 + ldmia r0, {r1, r3, r4, r5, r7} 60 + 61 + sub r0, r0, r1 @ calculate the delta offset 62 + add r5, r5, r0 @ _edata 63 + 64 + ldr lr, [r5, #0] @ check if valid DTB is present 65 + cmp lr, r3 66 + bne 0f 67 + 68 + add r9, r7, #31 @ rounded up to a multiple 69 + bic r9, r9, #31 @ ... of 32 bytes 70 + 71 + add r6, r9, r5 @ copy from _edata 72 + add r9, r9, r4 @ to MEMORY_START 73 + 74 + 1: ldmdb r6!, {r0 - r3, r10 - r12, lr} 75 + cmp r6, r5 76 + stmdb r9!, {r0 - r3, r10 - r12, lr} 77 + bhi 1b 78 + 79 + /* Success: Zero board ID, pointer to start of memory for atag/dtb */ 80 + mov r7, #0 81 + mov r8, r4 61 82 b 2f 62 83 63 - 1 : .long MACH_TYPE 84 + .align 2 85 + dtb_info: 86 + .word dtb_info 87 + #ifndef __ARMEB__ 88 + .word 0xedfe0dd0 @ sig is 0xd00dfeed big endian 89 + #else 90 + .word 0xd00dfeed 91 + #endif 92 + .word MEMORY_START 93 + .word _edata 94 + .word 0x4000 @ maximum DTB size 95 + 0: 96 + /* Failure: Zero board ID, NULL atag/dtb */ 97 + mov r7, #0 98 + mov r8, #0 @ pass null pointer as atag 64 99 2 : 65 100 66 101 #endif /* CONFIG_ZBOOT_ROM */
+18 -11
arch/arm/boot/dts/keystone.dts
··· 7 7 */ 8 8 9 9 /dts-v1/; 10 - /include/ "skeleton.dtsi" 10 + #include <dt-bindings/interrupt-controller/arm-gic.h> 11 + 12 + #include "skeleton.dtsi" 11 13 12 14 / { 13 15 model = "Texas Instruments Keystone 2 SoC"; ··· 69 67 70 68 timer { 71 69 compatible = "arm,armv7-timer"; 72 - interrupts = <1 13 0xf08>, 73 - <1 14 0xf08>, 74 - <1 11 0xf08>, 75 - <1 10 0x308>; 70 + interrupts = 71 + <GIC_PPI 13 72 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 73 + <GIC_PPI 14 74 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 75 + <GIC_PPI 11 76 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 77 + <GIC_PPI 10 78 + (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 76 79 }; 77 80 78 81 pmu { 79 82 compatible = "arm,cortex-a15-pmu"; 80 - interrupts = <0 20 0xf01>, 81 - <0 21 0xf01>, 82 - <0 22 0xf01>, 83 - <0 23 0xf01>; 83 + interrupts = <GIC_SPI 20 IRQ_TYPE_EDGE_RISING>, 84 + <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>, 85 + <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>, 86 + <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>; 84 87 }; 85 88 86 89 soc { ··· 107 100 reg-io-width = <4>; 108 101 reg = <0x02530c00 0x100>; 109 102 clock-frequency = <133120000>; 110 - interrupts = <0 277 0xf01>; 103 + interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>; 111 104 }; 112 105 113 106 uart1: serial@02531000 { ··· 117 110 reg-io-width = <4>; 118 111 reg = <0x02531000 0x100>; 119 112 clock-frequency = <133120000>; 120 - interrupts = <0 280 0xf01>; 113 + interrupts = <GIC_SPI 280 IRQ_TYPE_EDGE_RISING>; 121 114 }; 122 115 123 116 };
+1 -1
arch/arm/boot/dts/skeleton64.dtsi
··· 9 9 #size-cells = <2>; 10 10 chosen { }; 11 11 aliases { }; 12 - memory { device_type = "memory"; reg = <0 0>; }; 12 + memory { device_type = "memory"; reg = <0 0 0 0>; }; 13 13 };
-3
arch/arm/mach-clps711x/Kconfig
··· 33 33 Say Y here if you intend to run this kernel on the ARM Prospector 34 34 720T. 35 35 36 - config ARCH_FORTUNET 37 - bool "FORTUNET" 38 - 39 36 config EP72XX_ROM_BOOT 40 37 bool "EP721x/EP731x ROM boot" 41 38 help
-1
arch/arm/mach-clps711x/Makefile
··· 10 10 obj-$(CONFIG_ARCH_CDB89712) += board-cdb89712.o 11 11 obj-$(CONFIG_ARCH_CLEP7312) += board-clep7312.o 12 12 obj-$(CONFIG_ARCH_EDB7211) += board-edb7211.o 13 - obj-$(CONFIG_ARCH_FORTUNET) += board-fortunet.o 14 13 obj-$(CONFIG_ARCH_P720T) += board-p720t.o
+1 -5
arch/arm/mach-clps711x/board-autcpu12.c
··· 259 259 static void __init autcpu12_init_late(void) 260 260 { 261 261 gpio_request_array(autcpu12_gpios, ARRAY_SIZE(autcpu12_gpios)); 262 - 263 - if (IS_ENABLED(MTD_NAND_GPIO) && IS_ENABLED(GPIO_GENERIC_PLATFORM)) { 264 - /* We are need both drivers to handle NAND */ 265 - platform_device_register(&autcpu12_nand_pdev); 266 - } 262 + platform_device_register(&autcpu12_nand_pdev); 267 263 } 268 264 269 265 MACHINE_START(AUTCPU12, "autronix autcpu12")
+1 -16
arch/arm/mach-clps711x/board-edb7211.c
··· 126 126 { EDB7211_LCDBL, GPIOF_OUT_INIT_LOW, "LCD BACKLIGHT" }, 127 127 }; 128 128 129 - static struct map_desc edb7211_io_desc[] __initdata = { 130 - { /* Memory-mapped extra keyboard row */ 131 - .virtual = IO_ADDRESS(EDB7211_EXTKBD_BASE), 132 - .pfn = __phys_to_pfn(EDB7211_EXTKBD_BASE), 133 - .length = SZ_1M, 134 - .type = MT_DEVICE, 135 - }, 136 - }; 137 - 138 - void __init edb7211_map_io(void) 139 - { 140 - clps711x_map_io(); 141 - iotable_init(edb7211_io_desc, ARRAY_SIZE(edb7211_io_desc)); 142 - } 143 - 144 129 /* Reserve screen memory region at the start of main system memory. */ 145 130 static void __init edb7211_reserve(void) 146 131 { ··· 180 195 .nr_irqs = CLPS711X_NR_IRQS, 181 196 .fixup = fixup_edb7211, 182 197 .reserve = edb7211_reserve, 183 - .map_io = edb7211_map_io, 198 + .map_io = clps711x_map_io, 184 199 .init_early = clps711x_init_early, 185 200 .init_irq = clps711x_init_irq, 186 201 .init_time = clps711x_timer_init,
-85
arch/arm/mach-clps711x/board-fortunet.c
··· 1 - /* 2 - * linux/arch/arm/mach-clps711x/fortunet.c 3 - * 4 - * Derived from linux/arch/arm/mach-integrator/arch.c 5 - * 6 - * Copyright (C) 2000 Deep Blue Solutions Ltd 7 - * 8 - * This program is free software; you can redistribute it and/or modify 9 - * it under the terms of the GNU General Public License as published by 10 - * the Free Software Foundation; either version 2 of the License, or 11 - * (at your option) any later version. 12 - * 13 - * This program is distributed in the hope that it will be useful, 14 - * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 - * GNU General Public License for more details. 17 - * 18 - * You should have received a copy of the GNU General Public License 19 - * along with this program; if not, write to the Free Software 20 - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 - */ 22 - #include <linux/types.h> 23 - #include <linux/init.h> 24 - #include <linux/initrd.h> 25 - 26 - #include <mach/hardware.h> 27 - #include <asm/setup.h> 28 - #include <asm/mach-types.h> 29 - 30 - #include <asm/mach/arch.h> 31 - 32 - #include <asm/memory.h> 33 - 34 - #include "common.h" 35 - 36 - struct meminfo memmap = { 37 - .nr_banks = 1, 38 - .bank = { 39 - { 40 - .start = 0xC0000000, 41 - .size = 0x01000000, 42 - }, 43 - }, 44 - }; 45 - 46 - typedef struct tag_IMAGE_PARAMS 47 - { 48 - int ramdisk_ok; 49 - int ramdisk_address; 50 - int ramdisk_size; 51 - int ram_size; 52 - int extra_param_type; 53 - int extra_param_ptr; 54 - int command_line; 55 - } IMAGE_PARAMS; 56 - 57 - #define IMAGE_PARAMS_PHYS 0xC01F0000 58 - 59 - static void __init 60 - fortunet_fixup(struct tag *tags, char **cmdline, struct meminfo *mi) 61 - { 62 - IMAGE_PARAMS *ip = phys_to_virt(IMAGE_PARAMS_PHYS); 63 - *cmdline = phys_to_virt(ip->command_line); 64 - #ifdef CONFIG_BLK_DEV_INITRD 65 - if(ip->ramdisk_ok) 66 - { 67 - initrd_start = __phys_to_virt(ip->ramdisk_address); 68 - initrd_end = initrd_start + ip->ramdisk_size; 69 - } 70 - #endif 71 - memmap.bank[0].size = ip->ram_size; 72 - *mi = memmap; 73 - } 74 - 75 - MACHINE_START(FORTUNET, "ARM-FortuNet") 76 - /* Maintainer: FortuNet Inc. */ 77 - .nr_irqs = CLPS711X_NR_IRQS, 78 - .fixup = fortunet_fixup, 79 - .map_io = clps711x_map_io, 80 - .init_early = clps711x_init_early, 81 - .init_irq = clps711x_init_irq, 82 - .init_time = clps711x_timer_init, 83 - .handle_irq = clps711x_handle_irq, 84 - .restart = clps711x_restart, 85 - MACHINE_END
+1 -1
arch/arm/mach-clps711x/devices.c
··· 57 57 unsigned i; 58 58 59 59 for (i = 0; i < ARRAY_SIZE(clps711x_syscon_res); i++) 60 - platform_device_register_simple("clps711x-syscon", i + 1, 60 + platform_device_register_simple("syscon", i + 1, 61 61 &clps711x_syscon_res[i], 1); 62 62 } 63 63
+1 -1
arch/arm/mach-dove/mpp.c
··· 47 47 48 48 /* Enable gpio for a range of pins. mode should be a combination of 49 49 GPIO_OUTPUT_OK | GPIO_INPUT_OK */ 50 - static void dove_mpp_gpio_mode(int start, int end, int gpio_mode) 50 + static void __init dove_mpp_gpio_mode(int start, int end, int gpio_mode) 51 51 { 52 52 int i; 53 53
-1
arch/arm/mach-keystone/Kconfig
··· 7 7 select HAVE_SMP 8 8 select CLKSRC_MMIO 9 9 select GENERIC_CLOCKEVENTS 10 - select HAVE_SCHED_CLOCK 11 10 select ARCH_WANT_OPTIONAL_GPIOLIB 12 11 select ARM_ERRATA_798181 if SMP 13 12 help
-1
arch/arm/mach-keystone/platsmp.c
··· 38 38 } 39 39 40 40 struct smp_operations keystone_smp_ops __initdata = { 41 - .smp_init_cpus = arm_dt_init_cpu_maps, 42 41 .smp_boot_secondary = keystone_smp_boot_secondary, 43 42 };
+2 -3
arch/arm/mach-keystone/smc.S
··· 22 22 * Return: Non zero value on failure 23 23 */ 24 24 ENTRY(keystone_cpu_smc) 25 - stmfd sp!, {r4-r12, lr} 25 + stmfd sp!, {r4-r11, lr} 26 26 smc #0 27 - dsb 28 - ldmfd sp!, {r4-r12, pc} 27 + ldmfd sp!, {r4-r11, pc} 29 28 ENDPROC(keystone_cpu_smc)
+1 -1
arch/arm/mach-omap2/Kconfig
··· 65 65 select ARM_ERRATA_798181 if SMP 66 66 67 67 config SOC_AM33XX 68 - bool "AM33XX support" 68 + bool "TI AM33XX" 69 69 depends on ARCH_MULTI_V7 70 70 select ARCH_OMAP2PLUS 71 71 select ARM_CPU_SUSPEND if PM
+2 -2
arch/arm/mach-omap2/am33xx-restart.c
··· 24 24 { 25 25 /* TODO: Handle mode and cmd if necessary */ 26 26 27 - am33xx_prm_rmw_reg_bits(AM33XX_GLOBAL_WARM_SW_RST_MASK, 28 - AM33XX_GLOBAL_WARM_SW_RST_MASK, 27 + am33xx_prm_rmw_reg_bits(AM33XX_RST_GLOBAL_WARM_SW_MASK, 28 + AM33XX_RST_GLOBAL_WARM_SW_MASK, 29 29 AM33XX_PRM_DEVICE_MOD, 30 30 AM33XX_PRM_RSTCTRL_OFFSET); 31 31
-2
arch/arm/mach-omap2/board-am3517crane.c
··· 110 110 111 111 static void __init am3517_crane_init(void) 112 112 { 113 - int ret; 114 - 115 113 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); 116 114 omap_serial_init(); 117 115 omap_sdrc_init(NULL, NULL);
-40
arch/arm/mach-omap2/devices.c
··· 327 327 static inline void omap_init_audio(void) {} 328 328 #endif 329 329 330 - #if defined(CONFIG_SND_OMAP_SOC_MCPDM) || \ 331 - defined(CONFIG_SND_OMAP_SOC_MCPDM_MODULE) 332 - 333 - static void __init omap_init_mcpdm(void) 334 - { 335 - struct omap_hwmod *oh; 336 - struct platform_device *pdev; 337 - 338 - oh = omap_hwmod_lookup("mcpdm"); 339 - if (!oh) 340 - return; 341 - 342 - pdev = omap_device_build("omap-mcpdm", -1, oh, NULL, 0); 343 - WARN(IS_ERR(pdev), "Can't build omap_device for omap-mcpdm.\n"); 344 - } 345 - #else 346 - static inline void omap_init_mcpdm(void) {} 347 - #endif 348 - 349 - #if defined(CONFIG_SND_OMAP_SOC_DMIC) || \ 350 - defined(CONFIG_SND_OMAP_SOC_DMIC_MODULE) 351 - 352 - static void __init omap_init_dmic(void) 353 - { 354 - struct omap_hwmod *oh; 355 - struct platform_device *pdev; 356 - 357 - oh = omap_hwmod_lookup("dmic"); 358 - if (!oh) 359 - return; 360 - 361 - pdev = omap_device_build("omap-dmic", -1, oh, NULL, 0); 362 - WARN(IS_ERR(pdev), "Can't build omap_device for omap-dmic.\n"); 363 - } 364 - #else 365 - static inline void omap_init_dmic(void) {} 366 - #endif 367 - 368 330 #if defined(CONFIG_SND_OMAP_SOC_OMAP_HDMI) || \ 369 331 defined(CONFIG_SND_OMAP_SOC_OMAP_HDMI_MODULE) 370 332 ··· 527 565 omap_init_mbox(); 528 566 /* If dtb is there, the devices will be created dynamically */ 529 567 if (!of_have_populated_dt()) { 530 - omap_init_dmic(); 531 - omap_init_mcpdm(); 532 568 omap_init_mcspi(); 533 569 omap_init_sham(); 534 570 omap_init_aes();
+1 -1
arch/arm/mach-omap2/gpmc.c
··· 149 149 150 150 static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ]; 151 151 static struct irq_chip gpmc_irq_chip; 152 - static unsigned gpmc_irq_start; 152 + static int gpmc_irq_start; 153 153 154 154 static struct resource gpmc_mem_root; 155 155 static struct resource gpmc_cs_mem[GPMC_CS_NUM];
+1 -1
arch/arm/mach-omap2/timer.c
··· 537 537 reg |= num; 538 538 __raw_writel(reg, base + INCREMENTER_NUMERATOR_OFFSET); 539 539 540 - reg = __raw_readl(base + INCREMENTER_NUMERATOR_OFFSET) & 540 + reg = __raw_readl(base + INCREMENTER_DENUMERATOR_RELOAD_OFFSET) & 541 541 NUMERATOR_DENUMERATOR_MASK; 542 542 reg |= den; 543 543 __raw_writel(reg, base + INCREMENTER_DENUMERATOR_RELOAD_OFFSET);
+2 -2
arch/arm/mach-shmobile/board-armadillo800eva-reference.c
··· 190 190 } 191 191 192 192 #define RESCNT2 IOMEM(0xe6188020) 193 - static void eva_restart(char mode, const char *cmd) 193 + static void eva_restart(enum reboot_mode mode, const char *cmd) 194 194 { 195 195 /* Do soft power on reset */ 196 - writel((1 << 31), RESCNT2); 196 + writel(1 << 31, RESCNT2); 197 197 } 198 198 199 199 static const char *eva_boards_compat_dt[] __initdata = {
+1 -1
arch/arm/mach-shmobile/clock-r8a7740.c
··· 596 596 CLKDEV_DEV_ID("e6bd0000.mmcif", &mstp_clks[MSTP312]), 597 597 CLKDEV_DEV_ID("r8a7740-gether", &mstp_clks[MSTP309]), 598 598 CLKDEV_DEV_ID("e9a00000.sh-eth", &mstp_clks[MSTP309]), 599 - CLKDEV_DEV_ID("renesas_tpu_pwm", &mstp_clks[MSTP304]), 599 + CLKDEV_DEV_ID("renesas-tpu-pwm", &mstp_clks[MSTP304]), 600 600 601 601 CLKDEV_DEV_ID("sh_mobile_sdhi.2", &mstp_clks[MSTP415]), 602 602 CLKDEV_DEV_ID("e6870000.sdhi", &mstp_clks[MSTP415]),
+3 -1
arch/arm/mach-shmobile/headsmp-scu.S
··· 37 37 lsl r1, r1, #3 @ we will shift by cpu_id * 8 bits 38 38 ldr r2, [r0, #8] @ SCU Power Status Register 39 39 mov r3, #3 40 - bic r2, r2, r3, lsl r1 @ Clear bits of our CPU (Run Mode) 40 + lsl r3, r3, r1 41 + bic r2, r2, r3 @ Clear bits of our CPU (Run Mode) 41 42 str r2, [r0, #8] @ write back 42 43 43 44 b shmobile_invalidate_start 44 45 ENDPROC(shmobile_boot_scu) 45 46 46 47 .text 48 + .align 2 47 49 .globl shmobile_scu_base 48 50 shmobile_scu_base: 49 51 .space 4
+5 -1
arch/arm/mach-shmobile/headsmp.S
··· 24 24 * This will be mapped at address 0 by SBAR register. 25 25 * We need _long_ jump to the physical address. 26 26 */ 27 + .arm 27 28 .align 12 28 29 ENTRY(shmobile_boot_vector) 29 30 ldr r0, 2f 30 - ldr pc, 1f 31 + ldr r1, 1f 32 + bx r1 33 + 31 34 ENDPROC(shmobile_boot_vector) 32 35 36 + .align 2 33 37 .globl shmobile_boot_fn 34 38 shmobile_boot_fn: 35 39 1: .space 4
-2
arch/arm/mach-shmobile/include/mach/zboot.h
··· 1 1 #ifndef ZBOOT_H 2 2 #define ZBOOT_H 3 3 4 - #include <asm/mach-types.h> 5 4 #include <mach/zboot_macros.h> 6 5 7 6 /************************************************** ··· 10 11 **************************************************/ 11 12 12 13 #ifdef CONFIG_MACH_MACKEREL 13 - #define MACH_TYPE MACH_TYPE_MACKEREL 14 14 #define MEMORY_START 0x40000000 15 15 #include "mach/head-mackerel.txt" 16 16 #else
+2
arch/arm/mach-shmobile/sleep-sh7372.S
··· 41 41 sh7372_resume_core_standby_sysc: 42 42 ldr pc, 1f 43 43 44 + .align 2 44 45 .globl sh7372_cpu_resume 45 46 sh7372_cpu_resume: 46 47 1: .space 4 ··· 97 96 1: 98 97 b 1b 99 98 99 + .align 2 100 100 kernel_flush: 101 101 .word v7_flush_dcache_all 102 102 #endif
+1
arch/arm/plat-omap/dma.c
··· 2083 2083 dma_irq = platform_get_irq_byname(pdev, irq_name); 2084 2084 if (dma_irq < 0) { 2085 2085 dev_err(&pdev->dev, "failed: request IRQ %d", dma_irq); 2086 + ret = dma_irq; 2086 2087 goto exit_dma_lch_fail; 2087 2088 } 2088 2089 ret = setup_irq(dma_irq, &omap24xx_dma_irq);
-3
drivers/mfd/syscon.c
··· 159 159 160 160 static const struct platform_device_id syscon_ids[] = { 161 161 { "syscon", }, 162 - #ifdef CONFIG_ARCH_CLPS711X 163 - { "clps711x-syscon", }, 164 - #endif 165 162 { } 166 163 }; 167 164