Skip to content

Commit 314489b

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 bunch of fixes for regressions (and a few other problems) in 3.4-rc1: - Fix for regression of mach/io.h cleanup on platforms with PCI or PCMCIA (adding back the include file on those for now) - AT91 fixes for usb and spi - smsc911x ethernet fixes for i.MX - smsc911x fixes for OMAP - gpio fixes for Tegra - A handful of build error and warning fixes for various platforms - cpufreq kconfig dependencies, build and lowlevel debug fixes for Samsung platforms In other words, more or less the regular collection of -rc1/2 type material. A few of them, in particular the smsc911x for OMAP series, aren't technically regressions for 3.4, but they're valid fixes and we're still relatively early in the rc cycle so it seems appropriate to include them." * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (60 commits) ARM: fix __io macro for PCMCIA ARM: EXYNOS: Fix compiler warning in dma.c file ARM: EXYNOS: fix ISO C90 warning ARM: OMAP2+: hwmod: Fix wrong SYSC_TYPE1_XXX_MASK bit definitions ARM: OMAP2+: hwmod: Make omap_hwmod_softreset wait for reset status ARM: OMAP2+: hwmod: Restore sysc after a reset ARM: OMAP2+: omap_hwmod: Allow io_ring wakeup configuration for all modules ARM: OMAP3: clock data: fill in some missing clockdomains ARM: OMAP4: clock data: Force a DPLL clkdm/pwrdm ON before a relock ARM: OMAP4: clock data: fix mult and div mask for USB_DPLL ARM: OMAP2+: powerdomain: Wait for powerdomain transition in pwrdm_state_switch() gpio: tegra: Iterate over the correct number of banks gpio: tegra: fix register address calculations for Tegra30 EXYNOS: fix dependency for EXYNOS_CPUFREQ ARM: at91: dt: remove unit-address part for memory nodes ARM: at91: fix check of valid GPIO for SPI and USB USB: ehci-atmel: add needed of.h header file ARM: at91/NAND DT bindings: add comments ARM: at91/at91sam9x5.dtsi: fix NAND ale/cle in DT file USB: ohci-at91: trivial return code name change ...
2 parents 43e347a + a8f5b6e commit 314489b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+603
-342
lines changed

Documentation/devicetree/bindings/mtd/atmel-nand.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ nand0: nand@40000000,0 {
2727
reg = <0x40000000 0x10000000
2828
0xffffe800 0x200
2929
>;
30-
atmel,nand-addr-offset = <21>;
31-
atmel,nand-cmd-offset = <22>;
30+
atmel,nand-addr-offset = <21>; /* ale */
31+
atmel,nand-cmd-offset = <22>; /* cle */
3232
nand-on-flash-bbt;
3333
nand-ecc-mode = "soft";
34-
gpios = <&pioC 13 0
35-
&pioC 14 0
36-
0
34+
gpios = <&pioC 13 0 /* rdy */
35+
&pioC 14 0 /* nce */
36+
0 /* cd */
3737
>;
3838
partition@0 {
3939
...

arch/arm/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,7 @@ config ARCH_AT91
338338
select HAVE_CLK
339339
select CLKDEV_LOOKUP
340340
select IRQ_DOMAIN
341+
select NEED_MACH_IO_H if PCCARD
341342
help
342343
This enables support for systems based on the Atmel AT91RM9200,
343344
AT91SAM9 processors.

arch/arm/boot/dts/at91sam9g20.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
};
3636
};
3737

38-
memory@20000000 {
38+
memory {
3939
reg = <0x20000000 0x08000000>;
4040
};
4141

arch/arm/boot/dts/at91sam9g25ek.dts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@
3737
usb0: ohci@00600000 {
3838
status = "okay";
3939
num-ports = <2>;
40-
atmel,vbus-gpio = <&pioD 19 0
41-
&pioD 20 0
40+
atmel,vbus-gpio = <&pioD 19 1
41+
&pioD 20 1
4242
>;
4343
};
4444

arch/arm/boot/dts/at91sam9g45.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
};
3737
};
3838

39-
memory@70000000 {
39+
memory {
4040
reg = <0x70000000 0x10000000>;
4141
};
4242

arch/arm/boot/dts/at91sam9m10g45ek.dts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2";
1818
};
1919

20-
memory@70000000 {
20+
memory {
2121
reg = <0x70000000 0x4000000>;
2222
};
2323

@@ -73,8 +73,8 @@
7373
usb0: ohci@00700000 {
7474
status = "okay";
7575
num-ports = <2>;
76-
atmel,vbus-gpio = <&pioD 1 0
77-
&pioD 3 0>;
76+
atmel,vbus-gpio = <&pioD 1 1
77+
&pioD 3 1>;
7878
};
7979

8080
usb1: ehci@00800000 {

arch/arm/boot/dts/at91sam9x5.dtsi

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
};
3535
};
3636

