On Mon, Nov 25, 2013 at 03:15:32PM -0700, Stephen Warren wrote: [...] > diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c [...] > +/* Tegra148 specific registers */ > +#define TEGRA_APBDMA_CHAN_WCOUNT 0x20 > +#define TEGRA_APBDMA_WCOUNT_WCOUNT_SHIFT 2 > +#define TEGRA_APBDMA_WCOUNT_WCOUNT_MASK 0xfffffffc
According to the TRM this field spans bits 29:2, so the mask should be
0x3ffffffc.
> +#define TEGRA_APBDMA_CHAN_WORD_TRANSFER 0x24
> +#define TEGRA_APBDMA_WORD_TRANSFER_WXFER_SHIFT 2
> +#define TEGRA_APBDMA_WORD_TRANSFER_WXFER_MASK 0xfffc
Comparing to the TRM these should be named:
TEGRA_APBDMA_CHAN_WORD_TRANSFER_COUNT_SHIFT
TEGRA_APBDMA_CHAN_WORD_TRANSFER_COUNT_MASK
Also the COUNT field spans bits 29:2, so the mask should be 0x3ffffffc.
> @@ -719,6 +735,7 @@ static void tegra_dma_terminate_all(struct dma_chan *dc)
> struct tegra_dma_desc *dma_desc;
> unsigned long flags;
> unsigned long status;
> + unsigned long wcount = 0;
You assign a value to this later on, so I don't think this needs to be
initialized.
Thierry
pgpCrEcHnQXxT.pgp
Description: PGP signature
