27 Jul, 2011

6 commits

  • The patch adds device tree probe support for sdhci-esdhc-imx driver.

    Signed-off-by: Shawn Guo
    Cc: Wolfram Sang
    Cc: Chris Ball
    Cc: Grant Likely
    Acked-by: Grant Likely
    Acked-by: Chris Ball

    Shawn Guo
     
  • Neither platform based nor dt based device needs to pass the parent
    to sdhci_alloc_host. There is no difference between platform and dt
    on this point.

    The patch makes the change to pass device itself than its parent to
    sdhci_alloc_host for dt case too. Otherwise the probe function of
    sdhci based drivers which is shared between platform and dt will
    fail on dt case.

    Signed-off-by: Shawn Guo
    Cc: Chris Ball
    Acked-by: Grant Likely
    Acked-by: Chris Ball

    Shawn Guo
     
  • The patch removes all the uses of cpu_is_mx(). Instead, it utilizes
    platform_device_id to distinguish the esdhc differences among SoCs.

    Signed-off-by: Shawn Guo
    Cc: Wolfram Sang
    Cc: Chris Ball
    Acked-by: Grant Likely
    Acked-by: Chris Ball

    Shawn Guo
     
  • The patch copies platform data into pltfm_imx_data and reference
    the data there than platform data after probe.

    This work is inspired by Grant Likely and Troy Kisky.

    Signed-off-by: Shawn Guo
    Cc: Troy Kisky
    Cc: Grant Likely
    Cc: Wolfram Sang
    Cc: Chris Ball
    Acked-by: Grant Likely
    Acked-by: Chris Ball

    Shawn Guo
     
  • The patch extends card_detect and write_protect support to get mx5
    family and more scenarios supported. The changes include:

    * Turn platform_data from optional to mandatory
    * Add cd_types and wp_types into platform_data to cover more use
    cases
    * Remove the use of flag ESDHC_FLAG_GPIO_FOR_CD
    * Adjust some machine codes to adopt the platform_data changes
    * Work around the issue that software reset will get card detection
    circuit stop working

    With this patch, card_detect and write_protect gets supported on
    mx5 based platforms.

    Signed-off-by: Shawn Guo
    Cc: Chris Ball
    Acked-by: Wolfram Sang
    Tested-by: Arnaud Patard
    Acked-by: Chris Ball

    Shawn Guo
     
  • Fix build issue caused by undefined struct scatterlist in
    drivers/mmc/host/tmio_mmc.c.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

26 Jul, 2011

