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

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:
"We have a fairly large batch of fixes this time around, mostly just
due to various platforms all having a fix or two more than usual.

Worth pointing out are:

- A fix for EDMA on Davinci/OMAP where channel allocation broke with
the DT conversion. Due to some miscommunication we didn't
understand the impact of the breakage, so we were pushing back on
it for 3.12, but it sounds like it's actually breaking quite a few
people out there.

- A bunch of fixes for Marvell platforms, some straggling fixes for
merge window fallout and some fixes for a couple of the platforms
(Netgear RN102 in particular).

- A fix for a race between multi-cluster power management and cpu
hotplug on Versatile Express.

And a bunch of other smaller fixes that all add up.

We'll be switching over into stricter regressions-only mode from here
on out"

* tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits)
ARM: multi_v7_defconfig: add SDHCI for i.MX
bus: mvebu-mbus: Fix optional pcie-mem/io-aperture properties
ARM: mvebu: add missing DT Mbus ranges and relocate PCIe DT nodes for RN102
ARM: at91: sam9g45: shutdown ddr1 too when rebooting
MAINTAINERS: ARM: SIRF: use kernel.org mail box
MAINTAINERS: ARM: SIRF: add missed drivers into maintain list
ARM: edma: Fix clearing of unused list for DT DMA resources
ARM: vexpress: tc2: fix hotplug/idle/kexec race on cluster power down
ARM: dts: sirf: fix interrupt and dma prop of VIP for prima2 and atlas6
ARM: dts: sirf: fix the ranges of peri-iobrg of prima2
ARM: dts: makefile: build atlas6-evb.dtb for ARCH_ATLAS6
ARM: dts: sirf: fix fifosize, clks, dma channels for UART
ARM: mvebu: Add DT entry for ReadyNAS 102 to use gpio-poweroff driver
ARM: mvebu: fix ReadyNAS 102 Power button GPIO to make it active high
ARM: mach-integrator: Add stub for pci_v3_early_init() for !CONFIG_PCI
ARM: shmobile: Remove #gpio-ranges-cells DT property
gpio: rcar: Remove #gpio-range-cells DT property usage
ARM: shmobile: armadillo: fixup ether pinctrl naming
ARM: shmobile: Lager: add Micrel KSZ8041 PHY fixup
ARM: shmobile: update SDHI DT compatibility string to the <unit>-<soc> format
...

