1. 29 5月, 2018 1 次提交
  2. 08 5月, 2018 1 次提交
  3. 02 5月, 2018 1 次提交
  4. 15 3月, 2018 1 次提交
  5. 06 12月, 2017 1 次提交
  6. 29 11月, 2017 2 次提交
  7. 30 10月, 2017 5 次提交
  8. 02 10月, 2017 1 次提交
  9. 30 8月, 2017 2 次提交
  10. 09 8月, 2017 1 次提交
  11. 20 6月, 2017 4 次提交
  12. 25 4月, 2017 2 次提交
  13. 15 3月, 2017 1 次提交
  14. 15 2月, 2017 2 次提交
  15. 14 2月, 2017 3 次提交
  16. 13 2月, 2017 5 次提交
  17. 05 12月, 2016 3 次提交
  18. 29 11月, 2016 4 次提交
    • U
      mmc: core: Update CMD13 polling policy when switch to HS DDR mode · e173f891
      Ulf Hansson 提交于
      According to the JEDEC specification, during bus timing change operations
      for mmc, sending a CMD13 could trigger CRC errors.
      
      As switching to HS DDR mode indeed causes a bus timing change, polling with
      CMD13 to detect card busy, may thus potentially trigger CRC errors.
      Currently these errors are treated as the switch to HS DDR mode failed.
      
      To improve this behaviour, let's instead tell __mmc_switch() to retry when
      it encounters CRC errors during polling.
      
      Moreover, when switching to HS DDR mode, let's make sure the CMD13 polling
      is done by having the mmc host and the mmc card, being configured to
      operate at the same selected bus speed timing. Fix this by providing
      MMC_TIMING_MMC_DDR52 as the timing parameter to __mmc_switch().
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      Tested-by: NLinus Walleij <linus.walleij@linaro.org>
      Acked-by: NAdrian Hunter <adrian.hunter@intel.com>
      e173f891
    • U
      mmc: core: Allow CMD13 polling when switching to HS mode for mmc · 53e60650
      Ulf Hansson 提交于
      In cases when the mmc host doesn't support HW busy detection, polling for a
      card being busy by using CMD13 is beneficial. That is because, instead of
      waiting a fixed amount of time, 500ms or the generic CMD6 time from
      EXT_CSD, we find out a lot sooner when the card stops signaling busy. This
      leads to a significant decreased total initialization time for the mmc
      card.
      
      However, to allow polling with CMD13 during a bus timing change operation,
      such as switching to HS mode, we first need to update the mmc host's bus
      timing before starting to poll. Deal with that, simply by providing
      MMC_TIMING_MMC_HS as the timing parameter to __mmc_switch() from
      mmc_select_hs().
      
      By telling __mmc_switch() to allow polling with CMD13, also makes it
      validate the CMD6 status, thus we can remove the corresponding checks.
      
      When switching to HS400ES, the mmc_select_hs() function is called in one of
      the intermediate steps. To still prevent CMD13 polling for HS400ES, let's
      call the __mmc_switch() function in this path as it enables us to keep
      using the existing method.
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      Tested-by: NLinus Walleij <linus.walleij@linaro.org>
      Acked-by: NAdrian Hunter <adrian.hunter@intel.com>
      53e60650
    • U
      mmc: core: Enable __mmc_switch() to change bus speed timing for the host · aa33ce3c
      Ulf Hansson 提交于
      In cases when a speed mode change is requested for mmc cards, a CMD6 is
      sent by calling __mmc_switch() during the card initialization. The CMD6
      leads to the card entering a busy period. When that is completed, the host
      must parse the CMD6 status to find out whether the change of the speed mode
      succeeded.
      
      To enable the mmc core to poll the card by using CMD13 to find out when the
      busy period is completed, it's reasonable to make sure polling is done by
      having the mmc host and the mmc card, being configured to operate at the
      same selected bus speed timing.
      
      Therefore, let's extend __mmc_switch() to take yet another parameter, which
      allow its callers to update the bus speed timing of the mmc host. In this
      way, __mmc_switch() also becomes capable of reading and validating the CMD6
      status by sending a CMD13, in cases when that's desired.
      
      If __mmc_switch() encounters a failure, we make sure to restores the old
      bus speed timing for the mmc host, before propagating the error code.
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      Tested-by: NLinus Walleij <linus.walleij@linaro.org>
      Acked-by: NAdrian Hunter <adrian.hunter@intel.com>
      aa33ce3c
    • U
      mmc: core: Make mmc_switch_status() available for mmc core · 20348d19
      Ulf Hansson 提交于
      Following changes needs mmc_switch_status() to be available both from mmc.c
      and mmc_ops.c. Allow that by moving its implementation to mmc_ops.c and
      make it available via mmc_ops.h.
      
      Moving mmc_switch_status() to mmc_ops.c, also enables us to turn
      mmc_switch_status_error() into static function. So let's take the
      opportunity to change this as well.
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      Acked-by: NJaehoon Chung <jh80.chung@samsung.com>
      Tested-by: NJaehoon Chung <jh80.chung@samsung.com>
      20348d19