diff --git a/soc/swr-mstr-ctrl.c b/soc/swr-mstr-ctrl.c index 8859302876e0..30dda5b71dd9 100644 --- a/soc/swr-mstr-ctrl.c +++ b/soc/swr-mstr-ctrl.c @@ -50,7 +50,7 @@ #define ERR_AUTO_SUSPEND_TIMER_VAL 0x1 #define SWRM_INTERRUPT_STATUS_MASK 0x1FDFD -#define SWRM_LINK_STATUS_RETRY_CNT 0x5 +#define SWRM_LINK_STATUS_RETRY_CNT 100 #define SWRM_ROW_48 48 #define SWRM_ROW_50 50 @@ -2464,7 +2464,7 @@ static int swrm_probe(struct platform_device *pdev) "%s: Error in master Initialization , err %d\n", __func__, ret); mutex_unlock(&swrm->mlock); - goto err_mstr_fail; + goto err_mstr_init_fail; } mutex_unlock(&swrm->mlock); @@ -2509,6 +2509,8 @@ static int swrm_probe(struct platform_device *pdev) return 0; err_irq_wakeup_fail: device_init_wakeup(swrm->dev, false); +err_mstr_init_fail: + swr_unregister_master(&swrm->master); err_mstr_fail: if (swrm->reg_irq) swrm->reg_irq(swrm->handle, swr_mstr_interrupt,