14 Jun, 2009

2 commits

  • Some controllers allow a much lower frequency than 400kHz.
    Keep the minimum frequency within sensible limits.

    Signed-off-by: Sascha Hauer

    Sascha Hauer
     
  • With this patch, mmc_rescan can detect the removal of an mmc card and
    the insertion of (possibly another) card in the same run. This means
    that a card change can be detected without having to call
    mmc_detect_change multiple times.

    This change generalises the core such that it can be easily used by
    hosts which provide a mechanism to detect only the presence of a card
    reader cover, which has to be taken off in order to insert a card. Other
    hosts ("card detect" or "MMC_CAP_NEEDS_POLL") each receive an event when
    a card is removed and when a card is inserted, so it is sufficient for
    them if mmc_rescan handles only one event at a time. "Cover detect"
    hosts, however, only receive events about the cover status. This means
    that between 2 subsequent events, both a card removal and a card
    insertion can occur. In this case, the pre-patch version of mmc_rescan
    would only detect the removal of the previous card but not the insertion
    of the new card.

    Signed-off-by: Jorg Schummer
    Signed-off-by: Pierre Ossman

    Jorg Schummer
     

04 May, 2009

1 commit


09 Apr, 2009

2 commits


06 Apr, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: (42 commits)
    atmel-mci: fix sdc_reg typo
    tmio_mmc: add maintainer
    mmc: Add OpenFirmware bindings for SDHCI driver
    sdhci: Add quirk for forcing maximum block size to 2048 bytes
    sdhci: Add quirk for controllers that need IRQ re-init after reset
    sdhci: Add quirk for controllers that need small delays for PIO
    sdhci: Add set_clock callback and a quirk for nonstandard clocks
    sdhci: Add get_{max,timeout}_clock callbacks
    sdhci: Add support for hosts reporting inverted write-protect state
    sdhci: Add support for card-detection polling
    sdhci: Enable only relevant (DMA/PIO) interrupts during transfers
    sdhci: Split card-detection IRQs management from sdhci_init()
    sdhci: Add support for bus-specific IO memory accessors
    mmc_spi: adjust for delayed data token response
    omap_hsmmc: Wait for SDBP
    omap_hsmmc: Fix MMC3 dma
    omap_hsmmc: Disable SDBP at suspend
    omap_hsmmc: Do not prefix slot name
    omap_hsmmc: Allow cover switch to cause rescan
    omap_hsmmc: Add 8-bit bus width mode support
    ...

    Linus Torvalds
     

31 Mar, 2009

1 commit

  • Glue between MMC and regulator stacks ... verified with
    some OMAP3 boards using adjustable and configured-as-fixed
    regulators on several MMC controllers.

    These calls are intended to be used by MMC host adapters
    using at least one regulator per host. Examples include
    slots with regulators supporting multiple voltages and
    ones using multiple voltage rails (e.g. DAT4..DAT7 using a
    separate supply, or a split rail chip like certain SDIO
    WLAN or eMMC solutions).

    Signed-off-by: David Brownell
    Acked-by: Pierre Ossman
    Signed-off-by: Liam Girdwood

    David Brownell
     

25 Mar, 2009

8 commits


08 Mar, 2009

1 commit

  • Commit 0d3e0460f307e84904968aad6cff97bd688583d8
    "MMC: CSD and CID timeout values" inadvertently broke
    the timeout for the MMC command SEND_EXT_CSD.

    This patch puts it back again.

    Depending on the characteristics of the controller,
    this bug may prevent the use of MMC cards.

    Signed-off-by: Adrian Hunter
    Signed-off-by: Pierre Ossman

    Adrian Hunter
     

01 Jan, 2009

3 commits


09 Nov, 2008

2 commits


12 Oct, 2008

4 commits


02 Aug, 2008

1 commit


27 Jul, 2008

2 commits

  • For each card successfully added to the bus, create a subdirectory under
    the host's debugfs root with information about the card.

    At the moment, only a single file is added to the card directory for
    all cards: "state". It reflects the "state" field in struct mmc_card,
    indicating whether the card is present, readonly, etc.

    For MMC and SD cards (not SDIO), another file is added: "status".
    Reading this file will ask the card about its current status and
    return it. This can be useful if the card just refuses to respond to
    any commands, which might indicate that the card state is not what the
    MMC core thinks it is (due to a missing stop command, for example.)

    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Pierre Ossman

    Haavard Skinnemoen
     
  • When CONFIG_DEBUG_FS is set, create a few files under /sys/kernel/debug
    containing information about an mmc host's internal state. Currently,
    just a single file is created, "ios", which contains information about
    the current operating parameters for the bus (clock speed, bus width,
    etc.)

    Host drivers can add additional files and directories under the host's
    root directory by passing the debugfs_root field in struct mmc_host as
    the 'parent' parameter to debugfs_create_*.

    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Pierre Ossman

    Haavard Skinnemoen
     

