Commit Graph

533385 Commits

Author SHA1 Message Date
Nicolas Ferre
c268a74310 ARM: at91/soc: add basic support for new sama5d2 SoC
Add Kconfig entries, header file changes and addition to the documentation.
The early debug infrastructure is also added for easy development.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2015-08-05 10:40:21 +02:00
Jun Nie
f15107f412 ARM: zx: Add power domains for ZX296702
Add power domains for ZX296702 to power off
inactive power domains in runtime.

Signed-off-by: Jun Nie <jun.nie@linaro.org>
[olof: Marked zx296702_pd_driver as __initdata to avoid section mismatch]
Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-30 14:36:36 +02:00
Olof Johansson
2eb084eb1f SoCFPGA updates for v4.3
- Add smp.ops.cpu_kill() for kexec
 - Add reboot capability for Arria10
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVt50rAAoJEBmUBAuBoyj0IRkP/izBracXfmwg511SPRjlpN+y
 +azWqkykxPXLJ47HM8pNuEeki06U27Lb42rB8tdrDXEaXfqcE5iUmxUdwkNeIXwt
 gZeUBuV93bhYI/ZNpsxSPE2mN7OartyRy1N522n/fzVWBso88wzNHuiYAhuTY31I
 0MEd7n4VoT1jGVE92DrM/K7Fhf/YFk/mcWjq+Jx9LITwEWma/p+ET2GQ3fFH2X/U
 srRxePJbVjVLyUnjFqJmOemHblAu5BZ3BuwWv8g8x/yAK140mPiJ+X33i1soMcvE
 9xOm8ctcaHO3rYBRhdd62K0O2yXU2NcJNSHAq+JtrsdJZx3qp0frSIHfwQokbuMZ
 3GhSJ1jytb3jGg9hcm8lELxv+HHq8eaDmfB8yMpNtrMbLw5ldAZ3or926moXK2HV
 meKBcBQgtz6jf735QZm8+RXk7YJ41RTUOR8zkIPelVFNVov4/ihhZ33588Hh/a+S
 Oi6pGQH8Oo8iTlE/MIxCpYxSWsrKHZzTT+Bvi33FSlzrskVTlfjirhYdfNwXDQP0
 k4XcVbZJ9OzpXC32QIj7A2x7A+9eAYgQG4fd8TeQpqY78zdkQk6l1TYYVDay+A5P
 TGmHU/hJsaAlb/6m5iH5IWWEnJjYY8yWjxn303P4ZREocPfafSvzr8km8xd46MoA
 H0lBalxqlm3T43W3i3yz
 =ZR5T
 -----END PGP SIGNATURE-----

Merge tag 'socfpga_updates_for_v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/soc

SoCFPGA updates for v4.3
- Add smp.ops.cpu_kill() for kexec
- Add reboot capability for Arria10

* tag 'socfpga_updates_for_v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  ARM: socfpga: add reset for the Arria 10 platform
  ARM: socfpga: add smp_ops.cpu_kill to make kexec/kdump available

Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-28 18:26:14 +02:00
Olof Johansson
0c21bcb616 - ARM: mediatek: Add regmap to mediatek Kconfig
- soc: mediatek: Drop owner assignment from platform_driver
 - soc: Mediatek: Add SCPSYS power domain driver
 - dt-bindings: soc: Add documentation for the MediaTek SCPSYS unit
 - soc: mediatek: Add infracfg misc driver support
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVt2EHAAoJELQ5Ylss8dNDHA0QAIqW6e/OIKNyJm1ykGEYHqtx
 1fKyQmjRPN1/VEl13UaXOg/Ke2JdeloJr0Yi/0NI0Si/Sy0i1dtnNcUIkgUZ9hYc
 WbeSSydQWoj8+023BsuXy07+xXnnrJbN4XRVcFfAMagKYJhlewVZi6x1avPmrlJC
 8XGck4D1M6qyW9nbdIBr1qx71kunzZQkHJ/bVg0kt/0nYYF+FkrFXEWcGa+Cc8IC
 QbCe1X7GhsVRnEelwcXK6J6k964mhhKhTmdvK5oMJDNvtNF7+KiH3luLJSY4XTlI
 Ao8aBvsNSnAt6qYOoojG1MwohdR/X1vvxhi+hLJ1vV1Znp4wmJmSFyYZKaaiX+/d
 M5/q3Ve3b7kfEPpliqikSYV1X3cC7twEKsER3egvy+NheAdyhQDJUA7HDfKiPT41
 HVWXZB0na7SiNT54cWagGjPH3KNTcttnhhzx1dHrkgT9FD+2HCX5qlqB9E7OEWgD
 kgSh/yHPqc5jyjmqvKhCS87Pq9Usik6n8XsLdn/Kx5eOQhv6sp+y8GP1x1bINXfP
 lwEeBc4tzjHujGsRz6fJRmsvvj+ZvB2bHig+XxnSWz+RXJiRPtHswSb5MimAjrhE
 Eie03qavgV5PW1dmK0+I/DTsi6J6IbxmlE670HGWqRZyoF9cITf8CnjS+b5bgOVO
 qQqnKEUIbnJwjYiSP2Y0
 =sRus
 -----END PGP SIGNATURE-----

Merge tag 'v4.2-next-soc' of https://github.com/mbgg/linux-mediatek into next/soc

- ARM: mediatek: Add regmap to mediatek Kconfig
- soc: mediatek: Drop owner assignment from platform_driver
- soc: Mediatek: Add SCPSYS power domain driver
- dt-bindings: soc: Add documentation for the MediaTek SCPSYS unit
- soc: mediatek: Add infracfg misc driver support

