mmc: meson-gx: remove member mrq from struct meson_host
authorHeiner Kallweit <hkallweit1@gmail.com>
Sat, 4 Mar 2017 12:36:45 +0000 (13:36 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 24 Apr 2017 19:41:12 +0000 (21:41 +0200)
Struct mmc_command includes a reference to the related mmc_request.
Therefore we don't have to store mrq separately in struct meson_host.
And we can remove some now unneeded WARN_ON's.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Acked-by: Kevin Hilman <khilman@baylibre.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/meson-gx-mmc.c

index 84553c23ed85ddc44a20caf3d049646cb3a61bf1..d1826cf87a76ab9af057ad2a932a2c4581f42094 100644 (file)
 struct meson_host {
        struct  device          *dev;
        struct  mmc_host        *mmc;
-       struct  mmc_request     *mrq;
        struct  mmc_command     *cmd;
 
        spinlock_t lock;
@@ -416,9 +415,6 @@ static void meson_mmc_request_done(struct mmc_host *mmc,
 {
        struct meson_host *host = mmc_priv(mmc);
 
-       WARN_ON(host->mrq != mrq);
-
-       host->mrq = NULL;
        host->cmd = NULL;
        mmc_request_done(host->mmc, mrq);
 }
@@ -525,13 +521,9 @@ static void meson_mmc_request(struct mmc_host *mmc, struct mmc_request *mrq)
 {
        struct meson_host *host = mmc_priv(mmc);
 
-       WARN_ON(host->mrq != NULL);
-
        /* Stop execution */
        writel(0, host->regs + SD_EMMC_START);
 
-       host->mrq = mrq;
-
        if (mrq->sbc)
                meson_mmc_start_cmd(mmc, mrq->sbc);
        else
@@ -555,7 +547,6 @@ static void meson_mmc_read_resp(struct mmc_host *mmc, struct mmc_command *cmd)
 static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
 {
        struct meson_host *host = dev_id;
-       struct mmc_request *mrq;
        struct mmc_command *cmd;
        u32 irq_en, status, raw_status;
        irqreturn_t ret = IRQ_HANDLED;
@@ -565,11 +556,6 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
 
        cmd = host->cmd;
 
-       mrq = host->mrq;
-
-       if (WARN_ON(!mrq))
-               return IRQ_NONE;
-
        if (WARN_ON(!cmd))
                return IRQ_NONE;
 
@@ -616,7 +602,7 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
        else  {
                dev_warn(host->dev, "Unknown IRQ! status=0x%04x: MMC CMD%u arg=0x%08x flags=0x%08x stop=%d\n",
                         status, cmd->opcode, cmd->arg,
-                        cmd->flags, mrq->stop ? 1 : 0);
+                        cmd->flags, cmd->mrq->stop ? 1 : 0);
                if (cmd->data) {
                        struct mmc_data *data = cmd->data;
 
@@ -643,14 +629,10 @@ out:
 static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id)
 {
        struct meson_host *host = dev_id;
-       struct mmc_request *mrq = host->mrq;
        struct mmc_command *cmd = host->cmd;
        struct mmc_data *data;
        unsigned int xfer_bytes;
 
-       if (WARN_ON(!mrq))
-               return IRQ_NONE;
-
        if (WARN_ON(!cmd))
                return IRQ_NONE;
 
@@ -664,8 +646,8 @@ static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id)
        }
 
        meson_mmc_read_resp(host->mmc, cmd);
-       if (!data || !data->stop || mrq->sbc)
-               meson_mmc_request_done(host->mmc, mrq);
+       if (!data || !data->stop || cmd->mrq->sbc)
+               meson_mmc_request_done(host->mmc, cmd->mrq);
        else
                meson_mmc_start_cmd(host->mmc, data->stop);