1. 13 1月, 2012 3 次提交
  2. 12 1月, 2012 12 次提交
  3. 11 12月, 2011 1 次提交
  4. 27 10月, 2011 20 次提交
  5. 14 8月, 2011 1 次提交
  6. 21 7月, 2011 3 次提交
    • P
      mmc: core: Set non-default Drive Strength via platform hook · ca8e99b3
      Philip Rakity 提交于
      Non default Drive Strength cannot be set automatically.  It is a function
      of the board design and only if there is a specific platform handler can
      it be set.  The platform handler needs to take into account the board
      design.  Pass to the platform code the necessary information.
      
      For example:  The card and host controller may indicate they support HIGH
      and LOW drive strength.  There is no way to know what should be chosen
      without specific board knowledge.  Setting HIGH may lead to reflections
      and setting LOW may not suffice.  There is no mechanism (like ethernet
      duplex or speed pulses) to determine what should be done automatically.
      
      If no platform handler is defined -- use the default value.
      Signed-off-by: NPhilip Rakity <prakity@marvell.com>
      Reviewed-by: NArindam Nath <arindam.nath@amd.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      ca8e99b3
    • P
      mmc: core: add non-blocking mmc request function · aa8b683a
      Per Forlin 提交于
      Previously there has only been one function mmc_wait_for_req()
      to start and wait for a request. This patch adds:
      
       * mmc_start_req() - starts a request wihtout waiting
         If there is on ongoing request wait for completion
         of that request and start the new one and return.
         Does not wait for the new command to complete.
      
      This patch also adds new function members in struct mmc_host_ops
      only called from core.c:
      
       * pre_req - asks the host driver to prepare for the next job
       * post_req - asks the host driver to clean up after a completed job
      
      The intention is to use pre_req() and post_req() to do cache maintenance
      while a request is active. pre_req() can be called while a request is
      active to minimize latency to start next job. post_req() can be used after
      the next job is started to clean up the request. This will minimize the
      host driver request end latency. post_req() is typically used before
      ending the block request and handing over the buffer to the block layer.
      
      Add a host-private member in mmc_data to be used by pre_req to mark the
      data. The host driver will then check this mark to see if the data is
      prepared or not.
      Signed-off-by: NPer Forlin <per.forlin@linaro.org>
      Acked-by: NKyungmin Park <kyungmin.park@samsung.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Reviewed-by: NVenkatraman S <svenkatr@ti.com>
      Tested-by: NSourav Poddar <sourav.poddar@ti.com>
      Tested-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      aa8b683a
    • J
      mmc: dw_mmc: fix stop when fallen back to PIO · 03e8cb53
      James Hogan 提交于
      There are several situations when dw_mci_submit_data_dma() decides to
      fall back to PIO mode instead of using DMA, due to a short (to avoid
      overhead) or "complex" (e.g. with unaligned buffers) transaction, even
      though host->use_dma is set. However dw_mci_stop_dma() decides whether
      to stop DMA or set the EVENT_XFER_COMPLETE event based on host->use_dma.
      When falling back to PIO mode this results in data timeout errors
      getting missed and the driver locking up.
      
      Therefore add host->using_dma to indicate whether the current
      transaction is using dma or not, and adjust dw_mci_stop_dma() to use
      that instead.
      Signed-off-by: NJames Hogan <james.hogan@imgtec.com>
      Acked-by: NWill Newton <will.newton@imgtec.com>
      Tested-by: NJaehoon Chung <jh80.chung@samsung.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      03e8cb53