19 Feb, 2012

7 commits

  • These are the bug fixes that have accumulated since 3.3-rc3 in arm-soc.
    The majority of them are regression fixes for stuff that broke during
    the merge 3.3 window.

    The notable ones are:

    * The at91 ata drivers both broke because of an earlier cleanup patch that
    some other patches were based on. Jean-Christophe decided to remove
    the legacy at91_ide driver and fix the new-style at91-pata driver while
    keeping the cleanup patch. I almost rejected the patches for being too
    late and too big but in the end decided to accept them because they
    fix a regression.

    * A patch fixing build breakage from the sysdev-to-device conversion
    colliding with other changes touches a number of mach-s3c files.

    * b0654037 "ARM: orion: Fix Orion5x GPIO regression from MPP cleanup"
    is a mechanical change that unfortunately touches a lot of lines
    that should up in the diffstat.

    * tag 'fixes-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
    ARM: at91: drop ide driver in favor of the pata one
    pata/at91: use newly introduced SMC accessors
    ARM: at91: add accessor to manage SMC
    ARM: at91:rtc/rtc-at91sam9: ioremap register bank
    ARM: at91: USB AT91 gadget registration for module
    ep93xx: fix build of vision_ep93xx.c
    ARM: OMAP2xxx: PM: fix OMAP2xxx-specific UART idle bug in v3.3
    ARM: orion: Fix USB phy for orion5x.
    ARM: orion: Fix Orion5x GPIO regression from MPP cleanup
    ARM: EXYNOS: Add cpu-offset property in gic device tree node
    ARM: EXYNOS: Bring exynos4-dt up to date
    ARM: OMAP3: cm-t35: fix section mismatch warning
    ARM: OMAP2: Fix the OMAP2 only build break seen with 2011+ ARM tool-chains
    ARM: tegra: paz00: fix wrong UART port on mini-pcie plug
    ARM: tegra: paz00: fix wrong SD1 power gpio
    i2c: tegra: Add devexit_p() for remove
    ARM: EXYNOS: Correct M-5MOLS sensor clock frequency on Universal C210 board
    ARM: EXYNOS: Correct framebuffer window size on Nuri board
    ARM: SAMSUNG: Fix missing api-change from subsys_interface change
    ARM: EXYNOS: Fix "warning: initialization from incompatible pointer type"
    ...

    Linus Torvalds
     
  • 1) VETH_INFO_PEER netlink attribute needs to have it's size validated,
    from Thomas Graf.

    2) 'poll' module option of bnx2x driver crashes the machine, just remove
    it. From Michal Schmidt.

    3) ks8851_mll driver reads the irq number from two places, but only
    initializes one of them, oops. Use only one location and fix this
    problem, from Jan Weitzel.

    4) Fix buffer overrun and unicast sterring bugs in mellanox mlx4 driver,
    from Eugenia Emantayev.

    5) Swapped kcalloc() args in RxRPC and mlx4, from Axel Lin.

    6) PHY MDIO device name regression fixes from Florian Fainelli.

    7) If the wake event IRQ line is different from the netdevice one, we
    have to properly route it to the stmmac interrupt handler. From
    Francesco Virlinzi.

    8) Fix rwlock lock initialization ordering bug in mac80211, from
    Mohammed Shafi Shajakhan.

    9) TCP lost_cnt can get out of sync, and in fact go negative, in certain
    circumstances. Fix the way we specify what sequence range to operate
    on in tcp_sacktag_one() to fix this bug. From Neal Cardwell.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (27 commits)
    net/ethernet: ks8851_mll fix irq handling
    veth: Enforce minimum size of VETH_INFO_PEER
    stmmac: update the driver version to Feb 2012 (v2)
    stmmac: move hw init in the probe (v2)
    stmmac: request_irq when use an ext wake irq line (v2)
    stmmac: do not discard frame on dribbling bit assert
    ipheth: Add iPhone 4S
    mlx4: add unicast steering entries to resource_tracker
    mlx4: fix QP tree trashing
    mlx4: fix buffer overrun
    3c59x: shorten timer period for slave devices
    netpoll: netpoll_poll_dev() should access dev->flags
    RxRPC: Fix kcalloc parameters swapped
    bnx2x: remove the 'poll' module option
    tcp: fix tcp_shifted_skb() adjustment of lost_cnt_hint for FACK
    ks8851: Fix NOHZ local_softirq_pending 08 warning
    bnx2x: fix bnx2x_storm_stats_update() on big endian
    ixp4xx-eth: fix PHY name to match MDIO bus name
    octeon: fix PHY name to match MDIO bus name
    fec: fix PHY name to match fixed MDIO bus name
    ...

    Linus Torvalds
     
  • Fixes a bootstrapping issue for some registers when a less commonly used
    method for register cache initialisation is used. Only affects a fairly
    small proportion of users that both don't use explicit register defaults
    and do use the cache.

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
    regmap: Fix cache defaults initialization from raw cache defaults

    Linus Torvalds
     
  • pinctrl fixes for v3.3

    * tag 'pinctrl-for-torvalds-20120216' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    pinctrl: restore pin naming

    Linus Torvalds
     
  • Here are a few more fixes for powerpc. Some are regressions, the rest
    is simple/obvious/nasty enough that I deemed it good to go now.

    Here's also step one of deprecating legacy iSeries support: we are
    removing it from the main defconfig.

    Nobody seems to be using it anymore and the code is nasty to maintain,
    (involves horrible hacks in various low level areas of the kernel) so we
    plan to actually rip it out at some point. For now let's just avoid
    building it by default. Stephen will proceed to do the actual removal
    later (probably 3.4 or 3.5).

    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc/perf: power_pmu_start restores incorrect values, breaking frequency events
    powerpc/adb: Use set_current_state()
    powerpc: Disable interrupts early in Program Check
    powerpc: Remove legacy iSeries from ppc64_defconfig
    powerpc/fsl/pci: Fix PCIe fixup regression
    powerpc: Fix kernel log of oops/panic instruction dump

    Linus Torvalds
     
  • One regression fix for SR-IOV on PPC and a couple of misc fixes from
    Yinghai.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci:
    PCI: Fix pci cardbus removal
    PCI: set pci sriov page size before reading SRIOV BAR
    PCI: workaround hard-wired bus number V2

    Linus Torvalds
     
  • 3 radeon fixes, I have some exynos fixes to push later but I'll queue
    them separately once I've looked them over a bit.

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/radeon/kms: fix MSI re-arm on rv370+
    drm/radeon/kms/atom: bios scratch reg handling updates
    drm/radeon/kms: drop lock in return path of radeon_fence_count_emitted.

    Linus Torvalds
     

