History

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

Pull arm-soc bug fixes from Olof Johansson: "A couple of samsung clock locking fixes, at91 device tree gpio configuration fix and a couple more for shmobile and i.MX. All small targeted fixes." * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM i.MX25: Make timer irq work again ARM: imx: armadillo5x0: Fix illegal register access ARM: shmobile: kzm9g: bugfix: correct mmcif interrupt settings ARM: SAMSUNG: Use spin_lock_{irqsave,irqrestore} in clk_set_rate ARM: at91: fix missing #interrupt-cells on gpio-controller ARM: SAMSUNG: use spin_lock_irqsave() in clk_set_parent

Linus Torvalds committed 14 years ago

Commit 63365012 parents 267b50f 23f3f0610 files · +33 −8Browse files

Unified · Split

10 files
  1. arch/arm/boot/dts/at91sam9260.dtsi +3 −0
  2. arch/arm/boot/dts/at91sam9263.dtsi +5 −0
  3. arch/arm/boot/dts/at91sam9g45.dtsi +5 −0
  4. arch/arm/boot/dts/at91sam9n12.dtsi +4 −0
  5. arch/arm/boot/dts/at91sam9x5.dtsi +4 −0
  6. arch/arm/mach-imx/clk-imx25.c +1 −1
  7. arch/arm/mach-imx/mach-armadillo5x0.c +2 −1
  8. arch/arm/mach-shmobile/board-kzm9g.c +2 −2
  9. arch/arm/plat-mxc/include/mach/mx25.h +1 −0
  10. arch/arm/plat-samsung/clock.c +6 −4
