diff options
Diffstat (limited to 'drivers/slimbus/slimbus.c')
-rw-r--r-- | drivers/slimbus/slimbus.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/slimbus/slimbus.c b/drivers/slimbus/slimbus.c index 72ac5b80f13e..a95105cc7db6 100644 --- a/drivers/slimbus/slimbus.c +++ b/drivers/slimbus/slimbus.c @@ -1323,8 +1323,10 @@ int slim_config_mgrports(struct slim_device *sb, u32 *ph, int nports, for (i = 0; i < nports; i++) { u8 pn = SLIM_HDL_TO_PORT(ph[i]); - if (ctrl->ports[pn].state == SLIM_P_CFG) + if (ctrl->ports[pn].state == SLIM_P_CFG) { + mutex_unlock(&ctrl->sched.m_reconf); return -EISCONN; + } ctrl->ports[pn].cfg = *cfg; } mutex_unlock(&ctrl->sched.m_reconf); @@ -2753,9 +2755,10 @@ static void slim_change_existing_chans(struct slim_controller *ctrl, int coeff) for (i = 0; i < len; i++) { struct slim_ich *slc = arr[i]; if (slc->state == SLIM_CH_ACTIVE || - slc->state == SLIM_CH_SUSPENDED) + slc->state == SLIM_CH_SUSPENDED) { slc->offset = slc->newoff; slc->interval = slc->newintr; + } } } static void slim_chan_changes(struct slim_device *sb, bool revert) |