Skip to content
  1. Oct 31, 2015
  2. Oct 29, 2015
    • Tony Lindgren's avatar
      usb: musb: omap2430: Fix regression caused by driver core change · 8f2279d5
      Tony Lindgren authored
      Commit ddef08dd ("Driver core: wakeup the parent device before trying
      probe") started automatically ensuring the parent device is enabled when
      the child gets probed.
      
      This however caused a regression for MUSB omap2430 interface as the
      runtime PM for the parent device needs the child initialized to access
      the MUSB hardware registers.
      
      Let's delay the enabling of PM runtime for the parent until the child
      has been properly initialized as suggested in an earlier patch by
      Grygorii Strashko <grygorii.strashko@ti.com>.
      
      In addition to delaying pm_runtime_enable, we now also need to make sure
      the parent is enabled during omap2430_musb_init. We also want to propagate
      an error from omap2430_runtime_resume if struct musb is not initialized.
      
      Note that we use pm_runtime_put_noidle here for both the child and parent
      to prevent an extra runtime_suspend/resume cycle.
      
      Let's also add some comments to avoid confusion between the
      two different devices.
      
      Fixes: ddef08dd
      
       ("Driver core: wakeup the parent device before
      trying probe")
      Suggested-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Reviewed-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Acked-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      8f2279d5
    • Aaro Koskinen's avatar
      ARM: OMAP1: fix incorrect INT_DMA_LCD · 1bd5dfe4
      Aaro Koskinen authored
      Commit 685e2d08 ("ARM: OMAP1: Change interrupt numbering for
      sparse IRQ") turned on SPARSE_IRQ on OMAP1, but forgot to change
      the number of INT_DMA_LCD. This broke the boot at least on Nokia 770,
      where the device hangs during framebuffer initialization.
      
      Fix by defining INT_DMA_LCD like the other interrupts.
      
      Cc: stable@vger.kernel.org # v4.2+
      Fixes: 685e2d08
      
       ("ARM: OMAP1: Change interrupt numbering for sparse IRQ")
      Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      1bd5dfe4
  3. Oct 23, 2015
  4. Oct 21, 2015
  5. Oct 19, 2015
    • 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
  6. Oct 17, 2015
  7. Oct 15, 2015
    • 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
    • Carlo Caione's avatar
      ARM: meson6: DTS: Fix wrong reg mapping and IRQ numbers · f9e5ca86
      Carlo Caione authored
      
      
      The DTS erronously uses the wrong reg mapping and IRQ numbers for some
      UART, WDT and timer nodes. Fix this.
      
      Reported-by: default avatarJohn Wehle <john@feith.com>
      Signed-off-by: default avatarCarlo Caione <carlo@endlessm.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      f9e5ca86
  8. Oct 14, 2015
  9. Oct 13, 2015
    • 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
  10. Oct 12, 2015
  11. Oct 11, 2015