37-
memory@20000000 {
37+
memory {
3838
reg = <0x20000000 0x10000000>;
3939
};
4040

@@ -201,8 +201,8 @@
201201
>;
202202
atmel,nand-addr-offset = <21>;
203203
atmel,nand-cmd-offset = <22>;
204-
gpios = <&pioC 8 0
205-
&pioC 14 0
204+
gpios = <&pioD 5 0
205+
&pioD 4 0
206206
0
207207
>;
208208
status = "disabled";

arch/arm/boot/dts/at91sam9x5cm.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*/
99

1010
/ {
11-
memory@20000000 {
11+
memory {
1212
reg = <0x20000000 0x8000000>;
1313
};
1414

arch/arm/boot/dts/usb_a9g20.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs";
1717
};
1818

19-
memory@20000000 {
19+
memory {
2020
reg = <0x20000000 0x4000000>;
2121
};
2222

arch/arm/include/asm/barrier.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define __ASM_BARRIER_H
33

44
#ifndef __ASSEMBLY__
5+
#include <asm/outercache.h>
56

67
#define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t");
78

@@ -39,7 +40,6 @@
3940
#ifdef CONFIG_ARCH_HAS_BARRIERS
4041
#include <mach/barriers.h>
4142
#elif defined(CONFIG_ARM_DMA_MEM_BUFFERABLE) || defined(CONFIG_SMP)
42-
#include <asm/outercache.h>
4343
#define mb() do { dsb(); outer_sync(); } while (0)
4444
#define rmb() dsb()
4545
#define wmb() mb()

arch/arm/include/asm/io.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ static inline void __iomem *__typesafe_io(unsigned long addr)
119119
#ifdef CONFIG_NEED_MACH_IO_H
120120
#include <mach/io.h>
121121
#else
122-
#define __io(a) ({ (void)(a); __typesafe_io(0); })
122+
#define __io(a) __typesafe_io((a) & IO_SPACE_LIMIT)
123123
#endif
124124

125125
/*

arch/arm/mach-at91/at91sam9260_devices.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,9 @@ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
598598
else
599599
cs_pin = spi1_standard_cs[devices[i].chip_select];
600600

601+
if (!gpio_is_valid(cs_pin))
602+
continue;
603+
601604
if (devices[i].bus_num == 0)
602605
enable_spi0 = 1;
603606
else

arch/arm/mach-at91/at91sam9261_devices.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -415,6 +415,9 @@ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
415415
else
416416
cs_pin = spi1_standard_cs[devices[i].chip_select];
417417

418+
if (!gpio_is_valid(cs_pin))
419+
continue;
420+
418421
if (devices[i].bus_num == 0)
419422
enable_spi0 = 1;
420423
else

arch/arm/mach-at91/at91sam9263_devices.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data)
7272
/* Enable VBus control for UHP ports */
7373
for (i = 0; i < data->ports; i++) {
7474
if (gpio_is_valid(data->vbus_pin[i]))
75-
at91_set_gpio_output(data->vbus_pin[i], 0);
75+
at91_set_gpio_output(data->vbus_pin[i],
76+
data->vbus_pin_active_low[i]);
7677
}
7778

7879
/* Enable overcurrent notification */
@@ -671,6 +672,9 @@ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
671672
else
672673
cs_pin = spi1_standard_cs[devices[i].chip_select];
673674

675+
if (!gpio_is_valid(cs_pin))
676+
continue;
677+
674678
if (devices[i].bus_num == 0)
675679
enable_spi0 = 1;
676680
else

arch/arm/mach-at91/at91sam9g45_devices.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,12 +127,13 @@ void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data)
127127
/* Enable VBus control for UHP ports */
128128
for (i = 0; i < data->ports; i++) {
129129
if (gpio_is_valid(data->vbus_pin[i]))
130-
at91_set_gpio_output(data->vbus_pin[i], 0);
130+
at91_set_gpio_output(data->vbus_pin[i],
131+
data->vbus_pin_active_low[i]);
131132
}
132133

133134
/* Enable overcurrent notification */
134135
for (i = 0; i < data->ports; i++) {
135-
if (data->overcurrent_pin[i])
136+
if (gpio_is_valid(data->overcurrent_pin[i]))
136137
at91_set_gpio_input(data->overcurrent_pin[i], 1);
137138
}
138139

@@ -188,7 +189,8 @@ void __init at91_add_device_usbh_ehci(struct at91_usbh_data *data)
188189
/* Enable VBus control for UHP ports */
189190
for (i = 0; i < data->ports; i++) {
190191
if (gpio_is_valid(data->vbus_pin[i]))
191-
at91_set_gpio_output(data->vbus_pin[i], 0);
192+
at91_set_gpio_output(data->vbus_pin[i],
193+
data->vbus_pin_active_low[i]);
192194
}
193195

194196
usbh_ehci_data = *data;
@@ -785,6 +787,9 @@ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
785787
else
786788
cs_pin = spi1_standard_cs[devices[i].chip_select];
787789

790+
if (!gpio_is_valid(cs_pin))
791+
continue;
792+
788793
if (devices[i].bus_num == 0)
789794
enable_spi0 = 1;
790795
else

arch/arm/mach-at91/at91sam9rl_devices.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,9 @@ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
419419
else
420420
cs_pin = spi_standard_cs[devices[i].chip_select];
421421

422+
if (!gpio_is_valid(cs_pin))
423+
continue;
424+
422425
/* enable chip-select pin */
423426
at91_set_gpio_output(cs_pin, 1);
424427

arch/arm/mach-at91/at91sam9x5.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,8 @@ static struct clk_lookup periph_clocks_lookups[] = {
223223
CLKDEV_CON_DEV_ID("usart", "f8028000.serial", &usart3_clk),
224224
CLKDEV_CON_DEV_ID("t0_clk", "f8008000.timer", &tcb0_clk),
225225
CLKDEV_CON_DEV_ID("t0_clk", "f800c000.timer", &tcb0_clk),
226+
CLKDEV_CON_DEV_ID("dma_clk", "ffffec00.dma-controller", &dma0_clk),
227+
CLKDEV_CON_DEV_ID("dma_clk", "ffffee00.dma-controller", &dma1_clk),
226228
CLKDEV_CON_ID("pioA", &pioAB_clk),
227229
CLKDEV_CON_ID("pioB", &pioAB_clk),
228230
CLKDEV_CON_ID("pioC", &pioCD_clk),

arch/arm/mach-at91/board-sam9263ek.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ static void __init ek_init_early(void)
7474
static struct at91_usbh_data __initdata ek_usbh_data = {
7575
.ports = 2,
7676
.vbus_pin = { AT91_PIN_PA24, AT91_PIN_PA21 },
77+
.vbus_pin_active_low = {1, 1},
7778
.overcurrent_pin= {-EINVAL, -EINVAL},
7879
};
7980

arch/arm/mach-at91/board-sam9m10g45ek.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ static void __init ek_init_early(void)
7171
static struct at91_usbh_data __initdata ek_usbh_hs_data = {
7272
.ports = 2,
7373
.vbus_pin = {AT91_PIN_PD1, AT91_PIN_PD3},
74+
.vbus_pin_active_low = {1, 1},
7475
.overcurrent_pin= {-EINVAL, -EINVAL},
7576
};
7677

arch/arm/mach-at91/include/mach/board.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,15 @@ extern void __init at91_add_device_mci(short mmc_id, struct mci_platform_data *d
8686
extern void __init at91_add_device_eth(struct macb_platform_data *data);
8787

8888
/* USB Host */
89+
#define AT91_MAX_USBH_PORTS 3
8990
struct at91_usbh_data {
90-
u8 ports; /* number of ports on root hub */
91-
int vbus_pin[2]; /* port power-control pin */
92-
u8 vbus_pin_active_low[2];
91+
int vbus_pin[AT91_MAX_USBH_PORTS]; /* port power-control pin */
92+
int overcurrent_pin[AT91_MAX_USBH_PORTS];
93+
u8 ports; /* number of ports on root hub */
9394
u8 overcurrent_supported;
94-
int overcurrent_pin[2];
95-
u8 overcurrent_status[2];
96-
u8 overcurrent_changed[2];
95+
u8 vbus_pin_active_low[AT91_MAX_USBH_PORTS];
96+
u8 overcurrent_status[AT91_MAX_USBH_PORTS];
97+
u8 overcurrent_changed[AT91_MAX_USBH_PORTS];
9798
};
9899
extern void __init at91_add_device_usbh(struct at91_usbh_data *data);
99100
extern void __init at91_add_device_usbh_ohci(struct at91_usbh_data *data);

arch/arm/mach-at91/include/mach/io.h

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/*
2+
* arch/arm/mach-at91/include/mach/io.h
3+
*
4+
* Copyright (C) 2003 SAN People
5+
*
6+
* This program is free software; you can redistribute it and/or modify
7+
* it under the terms of the GNU General Public License as published by
8+
* the Free Software Foundation; either version 2 of the License, or
9+
* (at your option) any later version.
10+
*
11+
* This program is distributed in the hope that it will be useful,
12+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+
* GNU General Public License for more details.
15+
*
16+
* You should have received a copy of the GNU General Public License
17+
* along with this program; if not, write to the Free Software
18+
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19+
*/
20+
21+
#ifndef __ASM_ARCH_IO_H
22+
#define __ASM_ARCH_IO_H
23+
24+
#define IO_SPACE_LIMIT 0xFFFFFFFF
25+
#define __io(a) __typesafe_io(a)
26+
27+
#endif

arch/arm/mach-exynos/common.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -583,10 +583,11 @@ core_initcall(exynos_core_init);
583583
#ifdef CONFIG_CACHE_L2X0
584584
static int __init exynos4_l2x0_cache_init(void)
585585
{
586+
int ret;
587+
586588
if (soc_is_exynos5250())
587589
return 0;
588590

589-
int ret;
590591
ret = l2x0_of_init(L2_AUX_VAL, L2_AUX_MASK);
591592
if (!ret) {
592593
l2x0_regs_phys = virt_to_phys(&l2x0_saved_regs);

arch/arm/mach-exynos/dma.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@
3535
#include <mach/irqs.h>
3636
#include <mach/dma.h>
3737

38-
static u64 dma_dmamask = DMA_BIT_MASK(32);
39-
4038
static u8 exynos4210_pdma0_peri[] = {
4139
DMACH_PCM0_RX,
4240
DMACH_PCM0_TX,

arch/arm/mach-exynos/include/mach/debug-macro.S

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,9 @@
2121
*/
2222

2323
.macro addruart, rp, rv, tmp
24-
mov \rp, #0x10000000
25-
ldr \rp, [\rp, #0x0]
26-
and \rp, \rp, #0xf00000
27-
teq \rp, #0x500000 @@ EXYNOS5
24+
mrc p15, 0, \tmp, c0, c0, 0
25+
and \tmp, \tmp, #0xf0
26+
teq \tmp, #0xf0 @@ A15
2827
ldreq \rp, =EXYNOS5_PA_UART
2928
movne \rp, #EXYNOS4_PA_UART @@ EXYNOS4
3029
ldr \rv, =S3C_VA_UART

arch/arm/mach-exynos/include/mach/uncompress.h

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,24 @@ volatile u8 *uart_base;
2020

2121
#include <plat/uncompress.h>
2222

23+
static unsigned int __raw_readl(unsigned int ptr)
24+
{
25+
return *((volatile unsigned int *)ptr);
26+
}
27+
2328
static void arch_detect_cpu(void)
2429
{
25-
if (machine_is_smdk5250())
30+
u32 chip_id = __raw_readl(EXYNOS_PA_CHIPID);
31+
32+
/*
33+
* product_id is bits 31:12
34+
* bits 23:20 describe the exynosX family
35+
*
36+
*/
37+
chip_id >>= 20;
38+
chip_id &= 0xf;
39+
40+
if (chip_id == 0x5)
2641
uart_base = (volatile u8 *)EXYNOS5_PA_UART + (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT);
2742
else
2843
uart_base = (volatile u8 *)EXYNOS4_PA_UART + (S3C_UART_OFFSET * CONFIG_S3C_LOWLEVEL_UART_PORT);

arch/arm/mach-imx/clock-imx27.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,7 @@ static struct clk_lookup lookups[] = {
662662
_REGISTER_CLOCK(NULL, "dma", dma_clk)
663663
_REGISTER_CLOCK(NULL, "rtic", rtic_clk)
664664
_REGISTER_CLOCK(NULL, "brom", brom_clk)
665+
_REGISTER_CLOCK(NULL, "emma", emma_clk)
665666
_REGISTER_CLOCK("m2m-emmaprp.0", NULL, emma_clk)
666667
_REGISTER_CLOCK(NULL, "slcdc", slcdc_clk)
667668
_REGISTER_CLOCK("imx27-fec.0", NULL, fec_clk)

arch/arm/mach-imx/clock-imx35.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ static struct clk_lookup lookups[] = {
483483
_REGISTER_CLOCK("imx2-wdt.0", NULL, wdog_clk)
484484
_REGISTER_CLOCK(NULL, "max", max_clk)
485485
_REGISTER_CLOCK(NULL, "audmux", audmux_clk)
486-
_REGISTER_CLOCK(NULL, "csi", csi_clk)
486+
_REGISTER_CLOCK("mx3-camera.0", NULL, csi_clk)
487487
_REGISTER_CLOCK(NULL, "iim", iim_clk)
488488
_REGISTER_CLOCK(NULL, "gpu2d", gpu2d_clk)
489489
_REGISTER_CLOCK("mxc_nand.0", NULL, nfc_clk)

0 commit comments

Comments
 (0)