16 Feb, 2012

13 commits

  • Signed-off-by: majianpeng
    Signed-off-by: Benjamin Herrenschmidt

    majianpeng
     
  • There a two different irq variables ks->irq and netdev->irq.
    Only ks->irq is set on probe, so disabling irq in ks_start_xmit fails.

    This patches remove ks->irq from private data and use only netdev->irq.

    Tested on a kernel 3.0 based OMAP4430 SMP Board

    Signed-off-by: Jan Weitzel
    Signed-off-by: David S. Miller

    Jan Weitzel
     
  • VETH_INFO_PEER carries struct ifinfomsg plus optional IFLA
    attributes. A minimal size of sizeof(struct ifinfomsg) must be
    enforced or we may risk accessing that struct beyond the limits
    of the netlink message.

    Signed-off-by: Thomas Graf
    Signed-off-by: David S. Miller

    Thomas Graf
     
  • Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • This patch moves the MAC HW initialization and
    the HW feature verification from the open to the probe
    function as D. Miller suggested.
    So the patch actually reorganizes and tidies-up some parts of
    the driver and indeed fixes some problem when tune its HW features.
    These can be overwritten by looking at the HW cap register at
    run-time and that generated problems.

    Signed-off-by: Giuseppe Cavallaro
    Reviewed-by: Francesco Virlinzi
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • In case of we use an external Wake-Up IRQ line
    (priv->wol_irq != dev->irq) we need to invoke the
    request_irq.

    Signed-off-by: Francesco Virlinzi
    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Francesco Virlinzi
     
  • If this bit is set and the CRC error is reset, then the packet is valid.
    Only report this as stat info.

    Signed-off-by: Giuseppe Cavallaro
    Signed-off-by: David S. Miller

    Giuseppe CAVALLARO
     
  • BugLink: http://bugs.launchpad.net/bugs/900802

    Cc: stable@vger.kernel.org 3.2+
    Signed-off-by: Till Kamppeter
    Signed-off-by: Tim Gardner
    Signed-off-by: David S. Miller

    Tim Gardner
     
  • Add unicast steering entries to resource tracker.
    Do qp_detach also for these entries when VF doesn't shut down gracefully.
    Otherwise there is leakage of these resources, since they are not tracked.

    Signed-off-by: Eugenia Emantayev
    Reviewed-by: Yevgeny Petrilin
    Signed-off-by: David S. Miller

    Eugenia Emantayev
     
  • When adding new unicast steer entry, before moving qp to state ready,
    actually before calling mlx4_RST2INIT_QP_wrapper(), there were added
    a lot of entries with local_qpn=0 into radix tree.
    This fact impacted the get_res() function and proper functioning
    of resource tracker in addition to adding trash entries into radix tree.

    Signed-off-by: Eugenia Emantayev
    Reviewed-by: Yevgeny Petrilin
    Signed-off-by: David S. Miller

    Eugenia Emantayev
     
  • When passing MLX4_UC_STEER=1 it was translated to value 2
    after mlx4_QP_ATTACH_wrapper. Therefore in new_steering_entry()
    unicast steer entries were added to index 2 of array of size 2.
    Fixing this bug by shift right to one position.

    Signed-off-by: Eugenia Emantayev
    Reviewed-by: Yevgeny Petrilin
    Signed-off-by: David S. Miller

    Eugenia Emantayev
     
  • …wireless into for-davem

    John W. Linville
     
  • Currently registers with a value of 0 are ignored when initializing the register
    defaults from raw defaults. This worked in the past, because registers without a
    explicit default were assumed to have a default value of 0. This was changed in
    commit b03622a8 ("regmap: Ensure rbtree syncs registers set to zero properly").
    As a result registers, which have a raw default value of 0 are now assumed to
    have no default. This again can result in unnecessary writes when syncing the
    cache. It will also result in unnecessary reads for e.g. the first update
    operation. In the case where readback is not possible this will even let the
    update operation fail, if the register has not been written to before.

    So this patch removes the check. Instead it adds a check to ignore raw defaults
    for registers which are volatile, since those registers are not cached.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Lars-Peter Clausen
     

