From 31b7445e1790525554b3c3a55c45c09886bc8c76 Mon Sep 17 00:00:00 2001 From: Shuai Zhang Date: Fri, 4 Mar 2022 08:48:07 +0530 Subject: [PATCH] soc: swr-mstr-ctrl: Fix SWR cmd FIFO overflow error Fix SWR cmd FIFO overflow error. In 5.4 kernel there are few additional register writes added in soundwire driver, one of the register(SWRS_DP_SAMPLE_CONTROL_2_BANK) write is causing overflow error. Change-Id: I31f4855af52b24ceac53f55010ce1935c3bc1ea6 Signed-off-by: Shuai Zhang --- soc/swr-mstr-ctrl.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index f0a9e94f8ffb..2ef6ffe70422 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2015-2021, The Linux Foundation. All rights reserved. + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. */ #include @@ -1464,12 +1465,14 @@ static void swrm_copy_data_port_config(struct swr_master *master, u8 bank) SWRS_DP_SAMPLE_CONTROL_1_BANK(slv_id, bank)); - reg[len] = SWRM_CMD_FIFO_WR_CMD; - val[len++] = SWR_REG_VAL_PACK( + if ((port_req->sinterval >> 8)& 0xFF) { + reg[len] = SWRM_CMD_FIFO_WR_CMD; + val[len++] = SWR_REG_VAL_PACK( (port_req->sinterval >> 8)& 0xFF, port_req->dev_num, 0x00, SWRS_DP_SAMPLE_CONTROL_2_BANK(slv_id, bank)); + } reg[len] = SWRM_CMD_FIFO_WR_CMD; val[len++] = SWR_REG_VAL_PACK(port_req->offset1,