1. 11 12月, 2017 3 次提交
  2. 30 10月, 2017 4 次提交
  3. 30 8月, 2017 1 次提交
  4. 13 2月, 2017 4 次提交
  5. 22 12月, 2015 2 次提交
    • A
      mmc: fix mmc_{un,}register_pm_notifier prototypes · fb0229df
      Arnd Bergmann 提交于
      The mmc pm notifiers were recently reworked, but the new
      code produces a lot of warnings when CONFIG_PM_SLEEP is disabled:
      
      In file included from ../drivers/mmc/core/sdio_bus.c:27:0:
      drivers/mmc/core/core.h:97:13: warning: 'mmc_register_pm_notifier' defined but not used [-Wunused-function]
      
      The obvious solution is to add the 'inline' keyword at the
      function definition, as it should be for any function defined
      in a header file.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: 0e40be7c20e0 ("mmc: core: Refactor code to register the MMC PM notifier")
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      fb0229df
    • U
      mmc: core: Refactor code to register the MMC PM notifier · 8dede18e
      Ulf Hansson 提交于
      Instead of checking for "#ifdef" directly in the code, let's invent a pair
      of mmc core functions to deal with register/unregister the MMC PM notifier
      block. Implement stubs for these functions when CONFIG_PM_SLEEP is unset,
      as in that case the PM notifiers isn't used.
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      8dede18e
  6. 26 10月, 2015 1 次提交
    • U
      mmc: core: Remove MMC_CLKGATE · 9eadcc05
      Ulf Hansson 提交于
      MMC_CLKGATE was once invented to save power by gating the bus clock at
      request inactivity. At that time it served its purpose. The modern way to
      deal with power saving for these scenarios, is by using runtime PM.
      
      Nowadays, several host drivers have deployed runtime PM, but for those
      that haven't and which still cares power saving at request inactivity,
      it's certainly time to deploy runtime PM as it has been around for several
      years now.
      
      To simplify code to mmc core and thus decrease maintenance efforts, this
      patch removes all code related to MMC_CLKGATE.
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      Reviewed-by: NLinus Walleij <linus.walleij@linaro.org>
      9eadcc05
  7. 01 6月, 2015 2 次提交
  8. 19 1月, 2015 3 次提交
  9. 26 11月, 2014 1 次提交
    • J
      mmc: core: consistent handling of initial values · 2d079c43
      Johan Rudholm 提交于
      mmc_do_hw_reset(), mmc_power_up() and mmc_power_off() all set similar
      initial values for bus_mode, bus_width, chip_select and timing. Let's
      make this handling simpler and more consistent by sticking them
      together in a common function. This will introduce small changes in
      behavior in the following places:
      
      mmc_power_off():
      
        For SPI hosts, explicitly set bus_mode = MMC_BUSMODE_PUSHPULL and
        chip_select = MMC_CS_HIGH, before we left them as they were.
      
        For non-SPI hosts, set bus_mode = MMC_BUSMODE_PUSHPULL instead of
        MMC_BUSMODE_OPENDRAIN as before.
      
        These two changes should not be a problem since the device will be
        powered off anyway.
      
      mmc_do_hw_reset():
      
        Always set bus_mode = MMC_BUSMODE_PUSHPULL, as required by SD/SDIO
        cards. MMC cards require MMC_BUSMODE_OPENDRAIN, but this is taken
        care of by mmc_init_card() and mmc_attach_mmc().
      Signed-off-by: NJohan Rudholm <johanru@axis.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      2d079c43
  10. 31 10月, 2013 2 次提交
  11. 28 6月, 2013 2 次提交
  12. 27 5月, 2013 2 次提交
    • U
      mmc: core: Restructure and simplify code for mmc sleep|awake · 07a68216
      Ulf Hansson 提交于
      The mmc_card_sleep|awake APIs are not being used since the support is
      already properly encapsulated within the suspend sequence. Sleep|awake
      command is also specific for eMMC.
      
      We remove the sleep|awake bus_ops, the mmc_card_sleep|awake APIs and
      move the code into the mmc specific core instead. This also includes
      the mmc ops function, mmc_sleepawake. All releated functions have then
      become static and we have got far less code to maintain.
      
      Additionally this patch also simplifies the code from mmc_sleepawake,
      since it is only used to put the card to sleep and not awake.
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      07a68216
    • U
      mmc: core: Add bus_ops for runtime pm callbacks · 12d01d0b
      Ulf Hansson 提交于
      SDIO is the only protocol that uses runtime pm for the card device
      right now. To provide the option for sd and mmc to use runtime pm as
      well the bus_ops callback are extended with two new functions. One for
      runtime_suspend and one for runtime_resume.
      
      This patch will also implement the callbacks for SDIO to make sure
      existing functionality is maintained. It also prepares to move
      away from using the mmc_power_restore_host API, since it is not
      needed when using runtime PM.
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      12d01d0b
  13. 25 2月, 2013 2 次提交
  14. 12 2月, 2013 1 次提交
    • K
      mmc: fix async request mechanism for sequential read scenarios · 2220eedf
      Konstantin Dorfman 提交于
      When current request is running on the bus and if next request fetched
      by mmcqd is NULL, mmc context (mmcqd thread) gets blocked until the
      current request completes. This means that if new request comes in while
      the mmcqd thread is blocked, this new request can not be prepared in
      parallel to current ongoing request. This may result in delaying the new
      request execution and increase it's latency.
      
      This change allows to wake up the MMC thread on new request arrival.
      Now once the MMC thread is woken up, a new request can be fetched and
      prepared in parallel to the current running request which means this new
      request can be started immediately after the current running request
      completes.
      
      With this change read throughput is improved by 16%.
      Signed-off-by: NKonstantin Dorfman <kdorfman@codeaurora.org>
      Reviewed-by: NSeungwon Jeon <tgih.jun@samsung.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      2220eedf
  15. 28 1月, 2013 1 次提交
    • K
      mmc: fix async request mechanism for sequential read scenarios · 6035d973
      Konstantin Dorfman 提交于
      When current request is running on the bus and if next request fetched
      by mmcqd is NULL, mmc context (mmcqd thread) gets blocked until the
      current request completes. This means that if new request comes in while
      the mmcqd thread is blocked, this new request can not be prepared in
      parallel to current ongoing request. This may result in delaying the new
      request execution and increase it's latency.
      
      This change allows to wake up the MMC thread on new request arrival.
      Now once the MMC thread is woken up, a new request can be fetched and
      prepared in parallel to the current running request which means this new
      request can be started immediately after the current running request
      completes.
      
      With this change read throughput is improved by 16%.
      Signed-off-by: NKonstantin Dorfman <kdorfman@codeaurora.org>
      Reviewed-by: NSeungwon Jeon <tgih.jun@samsung.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      6035d973
  16. 13 1月, 2012 1 次提交
  17. 12 1月, 2012 1 次提交
  18. 27 10月, 2011 1 次提交
    • U
      mmc: core: Fix hangs related to insert/remove of cards · 7f7e4129
      Ulf Hansson 提交于
      During a rescan operation mmc_attach(sd|mmc|sdio) functions are
      called. The error handling in these function can trigger a detach
      of the bus, which also meant a power off. This is not notified by
      the rescan operation which then continues to the next attach function.
      
      If a power off has been done, the framework must never send any
      new commands to the host driver, without first doing a new power up.
      This will most likely trigger any host driver to hang.
      
      Moving power off out of detach and instead handle power off
      separately when it is actually needed, solves the issue.
      Signed-off-by: NUlf Hansson <ulf.hansson@stericsson.com>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Cc: <stable@kernel.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      7f7e4129
  19. 25 5月, 2011 5 次提交
  20. 16 3月, 2011 1 次提交