4 commits

  • * Merge akpm patch series: (122 commits)
    drivers/connector/cn_proc.c: remove unused local
    Documentation/SubmitChecklist: add RCU debug config options
    reiserfs: use hweight_long()
    reiserfs: use proper little-endian bitops
    pnpacpi: register disabled resources
    drivers/rtc/rtc-tegra.c: properly initialize spinlock
    drivers/rtc/rtc-twl.c: check return value of twl_rtc_write_u8() in twl_rtc_set_time()
    drivers/rtc: add support for Qualcomm PMIC8xxx RTC
    drivers/rtc/rtc-s3c.c: support clock gating
    drivers/rtc/rtc-mpc5121.c: add support for RTC on MPC5200
    init: skip calibration delay if previously done
    misc/eeprom: add eeprom access driver for digsy_mtc board
    misc/eeprom: add driver for microwire 93xx46 EEPROMs
    checkpatch.pl: update $logFunctions
    checkpatch: make utf-8 test --strict
    checkpatch.pl: add ability to ignore various messages
    checkpatch: add a "prefer __aligned" check
    checkpatch: validate signature styles and To: and Cc: lines
    checkpatch: add __rcu as a sparse modifier
    checkpatch: suggest using min_t or max_t
    ...

    Did this as a merge because of (trivial) conflicts in
    - Documentation/feature-removal-schedule.txt
    - arch/xtensa/include/asm/uaccess.h
    that were just easier to fix up in the merge than in the patch series.

    Linus Torvalds
     
  • It is not necessary to share the same notifier.h.

    Signed-off-by: WANG Cong
    Cc: David Miller
    Acked-by: "Rafael J. Wysocki"
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Amerigo Wang
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    fs: Merge split strings
    treewide: fix potentially dangerous trailing ';' in #defined values/expressions
    uwb: Fix misspelling of neighbourhood in comment
    net, netfilter: Remove redundant goto in ebt_ulog_packet
    trivial: don't touch files that are removed in the staging tree
    lib/vsprintf: replace link to Draft by final RFC number
    doc: Kconfig: `to be' -> `be'
    doc: Kconfig: Typo: square -> squared
    doc: Konfig: Documentation/power/{pm => apm-acpi}.txt
    drivers/net: static should be at beginning of declaration
    drivers/media: static should be at beginning of declaration
    drivers/i2c: static should be at beginning of declaration
    XTENSA: static should be at beginning of declaration
    SH: static should be at beginning of declaration
    MIPS: static should be at beginning of declaration
    ARM: static should be at beginning of declaration
    rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check
    Update my e-mail address
    PCIe ASPM: forcedly -> forcibly
    gma500: push through device driver tree
    ...

    Fix up trivial conflicts:
    - arch/arm/mach-ep93xx/dma-m2p.c (deleted)
    - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)
    - drivers/net/r8169.c (just context changes)

    Linus Torvalds
     
  • * 'next/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc: (35 commits)
    ARM: msm: platsmp: determine number of CPU cores at boot time
    ARM: Tegra: Seaboard: Fix I2C bus numbering for ADT7461
    ARM: Tegra: Trimslice: Tri-state DAP3 pinmux
    ARM: orion5x: fixup 5181 MPP mask check
    ARM: mxs-dma: include
    ARM: i.MX53: consistently use MX53_UART_PAD_CTRL for uart txd/rxd/rts/cts
    ARM: i.MX53: UARTn_CTS pin should not change RTS input select
    ARM: i.MX53: UARTn_TXD pin should not change RXD input select
    ARM: mx25: Fix typo on CAN1_RX pad setting
    iomux-mx53: add missing 'IOMUX_CONFIG_SION' for some I2C pad definitions
    ARM: NUC93X: add UL suffix to VMALLOC_END to ensure it is properly typed
    ARM: LPC32XXX: add UL suffix to VMALLOC_END to ensure it is properly typed
    ARM: CNS3XXX: add UL suffix to VMALLOC_END to ensure it is properly typed
    ARM: i.MX53: Fix IOMUX type o's
    ARM i.MX dma: Fix burstsize settings
    mach-mx5: fix the I2C clock parents
    ARM: mxs/tx28: according to the TX28's datasheet D4-D7 are not used for MMC0
    ARM i.MX23/28: platform-mxsfb: Add missing include of linux/dma-mapping.h
    ARM: mx53: Fix some interrupts marked as reserved.
    MXC: iomux-v3: correct NO_PAD_CTRL definition
    ...

    Fix up trivial conflict in arch/arm/mach-imx/mach-mx31_3ds.c

    Linus Torvalds
     

25 Jul, 2011

1 commit

  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (237 commits)
    ARM: 7004/1: fix traps.h compile warnings
    ARM: 6998/2: kernel: use proper memory barriers for bitops
    ARM: 6997/1: ep93xx: increase NR_BANKS to 16 for support of 128MB RAM
    ARM: Fix build errors caused by adding generic macros
    ARM: CPU hotplug: ensure we migrate all IRQs off a downed CPU
    ARM: CPU hotplug: pass in proper affinity mask on IRQ migration
    ARM: GIC: avoid routing interrupts to offline CPUs
    ARM: CPU hotplug: fix abuse of irqdesc->node
    ARM: 6981/2: mmci: adjust calculation of f_min
    ARM: 7000/1: LPAE: Use long long printk format for displaying the pud
    ARM: 6999/1: head, zImage: Always Enter the kernel in ARM state
    ARM: btc: avoid invalidating the branch target cache on kernel TLB maintanence
    ARM: ARM_DMA_ZONE_SIZE is no more
    ARM: mach-shark: move ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size
    ARM: mach-sa1100: move ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size
    ARM: mach-realview: move from ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size
    ARM: mach-pxa: move from ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size
    ARM: mach-ixp4xx: move from ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size
    ARM: mach-h720x: move from ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size
    ARM: mach-davinci: move from ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size
    ...

    Linus Torvalds
     