+233 -78
+10 -7
Documentation/devicetree/bindings/mmc/tmio_mmc.txt
··· 9 9 described in mmc.txt, can be used. Additionally the following tmio_mmc-specific 10 10 optional bindings can be used. 11 11 12 + Required properties: 13 + - compatible: "renesas,sdhi-shmobile" - a generic sh-mobile SDHI unit 14 + "renesas,sdhi-sh7372" - SDHI IP on SH7372 SoC 15 + "renesas,sdhi-sh73a0" - SDHI IP on SH73A0 SoC 16 + "renesas,sdhi-r8a73a4" - SDHI IP on R8A73A4 SoC 17 + "renesas,sdhi-r8a7740" - SDHI IP on R8A7740 SoC 18 + "renesas,sdhi-r8a7778" - SDHI IP on R8A7778 SoC 19 + "renesas,sdhi-r8a7779" - SDHI IP on R8A7779 SoC 20 + "renesas,sdhi-r8a7790" - SDHI IP on R8A7790 SoC 21 + 12 22 Optional properties: 13 23 - toshiba,mmc-wrprotect-disable: write-protect detection is unavailable 14 - 15 - When used with Renesas SDHI hardware, the following compatibility strings 16 - configure various model-specific properties: 17 - 18 - "renesas,sh7372-sdhi": (default) compatible with SH7372 19 - "renesas,r8a7740-sdhi": compatible with R8A7740: certain MMC/SD commands have to 20 - wait for the interface to become idle.
+7 -1
MAINTAINERS
··· 824 824 F: arch/arm/mach-gemini/ 825 825 826 826 ARM/CSR SIRFPRIMA2 MACHINE SUPPORT 827 - M: Barry Song <baohua.song@csr.com> 827 + M: Barry Song <baohua@kernel.org> 828 828 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) 829 829 T: git git://git.kernel.org/pub/scm/linux/kernel/git/baohua/linux.git 830 830 S: Maintained 831 831 F: arch/arm/mach-prima2/ 832 + F: drivers/clk/clk-prima2.c 833 + F: drivers/clocksource/timer-prima2.c 834 + F: drivers/clocksource/timer-marco.c 832 835 F: drivers/dma/sirf-dma.c 833 836 F: drivers/i2c/busses/i2c-sirf.c 837 + F: drivers/input/misc/sirfsoc-onkey.c 838 + F: drivers/irqchip/irq-sirfsoc.c 834 839 F: drivers/mmc/host/sdhci-sirf.c 835 840 F: drivers/pinctrl/sirf/ 841 + F: drivers/rtc/rtc-sirfsoc.c 836 842 F: drivers/spi/spi-sirf.c 837 843 838 844 ARM/EBSA110 MACHINE SUPPORT
+2
arch/arm/boot/dts/Makefile
··· 41 41 dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dtb 42 42 dtb-$(CONFIG_ARCH_AT91) += sama5d35ek.dtb 43 43 44 + dtb-$(CONFIG_ARCH_ATLAS6) += atlas6-evb.dtb 45 + 44 46 dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb 45 47 dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb \ 46 48 bcm28155-ap.dtb
+32 -17
arch/arm/boot/dts/armada-370-netgear-rn102.dts
··· 27 27 }; 28 28 29 29 soc { 30 + ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000 31 + MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>; 32 + 33 + pcie-controller { 34 + status = "okay"; 35 + 36 + /* Connected to Marvell SATA controller */ 37 + pcie@1,0 { 38 + /* Port 0, Lane 0 */ 39 + status = "okay"; 40 + }; 41 + 42 + /* Connected to FL1009 USB 3.0 controller */ 43 + pcie@2,0 { 44 + /* Port 1, Lane 0 */ 45 + status = "okay"; 46 + }; 47 + }; 48 + 30 49 internal-regs { 31 50 serial@12000 { 32 51 clock-frequency = <200000000>; ··· 74 55 75 56 backup_led_pin: backup-led-pin { 76 57 marvell,pins = "mpp56"; 58 + marvell,function = "gpio"; 59 + }; 60 + 61 + poweroff: poweroff { 62 + marvell,pins = "mpp8"; 77 63 marvell,function = "gpio"; 78 64 }; 79 65 }; ··· 111 87 fan_gear_mode = <0>; 112 88 fan_startv = <1>; 113 89 pwm_polarity = <0>; 114 - }; 115 - }; 116 - 117 - pcie-controller { 118 - status = "okay"; 119 - 120 - /* Connected to Marvell SATA controller */ 121 - pcie@1,0 { 122 - /* Port 0, Lane 0 */ 123 - status = "okay"; 124 - }; 125 - 126 - /* Connected to FL1009 USB 3.0 controller */ 127 - pcie@2,0 { 128 - /* Port 1, Lane 0 */ 129 - status = "okay"; 130 90 }; 131 91 }; 132 92 }; ··· 168 160 button@1 { 169 161 label = "Power Button"; 170 162 linux,code = <116>; /* KEY_POWER */ 171 - gpios = <&gpio1 30 1>; 163 + gpios = <&gpio1 30 0>; 172 164 }; 173 165 174 166 button@2 { ··· 182 174 linux,code = <133>; /* KEY_COPY */ 183 175 gpios = <&gpio1 26 1>; 184 176 }; 177 + }; 178 + 179 + gpio_poweroff { 180 + compatible = "gpio-poweroff"; 181 + pinctrl-0 = <&poweroff>; 182 + pinctrl-names = "default"; 183 + gpios = <&gpio0 8 1>; 185 184 }; 186 185 187 186 };
+11
arch/arm/boot/dts/armada-xp.dtsi
··· 70 70 71 71 timer@20300 { 72 72 compatible = "marvell,armada-xp-timer"; 73 + clocks = <&coreclk 2>, <&refclk>; 74 + clock-names = "nbclk", "fixed"; 73 75 }; 74 76 75 77 coreclk: mvebu-sar@18230 { ··· 169 167 0x184d0 0x4>; 170 168 status = "okay"; 171 169 }; 170 + }; 171 + }; 172 + 173 + clocks { 174 + /* 25 MHz reference crystal */ 175 + refclk: oscillator { 176 + compatible = "fixed-clock"; 177 + #clock-cells = <0>; 178 + clock-frequency = <25000000>; 172 179 }; 173 180 }; 174 181 };
+4 -2
arch/arm/boot/dts/at91sam9x5.dtsi
··· 190 190 AT91_PIOA 8 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PA8 periph A */ 191 191 }; 192 192 193 - pinctrl_uart2_rts: uart2_rts-0 { 193 + pinctrl_usart2_rts: usart2_rts-0 { 194 194 atmel,pins = 195 195 <AT91_PIOB 0 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB0 periph B */ 196 196 }; 197 197 198 - pinctrl_uart2_cts: uart2_cts-0 { 198 + pinctrl_usart2_cts: usart2_cts-0 { 199 199 atmel,pins = 200 200 <AT91_PIOB 1 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* PB1 periph B */ 201 201 }; ··· 556 556 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>; 557 557 dmas = <&dma0 1 AT91_DMA_CFG_PER_ID(0)>; 558 558 dma-names = "rxtx"; 559 + pinctrl-names = "default"; 559 560 #address-cells = <1>; 560 561 #size-cells = <0>; 561 562 status = "disabled"; ··· 568 567 interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>; 569 568 dmas = <&dma1 1 AT91_DMA_CFG_PER_ID(0)>; 570 569 dma-names = "rxtx"; 570 + pinctrl-names = "default"; 571 571 #address-cells = <1>; 572 572 #size-cells = <0>; 573 573 status = "disabled";
+12
arch/arm/boot/dts/atlas6.dtsi
··· 181 181 interrupts = <17>; 182 182 fifosize = <128>; 183 183 clocks = <&clks 13>; 184 + sirf,uart-dma-rx-channel = <21>; 185 + sirf,uart-dma-tx-channel = <2>; 184 186 }; 185 187 186 188 uart1: uart@b0060000 { ··· 201 199 interrupts = <19>; 202 200 fifosize = <128>; 203 201 clocks = <&clks 15>; 202 + sirf,uart-dma-rx-channel = <6>; 203 + sirf,uart-dma-tx-channel = <7>; 204 204 }; 205 205 206 206 usp0: usp@b0080000 { ··· 210 206 compatible = "sirf,prima2-usp"; 211 207 reg = <0xb0080000 0x10000>; 212 208 interrupts = <20>; 209 + fifosize = <128>; 213 210 clocks = <&clks 28>; 211 + sirf,usp-dma-rx-channel = <17>; 212 + sirf,usp-dma-tx-channel = <18>; 214 213 }; 215 214 216 215 usp1: usp@b0090000 { ··· 221 214 compatible = "sirf,prima2-usp"; 222 215 reg = <0xb0090000 0x10000>; 223 216 interrupts = <21>; 217 + fifosize = <128>; 224 218 clocks = <&clks 29>; 219 + sirf,usp-dma-rx-channel = <14>; 220 + sirf,usp-dma-tx-channel = <15>; 225 221 }; 226 222 227 223 dmac0: dma-controller@b00b0000 { ··· 247 237 compatible = "sirf,prima2-vip"; 248 238 reg = <0xb00C0000 0x10000>; 249 239 clocks = <&clks 31>; 240 + interrupts = <14>; 241 + sirf,vip-dma-rx-channel = <16>; 250 242 }; 251 243 252 244 spi0: spi@b00d0000 {
+2 -1
arch/arm/boot/dts/kirkwood.dtsi
··· 13 13 cpu@0 { 14 14 device_type = "cpu"; 15 15 compatible = "marvell,feroceon"; 16 + reg = <0>; 16 17 clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>; 17 18 clock-names = "cpu_clk", "ddrclk", "powersave"; 18 19 }; ··· 168 167 xor@60900 { 169 168 compatible = "marvell,orion-xor"; 170 169 reg = <0x60900 0x100 171 - 0xd0B00 0x100>; 170 + 0x60B00 0x100>; 172 171 status = "okay"; 173 172 clocks = <&gate_clk 16>; 174 173
+23 -4
arch/arm/boot/dts/prima2.dtsi
··· 171 171 compatible = "simple-bus"; 172 172 #address-cells = <1>; 173 173 #size-cells = <1>; 174 - ranges = <0xb0000000 0xb0000000 0x180000>; 174 + ranges = <0xb0000000 0xb0000000 0x180000>, 175 + <0x56000000 0x56000000 0x1b00000>; 175 176 176 177 timer@b0020000 { 177 178 compatible = "sirf,prima2-tick"; ··· 197 196 uart0: uart@b0050000 { 198 197 cell-index = <0>; 199 198 compatible = "sirf,prima2-uart"; 200 - reg = <0xb0050000 0x10000>; 199 + reg = <0xb0050000 0x1000>; 201 200 interrupts = <17>; 201 + fifosize = <128>; 202 202 clocks = <&clks 13>; 203 + sirf,uart-dma-rx-channel = <21>; 204 + sirf,uart-dma-tx-channel = <2>; 203 205 }; 204 206 205 207 uart1: uart@b0060000 { 206 208 cell-index = <1>; 207 209 compatible = "sirf,prima2-uart"; 208 - reg = <0xb0060000 0x10000>; 210 + reg = <0xb0060000 0x1000>; 209 211 interrupts = <18>; 212 + fifosize = <32>; 210 213 clocks = <&clks 14>; 211 214 }; 212 215 213 216 uart2: uart@b0070000 { 214 217 cell-index = <2>; 215 218 compatible = "sirf,prima2-uart"; 216 - reg = <0xb0070000 0x10000>; 219 + reg = <0xb0070000 0x1000>; 217 220 interrupts = <19>; 221 + fifosize = <128>; 218 222 clocks = <&clks 15>; 223 + sirf,uart-dma-rx-channel = <6>; 224 + sirf,uart-dma-tx-channel = <7>; 219 225 }; 220 226 221 227 usp0: usp@b0080000 { ··· 230 222 compatible = "sirf,prima2-usp"; 231 223 reg = <0xb0080000 0x10000>; 232 224 interrupts = <20>; 225 + fifosize = <128>; 233 226 clocks = <&clks 28>; 227 + sirf,usp-dma-rx-channel = <17>; 228 + sirf,usp-dma-tx-channel = <18>; 234 229 }; 235 230 236 231 usp1: usp@b0090000 { ··· 241 230 compatible = "sirf,prima2-usp"; 242 231 reg = <0xb0090000 0x10000>; 243 232 interrupts = <21>; 233 + fifosize = <128>; 244 234 clocks = <&clks 29>; 235 + sirf,usp-dma-rx-channel = <14>; 236 + sirf,usp-dma-tx-channel = <15>; 245 237 }; 246 238 247 239 usp2: usp@b00a0000 { ··· 252 238 compatible = "sirf,prima2-usp"; 253 239 reg = <0xb00a0000 0x10000>; 254 240 interrupts = <22>; 241 + fifosize = <128>; 255 242 clocks = <&clks 30>; 243 + sirf,usp-dma-rx-channel = <10>; 244 + sirf,usp-dma-tx-channel = <11>; 256 245 }; 257 246 258 247 dmac0: dma-controller@b00b0000 { ··· 278 261 compatible = "sirf,prima2-vip"; 279 262 reg = <0xb00C0000 0x10000>; 280 263 clocks = <&clks 31>; 264 + interrupts = <14>; 265 + sirf,vip-dma-rx-channel = <16>; 281 266 }; 282 267 283 268 spi0: spi@b00d0000 {
+3 -3
arch/arm/boot/dts/r8a73a4.dtsi
··· 193 193 }; 194 194 195 195 sdhi0: sdhi@ee100000 { 196 - compatible = "renesas,r8a73a4-sdhi"; 196 + compatible = "renesas,sdhi-r8a73a4"; 197 197 reg = <0 0xee100000 0 0x100>; 198 198 interrupt-parent = <&gic>; 199 199 interrupts = <0 165 4>; ··· 202 202 }; 203 203 204 204 sdhi1: sdhi@ee120000 { 205 - compatible = "renesas,r8a73a4-sdhi"; 205 + compatible = "renesas,sdhi-r8a73a4"; 206 206 reg = <0 0xee120000 0 0x100>; 207 207 interrupt-parent = <&gic>; 208 208 interrupts = <0 166 4>; ··· 211 211 }; 212 212 213 213 sdhi2: sdhi@ee140000 { 214 - compatible = "renesas,r8a73a4-sdhi"; 214 + compatible = "renesas,sdhi-r8a73a4"; 215 215 reg = <0 0xee140000 0 0x100>; 216 216 interrupt-parent = <&gic>; 217 217 interrupts = <0 167 4>;
-1
arch/arm/boot/dts/r8a7778.dtsi
··· 96 96 pfc: pfc@fffc0000 { 97 97 compatible = "renesas,pfc-r8a7778"; 98 98 reg = <0xfffc000 0x118>; 99 - #gpio-range-cells = <3>; 100 99 }; 101 100 };
-1
arch/arm/boot/dts/r8a7779.dtsi
··· 188 188 pfc: pfc@fffc0000 { 189 189 compatible = "renesas,pfc-r8a7779"; 190 190 reg = <0xfffc0000 0x23c>; 191 - #gpio-range-cells = <3>; 192 191 }; 193 192 194 193 thermal@ffc48000 {
+4 -5
arch/arm/boot/dts/r8a7790.dtsi
··· 148 148 pfc: pfc@e6060000 { 149 149 compatible = "renesas,pfc-r8a7790"; 150 150 reg = <0 0xe6060000 0 0x250>; 151 - #gpio-range-cells = <3>; 152 151 }; 153 152 154 153 sdhi0: sdhi@ee100000 { 155 - compatible = "renesas,r8a7790-sdhi"; 154 + compatible = "renesas,sdhi-r8a7790"; 156 155 reg = <0 0xee100000 0 0x100>; 157 156 interrupt-parent = <&gic>; 158 157 interrupts = <0 165 4>; ··· 160 161 }; 161 162 162 163 sdhi1: sdhi@ee120000 { 163 - compatible = "renesas,r8a7790-sdhi"; 164 + compatible = "renesas,sdhi-r8a7790"; 164 165 reg = <0 0xee120000 0 0x100>; 165 166 interrupt-parent = <&gic>; 166 167 interrupts = <0 166 4>; ··· 169 170 }; 170 171 171 172 sdhi2: sdhi@ee140000 { 172 - compatible = "renesas,r8a7790-sdhi"; 173 + compatible = "renesas,sdhi-r8a7790"; 173 174 reg = <0 0xee140000 0 0x100>; 174 175 interrupt-parent = <&gic>; 175 176 interrupts = <0 167 4>; ··· 178 179 }; 179 180 180 181 sdhi3: sdhi@ee160000 { 181 - compatible = "renesas,r8a7790-sdhi"; 182 + compatible = "renesas,sdhi-r8a7790"; 182 183 reg = <0 0xee160000 0 0x100>; 183 184 interrupt-parent = <&gic>; 184 185 interrupts = <0 168 4>;
+3 -3
arch/arm/boot/dts/sh73a0.dtsi
··· 196 196 }; 197 197 198 198 sdhi0: sdhi@ee100000 { 199 - compatible = "renesas,r8a7740-sdhi"; 199 + compatible = "renesas,sdhi-r8a7740"; 200 200 reg = <0xee100000 0x100>; 201 201 interrupt-parent = <&gic>; 202 202 interrupts = <0 83 4 ··· 208 208 209 209 /* SDHI1 and SDHI2 have no CD pins, no need for CD IRQ */ 210 210 sdhi1: sdhi@ee120000 { 211 - compatible = "renesas,r8a7740-sdhi"; 211 + compatible = "renesas,sdhi-r8a7740"; 212 212 reg = <0xee120000 0x100>; 213 213 interrupt-parent = <&gic>; 214 214 interrupts = <0 88 4 ··· 219 219 }; 220 220 221 221 sdhi2: sdhi@ee140000 { 222 - compatible = "renesas,r8a7740-sdhi"; 222 + compatible = "renesas,sdhi-r8a7740"; 223 223 reg = <0xee140000 0x100>; 224 224 interrupt-parent = <&gic>; 225 225 interrupts = <0 104 4
+31 -7
arch/arm/common/edma.c
··· 269 269 .ccnt = 1, 270 270 }; 271 271 272 + static const struct of_device_id edma_of_ids[] = { 273 + { .compatible = "ti,edma3", }, 274 + {} 275 + }; 276 + 272 277 /*****************************************************************************/ 273 278 274 279 static void map_dmach_queue(unsigned ctlr, unsigned ch_no, ··· 565 560 static int prepare_unused_channel_list(struct device *dev, void *data) 566 561 { 567 562 struct platform_device *pdev = to_platform_device(dev); 568 - int i, ctlr; 563 + int i, count, ctlr; 564 + struct of_phandle_args dma_spec; 569 565 566 + if (dev->of_node) { 567 + count = of_property_count_strings(dev->of_node, "dma-names"); 568 + if (count < 0) 569 + return 0; 570 + for (i = 0; i < count; i++) { 571 + if (of_parse_phandle_with_args(dev->of_node, "dmas", 572 + "#dma-cells", i, 573 + &dma_spec)) 574 + continue; 575 + 576 + if (!of_match_node(edma_of_ids, dma_spec.np)) { 577 + of_node_put(dma_spec.np); 578 + continue; 579 + } 580 + 581 + clear_bit(EDMA_CHAN_SLOT(dma_spec.args[0]), 582 + edma_cc[0]->edma_unused); 583 + of_node_put(dma_spec.np); 584 + } 585 + return 0; 586 + } 587 + 588 + /* For non-OF case */ 570 589 for (i = 0; i < pdev->num_resources; i++) { 571 590 if ((pdev->resource[i].flags & IORESOURCE_DMA) && 572 591 (int)pdev->resource[i].start >= 0) { 573 592 ctlr = EDMA_CTLR(pdev->resource[i].start); 574 593 clear_bit(EDMA_CHAN_SLOT(pdev->resource[i].start), 575 - edma_cc[ctlr]->edma_unused); 594 + edma_cc[ctlr]->edma_unused); 576 595 } 577 596 } 578 597 ··· 1790 1761 1791 1762 return 0; 1792 1763 } 1793 - 1794 - static const struct of_device_id edma_of_ids[] = { 1795 - { .compatible = "ti,edma3", }, 1796 - {} 1797 - }; 1798 1764 1799 1765 static struct platform_driver edma_driver = { 1800 1766 .driver = {
+1
arch/arm/configs/multi_v7_defconfig
··· 135 135 CONFIG_MMC_ARMMMCI=y 136 136 CONFIG_MMC_SDHCI=y 137 137 CONFIG_MMC_SDHCI_PLTFM=y 138 + CONFIG_MMC_SDHCI_ESDHC_IMX=y 138 139 CONFIG_MMC_SDHCI_TEGRA=y 139 140 CONFIG_MMC_SDHCI_SPEAR=y 140 141 CONFIG_MMC_OMAP=y
+1 -1
arch/arm/mach-at91/at91rm9200_time.c
··· 93 93 94 94 static struct irqaction at91rm9200_timer_irq = { 95 95 .name = "at91_tick", 96 - .flags = IRQF_SHARED | IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, 96 + .flags = IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, 97 97 .handler = at91rm9200_timer_interrupt, 98 98 .irq = NR_IRQS_LEGACY + AT91_ID_SYS, 99 99 };
+1 -1
arch/arm/mach-at91/at91sam926x_time.c
··· 171 171 172 172 static struct irqaction at91sam926x_pit_irq = { 173 173 .name = "at91_tick", 174 - .flags = IRQF_SHARED | IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, 174 + .flags = IRQF_SHARED | IRQF_TIMER | IRQF_IRQPOLL, 175 175 .handler = at91sam926x_pit_interrupt, 176 176 .irq = NR_IRQS_LEGACY + AT91_ID_SYS, 177 177 };
+8
arch/arm/mach-at91/at91sam9g45_reset.S
··· 16 16 #include "at91_rstc.h" 17 17 .arm 18 18 19 + /* 20 + * at91_ramc_base is an array void* 21 + * init at NULL if only one DDR controler is present in or DT 22 + */ 19 23 .globl at91sam9g45_restart 20 24 21 25 at91sam9g45_restart: 22 26 ldr r5, =at91_ramc_base @ preload constants 23 27 ldr r0, [r5] 28 + ldr r5, [r5, #4] @ ddr1 29 + cmp r5, #0 24 30 ldr r4, =at91_rstc_base 25 31 ldr r1, [r4] 26 32 ··· 36 30 37 31 .balign 32 @ align to cache line 38 32 33 + strne r2, [r5, #AT91_DDRSDRC_RTR] @ disable DDR1 access 34 + strne r3, [r5, #AT91_DDRSDRC_LPR] @ power down DDR1 39 35 str r2, [r0, #AT91_DDRSDRC_RTR] @ disable DDR0 access 40 36 str r3, [r0, #AT91_DDRSDRC_LPR] @ power down DDR0 41 37 str r4, [r1, #AT91_RSTC_CR] @ reset processor
+1 -1
arch/arm/mach-at91/at91x40_time.c
··· 57 57 58 58 static struct irqaction at91x40_timer_irq = { 59 59 .name = "at91_tick", 60 - .flags = IRQF_DISABLED | IRQF_TIMER, 60 + .flags = IRQF_TIMER, 61 61 .handler = at91x40_timer_interrupt 62 62 }; 63 63
+1 -1
arch/arm/mach-davinci/board-dm365-evm.c
··· 176 176 .context = (void *)0x7f00, 177 177 }; 178 178 179 - static struct snd_platform_data dm365_evm_snd_data = { 179 + static struct snd_platform_data dm365_evm_snd_data __maybe_unused = { 180 180 .asp_chan_q = EVENTQ_3, 181 181 }; 182 182
+2 -2
arch/arm/mach-davinci/include/mach/serial.h
··· 15 15 16 16 #include <mach/hardware.h> 17 17 18 - #include <linux/platform_device.h> 19 - 20 18 #define DAVINCI_UART0_BASE (IO_PHYS + 0x20000) 21 19 #define DAVINCI_UART1_BASE (IO_PHYS + 0x20400) 22 20 #define DAVINCI_UART2_BASE (IO_PHYS + 0x20800) ··· 37 39 #define UART_DM646X_SCR_TX_WATERMARK 0x08 38 40 39 41 #ifndef __ASSEMBLY__ 42 + #include <linux/platform_device.h> 43 + 40 44 extern int davinci_serial_init(struct platform_device *); 41 45 #endif 42 46
+7
arch/arm/mach-integrator/pci_v3.h
··· 1 1 /* Simple oneliner include to the PCIv3 early init */ 2 + #ifdef CONFIG_PCI 2 3 extern int pci_v3_early_init(void); 4 + #else 5 + static inline int pci_v3_early_init(void) 6 + { 7 + return 0; 8 + } 9 + #endif
+7 -1
arch/arm/mach-mvebu/coherency.c
··· 140 140 coherency_base = of_iomap(np, 0); 141 141 coherency_cpu_base = of_iomap(np, 1); 142 142 set_cpu_coherent(cpu_logical_map(smp_processor_id()), 0); 143 + of_node_put(np); 143 144 } 144 145 145 146 return 0; ··· 148 147 149 148 static int __init coherency_late_init(void) 150 149 { 151 - if (of_find_matching_node(NULL, of_coherency_table)) 150 + struct device_node *np; 151 + 152 + np = of_find_matching_node(NULL, of_coherency_table); 153 + if (np) { 152 154 bus_register_notifier(&platform_bus_type, 153 155 &mvebu_hwcc_platform_nb); 156 + of_node_put(np); 157 + } 154 158 return 0; 155 159 } 156 160
+1
arch/arm/mach-mvebu/pmsu.c
··· 67 67 pr_info("Initializing Power Management Service Unit\n"); 68 68 pmsu_mp_base = of_iomap(np, 0); 69 69 pmsu_reset_base = of_iomap(np, 1); 70 + of_node_put(np); 70 71 } 71 72 72 73 return 0;
+1
arch/arm/mach-mvebu/system-controller.c
··· 98 98 BUG_ON(!match); 99 99 system_controller_base = of_iomap(np, 0); 100 100 mvebu_sc = (struct mvebu_system_controller *)match->data; 101 + of_node_put(np); 101 102 } 102 103 103 104 return 0;
+2 -2
arch/arm/mach-shmobile/board-armadillo800eva.c
··· 1108 1108 PIN_MAP_MUX_GROUP_DEFAULT("asoc-simple-card.1", "pfc-r8a7740", 1109 1109 "fsib_mclk_in", "fsib"), 1110 1110 /* GETHER */ 1111 - PIN_MAP_MUX_GROUP_DEFAULT("sh-eth", "pfc-r8a7740", 1111 + PIN_MAP_MUX_GROUP_DEFAULT("r8a7740-gether", "pfc-r8a7740", 1112 1112 "gether_mii", "gether"), 1113 - PIN_MAP_MUX_GROUP_DEFAULT("sh-eth", "pfc-r8a7740", 1113 + PIN_MAP_MUX_GROUP_DEFAULT("r8a7740-gether", "pfc-r8a7740", 1114 1114 "gether_int", "gether"), 1115 1115 /* HDMI */ 1116 1116 PIN_MAP_MUX_GROUP_DEFAULT("sh-mobile-hdmi", "pfc-r8a7740",
+26 -1
arch/arm/mach-shmobile/board-lager.c
··· 29 29 #include <linux/pinctrl/machine.h> 30 30 #include <linux/platform_data/gpio-rcar.h> 31 31 #include <linux/platform_device.h> 32 + #include <linux/phy.h> 32 33 #include <linux/regulator/fixed.h> 33 34 #include <linux/regulator/machine.h> 34 35 #include <linux/sh_eth.h> ··· 156 155 &ether_pdata, sizeof(ether_pdata)); 157 156 } 158 157 158 + /* 159 + * Ether LEDs on the Lager board are named LINK and ACTIVE which corresponds 160 + * to non-default 01 setting of the Micrel KSZ8041 PHY control register 1 bits 161 + * 14-15. We have to set them back to 01 from the default 00 value each time 162 + * the PHY is reset. It's also important because the PHY's LED0 signal is 163 + * connected to SoC's ETH_LINK signal and in the PHY's default mode it will 164 + * bounce on and off after each packet, which we apparently want to avoid. 165 + */ 166 + static int lager_ksz8041_fixup(struct phy_device *phydev) 167 + { 168 + u16 phyctrl1 = phy_read(phydev, 0x1e); 169 + 170 + phyctrl1 &= ~0xc000; 171 + phyctrl1 |= 0x4000; 172 + return phy_write(phydev, 0x1e, phyctrl1); 173 + } 174 + 175 + static void __init lager_init(void) 176 + { 177 + lager_add_standard_devices(); 178 + 179 + phy_register_fixup_for_id("r8a7790-ether-ff:01", lager_ksz8041_fixup); 180 + } 181 + 159 182 static const char *lager_boards_compat_dt[] __initdata = { 160 183 "renesas,lager", 161 184 NULL, ··· 188 163 DT_MACHINE_START(LAGER_DT, "lager") 189 164 .init_early = r8a7790_init_delay, 190 165 .init_time = r8a7790_timer_init, 191 - .init_machine = lager_add_standard_devices, 166 + .init_machine = lager_init, 192 167 .dt_compat = lager_boards_compat_dt, 193 168 MACHINE_END
+10 -1
arch/arm/mach-vexpress/tc2_pm.c
··· 131 131 } else 132 132 BUG(); 133 133 134 + /* 135 + * If the CPU is committed to power down, make sure 136 + * the power controller will be in charge of waking it 137 + * up upon IRQ, ie IRQ lines are cut from GIC CPU IF 138 + * to the CPU by disabling the GIC CPU IF to prevent wfi 139 + * from completing execution behind power controller back 140 + */ 141 + if (!skip_wfi) 142 + gic_cpu_if_down(); 143 + 134 144 if (last_man && __mcpm_outbound_enter_critical(cpu, cluster)) { 135 145 arch_spin_unlock(&tc2_pm_lock); 136 146 ··· 241 231 cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); 242 232 cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); 243 233 ve_spc_set_resume_addr(cluster, cpu, virt_to_phys(mcpm_entry_point)); 244 - gic_cpu_if_down(); 245 234 tc2_pm_down(residency); 246 235 } 247 236
+9 -3
drivers/bus/mvebu-mbus.c
··· 700 700 phys_addr_t sdramwins_phys_base, 701 701 size_t sdramwins_size) 702 702 { 703 + struct device_node *np; 703 704 int win; 704 705 705 706 mbus->mbuswins_base = ioremap(mbuswins_phys_base, mbuswins_size); ··· 713 712 return -ENOMEM; 714 713 } 715 714 716 - if (of_find_compatible_node(NULL, NULL, "marvell,coherency-fabric")) 715 + np = of_find_compatible_node(NULL, NULL, "marvell,coherency-fabric"); 716 + if (np) { 717 717 mbus->hw_io_coherency = 1; 718 + of_node_put(np); 719 + } 718 720 719 721 for (win = 0; win < mbus->soc->num_wins; win++) 720 722 mvebu_mbus_disable_window(mbus, win); ··· 865 861 int ret; 866 862 867 863 /* 868 - * These are optional, so we clear them and they'll 869 - * be zero if they are missing from the DT. 864 + * These are optional, so we make sure that resource_size(x) will 865 + * return 0. 870 866 */ 871 867 memset(mem, 0, sizeof(struct resource)); 868 + mem->end = -1; 872 869 memset(io, 0, sizeof(struct resource)); 870 + io->end = -1; 873 871 874 872 ret = of_property_read_u32_array(np, "pcie-mem-aperture", reg, ARRAY_SIZE(reg)); 875 873 if (!ret) {
+3 -4
drivers/gpio/gpio-rcar.c
··· 293 293 if (pdata) { 294 294 p->config = *pdata; 295 295 } else if (IS_ENABLED(CONFIG_OF) && np) { 296 - ret = of_parse_phandle_with_args(np, "gpio-ranges", 297 - "#gpio-range-cells", 0, &args); 298 - p->config.number_of_pins = ret == 0 && args.args_count == 3 299 - ? args.args[2] 296 + ret = of_parse_phandle_with_fixed_args(np, "gpio-ranges", 3, 0, 297 + &args); 298 + p->config.number_of_pins = ret == 0 ? args.args[2] 300 299 : RCAR_MAX_GPIO_PER_BANK; 301 300 p->config.gpio_base = -1; 302 301 }
+8 -8
drivers/mmc/host/sh_mobile_sdhi.c
··· 113 113 }; 114 114 115 115 static const struct of_device_id sh_mobile_sdhi_of_match[] = { 116 - { .compatible = "renesas,shmobile-sdhi" }, 117 - { .compatible = "renesas,sh7372-sdhi" }, 118 - { .compatible = "renesas,sh73a0-sdhi", .data = &sh_mobile_sdhi_of_cfg[0], }, 119 - { .compatible = "renesas,r8a73a4-sdhi", .data = &sh_mobile_sdhi_of_cfg[0], }, 120 - { .compatible = "renesas,r8a7740-sdhi", .data = &sh_mobile_sdhi_of_cfg[0], }, 121 - { .compatible = "renesas,r8a7778-sdhi", .data = &sh_mobile_sdhi_of_cfg[0], }, 122 - { .compatible = "renesas,r8a7779-sdhi", .data = &sh_mobile_sdhi_of_cfg[0], }, 123 - { .compatible = "renesas,r8a7790-sdhi", .data = &sh_mobile_sdhi_of_cfg[0], }, 116 + { .compatible = "renesas,sdhi-shmobile" }, 117 + { .compatible = "renesas,sdhi-sh7372" }, 118 + { .compatible = "renesas,sdhi-sh73a0", .data = &sh_mobile_sdhi_of_cfg[0], }, 119 + { .compatible = "renesas,sdhi-r8a73a4", .data = &sh_mobile_sdhi_of_cfg[0], }, 120 + { .compatible = "renesas,sdhi-r8a7740", .data = &sh_mobile_sdhi_of_cfg[0], }, 121 + { .compatible = "renesas,sdhi-r8a7778", .data = &sh_mobile_sdhi_of_cfg[0], }, 122 + { .compatible = "renesas,sdhi-r8a7779", .data = &sh_mobile_sdhi_of_cfg[0], }, 123 + { .compatible = "renesas,sdhi-r8a7790", .data = &sh_mobile_sdhi_of_cfg[0], }, 124 124 {}, 125 125 }; 126 126 MODULE_DEVICE_TABLE(of, sh_mobile_sdhi_of_match);