* tag 'v4.2-next-soc' of https://github.com/mbgg/linux-mediatek:
  ARM: mediatek: Add regmap to mediatek Kconfig
  soc: mediatek: Drop owner assignment from platform_driver
  soc: Mediatek: Add SCPSYS power domain driver
  dt-bindings: soc: Add documentation for the MediaTek SCPSYS unit
  soc: mediatek: Add infracfg misc driver support

Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-28 18:17:31 +02:00
Masahiro Yamada
a3ff83d205 MAINTAINERS: add entries for UniPhier device trees and drivers
This clarifies the location of the files maintained by me.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-27 14:55:21 +02:00
Olof Johansson
a9a7f260e0 This is the pxa changes for v4.3 cycle.
There is mostly one evolution on the dma side, to enable cooperation
 of the legacy pxa DMA API, and the new dmaengine API.
 Once all drivers using DMA are converted, the legacy DMA API should
 be removed.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVqigoAAoJEAP2et0duMsSDNQP/idE619mjen6EJkKXFAB96HU
 /c3/i9ySIF6mMWu95BFIiyRkQJJ4mFYl9SzwJui/9T00pE02531Klysz5TT2D5Ic
 k2YRfA54h1SkUQay2BLefot0MmLwjV31nojXApap/PUYNMhUQHHzyr7XEE4t0Dxu
 uRbmlrSbURFHfMyea0DUQYlMds92YgqpQmj9BGw2zgvU3PpFkg65Y0W70yJecaHQ
 JgXX3UhvRd7HgRN0xsoJQGvtEF3WGSuEbgWqCYCBw5SEZSqGVwu8fpSoGlwId7yY
 ZVdNNUv5ZSrqYP7bH8321jPiUbBUqVM3B4CPYWm2IswAh9KJmG/Mrhh/z3N6c4PJ
 4yq7MathipykILU+KjfsHicZy00NG/OcF04iI42DgvAolBKAGSC3RNgsrMmgi25r
 l73vj79/elsGm76Pm4x6twF4mlhpqCLHwkIDFJn7/P7y0mcscszFSKTSfXK1YgFM
 Q0EKLTG6IQZfDwUyO1kY7ZsRF77amSbWBBEB4mJIO7qB79DPi6zHT3CgHTaKCpMZ
 E3JA81RtZpadqvu7QDd8Gs00nUF9wgQR1DlS0iwNHCVldXf6G8CNqaMAXfAsRmmo
 CPK8xoAVxDHUVcuowuYSWRyQaCopIBcC36P9gOEt96zuFA+K3ZHm8cjoz46/hwei
 AiL9MXAWZwUQcYRSbTCC
 =sHkc
 -----END PGP SIGNATURE-----

Merge tag 'pxa-for-4.3-v2' of https://github.com/rjarzmik/linux into next/soc

This is the pxa changes for v4.3 cycle.

There is mostly one evolution on the dma side, to enable cooperation
of the legacy pxa DMA API, and the new dmaengine API.
Once all drivers using DMA are converted, the legacy DMA API should
be removed.

* tag 'pxa-for-4.3-v2' of https://github.com/rjarzmik/linux:
  ARM: pxa: Use setup_timer
  ARM: pxa: Use module_platform_driver
  ARM: pxa: transition to dmaengine phase 1

Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-27 14:49:24 +02:00
Olof Johansson
d7018b1558 SoC changes for omaps for v4.3 merge window:
- Clean-up omap4_local_timer_init to drop deal legacy code
 
 - Provide proper IO map table for dra7
 
 - Clean-up IOMMU layer init code as it now uses IOMMU framework
 
 - A series of changes to fix up dm814x support that's been in a broken
   half-merged state for quite some time
 
 - A series of PRCM and hwmod changes via Paul Walmsley <paul@pwsan.com>:
 
   - I/O wakeup support for AM43xx
   - register lock and unlock support to the hwmod code (needed for the RTC
     IP blocks on some chips)
   - several fixes for sparse warnings and an unnecessary null pointer test
   - a DRA7xx clockdomain configuration workaround, to deal with some hardware
     bugs
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVsc29AAoJEBvUPslcq6VzLNkQALzsnwliV3Q8x5qGOyOfm6Wf
 N5KKG94iwcfSf2P6xDP9n3H0xgG9LNK5jQn5kXRdXl1R2eZwPuMiuSXJVEErwZY2
 tMH+1lRYieyioLOzHAsuvNNbcB5UAY33jHtip5ofi6STaRocc5BMl0dhuUAusRcG
 Qmso5zsiA04KKQqI3JWZkWFRyPX89SLMXOHnFXdKqAWSh1n+tCmSh+cO/EqAluPZ
 X89mUldJESaLXR4xdAGRNthDQ68T78PTHX2GcCi2F6IGMwgdwOBqVid65gg8Ewac
 bDEX+ZK32+sQxAmd+VtJCVXw6TnumnWSlTGH1xTwmRIfBmgWr4tQfu8b9INfloei
 YjZYzBmWVR4SeWeATO1a/qP9snjtjlzxJ+34fzWndFq4eeM9YkF0lH53dbCnxlYp
 TJnEOHFJdMOQVKxClME5n9ds1y7/K/p+jCwUrAF9z3wxiSms9RImvFroWPI54uzr
 NEdduyetJLthhxTVaICT4K6ay8gouJvcjY3R8Xp0b2f5szdaxGmGqnVJynGL4fdU
 CFY1orgJLS4Em50phOZZpjaSla2A2uAz79zQlFt6mr71uKeSzRXTXsOczAheyR0M
 5UGqFOs1X2uqFctlGmacrTTgyxhtueOCG7R/kQ5oLHB6R39Tm07PeomGreG9Fznm
 1Ylbo1BeYHn3rsSkCLfi
 =1coy
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v4.3/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc

SoC changes for omaps for v4.3 merge window:

- Clean-up omap4_local_timer_init to drop deal legacy code

- Provide proper IO map table for dra7

- Clean-up IOMMU layer init code as it now uses IOMMU framework

- A series of changes to fix up dm814x support that's been in a broken
  half-merged state for quite some time

