Skip to content

Commit 3782010

Browse files
committed
Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM soc fixes from Olof Johansson: "A set of fixes and some minor cleanups for -rc2: - A series from Arnd that fixes warnings in drivers and other code included by ARM defconfigs. Most have been acked by corresponding maintainers (and seem quite hard to argue not picking up anyway in the few exception cases). - A few misc patches from the list for integrator/vt8500/i.MX - A batch of fixes to OMAP platforms, fixing: - boot problems on beaglebone, - regression fixes for local timers - clockdomain locking fixes - a few boot/sparse warnings - For Tegra: - Clock rate calculation overflow fix - Revert a change that removed timer clocks and a fix for symbol name clashes - For Renesas: - IO accessor / annotation cleanups to remove warnings - For Kirkwood/Dove/mvebu: - Fixes for device trees for Dove (some minor cleanups, some fixes) - Fixes for the mvebu gpio driver - Fix build problem for Feroceon due to missing ifdefs - Fix lsxl DTS files" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits) ARM: kirkwood: fix buttons on lsxl boards ARM: kirkwood: fix LEDs names for lsxl boards ARM: Kirkwood: fix disabling CACHE_FEROCEON_L2 gpio: mvebu: Add missing breaks in mvebu_gpio_irq_set_type ARM: dove: Add crypto engine to DT ARM: dove: Remove watchdog from DT ARM: dove: Restructure SoC device tree descriptor ARM: dove: Fix clock names of sata and gbe ARM: dove: Fix tauros2 device tree init ARM: dove: Add pcie clock support ARM: OMAP2+: Allow kernel to boot even if GPMC fails to reserve memory ARM: OMAP: clockdomain: Fix locking on _clkdm_clk_hwmod_enable / disable ARM: s3c: mark s3c2440_clk_add as __init_refok spi/s3c64xx: use correct dma_transfer_direction type ARM: OMAP4: devices: fixup OMAP4 DMIC platform device error message ARM: OMAP2+: clock data: Add dev-id for the omap-gpmc dummy fck ARM: OMAP: resolve sparse warning concerning debug_card_init() ARM: OMAP4: Fix twd_local_timer_register regression ARM: tegra: add tegra_timer clock ARM: tegra: rename tegra system timer ...
2 parents caabe24 + 70f3900 commit 3782010

32 files changed

+133
-75
lines changed

arch/arm/boot/dts/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
2525
exynos4210-trats.dtb \
2626
exynos5250-smdk5250.dtb
2727
dtb-$(CONFIG_ARCH_HIGHBANK) += highbank.dtb
28+
dtb-$(CONFIG_ARCH_INTEGRATOR) += integratorap.dtb \
29+
integratorcp.dtb
2830
dtb-$(CONFIG_ARCH_LPC32XX) += ea3250.dtb phy3250.dtb
2931
dtb-$(CONFIG_ARCH_KIRKWOOD) += kirkwood-dns320.dtb \
3032
kirkwood-dns325.dtb \

arch/arm/boot/dts/dove.dtsi

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,32 @@
44
compatible = "marvell,dove";
55
model = "Marvell Armada 88AP510 SoC";
66

