[PATCH] mmci: fixup broken_blockend variant patch v2

Rabin Vincent rabin at rab.in
Mon Jan 17 10:36:47 EST 2011


On Mon, Jan 17, 2011 at 20:07, Linus Walleij
<linus.walleij at stericsson.com> wrote:
> -        * In the U300, the IRQs can arrive out-of-order,
> -        * e.g. MCI_DATABLOCKEND sometimes arrives after MCI_DATAEND,
> -        * so for this case we use the flags "blockend" and
> -        * "dataend" to make sure both IRQs have arrived before
> -        * concluding the transaction.

Since this was your original rationale for adding the "blockend" flag,
why don't you just remove that flag in this patch instead of renaming to
last_blockend and still keeping it around?

On Mon, Jan 17, 2011 at 20:07, Linus Walleij
<linus.walleij at stericsson.com> wrote:
> Also make sure the MCI_DATABLOCKENDMASK is set only when
> needed, instead of being set always and then masked off.

This seems to be unrelated to the actual problem this patch is trying to
solve.

>        writel(datactrl, base + MMCIDATACTRL);
> -       writel(readl(base + MMCIMASK0) & ~MCI_DATAENDMASK, base + MMCIMASK0);
> -       mmci_set_mask1(host, irqmask);
> +       irqmask0 = readl(base + MMCIMASK0);
> +       if (variant->broken_blockend)
> +               irqmask0 &= ~MCI_DATABLOCKENDMASK;
> +       else
> +               irqmask0 |= MCI_DATABLOCKENDMASK;
> +       irqmask0 &= ~MCI_DATAENDMASK;
> +       writel(irqmask0, base + MMCIMASK0);
> +       mmci_set_mask1(host, irqmask1);
>  }

If your intention is to not have to mask MCI_DATABLOCKENDMASK off, why
are you doing so?



More information about the linux-arm-kernel mailing list