15 Feb, 2012

5 commits

  • One small bug fix from Axel plus a fix for a build failure in unrealistic
    but commonly built configs which for some reason manage to survive for
    an awfully long time in -next without any reports.

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
    regulator: Fix getting voltage in max8649_enable_time()
    regulator: Fix mc13xxx regulator modular build (again)

    Linus Torvalds
     
  • MMC fixes for 3.3-rc4:
    * The most visible fix here is against a regression introduced in 3.3-rc1
    that ran cards in Ultra High Speed mode even when they failed to initialize
    in that mode, leading to lower-speed cards failing to mount.
    * A lockdep warning introduced in 3.3-rc1 is fixed.
    * Various other small driver fixes, most notably for a NULL dereference
    when using highmem with dw_mmc.

    * tag 'mmc-fixes-for-3.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
    mmc: dw_mmc: Fix PIO mode with support of highmem
    mmc: atmel-mci: save and restore sdioirq when soft reset is performed
    mmc: block: Init ro_lock sysfs attr to fix lockdep warnings
    mmc: sh_mmcif: fix late delayed work initialisation
    mmc: tmio_mmc: fix card eject during IO with DMA
    mmc: core: Fix comparison issue in mmc_compare_ext_csds
    mmc: core: Fix PowerOff Notify suspend/resume
    mmc: sdhci-pci: set Medfield SDIO as non-removable
    mmc: core: add the capability for broken voltage
    mmc: core: Fix low speed mmc card detection failure
    mmc: esdhc: set the timeout to the max value
    mmc: esdhc: add PIO mode support
    mmc: core: Ensure clocks are always enabled before host interaction
    mmc: of_mmc_spi: fix little endian support
    mmc: core: UHS sdio card that fails should not exceed 50MHz
    mmc: esdhc: fix errors when booting kernel on Freescale eSDHC version 2.3

    Linus Torvalds
     
  • …/kernel/git/konrad/xen

    Two fixes for VCPU offlining; One to fix the string format exposed
    by the xen-pci[front|back] to conform to the one used in majority of
    PCI drivers; Two fixes to make the code more resilient to invalid
    configurations.

    Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

    * tag 'stable/for-linus-fixes-3.3-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    xenbus_dev: add missing error check to watch handling
    xen/pci[front|back]: Use %d instead of %1x for displaying PCI devfn.
    xen pvhvm: do not remap pirqs onto evtchns if !xen_have_vector_callback
    xen/smp: Fix CPU online/offline bug triggering a BUG: scheduling while atomic.
    xen/bootup: During bootup suppress XENBUS: Unable to read cpu state

    Linus Torvalds
     
  • Jean Delvare reported bonding on top of 3c59x adapters was not detecting
    network cable removal fast enough.

    3c59x indeed uses a 60 seconds timer to check link status if carrier is
    on, and 5 seconds if carrier is off.

    This patch reduces timer period to 5 seconds if device is a bonding
    slave.

    Reported-by: Jean Delvare
    Acked-by: Jean Delvare
    Acked-by: Steffen Klassert
    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • 'poll' was a debugging option, but turning it on these days leads to
    kernel panic. Remove it.

    Signed-off-by: Michal Schmidt
    Signed-off-by: David S. Miller

    Michal Schmidt
     