- A series of PRCM and hwmod changes via Paul Walmsley <paul@pwsan.com>:

  - I/O wakeup support for AM43xx
  - register lock and unlock support to the hwmod code (needed for the RTC
    IP blocks on some chips)
  - several fixes for sparse warnings and an unnecessary null pointer test
  - a DRA7xx clockdomain configuration workaround, to deal with some hardware
    bugs

* tag 'omap-for-v4.3/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (21 commits)
  ARM: OMAP2: Add minimal dm814x hwmod support
  ARM: OMAP2+: Prepare dm81xx hwmod code for adding minimal dm814x support
  ARM: PRM: AM437x: Enable IO wakeup feature
  ARM: OMAP4+: PRM: Add AM437x specific data
  ARM: OMAP: PRM: Remove hardcoding of IRQENABLE_MPU_2 and IRQSTATUS_MPU_2 register offsets
  ARM: dts: AM4372: Add PRCM IRQ entry
  ARM: AM43xx: Add the PRM IRQ register offsets
  ARM: OMAP4: PRM: Remove hardcoding of PRM_IO_PMCTRL_OFFSET register
  ARM: OMAP2+: Add support for initializing dm814x clocks
  ARM: OMAP2+: Add custom prwdm_operations for 81xx to support dm814x
  ARM: OMAP2+: Add minimal clockdomains for dm814x
  ARM: OMAP2+: Fix scm compatible for dm814x
  ARM: OMAP2+: Fix dm814x DT_MACHINE_START
  ARM: OMAP2+: Remove module references from IOMMU machine layer
  ARM: DRA7: Provide proper IO map table
  ARM: OMAP2+: Clean up omap4_local_timer_init
  ARM: OMAP2: Delete an unnecessary check
  ARM: OMAP2+: sparse: add missing function declarations
  ARM: OMAP2+: sparse: add missing static declaration
  ARM: OMAP2+: hwmod: add support for lock and unlock hooks
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-27 14:36:53 +02:00
Olof Johansson
c3d3dbddd3 Renesas ARM Based SoC Updates for v4.3
* Add basic support for gose/r8a7793
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVsfFqAAoJENfPZGlqN0++0nMP/0HUoqadAgV4PvPWEeb1Q/iq
 /BMzUIyw2QAB/RRrd4ejiP3247KN7/kv5q8YRsGC1BMirHivsbpLJViVVAdLiwMC
 yNcNLmoc1P5XmwX/3FkLSSRArhM5ufrvytMkmtThsuAe29FNm5Qqz56yCDaUie/x
 cruHTkUmf6Cjz9JWVSfNtz8e9JlxjRApfH5rA+vEqiUEI5R90bjd3eAgpbsqD7uw
 j7jMmKuSYtxXPZ/n4oJSwp/UkQk1xhUVpFegdPspGVIHB/s0k4RPz0FJ4zCcntKg
 IjnOj55kulmgOhQpijdmv/00dg4M/RvcxEBMYz7MwY0iVVGsgJ0Kiv5JPkr7XK5P
 O58upS3A59J1Ppgsced4eb4rodb3K+GT+ORjSNCryfqc997EhEcDMcClHdZBmt8r
 E0gd2u8hZxxuSY1oVwu2ggcz30KpChsiOHf5pRhYAjU3YxjxB51gy/4CLNZoOEGI
 MxhFHA1Kn/Rh0DNCxrJV8GBTMc3T2Oa2JsrOTtfWAAWne0NTuTai9gnegX4z3eac
 PrWEWapEsqf+m61tHp1+uQ3s5iFojT49I2IJQ7ADosoldotEjZHb3LOF7QcUteWv
 ahNPi9AZwyVyNFomqBEK5gP+IPtCrbas7kaBqyGzE0mo1EskqkjLQdmc6JjZOn6M
 dOmS4R5Xo5zb+tdxjP5i
 =sElP
 -----END PGP SIGNATURE-----

Merge tag 'renesas-soc-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc

Renesas ARM Based SoC Updates for v4.3

* Add basic support for gose/r8a7793

* tag 'renesas-soc-for-v4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: gose: enable R-Car Gen2 regulator quirk
  ARM: shmobile: Basic r8a7793 SoC support

Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-27 14:33:56 +02:00
Olof Johansson
7bd1584bd5 STi SoC updates for v4.3, round 1.
Highlights:
 -----------
  - Add code to release secondary cores from holding pen.
  - Remove useless call to trace_hardirqs_off() in secondary core init function.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVr48oAAoJEMo4jShGhw+JmpYP/RH/9EPvUSsOEYlRYNGlGfz8
 FxnBitLnPiEStK/Iu0gsAgDJLiz5GriXM/DGUSZxlRCDPfLcvXEvO9yrQ03HwKhx
 dJWkpeUGBmHgjLCbrHuUB83KxhDpKeC7RdoQUBKWY13top5DIO/EbzMYuHzxG6nW
 gbVpGi88gCWvVR076gui95PAOLM4hY6enhUKoePQT/Pln6A/qp4dTCb0eVJpMMbm
 VTXis8114jPoivTUNHy4lT9R27SjBLfvXMa6jLZwvFJ70eHc+7cN/kXamKnhyerD
 ogmz3XlUEcqzm3guYsohtE6sCLrOF8tQRGo/qA8t8hQQ+DK0yLimDmqM5C6uxZF1
 NIoLfETyuvXngroVBZrqQ3bL5CeXgHT4FJfp+pfdxz6YxpGEM5FRn4oorM6bPHWU
 dsR/7u/Qi3CJ14L1WA7C2VmIlsOCL8tHDhDRsVpEciN6UBRpiCCjVtYrJSOee7er
 u0J3/SKsdaCGmULZLN2aveqzai6QHpYNEEZP8d6yikGUAhAhFwWslX9EfgKmUW6N
 uNsDmqe5G+mG753ni3tSbr0FUALp69QeqQTkMYlmNsMdaFRdzMkjkbvQlCc6oyVf
 N3TMp73EwRrMZ/h9o6OX0pp6t1iVwmpqgs8slb5IBrK+a04cck4DYPYQvvQ+c1vi
 KwdoGauAvnvCGE0XZtBq
 =KbCI
 -----END PGP SIGNATURE-----

