lkml.org 
[lkml]   [2019]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 144/313] mmc: bcm2835: reset host on timeout
    Date
    4.19-stable review patch.  If anyone has any objections, please let me know.

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

    [ Upstream commit f6000a4eb34e6462bc0dd39809c1bb99f9633269 ]

    The bcm2835 mmc host tends to lock up for unknown reason so reset it on
    timeout. The upper mmc block layer tries retransimitting with single
    blocks which tends to work out after a long wait.

    This is better than giving up and leaving the machine broken for no
    obvious reason.

    Fixes: 660fc733bd74 ("mmc: bcm2835: Add new driver for the sdhost controller.")
    Signed-off-by: Michal Suchanek <msuchanek@suse.de>
    Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
    Acked-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/mmc/host/bcm2835.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/mmc/host/bcm2835.c b/drivers/mmc/host/bcm2835.c
    index abf1f3c8b0c3..5301302fb531 100644
    --- a/drivers/mmc/host/bcm2835.c
    +++ b/drivers/mmc/host/bcm2835.c
    @@ -286,6 +286,7 @@ static void bcm2835_reset(struct mmc_host *mmc)

    if (host->dma_chan)
    dmaengine_terminate_sync(host->dma_chan);
    + host->dma_chan = NULL;
    bcm2835_reset_internal(host);
    }

    @@ -846,6 +847,8 @@ static void bcm2835_timeout(struct work_struct *work)
    dev_err(dev, "timeout waiting for hardware interrupt.\n");
    bcm2835_dumpregs(host);

    + bcm2835_reset(host->mmc);
    +
    if (host->data) {
    host->data->error = -ETIMEDOUT;
    bcm2835_finish_data(host);
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-02-11 16:44    [W:2.227 / U:0.248 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site