7-
interrupt-parent = <&intc>;
8-
9-
intc: interrupt-controller {
10-
compatible = "marvell,orion-intc";
11-
interrupt-controller;
12-
#interrupt-cells = <1>;
13-
reg = <0xf1020204 0x04>,
14-
<0xf1020214 0x04>;
15-
};
16-
17-
mbus@f1000000 {
7+
soc@f1000000 {
188
compatible = "simple-bus";
19-
ranges = <0 0xf1000000 0x4000000>;
209
#address-cells = <1>;
2110
#size-cells = <1>;
11+
interrupt-parent = <&intc>;
12+
13+
ranges = <0xc8000000 0xc8000000 0x0100000 /* CESA SRAM 1M */
14+
0xe0000000 0xe0000000 0x8000000 /* PCIe0 Mem 128M */
15+
0xe8000000 0xe8000000 0x8000000 /* PCIe1 Mem 128M */
16+
0xf0000000 0xf0000000 0x0100000 /* ScratchPad 1M */
17+
0x00000000 0xf1000000 0x1000000 /* SB/NB regs 16M */
18+
0xf2000000 0xf2000000 0x0100000 /* PCIe0 I/O 1M */
19+
0xf2100000 0xf2100000 0x0100000 /* PCIe0 I/O 1M */
20+
0xf8000000 0xf8000000 0x8000000>; /* BootROM 128M */
21+
22+
l2: l2-cache {
23+
compatible = "marvell,tauros2-cache";
24+
marvell,tauros2-cache-features = <0>;
25+
};
26+
27+
intc: interrupt-controller {
28+
compatible = "marvell,orion-intc";
29+
interrupt-controller;
30+
#interrupt-cells = <1>;
31+
reg = <0x20204 0x04>, <0x20214 0x04>;
32+
};
2233

2334
uart0: serial@12000 {
2435
compatible = "ns16550a";
@@ -56,11 +67,6 @@
5667
status = "disabled";
5768
};
5869

59-
wdt: wdt@20300 {
60-
compatible = "marvell,orion-wdt";
61-
reg = <0x20300 0x28>;
62-
};
63-
6470
gpio0: gpio@d0400 {
6571
compatible = "marvell,orion-gpio";
6672
#gpio-cells = <2>;
@@ -139,5 +145,14 @@
139145
nr-ports = <1>;
140146
status = "disabled";
141147
};
148+
149+
crypto: crypto@30000 {
150+
compatible = "marvell,orion-crypto";
151+
reg = <0x30000 0x10000>,
152+
<0xc8000000 0x800>;
153+
reg-names = "regs", "sram";
154+
interrupts = <31>;
155+
status = "okay";
156+
};
142157
};
143158
};

arch/arm/boot/dts/imx6q-arm2.dts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@
3737
pinctrl_hog: hoggrp {
3838
fsl,pins = <
3939
176 0x80000000 /* MX6Q_PAD_EIM_D25__GPIO_3_25 */
40+
>;
41+
};
42+
};
43+
44+
arm2 {
45+
pinctrl_usdhc3_arm2: usdhc3grp-arm2 {
46+
fsl,pins = <
4047
1363 0x80000000 /* MX6Q_PAD_NANDF_CS0__GPIO_6_11 */
4148
1369 0x80000000 /* MX6Q_PAD_NANDF_CS1__GPIO_6_14 */
4249
>;
@@ -58,7 +65,8 @@
5865
wp-gpios = <&gpio6 14 0>;
5966
vmmc-supply = <&reg_3p3v>;
6067
pinctrl-names = "default";
61-
pinctrl-0 = <&pinctrl_usdhc3_1>;
68+
pinctrl-0 = <&pinctrl_usdhc3_1
69+
&pinctrl_usdhc3_arm2>;
6270
status = "okay";
6371
};
6472

arch/arm/boot/dts/kirkwood-lsxl.dtsi

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,19 @@
4848
#size-cells = <0>;
4949
button@1 {
5050
label = "Function Button";
51-
linux,code = <132>;
51+
linux,code = <357>;
5252
gpios = <&gpio1 9 1>;
5353
};
5454
button@2 {
5555
label = "Power-on Switch";
56-
linux,code = <116>;
56+
linux,code = <0>;
57+
linux,input-type = <5>;
5758
gpios = <&gpio1 10 1>;
5859
};
5960
button@3 {
6061
label = "Power-auto Switch";
61-
linux,code = <142>;
62+
linux,code = <1>;
63+
linux,input-type = <5>;
6264
gpios = <&gpio1 11 1>;
6365
};
6466
};
@@ -67,28 +69,28 @@
6769
compatible = "gpio-leds";
6870

6971
led@1 {
70-
label = "lschlv2:blue:func";
72+
label = "lsxl:blue:func";
7173
gpios = <&gpio1 4 1>;
7274
};
7375