17 Jul, 2008

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: (68 commits)
    sdio_uart: Fix SDIO break control to now return success or an error
    mmc: host driver for Ricoh Bay1Controllers
    sdio: sdio_io.c Fix sparse warnings
    sdio: fix the use of hard coded timeout value.
    mmc: OLPC: update vdd/powerup quirk comment
    mmc: fix spares errors of sdhci.c
    mmc: remove multiwrite capability
    wbsd: fix bad dma_addr_t conversion
    atmel-mci: Driver for Atmel on-chip MMC controllers
    mmc: fix sdio_io sparse errors
    mmc: wbsd.c fix shadowing of 'dma' variable
    MMC: S3C24XX: Refuse incorrectly aligned transfers
    MMC: S3C24XX: Add maintainer entry
    MMC: S3C24XX: Update error debugging.
    MMC: S3C24XX: Add media presence test to request handling.
    MMC: S3C24XX: Fix use of msecs where jiffies are needed
    MMC: S3C24XX: Add MODULE_ALIAS() entries for the platform devices
    MMC: S3C24XX: Fix s3c2410_dma_request() return code check.
    MMC: S3C24XX: Allow card-detect on non-IRQ capable pin
    MMC: S3C24XX: Ensure host->mrq->data is valid
    ...

    Manually fixed up bogus executable bits on drivers/mmc/core/sdio_io.c
    and include/linux/mmc/sdio_func.h when merging.

    Linus Torvalds
     

15 Jul, 2008

8 commits

  • Unfold nested macros it creates not readable code and
    sparse warnings
    sdio_io.c:190:9: warning: symbol '_min1' shadows an earlier one

    Signed-off-by: Tomas Winkler
    Signed-off-by: Pierre Ossman

    Tomas Winkler
     
  • This adds reading and using of enable_timeout from the CIS

    Signed-off-by: Benzi Zbit
    Signed-off-by: Tomas Winkler
    Signed-off-by: Pierre Ossman

    Benzi Zbit
     
  • This patch fixes sdio_io sparse errors.
    This fix changes signature of API functions,
    changing
    unsigned char -> u8
    unsigned short -> u16
    unsigned long -> u32 - this was probably a bug in 64 bit platforms

    Signed-off-by: Tomas Winkler
    Signed-off-by: Pierre Ossman

    Tomas Winkler
     
  • Make sure that the maximum size for a byte mode transfer is identical
    in all places. Also tweak the transfer helper so that a single byte
    mode transfer is preferred over (possibly multiple) block mode
    request(s).

    Signed-off-by: Pierre Ossman

    Pierre Ossman
     
  • 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: Pierre Ossman

    Pierre Ossman
     
  • Make the variable name in the comments match the actual name
    of the variable.

    Signed-off-by: Deepak Saxena
    Signed-off-by: Pierre Ossman

    Deepak Saxena
     
  • Now get_ro() callback must return 0/1 values for its logical states, and
    negative errno values in case of error. If particular host instance doesn't
    support RO/WP switch, it should return -ENOSYS.

    This patch changes some hosts in two ways:

    1. Now functions should be smart to not return negative values in
    "RO asserted" case (particularly gpio_ calls could return negative
    values for the outermost GPIOs).

    Also, board code usually passes get_ro() callbacks that directly return
    gpioreg & bit result, so at91_mci, imxmmc, pxamci and mmc_spi's get_ro()
    handlers need take special care when returning platform's values to the
    mmc core.

    2. In case of host instance didn't implement get_ro() callback, it should
    really return -ENOSYS and let the mmc core decide what to do about it
    (mmc core thinks the same way as the hosts, so it isn't functional
    change).

    Signed-off-by: Anton Vorontsov
    Signed-off-by: Pierre Ossman

    Anton Vorontsov
     
  • 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: Anton Vorontsov
    Signed-off-by: Pierre Ossman

    Anton Vorontsov
     

19 Apr, 2008

3 commits