lkml.org 
[lkml]   [2015]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.18 10/84] mmc: dw_mmc: avoid write to CDTHRCTL on older versions
    Date
    3.18-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: James Hogan <james.hogan@imgtec.com>

    commit 66dfd10173159cafa9cb0d39936b8daeaab8e3e0 upstream.

    Commit f1d2736c8156 (mmc: dw_mmc: control card read threshold) added
    dw_mci_ctrl_rd_thld() with an unconditional write to the CDTHRCTL
    register at offset 0x100. However before version 240a, the FIFO region
    started at 0x100, so the write messes with the FIFO and completely
    breaks the driver.

    If the version id < 240A, return early from dw_mci_ctl_rd_thld() so as
    not to hit this problem.

    Fixes: f1d2736c8156 (mmc: dw_mmc: control card read threshold)
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/mmc/host/dw_mmc.c | 7 +++++++
    1 file changed, 7 insertions(+)

    --- a/drivers/mmc/host/dw_mmc.c
    +++ b/drivers/mmc/host/dw_mmc.c
    @@ -626,6 +626,13 @@ static void dw_mci_ctrl_rd_thld(struct d

    WARN_ON(!(data->flags & MMC_DATA_READ));

    + /*
    + * CDTHRCTL doesn't exist prior to 240A (in fact that register offset is
    + * in the FIFO region, so we really shouldn't access it).
    + */
    + if (host->verid < DW_MMC_240A)
    + return;
    +
    if (host->timing != MMC_TIMING_MMC_HS200 &&
    host->timing != MMC_TIMING_UHS_SDR104)
    goto disable;



    \
     
     \ /
      Last update: 2015-01-07 04:21    [W:4.452 / U:0.224 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site