diff options
author | Rabin Vincent <rabin.vincent@stericsson.com> | 2011-12-28 00:57:40 -0500 |
---|---|---|
committer | Vinod Koul <vinod.koul@linux.intel.com> | 2012-01-02 06:12:44 -0500 |
commit | e9f3a49c9698da6f6b606d5e048ddce308438763 (patch) | |
tree | 37e3e7ce0501054fa1669709c6e941c9cd115cad /drivers/dma/ste_dma40.c | |
parent | 8730790b971d747dd4508d22fbc1a4f9422c2803 (diff) |
dmaengine/ste_dma40: clear LNK on channel startup
Otherwise if a previously physical channel is used as a logical channel, the
LNK may have old values which affect the operation of the logical channel since
the LNK register has different semantics between physical and logical channels.
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
Signed-off-by: Narayanan G <narayanan.gopalakrishnan@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
Diffstat (limited to 'drivers/dma/ste_dma40.c')
-rw-r--r-- | drivers/dma/ste_dma40.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c index 972dc35770f9..cc5ecbc067a3 100644 --- a/drivers/dma/ste_dma40.c +++ b/drivers/dma/ste_dma40.c | |||
@@ -1104,6 +1104,10 @@ static void d40_config_write(struct d40_chan *d40c) | |||
1104 | /* Set LIDX for lcla */ | 1104 | /* Set LIDX for lcla */ |
1105 | writel(lidx, chanbase + D40_CHAN_REG_SSELT); | 1105 | writel(lidx, chanbase + D40_CHAN_REG_SSELT); |
1106 | writel(lidx, chanbase + D40_CHAN_REG_SDELT); | 1106 | writel(lidx, chanbase + D40_CHAN_REG_SDELT); |
1107 | |||
1108 | /* Clear LNK which will be used by d40_chan_has_events() */ | ||
1109 | writel(0, chanbase + D40_CHAN_REG_SSLNK); | ||
1110 | writel(0, chanbase + D40_CHAN_REG_SDLNK); | ||
1107 | } | 1111 | } |
1108 | } | 1112 | } |
1109 | 1113 | ||