14 Feb, 2012

15 commits

  • MSI_REARM_EN register is a write only trigger register.
    There is no need RMW when re-arming.

    May fix:
    https://bugs.freedesktop.org/show_bug.cgi?id=41668

    Signed-off-by: Alex Deucher
    CC: stable@vger.kernel.org
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • - Add missing DFP6 connection state handling
    - crtc routing bits not used on DCE4+

    Noticed by sylware on phoronix.

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     
  • Silly bad return path.

    Reported-and-Tested-by: Mikko Vinni
    Reviewed-by: Alex Deucher
    CC: stable@vger.kernel.org
    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • Current PIO mode makes a kernel crash with CONFIG_HIGHMEM.
    Highmem pages have a NULL from sg_virt(sg).
    This patch fixes the following problem.

    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = c0004000
    [00000000] *pgd=00000000
    Internal error: Oops: 817 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 0 Not tainted (3.0.15-01423-gdbf465f #589)
    PC is at dw_mci_pull_data32+0x4c/0x9c
    LR is at dw_mci_read_data_pio+0x54/0x1f0
    pc : [] lr : [] psr: 20000193
    sp : c0619d48 ip : c0619d70 fp : c0619d6c
    r10: 00000000 r9 : 00000002 r8 : 00001000
    r7 : 00000200 r6 : 00000000 r5 : e1dd3100 r4 : 00000000
    r3 : 65622023 r2 : 0000007f r1 : eeb96000 r0 : e1dd3100
    Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment
    xkernel
    Control: 10c5387d Table: 61e2004a DAC: 00000015
    Process swapper (pid: 0, stack limit = 0xc06182f0)
    Stack: (0xc0619d48 to 0xc061a000)
    9d40: e1dd3100 e1a4f000 00000000 e1dd3100 e1a4f000 00000200
    9d60: c0619da4 c0619d70 c035988c c03587e4 c0619d9c e18158f4 e1dd3100 e1dd3100
    9d80: 00000020 00000000 00000000 00000020 c06e8a84 00000000 c0619e04 c0619da8
    9da0: c0359b24 c0359844 e18158f4 e1dd3164 e1dd3168 e1dd3150 3d02fc79 e1dd3154
    9dc0: e1dd3178 00000000 00000020 00000000 e1dd3150 00000000 c10dd7e8 e1a84900
    9de0: c061e7cc 00000000 00000000 0000008d c06e8a84 c061e780 c0619e4c c0619e08
    9e00: c00c4738 c0359a34 3d02fc79 00000000 c0619e4c c05a1698 c05a1670 c05a165c
    9e20: c04de8b0 c061e780 c061e7cc e1a84900 ffffed68 0000008d c0618000 00000000
    9e40: c0619e6c c0619e50 c00c48b4 c00c46c8 c061e780 c00423ac c061e7cc ffffed68
    9e60: c0619e8c c0619e70 c00c7358 c00c487c 0000008d ffffee38 c0618000 ffffed68
    9e80: c0619ea4 c0619e90 c00c4258 c00c72b0 c00423ac ffffee38 c0619ecc c0619ea8
    9ea0: c004241c c00c4234 ffffffff f8810000 0000006d 00000002 00000001 7fffffff
    9ec0: c0619f44 c0619ed0 c0048bc0 c00423c4 220ae7a9 00000000 386f0d30 0005d3a4
    9ee0: c00423ac c10dd0b8 c06f2cd8 c0618000 c0594778 c003a674 7fffffff c0619f44
    9f00: 386f0d30 c0619f18 c00a6f94 c005be3c 80000013 ffffffff 386f0d30 0005d3a4
    9f20: 386f0d30 0005d2d1 c10dd0a8 c10dd0b8 c06f2cd8 c0618000 c0619f74 c0619f48
    9f40: c0345858 c005be00 c00a2440 c0618000 c0618000 c00410d8 c06c1944 c00410fc
    9f60: c0594778 c003a674 c0619f9c c0619f78 c004a7e8 c03457b4 c0618000 c06c18f8
    9f80: 00000000 c0039c70 c06c18d4 c003a674 c0619fb4 c0619fa0 c04ceafc c004a714
    9fa0: c06287b4 c06c18f8 c0619ff4 c0619fb8 c0008b68 c04cea68 c0008578 00000000
    9fc0: 00000000 c003a674 00000000 10c5387d c0628658 c003aa78 c062f1c4 4000406a
    9fe0: 413fc090 00000000 00000000 c0619ff8 40008044 c0008858 00000000 00000000
    Backtrace:
    [] (dw_mci_pull_data32+0x0/0x9c) from [] (dw_mci_read_data_pio+0x54/0x1f0)
    r6:00000200 r5:e1a4f000 r4:e1dd3100
    [] (dw_mci_read_data_pio+0x0/0x1f0) from [] (dw_mci_interrupt+0xfc/0x4a4)
    [] (dw_mci_interrupt+0x0/0x4a4) from [] (handle_irq_event_percpu+0x7c/0x1b4)
    [] (handle_irq_event_percpu+0x0/0x1b4) from [] (handle_irq_event+0x44/0x64)
    [] (handle_irq_event+0x0/0x64) from [] (handle_fasteoi_irq+0xb4/0x124)
    r7:ffffed68 r6:c061e7cc r5:c00423ac r4:c061e780
    [] (handle_fasteoi_irq+0x0/0x124) from [] (generic_handle_irq+0x30/0x38)
    r7:ffffed68 r6:c0618000 r5:ffffee38 r4:0000008d
    [] (generic_handle_irq+0x0/0x38) from [] (asm_do_IRQ+0x64/0xe0)
    r5:ffffee38 r4:c00423ac
    [] (asm_do_IRQ+0x0/0xe0) from [] (__irq_svc+0x80/0x14c)
    Exception stack(0xc0619ed0 to 0xc0619f18)

    Signed-off-by: Seungwon Jeon
    Acked-by: Will Newton
    Cc: stable
    Signed-off-by: Chris Ball

    Seungwon Jeon
     
  • Sometimes a software reset is needed. Then some registers are saved and
    restored but the interrupt mask register is missing. It causes issues
    with sdio devices whose interrupts are masked after reset.

    Signed-off-by: Ludovic Desroches
    Cc: stable
    Signed-off-by: Nicolas Ferre
    Signed-off-by: Chris Ball

    Ludovic Desroches
     
  • Signed-off-by: Rabin Vincent
    Signed-off-by: Johan Rudholm
    Signed-off-by: Ulf Hansson
    Acked-by: Linus Walleij
    Reviewed-by: Namjae Jeon
    Signed-off-by: Chris Ball

    Rabin Vincent
     
  • If the driver is loaded with a card in the slot, mmc_add_host() will
    schedule an immediate card-detection work, which will start IO and wait
    for command completion. Usually the kernel first returns to the sh_mmcif
    probe function, lets it finish and only then schedules the rescan work.
    But sometimes, expecially under heavy system load, the work will be
    scheduled immediately before returning to the probe method. In this case
    it is important for the driver to be fully prepared for IO. For sh_mmcif
    this means, that also the timeout work has to be initialised before
    calling mmc_add_host(). It is also better to prepare interrupts
    beforehand. Besides, since mmc_add_host() does card-detection itself,
    there is no need to do it again immediately afterwards.

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

    Guennadi Liakhovetski
     
  • When DMA is in use and the card is ejected during IO, DMA transfers have to
    be terminated, otherwise the dmaengine driver fails to operate properly,
    when the card is re-inserted.

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

    Guennadi Liakhovetski
     
  • Found this issue during code review. Actually, there are two issues which
    both compensate together in lucky case. In unlucky case the bus width
    probing might not work as expected.

    Signed-off-by: Jurgen Heeks
    Reviewed-by: Namjae Jeon
    Signed-off-by: Chris Ball

    Jurgen Heeks
     
  • Modified the mmc_poweroff to resume before sending the poweroff
    notification command. In sleep mode only AWAKE and RESET commands are
    allowed, so before sending the poweroff notification command resume from
    sleep mode and then send the notification command.

    PowerOff Notify is tested on a Synopsis Designware Host Controller
    (eMMC 4.5). The suspend to RAM and resume works fine.

    Signed-off-by: Girish K S
    Tested-by: Girish K S
    Reviewed-by: Saugata Das
    Signed-off-by: Chris Ball

    Girish K S
     
  • Set Medfield SDIO as non-removable to avoid un-necessary
    card detect activity.

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

    Adrian Hunter
     
  • There is an understood mismatch between the voltage the host controller is
    set to and the voltage supplied to the card by a fixed voltage regulator.
    Teaching the driver to accept the mismatch is overly complicated. Instead
    just accept the regulator's voltage.

    This patch adds MMC_CAP2_BROKEN_VOLTAGE.

    If the voltage didn't satisfy between min_uV and max_uV, try to change
    the voltage in core.c. When changing the voltage, maybe use
    regulator_set_voltage().

    In regulator_set_voltage(), check the below condition.

    /* sanity check */
    if (!rdev->desc->ops->set_voltage &&
    !rdev->desc->ops->set_voltage_sel) {
    ret = -EINVAL;
    goto out;
    }

    If some board should use the fixed-regulator, always return -EINVAL.
    Then, eMMC didn't initialize always.

    So if use a fixed-regulator, we need to add the MMC_CAP2_BROKEN_VOLTAGE.

    Signed-off-by: Jaehoon Chung
    Signed-off-by: Kyungmin Park
    Acked-by: Adrian Hunter
    Signed-off-by: Chris Ball

    Jaehoon Chung
     
  • This patch fixes the failure of low speed mmc card detection.

    Signed-off-by: Girish K S
    Signed-off-by: Chris Ball

    Girish K S
     
  • When accessing the card on some FSL platform boards (e.g p2020, p1010,
    mpc8536), the following error is reported with the timeout value calculated:

    mmc0: Got data interrupt 0x00000020 even though no data operation was
    in progress.
    mmc0: Got data interrupt 0x00000020 even though no data operation was
    in progress.

    So we skip the calculation of timeout and use the max value to fix it.

    Signed-off-by: Jerry Huang
    Signed-off-by: Gao Guanhua
    Signed-off-by: Xie Xiaobo
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Jerry Huang
     
  • For some FSL ESDHC controllers (e.g. P2020E, Rev1.0), the SDHC can not
    work on DMA mode because of the hardware bug, so we set a broken dma flag
    and use PIO mode.

    Signed-off-by: Jerry Huang
    Signed-off-by: Gao Guanhua
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Jerry Huang