aboutsummaryrefslogtreecommitdiff
path: root/drivers/dma/ti-dma-crossbar.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2018-03-26 02:31:53 +0000
committerAlex Shi <alex.shi@linaro.org>2018-03-26 02:31:53 +0000
commitc5833b96030f9e06cf7c19dd4f99d3b55985eb8c (patch)
tree9587bb407acebb17bbd8a33d2d9c53ecbe1ab442 /drivers/dma/ti-dma-crossbar.c
parent78c39820dc30c73f5b69c3fe2269ad9b0840a61a (diff)
parentb766b14a48de577e5060e4d8762f1e4a34229d2b (diff)
Merge tag 'v4.4.124' into linux-linaro-lsk-v4.4lsk-v4.4-18.03
This is the 4.4.124 stable release
Diffstat (limited to 'drivers/dma/ti-dma-crossbar.c')
-rw-r--r--drivers/dma/ti-dma-crossbar.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/dma/ti-dma-crossbar.c b/drivers/dma/ti-dma-crossbar.c
index 8100ede095d5..c7bd1c5315f4 100644
--- a/drivers/dma/ti-dma-crossbar.c
+++ b/drivers/dma/ti-dma-crossbar.c
@@ -51,7 +51,15 @@ struct ti_am335x_xbar_map {
static inline void ti_am335x_xbar_write(void __iomem *iomem, int event, u8 val)
{
- writeb_relaxed(val, iomem + event);
+ /*
+ * TPCC_EVT_MUX_60_63 register layout is different than the
+ * rest, in the sense, that event 63 is mapped to lowest byte
+ * and event 60 is mapped to highest, handle it separately.
+ */
+ if (event >= 60 && event <= 63)
+ writeb_relaxed(val, iomem + (63 - event % 4));
+ else
+ writeb_relaxed(val, iomem + event);
}
static void ti_am335x_xbar_free(struct device *dev, void *route_data)