Merge tag 'sti-soc-for-v4.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti into next/soc

STi SoC updates for v4.3, round 1.

Highlights:
-----------
 - Add code to release secondary cores from holding pen.
 - Remove useless call to trace_hardirqs_off() in secondary core init function.

* tag 'sti-soc-for-v4.3-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mcoquelin/sti:
  ARM: STi: Remove platform call to trace_hardirqs_off()
  ARM: STi: Add code to release secondary cores from holding pen.

Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-27 14:25:23 +02:00
Tony Lindgren
24da741c67 Merge branch 'dm814x-soc' into omap-for-v4.3/soc
Update dm814x changes for sparse fixes to make data structures
static.

Conflicts:
	arch/arm/mach-omap2/omap_hwmod_81xx_data.c
2015-07-23 21:59:18 -07:00
Tony Lindgren
0f3ccb24c0 ARM: OMAP2: Add minimal dm814x hwmod support
Let's add minimal set of dm814x hwmods to have a bootable system.

Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
Cc: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-23 21:39:00 -07:00
Tony Lindgren
7e1b11d145 ARM: OMAP2+: Prepare dm81xx hwmod code for adding minimal dm814x support
Let's change the defines so we can share the hwmod code better between
dm816x and dm814x, and let's add the dm814x specific defines. And let's
rename the shared ones to start with dm81xx. No functional changes.

Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
Cc: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-23 21:39:00 -07:00
Tony Lindgren
97d9a3d096 ARM: OMAP2+: PRCM and hwmod changes for v4.3
This series adds:
 
 - I/O wakeup support for AM43xx
 - register lock and unlock support to the hwmod code (needed for the RTC
   IP blocks on some chips)
 - several fixes for sparse warnings and an unnecessary null pointer test
 - a DRA7xx clockdomain configuration workaround, to deal with some hardware
   bugs
 
 Basic build, boot, and PM tests are here:
 
 http://www.pwsan.com/omap/testlogs/hwmod-prcm-for-v4.3/20150723080012/
 
 Since I do not have an AM43xx or DRA7xx device, I can't test on those
 platforms.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJVsQA1AAoJEMePsQ0LvSpLzUAP/RJYEmonk9mnTpGvIsjRz8TH
 0sxUoqs6+AvTBkrnz74QLEgtTN97yzHzn8a6npnDWZKnGocAVs8R4o63EFO5/vZ0
 IO9pimPcC+onnl/IMqQuTA1Da+iTqzULHEYk/Nc5klbiLumDMe6Bm0kkYE1BzMYV
 Zze/YKZkarPDBjjJjN5reJwdTd/TDIGwNNgJJV17zcrd+v+83U9E76PuqE9Brr0G
 tIIXGuX8W4FxNZk98BFJf/VdgGcGrQQp/xzhcdjMBwq910hSLXHHF4cpQbF6Zlcv
 1YSUWE0g1wIYyBMp4/LwTauKgC7NSxNR0Xo1selooNrwUc0DRYHrXYyLiyPnw5wc
 FF63IBAylWt+DHb0gySCHfHsys9tXdF0Uqxocif6V77j6s6phcYmh6+grKhUTJjo
 SR0olhXa3acHpXT4NVYHLa5n6KpR4OZpmsnR7gz7IxyTP0gK0mDEg5xMBXsMZRdP
 Y4DyKlr5W2fylh8SxxqICa0glh80q2cLr2L7tYlrTbiNODhnGvk6XElcHBdwqRsW
 Vc09cBMf2j3TiMg2ZSCL+6PdR8mfGRkKbR+UU87iG3arsZ335PuVrdYribHuTVm+
 81ESLaVZJk7d7rWMK9CF8/dRlW+TsOq6yWwQdZ5d8BBoahSef3vberdSxxTAed15
 BYd83KZkqJhodFXVVu9u
 =dZvv
 -----END PGP SIGNATURE-----

Merge tag 'for-v4.3/omap-hwmod-prcm-a' of git://git.kernel.org/pub/scm/linux/kernel/git/pjw/omap-pending into omap-for-v4.3/soc

ARM: OMAP2+: PRCM and hwmod changes for v4.3

This series adds:

- I/O wakeup support for AM43xx
- register lock and unlock support to the hwmod code (needed for the RTC
  IP blocks on some chips)
- several fixes for sparse warnings and an unnecessary null pointer test
- a DRA7xx clockdomain configuration workaround, to deal with some hardware
  bugs

Basic build, boot, and PM tests are here:

http://www.pwsan.com/omap/testlogs/hwmod-prcm-for-v4.3/20150723080012/

Since I do not have an AM43xx or DRA7xx device, I can't test on those
platforms.
2015-07-23 21:14:02 -07:00
Matthias Brugger
3e0452d27a ARM: mediatek: Add regmap to mediatek Kconfig
Mediatek SoC needs the regmap/syscon infrastructure.
The infrastructure is used by the clock and pinctrl driver.
This patch adds MD_SYSCON to Kconfig for all Mediatek devices.

Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2015-07-23 20:01:42 +02:00
Paul Walmsley
3b86616e30 Merge branch 'prcm-a-for-v4.3' into hwmod-prcm-for-v4.3 2015-07-23 08:49:57 -06:00
Keerthy
8740a1444e ARM: PRM: AM437x: Enable IO wakeup feature
Enable IO wakeup feature. This enables am437x pads to generate daisy
chained wake ups(eventually generates aprcm Interrupt) especially
when in low power modes.

Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-23 06:13:52 -06:00
Keerthy
cc843711fd ARM: OMAP4+: PRM: Add AM437x specific data
The register offsets for some of the PRM Registers are different
hence populating the differing fields. This is needed to support
IO wake up feature for am437x family.

Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-23 06:08:24 -06:00
Keerthy
8d4be7d8bf ARM: OMAP: PRM: Remove hardcoding of IRQENABLE_MPU_2 and IRQSTATUS_MPU_2 register offsets
The register offsets of IRQENABLE_MPU_2 and IRQSTATUS_MPU_2 are hardcoded.
This makes it difficult to reuse the code for SoCs like AM437x that have
a single instance of IRQENABLE_MPU and IRQSTATUS_MPU registers.
Hence handling the case using offset of 4 to accommodate single set of IRQ*
registers generically.

