1. 01 Aug, 2008 1 commit
  2. 15 Jul, 2008 2 commits
    • Pierre Ossman's avatar
      mmc,sdio: helper function for transfer padding · ad3868b2
      Pierre Ossman authored
      
      
      There are a lot of crappy controllers out there that cannot handle
      all the request sizes that the MMC/SD/SDIO specifications require.
      In case the card driver can pad the data to overcome the problems,
      this commit adds a helper that calculates how much that padding
      should be.
      
      A corresponding helper is also added for SDIO, but it can also deal
      with all the complexities of splitting up a large transfer efficiently.
      
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      ad3868b2
    • Anton Vorontsov's avatar
      mmc: add support for card-detection polling · 28f52482
      Anton Vorontsov authored
      
      
      Some hosts (and boards that use mmc_spi) do not use interrupts on the CD
      line, so they can't trigger mmc_detect_change. We want to poll the card
      and see if there was a change. 1 second poll interval seems resonable.
      
      This patch also implements .get_cd() host operation, that could be used
      by the hosts that are able to report card-detect status without need to
      talk MMC.
      
      Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      28f52482
  3. 18 Apr, 2008 2 commits
  4. 02 Nov, 2007 1 commit
  5. 23 Sep, 2007 12 commits
    • Pierre Ossman's avatar
      mmc: add led trigger · af8350c7
      Pierre Ossman authored
      
      
      Add a led trigger for each host controller that indicates if there
      is a request active on the controller.
      
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      af8350c7
    • David Brownell's avatar
      MMC core learns about SPI · af517150
      David Brownell authored
      
      
      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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      af517150
    • Pierre Ossman's avatar
      mmc: increase power up delay · f9996aee
      Pierre Ossman authored
      
      
      Increase delay for power up in order to support some slower boards.
      
      Also add some comments about why the delays are there.
      
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      f9996aee
    • Pierre Ossman's avatar
      mmc: replace BUG_ON with WARN_ON · d84075c8
      Pierre Ossman authored
      
      
      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: default avatarPierre Ossman <drzeus@drzeus.cx>
      d84075c8
    • Pierre Ossman's avatar
      mmc: fix sdio timeout calculation · e6f918bf
      Pierre Ossman authored
      
      
      SDIO doesn't have a CSD so it uses different timeout values than
      SD memory.
      
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      e6f918bf
    • Pierre Ossman's avatar
      mmc: fix incorrect divisor in debug output · ce252edd
      Pierre Ossman authored
      
      
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      ce252edd
    • Nicolas Pitre's avatar
      sdio: allow for mmc_claim_host to be aborted · 2342f332
      Nicolas Pitre authored
      
      
      It is sometimes necessary to give up on trying to claim the host lock,
      especially if that happens in a thread that has to be stopped.
      
      While at it, fix the description for mmc_claim_host() which was wrong.
      
      Signed-off-by: default avatarNicolas Pitre <npitre@mvista.com>
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      2342f332
    • Nicolas Pitre's avatar
      mmc: initialize mmc subsystem with subsys_initcall() · 26074962
      Nicolas Pitre authored
      
      
      The problem is that the sdio_bus must be registered before any SDIO
      drivers are registered against it otherwise the kernel sulks.  Because
      the sdio_bus registration happens through module_init (equivalent to
      device_initcall), then any SDIO
      drivers linked before the SDIO core code in the kernel will be initialized
      first.
      
      Upcoming SDIO function drivers are likely to be located outside the
      drivers/mmc directory as it is common practice to group drivers according
      to their function rather than the bus they use.  SDIO drivers are therefore
      likely to appear at random location in the kernel link.
      
      To make sure the sdio_bus is always initialized before any SDIO drivers,
      let's move the MMC init to the subsys_initcall level.
      
      Signed-off-by: default avatarNicolas Pitre <npitre@mvista.com>
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      26074962
    • Pierre Ossman's avatar
      mmc: basic SDIO device model · e29a7d73
      Pierre Ossman authored
      
      
      Add the sdio bus type and basic device handling.
      
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      e29a7d73
    • Pierre Ossman's avatar
      mmc: detect SDIO cards · 5c4e6f13
      Pierre Ossman authored
      
      
      Really basic init sequence for SDIO cards.
      
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      5c4e6f13
    • Pierre Ossman's avatar
      mmc: mmc_set_data_timeout() parameter write is redundant · b146d26a
      Pierre Ossman authored
      
      
      The write parameter in mmc_set_data_timeout() is redundant as the
      data structure contains information about the direction of the
      transfer.
      
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      b146d26a
    • Pierre Ossman's avatar
      mmc: remove custom error codes · 17b0429d
      Pierre Ossman authored
      
      
      Convert the MMC layer to use standard error codes and not its own,
      incompatible values.
      
      Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
      17b0429d
  6. 25 Jul, 2007 4 commits
  7. 09 Jul, 2007 3 commits
  8. 09 May, 2007 1 commit
  9. 08 May, 2007 1 commit
  10. 01 May, 2007 12 commits
  11. 06 Mar, 2007 1 commit