26 Jun, 2011

10 commits

  • SCSI defines discard alignment as the offset to the first
    optimal discard. In the case of SD/MMC, that is always zero
    which is the default.

    SCSI defines discard granularity as a hint of a optimal
    discard size. That is much better expressed by the MMC
    "preferred erase size" (pref_erase) field.

    Signed-off-by: Adrian Hunter
    Signed-off-by: Chris Ball

    Adrian Hunter
     
  • For example, an eMMC with 2 boot partitions will have 3 threads.
    The names change from:

    40 ? 00:00:00 mmcqd/0
    41 ? 00:00:00 mmcqd/0
    42 ? 00:00:00 mmcqd/0

    to:

    40 ? 00:00:00 mmcqd/0
    41 ? 00:00:00 mmcqd/0boot0
    42 ? 00:00:00 mmcqd/0boot1

    Signed-off-by: Adrian Hunter
    Cc: Andrei Warkentin
    Signed-off-by: Chris Ball

    Adrian Hunter
     
  • The erase timeout calculation may depend on clock rate
    which is zero if the clock is gated, so use
    mmc_host_clk_rate() which allows for that case.

    Signed-off-by: Adrian Hunter
    Signed-off-by: Chris Ball

    Adrian Hunter
     
  • The MMC block driver and other drivers (e.g. mmc-test) will expect
    the card to be switched to the User Data Area eMMC partition when
    they start. Hence the MMC block driver should ensure it is that
    way when it is removed.

    Signed-off-by: Adrian Hunter
    Cc: Andrei Warkentin
    Signed-off-by: Chris Ball

    Adrian Hunter
     
  • mmc_sdio_power_restore() skips some steps that are performed in other
    power-related codepaths which are necessary to fully reset the card.
    Without this, runtime PM fails for SD8686 SDIO wifi on OLPC XO-1.5.

    Signed-off-by: Daniel Drake
    Signed-off-by: Chris Ball

    Daniel Drake
     
  • Don't try to allocate DMA resources if the platform didn't specify
    positive DMA slave IDs.

    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Chris Ball

    Guennadi Liakhovetski
     
  • Commit b6147490e6aac82 ("mmc: tmio: split core functionality, DMA and
    MFD glue") broke handling of the TMIO_MMC_WRPROTECT_DISABLE flag by
    the tmio-mmc driver. This patch restores the original behaviour.

    Signed-off-by: Guennadi Liakhovetski
    Cc:
    Signed-off-by: Chris Ball

    Guennadi Liakhovetski
     
  • Don't use the returned sg_len from dma_map_sg() as inparameter
    to dma_unmap_sg(). Use the original sg_len for both dma_map_sg
    and dma_unmap_sg according to the documentation in DMA-API.txt.

    Signed-off-by: Per Forlin
    Reviewed-by: Venkatraman S
    Signed-off-by: Chris Ball

    Per Forlin
     
  • The OMAP HSMMC driver uses an ocr_mask to determine the list of voltages
    supported by the card. It populates this mask based on the list of
    voltages supported by the regulator that supplies the voltage.

    Commit 64be97822b (omap4 hsmmc: Update ocr mask for MMC2 for regulator
    to use) passed a fixed ocr_mask from the OMAP4 SDP board file to limit
    the voltage to 2.9-3.0 Volts, and updated the driver to use this mask
    if provided, instead of using the regulator's supported voltages.

    However the commit is buggy - the ocr_mask is overridden by the
    regulator's capabilities anyway. Fix this.

    (The bug shows up when a system-wide suspend is attempted on the OMAP4
    SDP/Blaze platforms. The eMMC card comes up at 3V, but drops to 1.65V
    after the system resumes).

    Signed-off-by: Anand Gadiyar
    Acked-by: Balaji T K
    Acked-by: Venkatraman S
    Tested-by: Kishore Kadiyala
    Signed-off-by: Sourav Poddar
    Signed-off-by: Chris Ball

    Anand Gadiyar
     
  • After commit e1866b3 "PM / Runtime: Rework runtime PM handling
    during driver removal" was introduced, the driver core stopped
    incrementing the runtime PM usage counter of the device during
    the invocation of the ->remove() callback.

    This indirectly broke SDIO's runtime PM path during driver removal,
    because no one calls _put_sync() anymore after ->remove() completes.

    This means that the power of runtime-PM-managed SDIO cards is kept
    high after their driver is removed (even if it was powered down
    beforehand).

    Fix that by directly calling _put_sync() when the last usage
    counter is downref'ed by the SDIO bus.

    Reported-and-tested-by: Daniel Drake
    Signed-off-by: Ohad Ben-Cohen
    Signed-off-by: Chris Ball

    Ohad Ben-Cohen
     

19 Jun, 2011

3 commits


16 Jun, 2011

1 commit

  • * 'fixes' of master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: footbridge: fix clock event support
    ARM: footbridge: fix debug macros
    ARM: initrd: disable initrds outside of memory
    ARM: extend Code: line by one 16-bit quantity for Thumb instructions
    ARM: 6955/1: cmpxchg syscall should data abort if page not write
    ARM: 6954/1: zImage: fix Thumb2 breakage
    ARM: 6953/1: DT: don't try to access physical address zero
    ARM: 6949/2: mach-u300: fix compilaton warning in IO accessors
    Revert "ARM: 6944/1: mm: allow ASID 0 to be allocated to tasks"
    Revert "ARM: 6943/1: mm: use TTBR1 instead of reserved context ID"
    davinci: make PCM platform devices static
    arm: davinci: Fix fallout from generic irq chip conversion
    ARM: 6894/1: mmci: trigger card detect IRQs on falling and rising edges
    ARM: 6952/1: fix lockdep warning of "unannotated irqs-off"
    ARM: 6951/1: include .bss in memory layout information
    ARM: 6948/1: Fix .size directives for __arm{7,9}tdmi_proc_info
    ARM: 6947/2: mach-u300: fix compilation error in timer
    ARM: 6946/1: vexpress: move v2m clock init to init_early
    ARM: mx51/sdma: Check the chip revision in run-time
    arm: mxs: include asm/processor.h for cpu_relax()

    Linus Torvalds
     

06 Jun, 2011

1 commit

  • Right now the card detect IRQ for MMCI is requested without any
    flags which will give some default machine-specified IRQ
    behaviour. However on the U300 rising+falling edges (such as can
    be expected from a simple GPIO to generate when inserting/removing
    a card) need to be requested explicitly.

    Cc: Rabin Vincent
    Cc: Ulf Hansson
    Cc: Sebastian Rasmussen
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Linus Walleij
     

01 Jun, 2011

1 commit

  • eMMC does not handle power off when not in sleep state,
    Skip regulator disable during probe when eMMC is
    not in known state - state left by bootloader.

    Resolves eMMC failure on OMAP4
    mmc0: error -110 whilst initialising MMC card

    Signed-off-by: Balaji T K
    Tested-by: Kishore Kadiyala
    Acked-by: Kishore Kadiyala
    Signed-off-by: Tony Lindgren

    Balaji T K
     

28 May, 2011

1 commit

  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (45 commits)
    ARM: 6945/1: Add unwinding support for division functions
    ARM: kill pmd_off()
    ARM: 6944/1: mm: allow ASID 0 to be allocated to tasks
    ARM: 6943/1: mm: use TTBR1 instead of reserved context ID
    ARM: 6942/1: mm: make TTBR1 always point to swapper_pg_dir on ARMv6/7
    ARM: 6941/1: cache: ensure MVA is cacheline aligned in flush_kern_dcache_area
    ARM: add sendmmsg syscall
    ARM: 6863/1: allow hotplug on msm
    ARM: 6832/1: mmci: support for ST-Ericsson db8500v2
    ARM: 6830/1: mach-ux500: force PrimeCell revisions
    ARM: 6829/1: amba: make hardcoded periphid override hardware
    ARM: 6828/1: mach-ux500: delete SSP PrimeCell ID
    ARM: 6827/1: mach-netx: delete hardcoded periphid
    ARM: 6940/1: fiq: Briefly document driver responsibilities for suspend/resume
    ARM: 6938/1: fiq: Refactor {get,set}_fiq_regs() for Thumb-2
    ARM: 6914/1: sparsemem: fix highmem detection when using SPARSEMEM
    ARM: 6913/1: sparsemem: allow pfn_valid to be overridden when using SPARSEMEM
    at91: drop at572d940hf support
    at91rm9200: introduce at91rm9200_set_type to specficy cpu package
    at91: drop boot_params and PLAT_PHYS_OFFSET
    ...

    Linus Torvalds
     

27 May, 2011

1 commit


26 May, 2011

8 commits

  • ST-Ericsson modified ARM PrimeCell PL180 block has not got
    an updated corresponding amba-id, althought the IP block has
    changed in db8500v2. The change was done to the datactrl register.
    Using the overrided subversion ID, account for this.

    Signed-off-by: Philippe Langlais
    Signed-off-by: Linus Walleij
    Signed-off-by: Russell King

    Philippe Langlais
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (75 commits)
    mmc: core: eMMC bus width may not work on all platforms
    mmc: sdhci: Auto-CMD23 fixes.
    mmc: sdhci: Auto-CMD23 support.
    mmc: core: Block CMD23 support for UHS104/SDXC cards.
    mmc: sdhci: Implement MMC_CAP_CMD23 for SDHCI.
    mmc: core: Use CMD23 for multiblock transfers when we can.
    mmc: quirks: Add/remove quirks conditional support.
    mmc: Add new VUB300 USB-to-SD/SDIO/MMC driver
    mmc: sdhci-pxa: Add quirks for DMA/ADMA to match h/w
    mmc: core: duplicated trial with same freq in mmc_rescan_try_freq()
    mmc: core: add support for eMMC Dual Data Rate
    mmc: core: eMMC signal voltage does not use CMD11
    mmc: sdhci-pxa: add platform code for UHS signaling
    mmc: sdhci: add hooks for setting UHS in platform specific code
    mmc: core: clear MMC_PM_KEEP_POWER flag on resume
    mmc: dw_mmc: fixed wrong regulator_enable in suspend/resume
    mmc: sdhi: allow powering down controller with no card inserted
    mmc: tmio: runtime suspend the controller, where possible
    mmc: sdhi: support up to 3 interrupt sources
    mmc: sdhi: print physical base address and clock rate
    ...

    Linus Torvalds
     
  • CMD19 -- The offical way to validate bus widths from the JEDEC spec
    does not work on all platforms. Some platforms that use PCI/PCIe
    to connect their SD controllers are known to fail.

    If the quirk MMC_BUS_WIDTH_TEST is not defined we try to figure out
    the bus width by reading the ext_csd at different bus widths and
    compare this against the ext_csd read in 1 bit mode. If no ext_csd
    is available we default to 1 bit operations.

    Code has been tested on mmp2 against 8 bit eMMC and Transcend 2GB
    card that is known to not work in 4 bit mode. The physical pins
    on the card are not present to support 4 bit operation.

    Signed-off-by: Philip Rakity
    Signed-off-by: Chris Ball

    Philip Rakity
     
  • Fixes bugs in Auto-CMD23 feature enable decision. Auto-CMD23
    should be enabled if host is >= v3, and SDMA is not in use.

    USE_ADMA | USE_SDMA | Auto-CMD23
    ---------+----------+-----------
    0 | 0 | 1
    ---------+----------+-----------
    0 | 1 | 0
    ---------+----------+-----------
    1 | 0 | 1
    ---------+----------+-----------
    1 | 1 | 1

    Signed-off-by: Andrei Warkentin
    Signed-off-by: Chris Ball

    Andrei Warkentin
     
  • Enables Auto-CMD23 support where available (SDHCI 3.0 controllers)

    Signed-off-by: Andrei Warkentin
    Tested-by: Arindam Nath
    Signed-off-by: Chris Ball

    Andrei Warkentin
     
  • SD cards operating at UHS104 or better support SET_BLOCK_COUNT.

    Signed-off-by: Andrei Warkentin
    Reviewed-by: Arindam Nath
    Signed-off-by: Chris Ball

    Andrei Warkentin
     
  • Implements support for multiblock transfers bounded
    by SET_BLOCK_COUNT (CMD23).

    Signed-off-by: Andrei Warkentin
    Signed-off-by: Chris Ball

    Andrei Warkentin
     
  • CMD23-prefixed instead of open-ended multiblock transfers
    have a performance advantage on some MMC cards.

    Signed-off-by: Andrei Warkentin
    Signed-off-by: Chris Ball

    Andrei Warkentin
     

25 May, 2011

14 commits