Signed-off-by: Keerthy <j-keerthy@ti.com>
[paul@pwsan.com: fixed whitespace alignment problems reported by checkpatch.pl]
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-23 06:08:19 -06:00
Keerthy
6e487001c5 ARM: dts: AM4372: Add PRCM IRQ entry
Add PRCM IRQ entry.  This is needed for I/O wakeup support.

Signed-off-by: Keerthy <j-keerthy@ti.com>
[paul@pwsan.com: added I/O wakeup note in commit description]
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-23 05:54:38 -06:00
Keerthy
39db67a5ff ARM: AM43xx: Add the PRM IRQ register offsets
Add the PRM IRQ register offsets.  This is needed to support PRM I/O
wakeup on AM43xx.

Signed-off-by: Keerthy <j-keerthy@ti.com>
[paul@pwsan.com: improved patch description, moved the PRM_IO_PMCTRL macro
 out of the CM section]
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-23 05:54:38 -06:00
Keerthy
fac03f12f8 ARM: OMAP4: PRM: Remove hardcoding of PRM_IO_PMCTRL_OFFSET register
PRM_IO_PMCTRL_OFFSET need not be same for all SOCs hence
remove hardcoding and use the value provided by the omap_prcm_irq_setup
structure. This is done to support IO wakeup on am437x series.

Signed-off-by: Keerthy <j-keerthy@ti.com>
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-23 05:27:00 -06:00
Peter Griffin
50de4dd4bc ARM: STi: Remove platform call to trace_hardirqs_off()
Calling trace_hardirqs_off() from the platform specific
secondary startup code as not been necessary since Dec 2010
when Russell King consolidated the call into the common SMP
code.

2c0136d ARM: SMP: consolidate trace_hardirqs_off() into common SMP code

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
2015-07-22 11:15:30 +02:00
Peter Griffin
94a8cfceaa ARM: STi: Add code to release secondary cores from holding pen.
Most upstream devs boot STi platform via JTAG which abuses the
boot process by setting the PC of secondary cores directly. As
a consquence, booting STi platforms via u-boot results in only
the primary core being brought up as the code to manage the
holding pen is not upstream.

This patch adds the necessary code to bring the secondary cores
out of the holding pen. It uses the cpu-release-addr DT property
to get the address of the holding pen from the bootloader.

With this patch booting upstream kernels via u-boot works
correctly:

[    0.045456] CPU: Testing write buffer coherency: ok
[    0.045597] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.045734] Setting up static identity map for 0x40209000 - 0x40209098
[    0.065047] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.065081] Brought up 2 CPUs
[    0.065089] SMP: Total of 2 processors activated (5983.43 BogoMIPS).
[    0.065092] CPU: All CPU(s) started in SVC mode.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Acked-by: Maxime Coquelin <maxime.coquelin@st.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@st.com>
2015-07-22 11:14:18 +02:00
Dinh Nguyen
cd871d517d ARM: socfpga: add reset for the Arria 10 platform
Since the Arria10's reset register offset is different from the Cyclone/Arria 5,
it's best to add a new DT_MACHINE_START() for the Arria10.

Signed-off-by: Dinh Nguyen <dinguyen@opensource.altera.com>
---
v2: use altera_a10_dt_match for the A10 machine desc
2015-07-20 15:44:43 -05:00
Vaishali Thakkar
6d6db340a7 ARM: pxa: Use setup_timer
Use the timer API function setup_timer instead of structure field
assignments to initialize a timer.

A simplified version of the Coccinelle semantic patch that performs
this transformation is as follows:

@change@
expression e1, e2, a;
@@

-init_timer(&e1);
+setup_timer(&e1, a, 0UL);
... when != a = e2
-e1.function = a;

Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
2015-07-18 12:16:43 +02:00
Vaishali Thakkar
9754c8ef1f ARM: pxa: Use module_platform_driver
Use module_platform_driver for drivers whose init and exit functions
only register and unregister, respectively.

A simplified version of the Coccinelle semantic patch that performs
this transformation is as follows:

@a@
identifier f, x;
@@
-static f(...) { return platform_driver_register(&x); }

@b depends on a@
identifier e, a.x;
@@
-static e(...) { platform_driver_unregister(&x); }

@c depends on a && b@
identifier a.f;
declarer name module_init;
@@
-module_init(f);

@d depends on a && b && c@
identifier b.e, a.x;
declarer name module_exit;
declarer name module_platform_driver;
@@
-module_exit(e);
+module_platform_driver(x);

Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
2015-07-18 12:16:42 +02:00
Robert Jarzmik
4be0856fa3 ARM: pxa: transition to dmaengine phase 1
In order to slowly transition pxa to dmaengine, the legacy code will now
rely on dmaengine to request a channel.

