diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index fd77cf59df..ddf04ab4c2 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -1631,6 +1631,15 @@ static int swrm_master_init(struct swr_mstr_ctrl *swrm) swr_master_bulk_write(swrm, reg, value, len); + /* + * For SWR master version 1.5.1, continue + * execute on command ignore. + */ + if (swrm->version == SWRM_VERSION_1_5_1) + swr_master_write(swrm, SWRM_CMD_FIFO_CFG_ADDR, + (swr_master_read(swrm, + SWRM_CMD_FIFO_CFG_ADDR) | 0x80000000)); + return ret; } diff --git a/soc/swr-mstr-ctrl.h b/soc/swr-mstr-ctrl.h index afbbe46829..fab66c39d2 100644 --- a/soc/swr-mstr-ctrl.h +++ b/soc/swr-mstr-ctrl.h @@ -25,6 +25,7 @@ #define SWRM_VERSION_1_2 0x01030000 #define SWRM_VERSION_1_3 0x01040000 #define SWRM_VERSION_1_5 0x01050000 +#define SWRM_VERSION_1_5_1 0x01050001 #define SWR_MAX_CH_PER_PORT 8