From 07234a8978058d5bcaef523120d6c84ba2e17f6b Mon Sep 17 00:00:00 2001 From: Rayagonda Kokatanur Date: Tue, 5 Mar 2019 23:02:40 +0800 Subject: [PATCH] mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush timeout issue mainline inclusion from mainline-v5.0-rc7 commit d7bf31a0f85f category: bugfix bugzilla: 10755 CVE: NA ------------------------------------------------- RING_CONTROL reg was not written due to wrong address, hence all the subsequent ring flush was timing out. Fixes: a371c10ea4b3 ("mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush sequence") Signed-off-by: Rayagonda Kokatanur Signed-off-by: Ray Jui Reviewed-by: Scott Branden Signed-off-by: Jassi Brar Signed-off-by: Tan Xiaojun Reviewed-by: Hanjun Guo Signed-off-by: Yang Yingliang --- drivers/mailbox/bcm-flexrm-mailbox.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mailbox/bcm-flexrm-mailbox.c b/drivers/mailbox/bcm-flexrm-mailbox.c index 8ab077ff58f4..96bcabfebc23 100644 --- a/drivers/mailbox/bcm-flexrm-mailbox.c +++ b/drivers/mailbox/bcm-flexrm-mailbox.c @@ -1396,9 +1396,9 @@ static void flexrm_shutdown(struct mbox_chan *chan) /* Clear ring flush state */ timeout = 1000; /* timeout of 1s */ - writel_relaxed(0x0, ring + RING_CONTROL); + writel_relaxed(0x0, ring->regs + RING_CONTROL); do { - if (!(readl_relaxed(ring + RING_FLUSH_DONE) & + if (!(readl_relaxed(ring->regs + RING_FLUSH_DONE) & FLUSH_DONE_MASK)) break; mdelay(1); -- GitLab