mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-19 17:14:40 +08:00
mmc: meson-gx: remove member mrq from struct meson_host
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>
This commit is contained in:
parent
c01d1219ac
commit
7cdcc480e4
@ -122,7 +122,6 @@
|
||||
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user