summaryrefslogtreecommitdiff
path: root/drivers/staging/most/hdm-dim2/dim2_hal.c
diff options
context:
space:
mode:
authorChristian Gromm <christian.gromm@microchip.com>2016-06-13 16:24:25 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-08-15 20:18:56 +0200
commit1c88f8ff4290fd348de1cf27d403e0fc86474007 (patch)
tree4f7b73352c2b5c289699f98cac82b525113467fc /drivers/staging/most/hdm-dim2/dim2_hal.c
parent63c87669c4ffbe6fa2687b48a871b054a8267265 (diff)
staging: most: dim2-hdm: fix possible kernel freeze when reusing a dim2 channel
If a DIM2 channel is being closed while it is busy, the channels's status flag could possibly stay active for this very channel. This causes the kernel to freeze by the time the channel is opened again. This patch fixes the problem. Signed-off-by: Andrey Shvetsov <andrey.shvetsov@k2l.de> Signed-off-by: Christian Gromm <christian.gromm@microchip.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/most/hdm-dim2/dim2_hal.c')
-rw-r--r--drivers/staging/most/hdm-dim2/dim2_hal.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/staging/most/hdm-dim2/dim2_hal.c b/drivers/staging/most/hdm-dim2/dim2_hal.c
index 8783dbbdafdc..a0b935c72671 100644
--- a/drivers/staging/most/hdm-dim2/dim2_hal.c
+++ b/drivers/staging/most/hdm-dim2/dim2_hal.c
@@ -342,6 +342,9 @@ static void dim2_clear_channel(u8 ch_addr)
dim2_clear_cat(MLB_CAT, ch_addr);
dim2_clear_cdt(ch_addr);
+
+ /* clear channel status bit */
+ dimcb_io_write(&g.dim2->ACSR0, bit_mask(ch_addr));
}
/* -------------------------------------------------------------------------- */