1. 25 5月, 2011 2 次提交
  2. 13 3月, 2010 1 次提交
  3. 25 3月, 2009 1 次提交
  4. 19 4月, 2008 1 次提交
  5. 02 11月, 2007 1 次提交
  6. 24 9月, 2007 5 次提交
    • D
      MMC core learns about SPI · af517150
      David Brownell 提交于
      Teach the MMC/SD/SDIO core about using SPI mode.
      
       - Use mmc_host_is_spi() so enumeration works through SPI signaling
         and protocols, not just the native versions.
      
       - Provide the SPI response type flags with each request issued,
         including requests from the new lock/unlock code.
      
       - Understand that cmd->resp[0] and mmc_get_status() results for SPI
         return different values than for "native" MMC/SD protocol; this
         affects resetting, checking card lock status, and some others.
      
       - Understand that some commands act a bit differently ... notably:
           * OP_COND command doesn't return the OCR
           * APP_CMD status doesn't have an R1_APP_CMD analogue
      
      Those changes required some new and updated primitives:
      
       - Provide utilities to access two SPI-only requests, and one
         request that wasn't previously needed:
           * mmc_spi_read_ocr() ... SPI only
           * mmc_spi_set_crc() ... SPI only (override by module parm)
           * mmc_send_cid() ... for use without broadcast mode
      
       - Updated internal routines:
           * Previous mmc_send_csd() modified into mmc_send_cxd_native();
             it uses native "R2" responses, which include 16 bytes of data.
           * Previous mmc_send_ext_csd() becomes new mmc_send_cxd_data()
             helper for command-and-data access
           * Bugfix to that mmc_send_cxd_data() code:  dma-to-stack is
             unsafe/nonportable, so kmalloc a bounce buffer instead.
      
       - Modified mmc_send_ext_csd() now uses mmc_send_cxd_data() helper
      
       - Modified mmc_send_csd(), and new mmc_spi_send_cid(), routines use
         those helper routines based on whether they're native or SPI
      
      The newest categories of cards supported by the MMC stack aren't expected
      to work yet with SPI:  MMC or SD cards with over 4GB data, and SDIO.
      All those cards support SPI mode, so eventually they should work too.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      af517150
    • D
      sdio: extend sdio_readsb() and friends to handle any length of buffer · eb659468
      David Vrabel 提交于
      Extend sdio_readsb(), sdio_writesb(), sdio_memcpy_fromio(), and
      sdio_memcpy_toio() to handle any length of buffer by splitting the transfer
      into several IO_RW_EXTENDED commands. Typically, a transfer would be split
      into a single block mode transfer followed by a byte mode transfer for the
      remainder but we also handle lack of block mode support and the block size
      being greater than 512 (the maximum byte mode transfer size).
      
      host->max_seg_size <= host->max_req_size so there's no need to check both
      when determining the maximum data size for a single command.
      Signed-off-by: NDavid Vrabel <david.vrabel@csr.com>
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      eb659468
    • P
      sdio: support IO_RW_EXTENDED · 112c9db9
      Pierre Ossman 提交于
      Support the multi-byte transfer operation, including handlers for
      common operations like writel()/readl().
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      112c9db9
    • P
      mmc: implement SDIO IO_RW_DIRECT operation · b2bcc798
      Pierre Ossman 提交于
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      b2bcc798
    • P
      mmc: detect SDIO cards · 5c4e6f13
      Pierre Ossman 提交于
      Really basic init sequence for SDIO cards.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      5c4e6f13