This implies that PXA architecture selects DMADEVICES and PXA_DMA,
which is not pretty. Yet it enables PXA drivers to be ported one by one,
with part of them using dmaengine, and the other part using the legacy
code.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
2015-07-18 12:16:33 +02:00
Olof Johansson
d7030a08f6 Some suspend improvements enabling the possibility to wakeup
from usbphy events and a rework of how cpu cores are brought
 uü and down, as it was possible to produce lockups when
 hammering the cpu hotplug functions.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABCAAGBQJVp7v5AAoJEPOmecmc0R2BIjsIAI/siza1l62HuNCuj96ntlJA
 77jBO2zV0ZfRd/3CPHwkuDajla4KifQXDUcy1UAXhAuyieki3qfUDkurlurV9xK8
 OaTRdc0hc6kbU3C6q+biXkRURtGDXH1fqF+t8gXUbyxv+dZ5NMWbZAXxb0SwvjpY
 m7tpOdoVgTQIp3SiFCo6gVw7aXJcRkm9QLdj05hVMsMOWxu9TkmKrGo7aHTN0A4w
 aTEtOLd8e89YMkcW4Eg0fkasTEKeV1ni30yxmld0hTPi0pPrsBbWRBCp4lltGrVS
 kYl1kIZQk3RURcO3H/Tz0lEWhaUaQYmQqRg8Q+vBIQA6GILOLzwziYGLljigy7g=
 =+S6z
 -----END PGP SIGNATURE-----

Merge tag 'v4.3-rockchip32-soc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/soc

Merge "Rockchip soc changes for 4.3, part1" from Heiko Stuebner:

Some suspend improvements enabling the possibility to wakeup
from usbphy events and a rework of how cpu cores are brought
up and down, as it was possible to produce lockups when
hammering the cpu hotplug functions.

* tag 'v4.3-rockchip32-soc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  ARM: rockchip: fix broken build
  ARM: rockchip: remove some useless macro in pm.h
  ARM: rockchip: add support holding 24Mhz osc during suspend
  ARM: rockchip: fix the SMP code style
  ARM: rockchip: ensure CPU to enter WFI/WFE state
  ARM: rockchip: fix the CPU soft reset
  ARM: rockchip: restore dapswjdp after suspend

Signed-off-by: Olof Johansson <olof@lixom.net>
2015-07-17 10:37:08 -07:00
Tony Lindgren
9cf705de06 ARM: OMAP2+: Add support for initializing dm814x clocks
Let's add a minimal clocks for dm814x to get it booted. This is
mostly a placeholder and relies on the PLLs being on from the
bootloader.

Note that the divider clocks work the same way as on dm816x and
am335x.

Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
Cc: Mike Turquette <mturquette@linaro.org>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Cc: Tero Kristo <t-kristo@ti.com>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-16 02:09:33 -07:00
Tony Lindgren
7c80a3f89c ARM: OMAP2+: Add custom prwdm_operations for 81xx to support dm814x
Looking at the TI kernel tree I noticed that dm81xx need custom
ti81xx_pwrdm_operations. Let's also change dm816x over to use them
as the registers are different for dm81xx compared to others.

Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-16 02:09:33 -07:00
Tony Lindgren
185fde6d5b ARM: OMAP2+: Add minimal clockdomains for dm814x
For now, let's just add the ones shared with dm816x.
The dm814x specific ones can be added as they are tested.

Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
Cc: Paul Walmsley <paul@pwsan.com>
Cc: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-16 02:09:33 -07:00
Tony Lindgren
9444f10346 ARM: OMAP2+: Fix scm compatible for dm814x
Fix scm compatible for dm814x.

Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-16 02:09:10 -07:00
Tony Lindgren
9fd274c069 ARM: OMAP2+: Fix dm814x DT_MACHINE_START
Fix dm814x DT_MACHINE_START.

Cc: Matthijs van Duin <matthijsvanduin@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-16 02:09:10 -07:00
Suman Anna
228e5fadba ARM: OMAP2+: Remove module references from IOMMU machine layer
The OMAP IOMMU driver has been adapted to the IOMMU framework
for a while now, and it no longer supports being built as a
module. Cleanup all the module related references both from
the code and in the build.

While at it, also relocate a comment around the initcall to
avoid a checkpatch strict warning about using a blank line
after function/struct/union/enum declarations.

Signed-off-by: Suman Anna <s-anna@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-16 00:14:50 -07:00
Nishanth Menon
ea827ad5ff ARM: DRA7: Provide proper IO map table
DRA7 uses OMAP5 IO table at the moment. This is purely spurious since
the OMAP5 and DRA7 register maps are different in many aspects.

AM57xx/DRA7 TRM Reference: http://www.ti.com/lit/ug/spruhz6/spruhz6.pdf

NOTE: Most of the drivers are already doing ioremap, so, there should'nt
be any functional improvement involved here, other than making the
initial iotable more accurate.

Fixes: a3a9384a11 ("ARM: DRA7: Reuse io tables and add a new .init_early")
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-16 00:06:05 -07:00
Tony Lindgren
d1dabab284 ARM: OMAP2+: Clean up omap4_local_timer_init
Inspired by a patch from Felipe Balbi <balbi@ti.com>, we can
now get rid of most the code in omap4_local_timer_init.

Omap4 is now device tree only.. And we have not properly supported
omap4 ES1.0 revision for a really long time AFAIK.

Let's just remove all that code to simplify things. This assumes
we have arm,cortex-a9-twd-timer entry in the omap4.dtsi file, which
we do.

Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2015-07-15 23:50:35 -07:00
Markus Elfring
9a0cb98589 ARM: OMAP2: Delete an unnecessary check
The of_node_put() function tests whether its argument is NULL and then
returns immediately if so.  Furthermore, the kerneldoc for
of_node_put() explicitly supports passing in a NULL pointer as its
argument.  Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
[paul@pwsan.com: dropped the omap_device.c and omap_hwmod.c changes for
 now, edited the commit message accordingly and to note the documented
 "contract"]
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-15 23:59:39 -06:00
Sekhar Nori
9e5d46b051 ARM: OMAP2+: sparse: add missing function declarations
omap3xxx_restart() and omap44xx_restart() are global
functions declared in common.h. Include this file
in omap3-restart.c and omap4-restart.c to prevent
sparse warnings of type:

