Skip to content

Commit 44d8a7d

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 Arnd Bergmann: "This is the final small set of ARM SoC bug fixes for linux-4.4, almost all regressions: OMAP: - data corruption on the Nokia N900 flash Allwinner: - Two defconfig change to get USB working again ARM Versatile: - Interrupt numbers gone bad after an older bug fix Nomadik: - Crashes from incorrect L2 cache settings VIA vt8500: - SD/MMC support on WM8650 never worked" * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: dts: vt8500: Add SDHC node to DTS file for WM8650 ARM: Fix broken USB support in multi_v7_defconfig for sunxi devices ARM: versatile: fix MMC/SD interrupt assignment ARM: nomadik: set latencies to 8 cycles ARM: OMAP2+: Fix onenand rate detection to avoid filesystem corruption ARM: Fix broken USB support in sunxi_defconfig
2 parents 516c50c + 841bcd2 commit 44d8a7d

File tree

7 files changed

+49
-12
lines changed

7 files changed

+49
-12
lines changed

arch/arm/boot/dts/ste-nomadik-stn8815.dtsi

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
cache-sets = <512>;
2626
cache-line-size = <32>;
2727
/* At full speed latency must be >=2 */
28-
arm,tag-latency = <2>;
29-
arm,data-latency = <2 2>;
30-
arm,dirty-latency = <2>;
28+
arm,tag-latency = <8>;
29+
arm,data-latency = <8 8>;
30+
arm,dirty-latency = <8>;
3131
};
3232

3333
mtu0: mtu@101e2000 {

arch/arm/boot/dts/versatile-ab.dts

+7-3
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,11 @@
110110
interrupt-parent = <&vic>;
111111
interrupts = <31>; /* Cascaded to vic */
112112
clear-mask = <0xffffffff>;
113-
valid-mask = <0xffc203f8>;
113+
/*
114+
* Valid interrupt lines mask according to
115+
* table 4-36 page 4-50 of ARM DUI 0225D
116+
*/
117+
valid-mask = <0x0760031b>;
114118
};
115119

116120
dma@10130000 {
@@ -266,8 +270,8 @@
266270
};
267271
mmc@5000 {
268272
compatible = "arm,pl180", "arm,primecell";
269-
reg = < 0x5000 0x1000>;
270-
interrupts-extended = <&vic 22 &sic 2>;
273+
reg = <0x5000 0x1000>;
274+
interrupts-extended = <&vic 22 &sic 1>;
271275
clocks = <&xtal24mhz>, <&pclk>;
272276
clock-names = "mclk", "apb_pclk";
273277
};

arch/arm/boot/dts/versatile-pb.dts

+19-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@
55
compatible = "arm,versatile-pb";
66

77
amba {
8+
/* The Versatile PB is using more SIC IRQ lines than the AB */
9+
sic: intc@10003000 {
10+
clear-mask = <0xffffffff>;
11+
/*
12+
* Valid interrupt lines mask according to
13+
* figure 3-30 page 3-74 of ARM DUI 0224B
14+
*/
15+
valid-mask = <0x7fe003ff>;
16+
};
17+
818
gpio2: gpio@101e6000 {
919
compatible = "arm,pl061", "arm,primecell";
1020
reg = <0x101e6000 0x1000>;
@@ -67,6 +77,13 @@
6777
};
6878

6979
fpga {
80+
mmc@5000 {
81+
/*
82+
* Overrides the interrupt assignment from
83+
* the Versatile AB board file.
84+
*/
85+
interrupts-extended = <&sic 22 &sic 23>;
86+
};
7087
uart@9000 {
7188
compatible = "arm,pl011", "arm,primecell";
7289
reg = <0x9000 0x1000>;
@@ -86,7 +103,8 @@
86103
mmc@b000 {
87104
compatible = "arm,pl180", "arm,primecell";
88105
reg = <0xb000 0x1000>;
89-
interrupts-extended = <&vic 23 &sic 2>;
106+
interrupt-parent = <&sic>;
107+
interrupts = <1>, <2>;
90108
clocks = <&xtal24mhz>, <&pclk>;
91109
clock-names = "mclk", "apb_pclk";
92110
};

arch/arm/boot/dts/wm8650.dtsi

+9
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,15 @@
187187
interrupts = <43>;
188188
};
189189

190+
sdhc@d800a000 {
191+
compatible = "wm,wm8505-sdhc";
192+
reg = <0xd800a000 0x400>;
193+
interrupts = <20>, <21>;
194+
clocks = <&clksdhc>;
195+
bus-width = <4>;
196+
sdon-inverted;
197+
};
198+
190199
fb: fb@d8050800 {
191200
compatible = "wm,wm8505-fb";
192201
reg = <0xd8050800 0x200>;

arch/arm/configs/multi_v7_defconfig

+1
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ CONFIG_BATTERY_MAX17042=m
366366
CONFIG_CHARGER_MAX14577=m
367367
CONFIG_CHARGER_MAX77693=m
368368
CONFIG_CHARGER_TPS65090=y
369+
CONFIG_AXP20X_POWER=m
369370
CONFIG_POWER_RESET_AS3722=y
370371
CONFIG_POWER_RESET_GPIO=y
371372
CONFIG_POWER_RESET_GPIO_RESTART=y

arch/arm/configs/sunxi_defconfig

+1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ CONFIG_SPI_SUN4I=y
8484
CONFIG_SPI_SUN6I=y
8585
CONFIG_GPIO_SYSFS=y
8686
CONFIG_POWER_SUPPLY=y
87+
CONFIG_AXP20X_POWER=y
8788
CONFIG_THERMAL=y
8889
CONFIG_CPU_THERMAL=y
8990
CONFIG_WATCHDOG=y

arch/arm/mach-omap2/gpmc-onenand.c

+9-5
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ static int omap2_onenand_get_freq(struct omap_onenand_platform_data *cfg,
149149
freq = 104;
150150
break;
151151
default:
152-
freq = 54;
153-
break;
152+
pr_err("onenand rate not detected, bad GPMC async timings?\n");
153+
freq = 0;
154154
}
155155

156156
return freq;
@@ -271,6 +271,11 @@ static int omap2_onenand_setup_async(void __iomem *onenand_base)
271271
struct gpmc_timings t;
272272
int ret;
273273

274+
/*
275+
* Note that we need to keep sync_write set for the call to
276+
* omap2_onenand_set_async_mode() to work to detect the onenand
277+
* supported clock rate for the sync timings.
278+
*/
274279
if (gpmc_onenand_data->of_node) {
275280
gpmc_read_settings_dt(gpmc_onenand_data->of_node,
276281
&onenand_async);
@@ -281,12 +286,9 @@ static int omap2_onenand_setup_async(void __iomem *onenand_base)
281286
else
282287
gpmc_onenand_data->flags |= ONENAND_SYNC_READ;
283288
onenand_async.sync_read = false;
284-
onenand_async.sync_write = false;
285289
}
286290
}
287291

288-
omap2_onenand_set_async_mode(onenand_base);
289-
290292
omap2_onenand_calc_async_timings(&t);
291293

292294
ret = gpmc_cs_program_settings(gpmc_onenand_data->cs, &onenand_async);
@@ -310,6 +312,8 @@ static int omap2_onenand_setup_sync(void __iomem *onenand_base, int *freq_ptr)
310312
if (!freq) {
311313
/* Very first call freq is not known */
312314
freq = omap2_onenand_get_freq(gpmc_onenand_data, onenand_base);
315+
if (!freq)
316+
return -ENODEV;
313317
set_onenand_cfg(onenand_base);
314318
}
315319

0 commit comments

Comments
 (0)