23 Jul, 2011

2 commits

  • …'suspend' and 'vfp' into for-next

    Russell King
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1287 commits)
    icmp: Fix regression in nexthop resolution during replies.
    net: Fix ppc64 BPF JIT dependencies.
    acenic: include NET_SKB_PAD headroom to incoming skbs
    ixgbe: convert to ndo_fix_features
    ixgbe: only enable WoL for magic packet by default
    ixgbe: remove ifdef check for non-existent define
    ixgbe: Pass staterr instead of re-reading status and error bits from descriptor
    ixgbe: Move interrupt related values out of ring and into q_vector
    ixgbe: add structure for containing RX/TX rings to q_vector
    ixgbe: inline the ixgbe_maybe_stop_tx function
    ixgbe: Update ATR to use recorded TX queues instead of CPU for routing
    igb: Fix for DH89xxCC near end loopback test
    e1000: always call e1000_check_for_link() on e1000_ce4100 MACs.
    netxen: add fw version compatibility check
    be2net: request native mode each time the card is reset
    ipv4: Constrain UFO fragment sizes to multiples of 8 bytes
    virtio_net: Fix panic in virtnet_remove
    ipv6: make fragment identifications less predictable
    ipv6: unshare inetpeers
    can: make function can_get_bittiming static
    ...

    Linus Torvalds
     

21 Jul, 2011

