1. 21 Oct, 2015 3 commits
  2. 19 Oct, 2015 1 commit
    • Tony Lindgren's avatar
      ARM: OMAP2+: Fix imprecise external abort caused by bogus SRAM init · 57df5380
      Tony Lindgren authored
      Some omaps are producing imprecise external aborts because we are
      wrongly trying to init SRAM for device tree based booting. Only
      omap3 is still using the legacy SRAM code, so we need to make it
      omap3 specific. Otherwise we can get errors like this on at least
      dm814x:
      
      Unhandled fault: imprecise external abort (0xc06) at 0xc08b156c
      ...
      (omap_rev) from [<c08b12e0>] (omap_sram_init+0xf8/0x3e0)
      (omap_sram_init) from [<c08aca0c>] (omap_sdrc_init+0x10/0xb0)
      (omap_sdrc_init) from [<c08b581c>] (pdata_quirks_init+0x18/0x44)
      (pdata_quirks_init) from [<c08b5478>] (omap_generic_init+0x10/0x1c)
      (omap_generic_init) from [<c08a57e0>] (customize_machine+0x1c/0x40)
      (customize_machine) from [<c00098a4>] (do_one_initcall+0x80/0x1dc)
      (do_one_initcall) from [<c08a2ec4>] (kernel_init_freeable+0x218/0x2e8)
      (kernel_init_freeable) from [<c063a554>] (kernel_init+0x8/0xec)
      (kernel_init) from [<c000f890>] (ret_from_fork+0x14/0x24)
      
      Let's fix the issue by making sure omap_sdrc_init only gets called for
      omap3. To do that, we need to have compatible "ti,omap3" in the dts
      files. And let's also use "ti,omap3630" instead of "ti,omap36xx" like
      we're supposed to.
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      57df5380
  3. 16 Oct, 2015 2 commits
    • Sudip Mukherjee's avatar
      thermal: exynos: Fix register read in TMU · b28fec13
      Sudip Mukherjee authored
      The value of emul_con was getting overwritten if the selected soc is
      SOC_ARCH_EXYNOS5260. And so as a result we were reading from the wrong
      register in the case of SOC_ARCH_EXYNOS5260.
      
      Fixes: 488c7455 ("thermal: exynos: Add the support for Exynos5433 TMU")
      Signed-off-by: default avatarSudip Mukherjee <sudip@vectorindia.org>
      Reviewed-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Reviewed-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
      Acked-by: default avatarLukasz Majewski <l.majewski@samsung.com>
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Signed-off-by: default avatarKukjin Kim <kgene@kernel.org>
      b28fec13
    • Tony Lindgren's avatar
      ARM: OMAP2+: Fix oops with LPAE and more than 2GB of memory · 6a3b764b
      Tony Lindgren authored
      On boards with more than 2GB of RAM booting goes wrong with things not
      working and we're getting lots of l3 warnings:
      
      WARNING: CPU: 0 PID: 1 at drivers/bus/omap_l3_noc.c:147
      l3_interrupt_handler+0x260/0x384()
      44000000.ocp:L3 Custom Error: MASTER MMC6 TARGET DMM1 (Idle):
      Data Access in User mode during Functional access
      ...
      [<c044e158>] (scsi_add_host_with_dma) from [<c04705c8>]
      (ata_scsi_add_hosts+0x5c/0x18c)
      [<c04705c8>] (ata_scsi_add_hosts) from [<c046b13c>]
      (ata_host_register+0x150/0x2cc)
      [<c046b13c>] (ata_host_register) from [<c046b38c>]
      (ata_host_activate+0xd4/0x124)
      [<c046b38c>] (ata_host_activate) from [<c047f42c>]
      (ahci_host_activate+0x5c/0x194)
      [<c047f42c>] (ahci_host_activate) from [<c0480854>]
      (ahci_platform_init_host+0x1f0/0x3f0)
      [<c0480854>] (ahci_platform_init_host) from [<c047c9dc>]
      (ahci_probe+0x70/0x98)
      [<c047c9dc>] (ahci_probe) from [<c04220cc>]
      (platform_drv_probe+0x54/0xb4)
      
      Let's fix the issue by enabling ZONE_DMA for LPAE. Note that we need to
      limit dma_zone_size to 2GB as the rest of the RAM is beyond the 4GB limit.
      
      Let's also fix things for dra7 as done in similar patches in the TI tree
      by Lokesh Vutla <lokeshvutla@ti.com>.
      Reviewed-by: default avatarLokesh Vutla <lokeshvutla@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      6a3b764b
  4. 15 Oct, 2015 7 commits
    • Thierry Reding's avatar
      ARM: tegra: Comment out gpio-ranges properties · 4f1d8414
      Thierry Reding authored
      While the addition of these properties is technically correct it unveils
      a bug with deferred probe. The problem is that the presence of the gpio-
      range property causes the gpio-tegra driver to defer probe (it needs the
      pinctrl driver to be ready). That's technically correct, but it causes a
      couple of issues:
      
        - The keyboard on Chromebooks stops working. The reason for that is
          that the gpio-tegra device has not registered an IRQ domain by the
          time the EC SPI device is registered, hence the interrupt number
          resolves to 0. This is technically a bug in the SPI core, since it
          should really resolve the interrupt at probe time and defer if the
          IRQ domain isn't available yet. This is similar to what's done for
          I2C and platform device already.
      
        - The gpio-tegra device deferring probe means that it is moved to the
          end of the dpm_list. This list defines the suspend/resume order for
          devices. However the core lacks a way to move all users of the
          gpio-tegra device to the end of the dpm_list at the same time. This
          in turn results in a subtle bug on Jetson TK1, where the gpio-keys
          device is used to expose the power key as input. The power key is a
          convenient way to wake the system from suspend. Interestingly, the
          gpio-keys device ends up getting probed at a point after gpio-tegra
          has been probed successfully from having been deferred earlier. As
          such the driver doesn't need to defer the probe itself, and hence
          the device isn't moved to the end of the dpm_list. This causes the
          gpio-tegra device to be suspended before gpio-keys, which in turn
          leaves gpio-keys unable to wake the system from suspend.
      
      There are patches in the works to fix both of the above issues, but they
      are too involved to make it into v4.3, so in the meantime let's fix the
      regressions by commenting out the gpio-ranges properties until the fixes
      have landed.
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      4f1d8414
    • Arnd Bergmann's avatar
      Merge tag 'omap-for-v4.3/fixes-rc5' of... · a787f40a
      Arnd Bergmann authored
      Merge tag 'omap-for-v4.3/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Merge "Fixes for omap against v4.3-rc5" from Tony Lindgren:
      
      - Regulator fix for beagle-x15 to fix HDMI without a SD card being
        inserted
      
      - GPMC fix for showing proper timings and to allow enabling debug
        options that somehow was unselectable earlier
      
      - Add minimal documentation for new MMC1 dependency on
        REGULATOR_PBIAS as it may not be obvious for people with
        targeted .config files
      
      * tag 'omap-for-v4.3/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        Documentation: ARM: List new omap MMC requirements
        memory: omap-gpmc: dump "before" state before first modification
        memory: omap-gpmc: Fix unselectable debug option for GPMC
        ARM: dts: am57xx-beagle-x15: set VDD_SD to always-on
      a787f40a
    • Masahiro Yamada's avatar
      ARM: dts: uniphier: fix IRQ number for devices on PH1-LD6b ref board · 2e4e5da5
      Masahiro Yamada authored
      The IRQ signal from external devices on this board is connected to
      the XIRQ4 pin of the SoC.  The IRQ number should be 52, not 50.
      
      Fixes: a5e921b4 ("ARM: dts: uniphier: add ProXstream2 and PH1-LD6b SoC/board support")
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      2e4e5da5
    • Will Deacon's avatar
      drivers/perf: arm_pmu: avoid CPU device_node reference leak · fb659882
      Will Deacon authored
      of_cpu_device_node_get increments the reference count on the CPU
      device_node, so we must take care to of_node_put once we've finished
      with it.
      
      This patch fixes the perf IRQ probing code to avoid the leak.
      
      Cc: Sudeep Holla <sudeep.holla@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      fb659882
    • Pawel Moll's avatar
      bus: arm-ccn: Fix irq affinity setting on CPU migration · a0bcbe96
      Pawel Moll authored
      When PMU context is migrating between CPUs, interrupt affinity is set as
      well. Only this should not happen when the CCN interrupt is not being
      used at all (the driver is using a hrtimer tick instead).
      
      Fixed now.
      
      Cc: <stable@vger.kernel.org> # 4.2+
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      a0bcbe96
    • Pawel Moll's avatar
      bus: arm-ccn: Handle correctly no-more-cpus case · b20519fd
      Pawel Moll authored
      When migrating events the driver picks another cpu using
      cpumask_any_but() function, which returns value >= nr_cpu_ids
      when there is none available, not a negative value as the code
      assumed. Fixed now.
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      b20519fd
    • Marcin Wojtas's avatar
      ARM: mvebu: correct a385-db-ap compatible string · db347f1a
      Marcin Wojtas authored
      This commit enables standby support on Armada 385 DB-AP board, because
      the PM initalization routine requires "marvell,armada380" compatible
      string for all Armada 38x-based platforms.
      
      Beside the compatible "marvell,armada38x" was wrong and should be fixed
      in the stable kernels too.
      
      [gregory.clement@free-electrons.com: add information, about the fixes]
      Fixes: e5ee1281 ("ARM: mvebu: Add Armada 385 Access Point
      Development Board support")
      Signed-off-by: default avatarMarcin Wojtas <mw@semihalf.com>
      Signed-off-by: default avatarGregory CLEMENT <gregory.clement@free-electrons.com>
      Cc: <stable@vger.kernel.org>
      db347f1a
  5. 14 Oct, 2015 7 commits
  6. 12 Oct, 2015 6 commits
    • Tony Lindgren's avatar
      Documentation: ARM: List new omap MMC requirements · d8e1f5ed
      Tony Lindgren authored
      Earlier the PBIAS regulator was optional, not so with recent
      omap_hsmmc changes. To make things easier for people with
      custom .config files, let's add minimal documentation for it
      as suggested by Russell King <rmk+kernel@arm.linux.org.uk>.
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      d8e1f5ed
    • Uwe Kleine-König's avatar
      memory: omap-gpmc: dump "before" state before first modification · fd820a1e
      Uwe Kleine-König authored
      When gpmc_cs_show_timings is called in gpmc_cs_set_timings()
      gpmc_cs_program_settings() was already run which modifies the CONFIG1
      register. So to be more useful do the "before" dump earlier.
      Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Acked-by: default avatarRoger Quadros <rogerq@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      fd820a1e
    • Tony Lindgren's avatar
      memory: omap-gpmc: Fix unselectable debug option for GPMC · be59b619
      Tony Lindgren authored
      Commit 63aa945b ("memory: omap-gpmc: Add Kconfig option for debug")
      added a debug option for GPMC, but somehow managed to keep it unselectable.
      
      This probably happened because I had some uncommitted changes and the
      GPMC option is selected in the platform specific Kconfig.
      
      Let's also update the description a bit, it does not mention that
      enabling the debug option also disables the reset of GPMC controller
      during the init as pointed out by Uwe Kleine-König
      <u.kleine-koenig@pengutronix.de> and Roger Quadros <rogerq@ti.com>.
      
      Fixes: 63aa945b ("memory: omap-gpmc: Add Kconfig option for debug")
      Reported-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Acked-by: default avatarRoger Quadros <rogerq@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      be59b619
    • Tomi Valkeinen's avatar
      ARM: dts: am57xx-beagle-x15: set VDD_SD to always-on · 7e381ec6
      Tomi Valkeinen authored
      LDO1 regulator (VDD_SD) is connected to SoC's vddshv8. vddshv8 needs to
      be kept always powered (see commit 5a0f93c6 ("ARM: dts: Add
      am57xx-beagle-x15"), but at the moment VDD_SD is enabled/disabled
      depending on whether an SD card is inserted or not.
      
      This patch sets LDO1 regulator to always-on.
      
      This patch has a side effect of fixing another issue, HDMI DDC not
      working when SD card is not inserted:
      
      Why this happens is that the tpd12s015 (HDMI level shifter/ESD
      protection chip) has LS_OE GPIO input, which needs to be enabled for the
      HDMI DDC to work. LS_OE comes from gpio6_28. The pin that provides
      gpio6_28 is powered by vddshv8, and vddshv8 comes from VDD_SD.
      
      So when SD card is not inserted, VDD_SD is disabled, and LS_OE stays
      off.
      
      The proper fix for the HDMI DDC issue would be to maybe have the pinctrl
      framework manage the pin specific power.
      
      Apparently this fixes also a third issue (copy paste from Kishon's
      patch):
      
      ldo1_reg in addition to being connected to the io lines is also
      connected to the card detect line. On card removal, omap_hsmmc
      driver does a regulator_disable causing card detect line to be
      pulled down. This raises a card insertion interrupt and once the
      MMC core detects there is no card inserted, it does a
      regulator disable which again raises a card insertion interrupt.
      This happens in a loop causing infinite MMC interrupts.
      
      Fixes: 5a0f93c6 ("ARM: dts: Add am57xx-beagle-x15")
      Cc: Kishon Vijay Abraham I <kishon@ti.com>
      Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
      Reported-by: default avatarLouis McCarthy <compeoree@gmail.com>
      Acked-by: default avatarNishanth Menon <nm@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      7e381ec6
    • Alim Akhtar's avatar
      ARM: dts: Fix audio card detection on Peach boards · b8bb9baa
      Alim Akhtar authored
      Since commit 2fad972d ("ARM: dts: Add mclk entry for Peach boards"),
      sound card detection is broken on peach boards and gives below errors:
      
      [    3.630457] max98090 7-0010: MAX98091 REVID=0x51
      [    3.634233] max98090 7-0010: use default 2.8v micbias
      [    3.640985] snow-audio sound: HiFi <-> 3830000.i2s mapping ok
      [    3.645307] max98090 7-0010: Invalid master clock frequency
      [    3.650824] snow-audio sound: ASoC: Peach-Pi-I2S-MAX98091 late_probe() failed: -22
      [    3.658914] snow-audio sound: snd_soc_register_card failed (-22)
      [    3.664366] snow-audio: probe of sound failed with error -22
      
      This patch adds missing assigned-clocks and assigned-clock-parents for
      pmu_system_controller node which is used as "mclk" for audio codec.
      
      Fixes: 2fad972d ("ARM: dts: Add mclk entry for Peach boards")
      Signed-off-by: default avatarAlim Akhtar <alim.akhtar@samsung.com>
      Reviewed-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarKukjin Kim <kgene@kernel.org>
      b8bb9baa
    • Krzysztof Kozlowski's avatar
      ARM: EXYNOS: Fix double of_node_put() when parsing child power domains · 51a6256b
      Krzysztof Kozlowski authored
      On each next iteration of for_each_compatible_node() the reference
      counter for current device node is already decreased by the loop
      iterator. The manual call to of_node_get() is required only on loop
      break which is not happening here.
      
      The double of_node_get() (with enabled CONFIG_OF_DYNAMIC) lead to
      decreasing the counter below expected, initial value.
      
      Fixes: fe4034a3 ("ARM: EXYNOS: Add missing of_node_put() when parsing power domains")
      Signed-off-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarKukjin Kim <kgene@kernel.org>
      51a6256b
  7. 11 Oct, 2015 8 commits
  8. 10 Oct, 2015 6 commits