arch/arm/boot/dts/at91sam9260.dtsi+3−0
@@ -104,6 +104,7 @@ · 103 unmodified lines
104104 #gpio-cells = <2>;
105105 gpio-controller;
106106 interrupt-controller;
107+ #interrupt-cells = <2>;
107108 };
108109
109110 pioB: gpio@fffff600 {
@@ -113,6 +114,7 @@ · 3 unmodified lines
113114 #gpio-cells = <2>;
114115 gpio-controller;
115116 interrupt-controller;
117+ #interrupt-cells = <2>;
116118 };
117119
118120 pioC: gpio@fffff800 {
@@ -122,6 +124,7 @@ · 3 unmodified lines
122124 #gpio-cells = <2>;
123125 gpio-controller;
124126 interrupt-controller;
127+ #interrupt-cells = <2>;
125128 };
126129
127130 dbgu: serial@fffff200 {
arch/arm/boot/dts/at91sam9263.dtsi+5−0
@@ -95,6 +95,7 @@ · 94 unmodified lines
9595 #gpio-cells = <2>;
9696 gpio-controller;
9797 interrupt-controller;
98+ #interrupt-cells = <2>;
9899 };
99100
100101 pioB: gpio@fffff400 {
@@ -104,6 +105,7 @@ · 3 unmodified lines
104105 #gpio-cells = <2>;
105106 gpio-controller;
106107 interrupt-controller;
108+ #interrupt-cells = <2>;
107109 };
108110
109111 pioC: gpio@fffff600 {
@@ -113,6 +115,7 @@ · 3 unmodified lines
113115 #gpio-cells = <2>;
114116 gpio-controller;
115117 interrupt-controller;
118+ #interrupt-cells = <2>;
116119 };
117120
118121 pioD: gpio@fffff800 {
@@ -122,6 +125,7 @@ · 3 unmodified lines
122125 #gpio-cells = <2>;
123126 gpio-controller;
124127 interrupt-controller;
128+ #interrupt-cells = <2>;
125129 };
126130
127131 pioE: gpio@fffffa00 {
@@ -131,6 +135,7 @@ · 3 unmodified lines
131135 #gpio-cells = <2>;
132136 gpio-controller;
133137 interrupt-controller;
138+ #interrupt-cells = <2>;
134139 };
135140
136141 dbgu: serial@ffffee00 {
arch/arm/boot/dts/at91sam9g45.dtsi+5−0
@@ -113,6 +113,7 @@ · 112 unmodified lines
113113 #gpio-cells = <2>;
114114 gpio-controller;
115115 interrupt-controller;
116+ #interrupt-cells = <2>;
116117 };
117118
118119 pioB: gpio@fffff400 {
@@ -122,6 +123,7 @@ · 3 unmodified lines
122123 #gpio-cells = <2>;
123124 gpio-controller;
124125 interrupt-controller;
126+ #interrupt-cells = <2>;
125127 };
126128
127129 pioC: gpio@fffff600 {
@@ -131,6 +133,7 @@ · 3 unmodified lines
131133 #gpio-cells = <2>;
132134 gpio-controller;
133135 interrupt-controller;
136+ #interrupt-cells = <2>;
134137 };
135138
136139 pioD: gpio@fffff800 {
@@ -140,6 +143,7 @@ · 3 unmodified lines
140143 #gpio-cells = <2>;
141144 gpio-controller;
142145 interrupt-controller;
146+ #interrupt-cells = <2>;
143147 };
144148
145149 pioE: gpio@fffffa00 {
@@ -149,6 +153,7 @@ · 3 unmodified lines
149153 #gpio-cells = <2>;
150154 gpio-controller;
151155 interrupt-controller;
156+ #interrupt-cells = <2>;
152157 };
153158
154159 dbgu: serial@ffffee00 {
arch/arm/boot/dts/at91sam9n12.dtsi+4−0
@@ -107,6 +107,7 @@ · 106 unmodified lines
107107 #gpio-cells = <2>;
108108 gpio-controller;
109109 interrupt-controller;
110+ #interrupt-cells = <2>;
110111 };
111112
112113 pioB: gpio@fffff600 {
@@ -116,6 +117,7 @@ · 3 unmodified lines
116117 #gpio-cells = <2>;
117118 gpio-controller;
118119 interrupt-controller;
120+ #interrupt-cells = <2>;
119121 };
120122
121123 pioC: gpio@fffff800 {
@@ -125,6 +127,7 @@ · 3 unmodified lines
125127 #gpio-cells = <2>;
126128 gpio-controller;
127129 interrupt-controller;
130+ #interrupt-cells = <2>;
128131 };
129132
130133 pioD: gpio@fffffa00 {
@@ -134,6 +137,7 @@ · 3 unmodified lines
134137 #gpio-cells = <2>;
135138 gpio-controller;
136139 interrupt-controller;
140+ #interrupt-cells = <2>;
137141 };
138142
139143 dbgu: serial@fffff200 {
arch/arm/boot/dts/at91sam9x5.dtsi+4−0
@@ -115,6 +115,7 @@ · 114 unmodified lines
115115 #gpio-cells = <2>;
116116 gpio-controller;
117117 interrupt-controller;
118+ #interrupt-cells = <2>;
118119 };
119120
120121 pioB: gpio@fffff600 {
@@ -124,6 +125,7 @@ · 3 unmodified lines
124125 #gpio-cells = <2>;
125126 gpio-controller;
126127 interrupt-controller;
128+ #interrupt-cells = <2>;
127129 };
128130
129131 pioC: gpio@fffff800 {
@@ -133,6 +135,7 @@ · 3 unmodified lines
133135 #gpio-cells = <2>;
134136 gpio-controller;
135137 interrupt-controller;
138+ #interrupt-cells = <2>;
136139 };
137140
138141 pioD: gpio@fffffa00 {
@@ -142,6 +145,7 @@ · 3 unmodified lines
142145 #gpio-cells = <2>;
143146 gpio-controller;
144147 interrupt-controller;
148+ #interrupt-cells = <2>;
145149 };
146150
147151 dbgu: serial@fffff200 {
arch/arm/mach-imx/clk-imx25.c+1−1
@@ -241,6 +241,6 @@ int __init mx25_clocks_init(void) · 240 unmodified lines
241241 clk_register_clkdev(clk[sdma_ahb], "ahb", "imx35-sdma");
242242 clk_register_clkdev(clk[iim_ipg], "iim", NULL);
243243
244− mxc_timer_init(MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54);
244+ mxc_timer_init(MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), MX25_INT_GPT1);
245245 return 0;
246246 }
arch/arm/mach-imx/mach-armadillo5x0.c+2−1
@@ -526,7 +526,8 @@ static void __init armadillo5x0_init(void) · 525 unmodified lines
526526 imx31_add_mxc_nand(&armadillo5x0_nand_board_info);
527527
528528 /* set NAND page size to 2k if not configured via boot mode pins */
529− __raw_writel(__raw_readl(MXC_CCM_RCSR) | (1 << 30), MXC_CCM_RCSR);
529+ __raw_writel(__raw_readl(mx3_ccm_base + MXC_CCM_RCSR) |
530+ (1 << 30), mx3_ccm_base + MXC_CCM_RCSR);
530531
531532 /* RTC */
532533 /* Get RTC IRQ and register the chip */
arch/arm/mach-shmobile/board-kzm9g.c+2−2
@@ -346,11 +346,11 @@ static struct resource sh_mmcif_resources[] = { · 345 unmodified lines
346346 .flags = IORESOURCE_MEM,
347347 },
348348 [1] = {
349− .start = gic_spi(141),
349+ .start = gic_spi(140),
350350 .flags = IORESOURCE_IRQ,
351351 },
352352 [2] = {
353− .start = gic_spi(140),
353+ .start = gic_spi(141),
354354 .flags = IORESOURCE_IRQ,
355355 },
356356 };
arch/arm/plat-mxc/include/mach/mx25.h+1−0
@@ -98,6 +98,7 @@ · 97 unmodified lines
9898 #define MX25_INT_UART1 (NR_IRQS_LEGACY + 45)
9999 #define MX25_INT_GPIO2 (NR_IRQS_LEGACY + 51)
100100 #define MX25_INT_GPIO1 (NR_IRQS_LEGACY + 52)
101+#define MX25_INT_GPT1 (NR_IRQS_LEGACY + 54)
101102 #define MX25_INT_FEC (NR_IRQS_LEGACY + 57)
102103
103104 #define MX25_DMA_REQ_SSI2_RX1 22
arch/arm/plat-samsung/clock.c+6−4
@@ -144,6 +144,7 @@ long clk_round_rate(struct clk *clk, unsigned long rate) · 143 unmodified lines
144144
145145 int clk_set_rate(struct clk *clk, unsigned long rate)
146146 {
147+ unsigned long flags;
147148 int ret;
148149
149150 if (IS_ERR(clk))
@@ -159,9 +160,9 @@ int clk_set_rate(struct clk *clk, unsigned long rate) · 9 unmodified lines
159160 if (clk->ops == NULL || clk->ops->set_rate == NULL)
160161 return -EINVAL;
161162
162− spin_lock(&clocks_lock);
163+ spin_lock_irqsave(&clocks_lock, flags);
163164 ret = (clk->ops->set_rate)(clk, rate);
164− spin_unlock(&clocks_lock);
165+ spin_unlock_irqrestore(&clocks_lock, flags);
165166
166167 return ret;
167168 }
@@ -173,17 +174,18 @@ struct clk *clk_get_parent(struct clk *clk) · 5 unmodified lines
173174
174175 int clk_set_parent(struct clk *clk, struct clk *parent)
175176 {
177+ unsigned long flags;
176178 int ret = 0;
177179
178180 if (IS_ERR(clk))
179181 return -EINVAL;
180182
181− spin_lock(&clocks_lock);
183+ spin_lock_irqsave(&clocks_lock, flags);
182184
183185 if (clk->ops && clk->ops->set_parent)
184186 ret = (clk->ops->set_parent)(clk, parent);
185187
186− spin_unlock(&clocks_lock);
188+ spin_unlock_irqrestore(&clocks_lock, flags);
187189
188190 return ret;
189191 }