lkml.org 
[lkml]   [2009]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 01/13] sdhci: Add quirk for controllers with no end-of-busy IRQ
    From: Ben Dooks <ben-linux@fluff.org>

    The Samsung SDHCI (and FSL eSDHC) controller block seems to fail
    to generate an INT_DATA_END after the transfer has completed and
    the bus busy state finished.

    Changes in e809517f6fa5803a5a1cd56026f0e2190fc13d5c to use the
    new busy method are the cause of the behaviour change.

    Signed-off-by: Ben Dooks <ben-linux@fluff.org>
    Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
    ---
    drivers/mmc/host/sdhci.c | 5 ++++-
    drivers/mmc/host/sdhci.h | 2 ++
    2 files changed, 6 insertions(+), 1 deletions(-)

    diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
    index 6b2d1f9..0a1f5c5 100644
    --- a/drivers/mmc/host/sdhci.c
    +++ b/drivers/mmc/host/sdhci.c
    @@ -1291,8 +1291,11 @@ static void sdhci_cmd_irq(struct sdhci_host *host, u32 intmask)
    if (host->cmd->data)
    DBG("Cannot wait for busy signal when also "
    "doing a data transfer");
    - else
    + else if (!(host->quirks & SDHCI_QUIRK_NO_BUSY_IRQ))
    return;
    +
    + /* The controller does not support the end-of-busy IRQ,
    + * fall through and take the SDHCI_INT_RESPONSE */
    }

    if (intmask & SDHCI_INT_RESPONSE)
    diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
    index 3efba23..2d08dd4 100644
    --- a/drivers/mmc/host/sdhci.h
    +++ b/drivers/mmc/host/sdhci.h
    @@ -210,6 +210,8 @@ struct sdhci_host {
    #define SDHCI_QUIRK_BROKEN_SMALL_PIO (1<<13)
    /* Controller supports high speed but doesn't have the caps bit set */
    #define SDHCI_QUIRK_FORCE_HIGHSPEED (1<<14)
    +/* Controller does not provide transfer-complete interrupt when not busy */
    +#define SDHCI_QUIRK_NO_BUSY_IRQ (1<<15)

    int irq; /* Device IRQ */
    void __iomem * ioaddr; /* Mapped address */
    --
    1.5.6.5


    \
     
     \ /
      Last update: 2009-02-20 19:17    [W:0.025 / U:67.136 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site