1. 27 5月, 2013 4 次提交
  2. 30 4月, 2013 1 次提交
  3. 15 4月, 2013 1 次提交
  4. 13 4月, 2013 2 次提交
  5. 23 3月, 2013 2 次提交
    • S
      mmc: core: wait while adding MMC host to ensure root mounts successfully · 3500ed90
      Sergey Yanovich 提交于
      MMC hosts are added asynchronously. We need to wait until detect returns to
      avoid failed root filesystem mounts.
      
      VFS: Cannot open root device "mmcblk0p1" or unknown-block(0,0): error -6
      Please append a correct "root=" boot option; here are the available partitions:
      mmc0: host does not support reading read-only switch. assuming write-enable.
      1f00             256 mtdblock0  (driver?)
      1f01             256 mtdblock1  (driver?)
      1f02            2560 mtdblock2 mmc0: new SDHC card at address b368
       (driver?)
      1f03           29696 mtdblock3  (driver?)
      1f04           16384 mtdblock4 mmcblk0: mmc0:b368 USD   3.72 GiB
       (driver?)
       mmcblk0: p1
      b300         3910656 mmcblk0  driver: mmcblk
        b301         3906560 mmcblk0p1 00000000-01
      Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
      Signed-off-by: NSergey Yanovich <ynvich@gmail.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      3500ed90
    • K
      mmc: core: enhance card removal judgement for slow removal · 1450734e
      Kevin Liu 提交于
      Function _mmc_detect_card_removed will be called to know whether
      the card is still present when host->bus_ops->detect is called.
      In current code, the return value of this function generally only
      depend on the result of sending cmd13 to card, which may not safe
      for card with detection support like slot gpio detection.
      Because the communication status between host and card may out of
      sync with the detect status if remove the card slowly or hands shake
      during the process. The direct reason is the async between card
      detect switch and card/slot pad contaction in hardware, which is
      defined by spec.
      
      The spec define card insert/remove sequence as below (both standard size
      SD card and MicroSD card have the same sequence):
      "Part 1 Standard Size SD Card Mechanical Addendum Ver4.00 Final,
      Appendix C: Card Detection Switch" (Take normally open type as example)
      a)SD card insertion sequence:
        The card detection switch should be turned on after all SD card
        contact pads are connected to the host connector contact pads.
      b)SD removal sequence:
        The card detection switch should be turned off when the SD card
        is just going to be removed and before any SD card contact pad is
        disconnected from the host connector contact pad.
      
      Below is the sequence when this issue occur (Take slot gpio detection
      as example and remove the card slowly during the process):
      1. gpio level changed and card detect interrupt triggered.
      2. mmc_rescan was launched.
      3. the card pads were still contacted with the slot pads because of slow
         removal. So _mmc_detect_card_removed and mmc_rescan think card was
         still present (cmd13 succeed).
      4. card pads were discontacted from the card slot pads.
      So the card was actually removed finally but the card removal event
      has been missed by system.
      The interval length between step 1 and step 4 depends on the
      card removal speed. If it's longer than the detect work schedule
      delay which is 200ms, this issue will likely happen.
      
      This patch add the card detect status check in function
      _mmc_detect_card_removed if cmd13 check succeed and host->ops->get_cd
      provided. If get_cd detect no card present then schedule another detect
      work 200ms later.
      Signed-off-by: NKevin Liu <kliu5@marvell.com>
      Tested-by: NJohan Rudholm <johan.rudholm@stericsson.com>
      Reviewed-by: NPhilip Rakity <prakity@nvidia.com>
      Acked-by: NUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      1450734e
  6. 25 2月, 2013 7 次提交
  7. 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
  8. 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
  9. 07 12月, 2012 2 次提交
  10. 08 10月, 2012 2 次提交
  11. 03 10月, 2012 1 次提交
    • J
      mmc: support BKOPS feature for eMMC · 950d56ac
      Jaehoon Chung 提交于
      Enable eMMC background operations (BKOPS) feature.
      
      If URGENT_BKOPS is set after a response, note that BKOPS are required.
      Immediately run BKOPS if required.  Read/write operations should be
      requested during BKOPS(LEVEL-1), then issue HPI to interrupt the
      ongoing BKOPS and service the foreground operation.
      (This patch only controls the LEVEL2/3.)
      
      When repeating the writing 1GB data, at a certain time, performance is
      decreased.  At that time, card triggers the Level-3 or Level-2.  After
      running bkops, performance is recovered.
      
      Future considerations:
       * Check BKOPS_LEVEL=1 and start BKOPS in a preventive manner.
       * Interrupt ongoing BKOPS before powering off the card.
       * How do we get BKOPS_STATUS value (periodically send ext_csd command)?
       * If using periodic bkops, also consider runtime_pm control.
      Signed-off-by: NJaehoon Chung <jh80.chung@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Signed-off-by: NKonstantin Dorfman <kdorfman@codeaurora.org>
      Reviewed-by: NMaya Erez <merez@codeaurora.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      950d56ac
  12. 05 9月, 2012 2 次提交
  13. 23 7月, 2012 1 次提交
    • A
      mmc: core: reset signal voltage on power up · 108ecc4c
      Aaron Lu 提交于
      Add a call to mmc_set_signal_voltage() to set signal voltage to 3.3v in
      mmc_power_up so that we do not need to touch signal voltage setting in
      mmc/sd/sdio init functions and rescan function.
      
      For mmc/sd cards, when doing a suspend/resume cycle, consider the unsafe
      resume case, the card will lose its power and when powered on again, we
      will set signal voltage to 3.3v in mmc_power_up before its resume function
      gets called, which will re-init the card.
      
      And for sdio cards, when doing a suspend/resume cycle, consider the unsafe
      resume case, the card will either lose its power or not depending on if it
      wants to wakeup the host. If power is not maintained, it is the same case as
      mmc/sd cards. If power is maintained, mmc_power_up will not be called and
      the card's signal voltage will remain at the last setting.
      Signed-off-by: NAaron Lu <aaron.lu@amd.com>
      Tested-by: NVenkatraman S <svenkatr@ti.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      108ecc4c
  14. 21 7月, 2012 2 次提交
  15. 11 7月, 2012 2 次提交
  16. 10 5月, 2012 1 次提交
  17. 21 4月, 2012 3 次提交
  18. 06 4月, 2012 1 次提交
  19. 28 3月, 2012 3 次提交
  20. 26 3月, 2012 1 次提交