Prepare to consolidate the DMA address/size quirk handling into one single loop.
Signed-off-by: Russell King <rmk+ker...@arm.linux.org.uk> --- drivers/mmc/host/sdhci.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 65b230ea179e..474d96943560 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -730,21 +730,22 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd) * scatterlist. */ if (host->flags & SDHCI_REQ_USE_DMA) { - int broken, i; struct scatterlist *sg; + unsigned int length_mask; + int i; - broken = 0; + length_mask = 0; if (host->flags & SDHCI_USE_ADMA) { if (host->quirks & SDHCI_QUIRK_32BIT_ADMA_SIZE) - broken = 1; + length_mask = 3; } else { if (host->quirks & SDHCI_QUIRK_32BIT_DMA_SIZE) - broken = 1; + length_mask = 3; } - if (unlikely(broken)) { + if (unlikely(length_mask)) { for_each_sg(data->sg, sg, data->sg_len, i) { - if (sg->length & 0x3) { + if (sg->length & length_mask) { DBG("Reverting to PIO because of " "transfer size (%d)\n", sg->length); @@ -760,10 +761,11 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd) * translation to device address space. */ if (host->flags & SDHCI_REQ_USE_DMA) { - int broken, i; struct scatterlist *sg; + unsigned int offset_mask; + int i; - broken = 0; + offset_mask = 0; if (host->flags & SDHCI_USE_ADMA) { /* * As we use 3 byte chunks to work around @@ -771,15 +773,15 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd) * quirk. */ if (host->quirks & SDHCI_QUIRK_32BIT_ADMA_SIZE) - broken = 1; + offset_mask = 3; } else { if (host->quirks & SDHCI_QUIRK_32BIT_DMA_ADDR) - broken = 1; + offset_mask = 3; } - if (unlikely(broken)) { + if (unlikely(offset_mask)) { for_each_sg(data->sg, sg, data->sg_len, i) { - if (sg->offset & 0x3) { + if (sg->offset & offset_mask) { DBG("Reverting to PIO because of " "bad alignment\n"); host->flags &= ~SDHCI_REQ_USE_DMA; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html