7476
led@2 {
75-
label = "lschlv2:red:alarm";
77+
label = "lsxl:red:alarm";
7678
gpios = <&gpio1 5 1>;
7779
};
7880

7981
led@3 {
80-
label = "lschlv2:amber:info";
82+
label = "lsxl:amber:info";
8183
gpios = <&gpio1 6 1>;
8284
};
8385

8486
led@4 {
85-
label = "lschlv2:blue:power";
87+
label = "lsxl:blue:power";
8688
gpios = <&gpio1 7 1>;
8789
linux,default-trigger = "default-on";
8890
};
8991

9092
led@5 {
91-
label = "lschlv2:red:func";
93+
label = "lsxl:red:func";
9294
gpios = <&gpio1 16 1>;
9395
};
9496
};

arch/arm/boot/dts/wm8505.dtsi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,13 @@
7171
ehci@d8007100 {
7272
compatible = "via,vt8500-ehci";
7373
reg = <0xd8007100 0x200>;
74-
interrupts = <43>;
74+
interrupts = <1>;
7575
};
7676

7777
uhci@d8007300 {
7878
compatible = "platform-uhci";
7979
reg = <0xd8007300 0x200>;
80-
interrupts = <43>;
80+
interrupts = <0>;
8181
};
8282

8383
fb@d8050800 {

arch/arm/mach-dove/common.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include <linux/irq.h>
3333
#include <plat/time.h>
3434
#include <linux/platform_data/usb-ehci-orion.h>
35+
#include <plat/irq.h>
3536
#include <plat/common.h>
3637
#include <plat/addr-map.h>
3738
#include "common.h"
@@ -109,8 +110,8 @@ static void __init dove_clk_init(void)
109110

110111
orion_clkdev_add(NULL, "orion-ehci.0", usb0);
111112
orion_clkdev_add(NULL, "orion-ehci.1", usb1);
112-
orion_clkdev_add(NULL, "mv643xx_eth.0", ge);
113-
orion_clkdev_add("0", "sata_mv.0", sata);
113+
orion_clkdev_add(NULL, "mv643xx_eth_port.0", ge);
114+
orion_clkdev_add(NULL, "sata_mv.0", sata);
114115
orion_clkdev_add("0", "pcie", pex0);
115116
orion_clkdev_add("1", "pcie", pex1);
116117
orion_clkdev_add(NULL, "sdhci-dove.0", sdio0);
@@ -399,7 +400,7 @@ static void __init dove_dt_init(void)
399400
(dove_tclk + 499999) / 1000000);
400401

401402
#ifdef CONFIG_CACHE_TAUROS2
402-
tauros2_init();
403+
tauros2_init(0);
403404
#endif
404405
dove_setup_cpu_mbus();
405406

@@ -415,7 +416,6 @@ static void __init dove_dt_init(void)
415416
dove_ehci0_init();
416417
dove_ehci1_init();
417418
dove_pcie_init(1, 1);
418-
dove_crypto_init();
419419

420420
of_platform_populate(NULL, of_default_bus_match_table,
421421
dove_auxdata_lookup, NULL);

arch/arm/mach-dove/pcie.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
#include <linux/kernel.h>
1212
#include <linux/pci.h>
13+
#include <linux/clk.h>
1314
#include <video/vga.h>
1415
#include <asm/mach/pci.h>
1516
#include <asm/mach/arch.h>
@@ -188,6 +189,10 @@ static void __init add_pcie_port(int index, void __iomem *base)
188189