27 commits

  • At http://www.mail-archive.com/linux-mmc@vger.kernel.org/msg08371.html
    (thread: "mmc: sdio: reset card during power_restore") we found and
    fixed a bug where mmc's runtime power management functions were not being
    called. We have now also made improvements to the SDIO powerup routine
    which could possibly mask this kind of issue in future.

    Add debug messages to the runtime PM hooks so that it is easy to verify
    if and when runtime PM is happening.

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

    Daniel Drake
     
  • In the case where a driver returns -ENOSYS from its suspend handler
    to indicate that the device should be powered down over suspend, the
    remove routine of the driver was not being called, leading to lots of
    confusion during resume.

    The problem is that runtime PM is disabled during this process,
    and when we reach mmc_sdio_remove, calling the runtime PM functions here
    (validly) return errors, and this was causing us to skip the remove
    function.

    Fix this by ignoring the error value of pm_runtime_get_sync(), which
    can return valid errors. This also matches the behaviour of
    pci_device_remove().

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

    Ohad Ben-Cohen
     
  • Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD
    Cc: Nicolas Ferre
    Signed-off-by: Chris Ball

    Jean-Christophe PLAGNIOL-VILLARD
     
  • Fix clock rate setting in the mxs-mmc driver. Previously, if div2 was 0
    then the value for TIMING_CLOCK_RATE would have been 255 instead of 0.
    The limits for div1 (TIMING_CLOCK_DIVIDE) and div2 (TIMING_CLOCK_RATE+1)
    were also not correctly defined.

    Can easily be reproduced on mx23evk: default clock for high speed sdio
    cards is 50 MHz. With a SSP_CLK of 28.8 MHz default), this resulted in
    an actual clock rate of about 56 kHz. Tested on mx23evk.

    Signed-off-by: Koen Beel
    Reviewed-by: Wolfram Sang
    Signed-off-by: Chris Ball

    Koen Beel
     
  • Currently the tmio-mmc driver contains a recursive runtime PM method
    invocation, which leads to a deadlock on a mutex. Avoid it by taking
    care not to request DMA too early.

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

    Guennadi Liakhovetski
     
  • A recent commit "mmc: tmio: Share register access functions" has swapped
    arguments of a macro and broken DMA with TMIO MMC. This patch fixes the
    arguments back.

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

    Guennadi Liakhovetski
     
  • This patch uses runtime PM to allow the system to power down the MMC
    controller, when the MMC closk is switched off.

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

    Guennadi Liakhovetski
     
  • This patch uses runtime PM to allow the system to power down the MMC
    controller, when the MMC closk is switched off.

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

    Guennadi Liakhovetski
     
  • Calling mmc_request_done() under a spinlock with interrupts disabled
    leads to a recursive spin-lock on request retry path and to
    scheduling in atomic context. This patch fixes both these problems
    by moving mmc_request_done() to the scheduler workqueue.

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

    Guennadi Liakhovetski
     
  • In the case of an I/O error, the DMA will have been cleaned up in
    the MMC interrupt and the request structure pointer will be null.

    In that case, it is essential to check if the DMA is over before
    dereferencing host->mrq->data.

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

    Adrian Hunter
     
  • There are a few places with the same functionality. This patch creates
    two functions omap_hsmmc_set_bus_width() and omap_hsmmc_set_bus_mode()
    to do the job.

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

    Andy Shevchenko
     
  • There are two pieces of code which are similar, but not the same.
    Each of them contains a bug.

    The SYSCTL register should be read before writing to it in
    omap_hsmmc_context_restore() to retain the state of the reserved bits.

    Before setting the clock divisor and DTO bits the value from the SYSCTL
    register should be masked properly. We were lucky to have no problems
    with DTO bits. So, make sure we have clear DTO bits properly in
    omap_hsmmc_set_ios().

    Additionally get rid of msleep(1). The actual time is rarely higher
    than 30us on OMAP 3630.

    The resulting pieces of code are refactored into the
    omap_hsmmc_set_clock() function.

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

    Andy Shevchenko
     
  • There is similar code in two functions which enable the clock. Refactor
    this code to omap_hsmmc_start_clock(). Re-use omap_hsmmc_stop_clock() in
    omap_hsmmc_context_restore() as well.

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

    Andy Shevchenko
     
  • There are two places where the same calculations are done.
    Let's split them into a separate function.

    In addition, simplify by using the DIV_ROUND_UP kernel macro.

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

    Andy Shevchenko
     
  • Move the min and max frequency constants to the definition block in
    the source file.

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

    Andy Shevchenko
     
  • CERR and BADA were in the wrong place and there are only
    32 not 35.

    Signed-off-by: Adrian Hunter
    Reviewed-by: Venkatraman S
    Signed-off-by: Chris Ball

    Adrian Hunter
     
  • We already check for ongoing async transfers when handling discard
    requests, but not in mmc_blk_issue_flush(). This patch fixes that
    omission.

    Tested with an SDHCI controller and eMMC4.41.

    Signed-off-by: Jaehoon Chung
    Signed-off-by: Kyungmin Park
    Acked-by: Per Forlin
    Cc:
    Signed-off-by: Chris Ball

    Jaehoon Chung
     
  • After runtime conversion to handle clk, iclk node is not used.
    However fclk node is still used to get clock rate.

    Signed-off-by: Balaji T K
    Signed-off-by: Chris Ball

    Balaji T K
     
  • * Add runtime pm support to HSMMC host controller.
    * Use runtime pm API to enable/disable HSMMC clock.
    * Use runtime autosuspend APIs to enable auto suspend delay.

    Based on OMAP HSMMC runtime implementation by Kevin Hilman and
    Kishore Kadiyala.

    Signed-off-by: Balaji T K
    Signed-off-by: Chris Ball

    Balaji T K
     
  • lazy_disable framework in OMAP HSMMC manages multiple low power states and
    card is powered off after inactivity time of 8 seconds. Based on previous
    discussion on the list, card power (regulator) handling (when to power
    OFF/ON) should ideally be handled by core layer. Remove usage of lazy
    disable to allow core layer _only_ to handle card power. With the removal
    of lazy disable framework, MMC regulators are left ON until MMC_POWER_OFF
    via set_ios.

    Signed-off-by: Balaji T K
    Signed-off-by: Chris Ball

    Balaji T K
     
  • Non default Drive Strength cannot be set automatically. It is a function
    of the board design and only if there is a specific platform handler can
    it be set. The platform handler needs to take into account the board
    design. Pass to the platform code the necessary information.

    For example: The card and host controller may indicate they support HIGH
    and LOW drive strength. There is no way to know what should be chosen
    without specific board knowledge. Setting HIGH may lead to reflections
    and setting LOW may not suffice. There is no mechanism (like ethernet
    duplex or speed pulses) to determine what should be done automatically.

    If no platform handler is defined -- use the default value.

    Signed-off-by: Philip Rakity
    Reviewed-by: Arindam Nath
    Signed-off-by: Chris Ball

    Philip Rakity
     
  • Change mmc_blk_issue_rw_rq() to become asynchronous.
    The execution flow looks like this:

    * The mmc-queue calls issue_rw_rq(), which sends the request
    to the host and returns back to the mmc-queue.
    * The mmc-queue calls issue_rw_rq() again with a new request.
    * This new request is prepared in issue_rw_rq(), then it waits for
    the active request to complete before pushing it to the host.
    * When the mmc-queue is empty it will call issue_rw_rq() with a NULL
    req to finish off the active request without starting a new request.

    Signed-off-by: Per Forlin
    Acked-by: Kyungmin Park
    Acked-by: Arnd Bergmann
    Reviewed-by: Venkatraman S
    Tested-by: Sourav Poddar
    Tested-by: Linus Walleij
    Signed-off-by: Chris Ball

    Per Forlin
     
  • Add an additional mmc queue request instance to make way for two active
    block requests. One request may be active while the other request is
    being prepared.

    Signed-off-by: Per Forlin
    Acked-by: Kyungmin Park
    Acked-by: Arnd Bergmann
    Reviewed-by: Venkatraman S
    Tested-by: Sourav Poddar
    Tested-by: Linus Walleij
    Signed-off-by: Chris Ball

    Per Forlin
     
  • Break out code without functional changes. This simplifies the code and
    makes way for handling two parallel requests.

    Signed-off-by: Per Forlin
    Acked-by: Kyungmin Park
    Acked-by: Arnd Bergmann
    Reviewed-by: Venkatraman S
    Tested-by: Sourav Poddar
    Tested-by: Linus Walleij
    Signed-off-by: Chris Ball

    Per Forlin
     
  • Break out code from mmc_blk_issue_rw_rq to create a block request prepare
    function. This doesn't change any functionallity. This helps when handling
    more than one active block request.

    Signed-off-by: Per Forlin
    Acked-by: Kyungmin Park
    Acked-by: Arnd Bergmann
    Reviewed-by: Venkatraman S
    Tested-by: Sourav Poddar
    Tested-by: Linus Walleij
    Signed-off-by: Chris Ball

    Per Forlin
     
  • The way the request data is organized in the mmc queue struct, it only
    allows processing of one request at a time. This patch adds a new struct
    to hold mmc queue request data such as sg list, request, blk request and
    bounce buffers, and updates any functions depending on the mmc queue
    struct. This prepares for using multiple active requests in one mmc queue.

    Signed-off-by: Per Forlin
    Acked-by: Kyungmin Park
    Acked-by: Arnd Bergmann
    Reviewed-by: Venkatraman S
    Tested-by: Sourav Poddar
    Tested-by: Linus Walleij
    Signed-off-by: Chris Ball

    Per Forlin
     
  • Add a test that measures how the mmc bandwidth depends on the numbers of
    sg elements in the sg list. The transfer size if fixed and sg length goes
    from a few up to 512. The purpose is to measure overhead caused by
    multiple sg elements.

    Signed-off-by: Per Forlin
    Acked-by: Kyungmin Park
    Acked-by: Arnd Bergmann
    Reviewed-by: Venkatraman S
    Tested-by: Sourav Poddar
    Tested-by: Linus Walleij
    Signed-off-by: Chris Ball

    Per Forlin