1. 12 1月, 2012 6 次提交
    • A
      mmc: allow upper layers to know immediately if card has been removed · d3049504
      Adrian Hunter 提交于
      Add a function mmc_detect_card_removed() which upper layers can use to
      determine immediately if a card has been removed. This function should
      be called after an I/O request fails so that all queued I/O requests
      can be errored out immediately instead of waiting for the card device
      to be removed.
      Signed-off-by: NAdrian Hunter <adrian.hunter@intel.com>
      Acked-by: NSujit Reddy Thumma <sthumma@codeaurora.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      d3049504
    • P
      mmc: sdio: support SDIO UHS cards · a303c531
      Philip Rakity 提交于
      This patch adds support for sdio UHS cards per the version 3.0
      spec.
      
      UHS mode is only enabled for version 3.0 cards when both the
      host and the controller support UHS modes.
      
      1.8v signaling support is removed if both the card and the
      host do not support UHS.  This is done to maintain
      compatibility and some system/card combinations break when
      1.8v signaling is enabled when the host does not support UHS.
      Signed-off-by: NPhilip Rakity <prakity@marvell.com>
      Signed-off-by: NAaron Lu <Aaron.lu@amd.com>
      Reviewed-by: NArindam Nath <arindam.nath@amd.com>
      Tested-by: NBing Zhao <bzhao@marvell.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      a303c531
    • S
      mmc: core: Use delayed work in clock gating framework · 597dd9d7
      Sujit Reddy Thumma 提交于
      Current clock gating framework disables the MCI clock as soon as the
      request is completed and enables it when a request arrives. This aggressive
      clock gating framework, when enabled, cause following issues:
      
      When there are back-to-back requests from the Queue layer, we unnecessarily
      end up disabling and enabling the clocks between these requests since 8MCLK
      clock cycles is a very short duration compared to the time delay between
      back to back requests reaching the MMC layer. This overhead can effect the
      overall performance depending on how long the clock enable and disable
      calls take which is platform dependent. For example on some platforms we
      can have clock control not on the local processor, but on a different
      subsystem and the time taken to perform the clock enable/disable can add
      significant overhead.
      
      Also if the host controller driver decides to disable the host clock too
      when mmc_set_ios function is called with ios.clock=0, it adds additional
      delay and it is highly possible that the next request had already arrived
      and unnecessarily blocked in enabling the clocks. This is seen frequently
      when the processor is executing at high speeds and in multi-core platforms
      thus reduces the overall throughput compared to if clock gating is
      disabled.
      
      Fix this by delaying turning off the clocks by posting request on
      delayed workqueue. Also cancel the unscheduled pending work, if any,
      when there is access to card.
      
      sysfs entry is provided to tune the delay as needed, default
      value set to 200ms.
      Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      597dd9d7
    • G
      mmc: debugfs: expose the SDCLK frq in sys ios · df16219f
      Giuseppe CAVALLARO 提交于
      This patch is to expose the actual SDCLK frequency in
      /sys/kernel/debug/mmcX/ios entry.
      
      For example, if the max clk for a normal speed card is 20MHz this
      is reported in /sys/kernel/debug/mmcX/ios.  Unfortunately the actual
      SDCLK frequency (i.e. Baseclock / divisor) is not reported at all:
      for example, in that case, on Arasan HC, it should be 48/4=12 (MHz).
      Signed-off-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Acked-by: NAdrian Hunter <adrian.hunter@intel.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      df16219f
    • S
      mmc: sdio: Fix to support any block size optimally · 052d81da
      Stefan Nilsson XK 提交于
      This patch allows any block size to be set on the SDIO link,
      and still have an arbitrary sized packet (adjusted in size by
      using sdio_align_size) transferred in an optimal way
      (preferably one transfer).
      
      Previously if the block size was larger than the default of
      512 bytes and the transfer size was exactly one block size
      (possibly thanks to using sdio_align_size to get an optimal
      transfer size), it was sent as a number of byte transfers instead
      of one block transfer. Also if the number of blocks was
      (max_blocks * N) + 1, the tranfer would be conducted with a number
      of blocks and finished off with a number of byte transfers.
      
      When doing this change it was also possible to break out the quirk
      for broken byte mode in a much cleaner way, and collect the logic of
      when to do byte or block transfer in one function instead of two.
      Signed-off-by: NStefan Nilsson XK <stefan.xk.nilsson@stericsson.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@stericsson.com>
      Acked-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      052d81da
    • Q
      mmc: sd: Macro name cleanup for high speed dtr · fffe5d5a
      Qiang Liu 提交于
      Add new macros for the high speed 50MHz case, rather than having
      a confusing reuse of the value for UHS SDR50, which is 100MHz.
      Reported-by: NAaron Lu <aaron.lu@amd.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      fffe5d5a
  2. 20 12月, 2011 1 次提交
  3. 11 12月, 2011 5 次提交
  4. 01 11月, 2011 2 次提交
  5. 27 10月, 2011 26 次提交