soc: swr-mstr: Check for fifo avail before bulk write

Check for fifo availability before writing slave registers
during swrm master bulk write so as to prevent swr
overflow, underflow errors.

Change-Id: I97a914cac289b3f1215ccf5c1abec88b959a9f21
Signed-off-by: Vatsal Bucha <vbucha@codeaurora.org>
This commit is contained in:
Vatsal Bucha 2020-09-22 16:06:33 +05:30
commit 760bd4ab46

View file

@ -129,6 +129,7 @@ static void swrm_unlock_sleep(struct swr_mstr_ctrl *swrm);
static u32 swr_master_read(struct swr_mstr_ctrl *swrm, unsigned int reg_addr);
static void swr_master_write(struct swr_mstr_ctrl *swrm, u16 reg_addr, u32 val);
static int swrm_runtime_resume(struct device *dev);
static void swrm_wait_for_fifo_avail(struct swr_mstr_ctrl *swrm, int swrm_rd_wr);
static u64 swrm_phy_dev[] = {
0,
@ -678,6 +679,9 @@ static int swr_master_bulk_write(struct swr_mstr_ctrl *swrm, u32 *reg_addr,
* This still meets the hardware spec
*/
usleep_range(50, 55);
if (reg_addr[i] == SWRM_CMD_FIFO_WR_CMD)
swrm_wait_for_fifo_avail(swrm,
SWRM_WR_CHECK_AVAIL);
swr_master_write(swrm, reg_addr[i], val[i]);
}
usleep_range(100, 110);