189190
if (orion_pcie_link_up(base)) {
190191
struct pcie_port *pp = &pcie_port[num_pcie_ports++];
192+
struct clk *clk = clk_get_sys("pcie", (index ? "1" : "0"));
193+
194+
if (!IS_ERR(clk))
195+
clk_prepare_enable(clk);
191196

192197
printk(KERN_INFO "link up\n");
193198

arch/arm/mach-kirkwood/board-dt.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ static void __init kirkwood_dt_init(void)
5151

5252
kirkwood_setup_cpu_mbus();
5353

54-
#ifdef CONFIG_CACHE_FEROCEON_L2
5554
kirkwood_l2_init();
56-
#endif
5755

5856
/* Setup root of clk tree */
5957
kirkwood_clk_init();

arch/arm/mach-kirkwood/common.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -633,13 +633,15 @@ char * __init kirkwood_id(void)
633633

634634
void __init kirkwood_l2_init(void)
635635
{
636+
#ifdef CONFIG_CACHE_FEROCEON_L2
636637
#ifdef CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH
637638
writel(readl(L2_CONFIG_REG) | L2_WRITETHROUGH, L2_CONFIG_REG);
638639
feroceon_l2_init(1);
639640
#else
640641
writel(readl(L2_CONFIG_REG) & ~L2_WRITETHROUGH, L2_CONFIG_REG);
641642
feroceon_l2_init(0);
642643
#endif
644+
#endif
643645
}
644646

645647
void __init kirkwood_init(void)
@@ -657,9 +659,7 @@ void __init kirkwood_init(void)
657659

658660
kirkwood_setup_cpu_mbus();
659661

660-
#ifdef CONFIG_CACHE_FEROCEON_L2
661662
kirkwood_l2_init();
662-
#endif
663663

664664
/* Setup root of clk tree */
665665
kirkwood_clk_init();

arch/arm/mach-omap2/clock44xx_data.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3294,7 +3294,7 @@ static struct omap_clk omap44xx_clks[] = {
32943294
CLK(NULL, "auxclk5_src_ck", &auxclk5_src_ck, CK_443X),
32953295
CLK(NULL, "auxclk5_ck", &auxclk5_ck, CK_443X),
32963296
CLK(NULL, "auxclkreq5_ck", &auxclkreq5_ck, CK_443X),
3297-
CLK(NULL, "gpmc_ck", &dummy_ck, CK_443X),
3297+
CLK("omap-gpmc", "fck", &dummy_ck, CK_443X),
32983298
CLK("omap_i2c.1", "ick", &dummy_ck, CK_443X),
32993299
CLK("omap_i2c.2", "ick", &dummy_ck, CK_443X),
33003300
CLK("omap_i2c.3", "ick", &dummy_ck, CK_443X),

arch/arm/mach-omap2/clockdomain.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -925,15 +925,18 @@ static int _clkdm_clk_hwmod_enable(struct clockdomain *clkdm)
925925
if (!clkdm || !arch_clkdm || !arch_clkdm->clkdm_clk_enable)
926926
return -EINVAL;
927927

928+
spin_lock_irqsave(&clkdm->lock, flags);
929+
928930
/*
929931
* For arch's with no autodeps, clkcm_clk_enable
930932
* should be called for every clock instance or hwmod that is
931933
* enabled, so the clkdm can be force woken up.
932934
*/
933-
if ((atomic_inc_return(&clkdm->usecount) > 1) && autodeps)
935+
if ((atomic_inc_return(&clkdm->usecount) > 1) && autodeps) {
936+
spin_unlock_irqrestore(&clkdm->lock, flags);
934937
return 0;
938+
}
935939

936-
spin_lock_irqsave(&clkdm->lock, flags);
937940
arch_clkdm->clkdm_clk_enable(clkdm);
938941
pwrdm_state_switch(clkdm->pwrdm.ptr);
939942
spin_unlock_irqrestore(&clkdm->lock, flags);
@@ -950,15 +953,19 @@ static int _clkdm_clk_hwmod_disable(struct clockdomain *clkdm)
950953
if (!clkdm || !arch_clkdm || !arch_clkdm->clkdm_clk_disable)
951954
return -EINVAL;
952955

956+
spin_lock_irqsave(&clkdm->lock, flags);
957+
953958
if (atomic_read(&clkdm->usecount) == 0) {
959+
spin_unlock_irqrestore(&clkdm->lock, flags);
954960
WARN_ON(1); /* underflow */
955961
return -ERANGE;
956962
}
957963

958-
if (atomic_dec_return(&clkdm->usecount) > 0)
964+
if (atomic_dec_return(&clkdm->usecount) > 0) {
965+
spin_unlock_irqrestore(&clkdm->lock, flags);
959966
return 0;
967+
}
960968

961-
spin_lock_irqsave(&clkdm->lock, flags);
962969
arch_clkdm->clkdm_clk_disable(clkdm);
963970
pwrdm_state_switch(clkdm->pwrdm.ptr);
964971
spin_unlock_irqrestore(&clkdm->lock, flags);

arch/arm/mach-omap2/devices.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ static void __init omap_init_dmic(void)
341341

342342
oh = omap_hwmod_lookup("dmic");
343343
if (!oh) {
344-
printk(KERN_ERR "Could not look up mcpdm hw_mod\n");
344+
pr_err("Could not look up dmic hw_mod\n");
345345
return;
346346
}
347347

arch/arm/mach-omap2/gpmc.c

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -868,9 +868,9 @@ static void __devexit gpmc_mem_exit(void)
868868

869869
}
870870

871-
static void __devinit gpmc_mem_init(void)
871+
static int __devinit gpmc_mem_init(void)
872872
{
873-
int cs;
873+
int cs, rc;
874874
unsigned long boot_rom_space = 0;
875875

876876
/* never allocate the first page, to facilitate bug detection;
@@ -890,13 +890,21 @@ static void __devinit gpmc_mem_init(void)
890890
if (!gpmc_cs_mem_enabled(cs))
891891
continue;
892892
gpmc_cs_get_memconf(cs, &base, &size);
893-
if (gpmc_cs_insert_mem(cs, base, size) < 0)
894-
BUG();
893+
rc = gpmc_cs_insert_mem(cs, base, size);
894+
if (IS_ERR_VALUE(rc)) {
895+
while (--cs >= 0)
896+
if (gpmc_cs_mem_enabled(cs))
897+
gpmc_cs_delete_mem(cs);
898+
return rc;
899+
}
895900
}
901+
902+
return 0;
896903
}
897904

898905
static __devinit int gpmc_probe(struct platform_device *pdev)
899906
{
907+
int rc;
900908
u32 l;
901909
struct resource *res;
902910

@@ -936,7 +944,13 @@ static __devinit int gpmc_probe(struct platform_device *pdev)
936944
dev_info(gpmc_dev, "GPMC revision %d.%d\n", GPMC_REVISION_MAJOR(l),
937945
GPMC_REVISION_MINOR(l));
938946

939-
gpmc_mem_init();
947+
rc = gpmc_mem_init();
948+
if (IS_ERR_VALUE(rc)) {
949+
clk_disable_unprepare(gpmc_l3_clk);
950+
clk_put(gpmc_l3_clk);
951+
dev_err(gpmc_dev, "failed to reserve memory\n");
952+
return rc;
953+
}
940954

941955
if (IS_ERR_VALUE(gpmc_setup_irq()))
942956
dev_warn(gpmc_dev, "gpmc_setup_irq failed\n");

arch/arm/mach-omap2/timer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ OMAP_SYS_TIMER(3_am33xx)
467467
#ifdef CONFIG_ARCH_OMAP4
468468
#ifdef CONFIG_LOCAL_TIMERS
469469
static DEFINE_TWD_LOCAL_TIMER(twd_local_timer,
470-
OMAP44XX_LOCAL_TWD_BASE, 29 + OMAP_INTC_START);
470+
OMAP44XX_LOCAL_TWD_BASE, 29);
471471
#endif
472472

473473
static void __init omap4_timer_init(void)

arch/arm/mach-s3c24xx/clock-s3c2440.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ static struct clk_lookup s3c2440_clk_lookup[] = {
163163
CLKDEV_INIT(NULL, "clk_uart_baud3", &s3c2440_clk_fclk_n),
164164
};
165165

166-
static int s3c2440_clk_add(struct device *dev, struct subsys_interface *sif)
166+
static int __init_refok s3c2440_clk_add(struct device *dev, struct subsys_interface *sif)
167167
{
168168
struct clk *clock_upll;
169169
struct clk *clock_h;

0 commit comments

Comments
 (0)