arch/arm/mach-omap2/omap4-restart.c:22:6: warning: symbol 'omap44xx_restart' was not declared. Should it be static?

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-15 23:43:41 -06:00
Sekhar Nori
f734a9b3b1 ARM: OMAP2+: sparse: add missing static declaration
Add missing static declaration for file local variables.
This fixes sparse warnings of type:

arch/arm/mach-omap2/omap_hwmod_81xx_data.c:491:26: warning: symbol 'dm81xx_alwon_l3_slow__gpmc' was not declared. Should it be static?

Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-15 23:42:12 -06:00
Lokesh Vutla
aaf2c0fbbb ARM: OMAP2+: hwmod: add support for lock and unlock hooks
Some IP blocks like RTC, needs an additional setting for writing to its
registers. This is to prevent any spurious writes from changing the
register values.

This patch adds optional lock and unlock function pointers to
the IP block's hwmod data. These unlock and lock function pointers
are called by hwmod code before and after writing sysconfig registers.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
[paul@pwsan.com: fixed indentation level to conform with the rest of the
 structure members]
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2015-07-15 18:16:16 -06:00
Vignesh R
b9e23f3219 ARM: OMAP2+: DRA7: clockdomain: change l4per2_7xx_clkdm to SW_WKUP
Legacy IPs like PWMSS, present under l4per2_7xx_clkdm, cannot support
smart-idle when its clock domain is in HW_AUTO on DRA7 SoCs. Hence,
program clock domain to SW_WKUP.

Signed-off-by: Vignesh R <vigneshr@ti.com>
Acked-by: Tero Kristo <t-kristo@ti.com>
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Cc: <stable@vger.kernel.org>
2015-07-15 13:57:28 -06:00
Linus Torvalds
bc0195aad0 Linux 4.2-rc2 2015-07-12 15:10:30 -07:00
Linus Torvalds
01e2d0627a Revert "drm/i915: Use crtc_state->active in primary check_plane func"
This reverts commit dec4f799d0.

Jörg Otte reports a NULL pointder dereference due to this commit, as
'crtc_state' very much can be NULL:

        crtc_state = state->base.state ?
                intel_atomic_get_crtc_state(state->base.state, intel_crtc) : NULL;

So the change to test 'crtc_state->base.active' cannot possibly be
correct as-is.

There may be some other minimal fix (like just checking crtc_state for
NULL), but I'm just reverting it now for the rc2 release, and people
like Daniel Vetter who actually know this code will figure out what the
right solution is in the longer term.

Reported-and-bisected-by: Jörg Otte <jrg.otte@gmail.com>
Cc: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-07-12 15:00:20 -07:00
Linus Torvalds
c83727a656 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull VFS fixes from Al Viro:
 "Fixes for this cycle regression in overlayfs and a couple of
  long-standing (== all the way back to 2.6.12, at least) bugs"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  freeing unlinked file indefinitely delayed
  fix a braino in ovl_d_select_inode()
  9p: don't leave a half-initialized inode sitting around
2015-07-12 14:09:36 -07:00
Linus Torvalds
7fbb58a065 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS fixes from Ralf Baechle:
 "A fair number of 4.2 fixes also because Markos opened the flood gates.

   - Patch up the math used calculate the location for the page bitmap.

   - The FDC (Not what you think, FDC stands for Fast Debug Channel) IRQ
     around was causing issues on non-Malta platforms, so move the code
     to a Malta specific location.

   - A spelling fix replicated through several files.

   - Fix to the emulation of an R2 instruction for R6 cores.

   - Fix the JR emulation for R6.

   - Further patching of mindless 64 bit issues.

   - Ensure the kernel won't crash on CPUs with L2 caches with >= 8
     ways.

   - Use compat_sys_getsockopt for O32 ABI on 64 bit kernels.

   - Fix cache flushing for multithreaded cores.

   - A build fix"

* 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
  MIPS: O32: Use compat_sys_getsockopt.
  MIPS: c-r4k: Extend way_string array
  MIPS: Pistachio: Support CDMM & Fast Debug Channel
  MIPS: Malta: Make GIC FDC IRQ workaround Malta specific
  MIPS: c-r4k: Fix cache flushing for MT cores
  Revert "MIPS: Kconfig: Disable SMP/CPS for 64-bit"
  MIPS: cps-vec: Use macros for various arithmetics and memory operations
  MIPS: kernel: cps-vec: Replace KSEG0 with CKSEG0
  MIPS: kernel: cps-vec: Use ta0-ta3 pseudo-registers for 64-bit
  MIPS: kernel: cps-vec: Replace mips32r2 ISA level with mips64r2
  MIPS: kernel: cps-vec: Replace 'la' macro with PTR_LA
  MIPS: kernel: smp-cps: Fix 64-bit compatibility errors due to pointer casting
  MIPS: Fix erroneous JR emulation for MIPS R6
  MIPS: Fix branch emulation for BLTC and BGEC instructions
  MIPS: kernel: traps: Fix broken indentation
  MIPS: bootmem: Don't use memory holes for page bitmap
  MIPS: O32: Do not handle require 32 bytes from the stack to be readable.
  MIPS, CPUFREQ: Fix spelling of Institute.
  MIPS: Lemote 2F: Fix build caused by recent mass rename.
