|
@@ -666,7 +666,6 @@ static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id)
|
|
|
struct mmc_command *cmd = host->cmd;
|
|
|
struct mmc_data *data;
|
|
|
unsigned int xfer_bytes;
|
|
|
- int ret = IRQ_HANDLED;
|
|
|
|
|
|
if (WARN_ON(!mrq))
|
|
|
return IRQ_NONE;
|
|
@@ -675,14 +674,12 @@ static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id)
|
|
|
return IRQ_NONE;
|
|
|
|
|
|
data = cmd->data;
|
|
|
- if (data) {
|
|
|
+ if (data && data->flags & MMC_DATA_READ) {
|
|
|
xfer_bytes = data->blksz * data->blocks;
|
|
|
- if (data->flags & MMC_DATA_READ) {
|
|
|
- WARN_ON(xfer_bytes > host->bounce_buf_size);
|
|
|
- sg_copy_from_buffer(data->sg, data->sg_len,
|
|
|
- host->bounce_buf, xfer_bytes);
|
|
|
- data->bytes_xfered = xfer_bytes;
|
|
|
- }
|
|
|
+ WARN_ON(xfer_bytes > host->bounce_buf_size);
|
|
|
+ sg_copy_from_buffer(data->sg, data->sg_len,
|
|
|
+ host->bounce_buf, xfer_bytes);
|
|
|
+ data->bytes_xfered = xfer_bytes;
|
|
|
}
|
|
|
|
|
|
meson_mmc_read_resp(host->mmc, cmd);
|
|
@@ -691,7 +688,7 @@ static irqreturn_t meson_mmc_irq_thread(int irq, void *dev_id)
|
|
|
else
|
|
|
meson_mmc_start_cmd(host->mmc, data->stop);
|
|
|
|
|
|
- return ret;
|
|
|
+ return IRQ_HANDLED;
|
|
|
}
|
|
|
|
|
|
/*
|