1. 17 1月, 2018 2 次提交
  2. 30 8月, 2017 2 次提交
  3. 25 4月, 2017 10 次提交
  4. 13 2月, 2017 2 次提交
  5. 08 12月, 2016 1 次提交
  6. 29 11月, 2016 2 次提交
  7. 18 11月, 2016 1 次提交
  8. 10 10月, 2016 1 次提交
  9. 27 9月, 2016 2 次提交
  10. 25 7月, 2016 11 次提交
  11. 02 5月, 2016 4 次提交
  12. 29 3月, 2016 1 次提交
    • A
      mmc: sdhci: Fix regression setting power on Trats2 board · 1dceb041
      Adrian Hunter 提交于
      Several commits relating to setting power have been introducing
      problems by putting driver-specific rules into generic SDHCI code.
      
      Krzysztof Kozlowski reported that after commit 918f4cbd ("mmc:
      sdhci: restore behavior when setting VDD via external regulator")
      on Trats2 board there are warnings for invalid VDD  value (2.8V):
      
      [    3.119656] ------------[ cut here ]------------
      [    3.119666] WARNING: CPU: 3 PID: 90 at
      ../drivers/mmc/host/sdhci.c:1234 sdhci_do_set_ios+0x4cc/0x5e0
      [    3.119669] mmc0: Invalid vdd 0x10
      [    3.119673] Modules linked in:
      [    3.119679] CPU: 3 PID: 90 Comm: kworker/3:1 Tainted: G        W
         4.5.0-next-20160324 #23
      [    3.119681] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
      [    3.119690] Workqueue: events_freezable mmc_rescan
      [    3.119708] [<c010e0ac>] (unwind_backtrace) from [<c010ae10>]
      (show_stack+0x10/0x14)
      [    3.119719] [<c010ae10>] (show_stack) from [<c0323260>]
      (dump_stack+0x88/0x9c)
      [    3.119728] [<c0323260>] (dump_stack) from [<c011b754>] (__warn+0xe8/0x100)
      [    3.119734] [<c011b754>] (__warn) from [<c011b7a4>]
      (warn_slowpath_fmt+0x38/0x48)
      [    3.119740] [<c011b7a4>] (warn_slowpath_fmt) from [<c0527d28>]
      (sdhci_do_set_ios+0x4cc/0x5e0)
      [    3.119748] [<c0527d28>] (sdhci_do_set_ios) from [<c0528018>]
      (sdhci_runtime_resume_host+0x60/0x114)
      [    3.119758] [<c0528018>] (sdhci_runtime_resume_host) from
      [<c0402570>] (__rpm_callback+0x2c/0x60)
      [    3.119767] [<c0402570>] (__rpm_callback) from [<c04025c4>]
      (rpm_callback+0x20/0x80)
      [    3.119773] [<c04025c4>] (rpm_callback) from [<c04034b8>]
      (rpm_resume+0x36c/0x558)
      [    3.119780] [<c04034b8>] (rpm_resume) from [<c04036f0>]
      (__pm_runtime_resume+0x4c/0x64)
      [    3.119788] [<c04036f0>] (__pm_runtime_resume) from [<c0512728>]
      (__mmc_claim_host+0x170/0x1b0)
      [    3.119795] [<c0512728>] (__mmc_claim_host) from [<c0514e2c>]
      (mmc_rescan+0x54/0x348)
      [    3.119807] [<c0514e2c>] (mmc_rescan) from [<c0130dac>]
      (process_one_work+0x120/0x3f4)
      [    3.119815] [<c0130dac>] (process_one_work) from [<c01310b8>]
      (worker_thread+0x38/0x554)
      [    3.119823] [<c01310b8>] (worker_thread) from [<c01365a4>]
      (kthread+0xdc/0xf4)
      [    3.119831] [<c01365a4>] (kthread) from [<c0107878>]
      (ret_from_fork+0x14/0x3c)
      [    3.119834] ---[ end trace a22d652aa3276886 ]---
      
      Fix by adding a 'set_power' callback and restoring the default
      behaviour prior to commit 918f4cbd ("mmc: sdhci: restore
      behavior when setting VDD via external regulator").  The desired
      behaviour of that commit is gotten by having sdhci-pxav3 provide
      its own set_power callback.
      Reported-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Link: http://lkml.kernel.org/r/CAJKOXPcGDnPm-Ykh6wHqV1YxfTaov5E8iVqBoBn4OJc7BnhgEQ@mail.gmail.com
      Fixes: 918f4cbd ("mmc: sdhci: restore behavior when setting VDD...)
      Tested-by: NKrzysztof Kozlowski <k.kozlowski@samsung.com>
      Tested-by: NLudovic Desroches <ludovic.desroches@atmel.com>
      Signed-off-by: NAdrian Hunter <adrian.hunter@intel.com>
      Cc: stable@vger.kernel.org # v4.5+
      Reviewed-by: NJisheng Zhang <jszhang@marvell.com>
      Tested-by: NJisheng Zhang <jszhang@marvell.com>
      Tested-by: NJaehoon Chung <jh80.chung@samsung.com>
      Tested-by: NAnand Moon <linux.amoon@gmail.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      1dceb041
  13. 29 2月, 2016 1 次提交
    • R
      mmc: sdhci: clean up host cookie handling · 94538e51
      Russell King 提交于
      Commit d31911b9 ("mmc: sdhci: fix dma memory leak in sdhci_pre_req()")
      added a complicated method to manage the DMA map state for the data
      transfer, but this complexity is not required.
      
      There are three states:
      * Unmapped
      * Mapped by sdhci_pre_req()
      * Mapped by sdhci_prepare_data()
      
      sdhci_prepare_data() needs to know when the data buffers have been
      successfully mapped by sdhci_pre_req(), and if so, there is no need to
      map them a second time.
      
      When we come to tear down the mapping, we want to know whether
      sdhci_post_req() will be called (which is determined by sdhci_pre_req()
      having been previously called) so that we can postpone the unmap
      operation.
      
      Hence, it makes sense to simply record when the successful DMA map
      happened (via COOKIE_PRE_MAPPED vs COOKIE_MAPPED) rather than having
      the complex mechanics involving COOKIE_MAPPED vs COOKIE_GIVEN.
      
      If a mapping is created by sdhci_prepare_data(), we must tear it down
      ourselves, without waiting for sdhci_post_req() (hence, the new
      COOKIE_MAPPED case).  If the mapping is created by sdhci_pre_req()
      then sdhci_post_req() is responsible for tearing the mapping down.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAdrian Hunter <adrian.hunter@intel.com>
      Tested-by: NGregory CLEMENT <gregory.clement@free-electrons.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      94538e51