2015-07-12 13:55:24 -07:00
Linus Torvalds
1daa1cfb7a Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Thomas Gleixner:

 - the high latency PIT detection fix, which slipped through the cracks
   for rc1

 - a regression fix for the early printk mechanism

 - the x86 part to plug irq/vector related hotplug races

 - move the allocation of the espfix pages on cpu hotplug to non atomic
   context.  The current code triggers a might_sleep() warning.

 - a series of KASAN fixes addressing boot crashes and usability

 - a trivial typo fix for Kconfig help text

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/kconfig: Fix typo in the CONFIG_CMDLINE_BOOL help text
  x86/irq: Retrieve irq data after locking irq_desc
  x86/irq: Use proper locking in check_irq_vectors_for_cpu_disable()
  x86/irq: Plug irq vector hotplug race
  x86/earlyprintk: Allow early_printk() to use console style parameters like '115200n8'
  x86/espfix: Init espfix on the boot CPU side
  x86/espfix: Add 'cpu' parameter to init_espfix_ap()
  x86/kasan: Move KASAN_SHADOW_OFFSET to the arch Kconfig
  x86/kasan: Add message about KASAN being initialized
  x86/kasan: Fix boot crash on AMD processors
  x86/kasan: Flush TLBs after switching CR3
  x86/kasan: Fix KASAN shadow region page tables
  x86/init: Clear 'init_level4_pgt' earlier
  x86/tsc: Let high latency PIT fail fast in quick_pit_calibrate()
2015-07-12 10:02:38 -07:00
Linus Torvalds
7b732169e9 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull timer fixes from Thomas Gleixner:
 "This update from the timer departement contains:

   - A series of patches which address a shortcoming in the tick
     broadcast code.

     If the broadcast device is not available or an hrtimer emulated
     broadcast device, some of the original assumptions lead to boot
     failures.  I rather plugged all of the corner cases instead of only
     addressing the issue reported, so the change got a little larger.

     Has been extensivly tested on x86 and arm.

   - Get rid of the last holdouts using do_posix_clock_monotonic_gettime()

   - A regression fix for the imx clocksource driver

   - An update to the new state callbacks mechanism for clockevents.
     This is required to simplify the conversion, which will take place
     in 4.3"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  tick/broadcast: Prevent NULL pointer dereference
  time: Get rid of do_posix_clock_monotonic_gettime
  cris: Replace do_posix_clock_monotonic_gettime()
  tick/broadcast: Unbreak CONFIG_GENERIC_CLOCKEVENTS=n build
  tick/broadcast: Handle spurious interrupts gracefully
  tick/broadcast: Check for hrtimer broadcast active early
  tick/broadcast: Return busy when IPI is pending
  tick/broadcast: Return busy if periodic mode and hrtimer broadcast
  tick/broadcast: Move the check for periodic mode inside state handling
  tick/broadcast: Prevent deep idle if no broadcast device available
  tick/broadcast: Make idle check independent from mode and config
  tick/broadcast: Sanity check the shutdown of the local clock_event
  tick/broadcast: Prevent hrtimer recursion
  clockevents: Allow set-state callbacks to be optional
  clocksource/imx: Define clocksource for mx27
2015-07-12 09:36:59 -07:00
Linus Torvalds
c4bc680cf7 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irq fix from Thomas Gleixner:
 "A single fix for a cpu hotplug race vs. interrupt descriptors:

  Prevent irq setup/teardown across the cpu starting/dying parts of cpu
  hotplug so that the starting/dying cpu has a stable view of the
  descriptor space.  This has been an issue for all architectures in the
  cpu dying phase, where interrupts are migrated away from the dying
  cpu.  In the starting phase its mostly a x86 issue vs the vector space
  update"

* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  hotplug: Prevent alloc/free of irq descriptors during cpu up/down
2015-07-12 09:15:02 -07:00
Al Viro
75a6f82a0d freeing unlinked file indefinitely delayed
Normally opening a file, unlinking it and then closing will have
the inode freed upon close() (provided that it's not otherwise busy and
has no remaining links, of course).  However, there's one case where that
does *not* happen.  Namely, if you open it by fhandle with cold dcache,
then unlink() and close().

	In normal case you get d_delete() in unlink(2) notice that dentry
is busy and unhash it; on the final dput() it will be forcibly evicted from
dcache, triggering iput() and inode removal.  In this case, though, we end
up with *two* dentries - disconnected (created by open-by-fhandle) and
regular one (used by unlink()).  The latter will have its reference to inode
dropped just fine, but the former will not - it's considered hashed (it
is on the ->s_anon list), so it will stay around until the memory pressure
will finally do it in.  As the result, we have the final iput() delayed
indefinitely.  It's trivial to reproduce -

void flush_dcache(void)
{
        system("mount -o remount,rw /");
}

static char buf[20 * 1024 * 1024];

main()
{
        int fd;
        union {
                struct file_handle f;
                char buf[MAX_HANDLE_SZ];
        } x;
        int m;

        x.f.handle_bytes = sizeof(x);
        chdir("/root");
        mkdir("foo", 0700);
        fd = open("foo/bar", O_CREAT | O_RDWR, 0600);
        close(fd);
        name_to_handle_at(AT_FDCWD, "foo/bar", &x.f, &m, 0);
        flush_dcache();
        fd = open_by_handle_at(AT_FDCWD, &x.f, O_RDWR);
        unlink("foo/bar");
        write(fd, buf, sizeof(buf));
        system("df .");			/* 20Mb eaten */
        close(fd);
        system("df .");			/* should've freed those 20Mb */
        flush_dcache();
        system("df .");			/* should be the same as #2 */
}

will spit out something like
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/root         322023 303843      1131 100% /
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/root         322023 303843      1131 100% /
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/root         322023 283282     21692  93% /
- inode gets freed only when dentry is finally evicted (here we trigger
than by remount; normally it would've happened in response to memory
pressure hell knows when).

Cc: stable@vger.kernel.org # v2.6.38+; earlier ones need s/kill_it/unhash_it/
Acked-by: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2015-07-12 11:27:04 -04:00
Al Viro
9391dd00d1 fix a braino in ovl_d_select_inode()
when opening a directory we want the overlayfs inode, not one from
the topmost layer.

Reported-By: Andrey Jr. Melnikov <temnota.am@gmail.com>
Tested-By: Andrey Jr. Melnikov <temnota.am@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2015-07-12 11:22:05 -04:00