From b660be1d976b776ba69a317c080fa23e432b9f71 Mon Sep 17 00:00:00 2001 From: Laxminath Kasam Date: Tue, 28 Apr 2020 19:51:55 +0530 Subject: [PATCH] soc: soundwire: Update hw_ctl on HCLK at bootup Propogate changes from (CR). Merge qcom patch: case number: 04629828 soc: soundwire: Update hw_ctl on HCLK at bootup For soundwire version 1.6, HCLK remove HW controlled at bootup before soundwire frame generation status check. Change-Id: Idc2420d086261766ea4e79f69320f12c4d6b2259 Signed-off-by: Laxminath Kasam Reviewed-on: https://gerrit.mot.com/1592905 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Yunfei Guo Reviewed-by: Zhengming Yao Reviewed-by: Xiangpo Zhao Submit-Approved: Jira Key Reviewed-on: https://gerrit.mot.com/1745677 Reviewed-by: Wen Xie --- soc/swr-mstr-ctrl.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index c536fe9f08e1..d536a7c82d22 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -2524,6 +2524,14 @@ static int swrm_master_init(struct swr_mstr_ctrl *swrm) swr_master_bulk_write(swrm, reg, value, len); + /* SW workaround to gate hw_ctl for SWR version >=1.6 */ + if (swrm->version >= SWRM_VERSION_1_6) { + if (swrm->swrm_hctl_reg) { + temp = ioread32(swrm->swrm_hctl_reg); + temp &= 0xFFFFFFFD; + iowrite32(temp, swrm->swrm_hctl_reg); + } + } if (!swrm_check_link_status(swrm, 0x1)) { dev_err(swrm->dev, "%s: swr link failed to connect\n",