1. 23 9月, 2009 5 次提交
  2. 16 9月, 2009 1 次提交
  3. 09 4月, 2009 1 次提交
  4. 01 1月, 2009 1 次提交
  5. 15 7月, 2008 1 次提交
  6. 23 3月, 2008 1 次提交
  7. 18 10月, 2007 1 次提交
  8. 24 9月, 2007 2 次提交
    • 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
    • P
      mmc: replace BUG_ON with WARN_ON · d84075c8
      Pierre Ossman 提交于
      Replace all cases of BUG_ON with WARN_ON where there is a chance
      (with varying degrees of slim) that the kernel can continue without
      incidence.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      d84075c8
  9. 23 9月, 2007 4 次提交
  10. 26 7月, 2007 4 次提交
  11. 10 7月, 2007 2 次提交
  12. 01 5月, 2007 5 次提交
    • P
      mmc: remove old card states · bd766312
      Pierre Ossman 提交于
      Remove card states that no longer make any sense.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      bd766312
    • P
      mmc: support unsafe resume of cards · 6abaa0c9
      Pierre Ossman 提交于
      Since many have the system root on MMC/SD we must allow some foot
      shooting when it comes to resume.
      
      We cannot detect if a card is removed and reinserted during suspend,
      so the safe approach would be to assume it was, avoiding potential
      filesystem corruption. This will of course not work if you cannot
      release the card before suspend.
      
      This commit adds a compile time option that makes the MMC layer
      assume the card wasn't touched if it is redetected upon resume.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      6abaa0c9
    • P
      mmc: separate out reading EXT_CSD · 89a73cf5
      Pierre Ossman 提交于
      Separate the reading and decoding of the EXT_CSD register with the
      actions taken on it.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      89a73cf5
    • P
      MMC: Fix handling of low-voltage cards · 55556da0
      Philip Langdale 提交于
      Fix handling of low voltage MMC cards.
      
      The latest MMC and SD specs both agree that support for
      low-voltage operations is indicated by bit 7 in the OCR.
      The MMC spec states that the low voltage range is
      1.65-1.95V while the SD spec leaves the actual voltage
      range undefined - meaning that there is still no such
      thing as a low voltage SD card.
      
      However, an old Sandisk spec implied that bits 7.0
      represented voltages below 2.0V in 1V or 0.5V increments,
      and the code was accordingly written with that expectation.
      
      This confusion meant that host drivers attempting to support
      the typical low voltage (1.8V) would set the wrong bits in
      the host OCR mask (usually bits 5 and/or 6) resulting in the
      the low voltage mode never being used.
      
      This change corrects the low voltage range and adds sanity
      checks on the reserved bits (0-6) and for SD cards that
      claim to support low-voltage operations.
      Signed-off-by: NPhilip Langdale <philipl@overt.org>
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      55556da0
    • P
      mmc: add bus handler · 7ea239d9
      Pierre Ossman 提交于
      Delegate protocol handling to "bus handlers". This allows the core to
      just handle the task of arbitrating the bus. Initialisation and
      pampering of cards is now done by the different bus handlers.
      
      This design also allows MMC and SD (and later SDIO) to be more cleanly
      separated, allowing easier maintenance.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      7ea239d9