Loading drivers/slimbus/slim-msm-ngd.c +19 −1 Original line number Diff line number Diff line Loading @@ -839,8 +839,26 @@ static int ngd_xferandwait_ack(struct slim_controller *ctrl, { struct msm_slim_ctrl *dev = slim_get_ctrldata(ctrl); unsigned long flags; int ret; if (dev->state == MSM_CTRL_DOWN) { /* * no need to send anything to the bus due to SSR * transactions related to channel removal marked as success * since HW is down */ if ((txn->mt == SLIM_MSG_MT_DEST_REFERRED_USER) && ((txn->mc >= SLIM_USR_MC_CHAN_CTRL && txn->mc <= SLIM_USR_MC_REQ_BW) || txn->mc == SLIM_USR_MC_DISCONNECT_PORT)) { spin_lock_irqsave(&ctrl->txn_lock, flags); ctrl->txnt[txn->tid] = NULL; spin_unlock_irqrestore(&ctrl->txn_lock, flags); return 0; } } int ret = ngd_xfer_msg(ctrl, txn); ret = ngd_xfer_msg(ctrl, txn); if (!ret) { int timeout; timeout = wait_for_completion_timeout(txn->comp, HZ); Loading Loading
drivers/slimbus/slim-msm-ngd.c +19 −1 Original line number Diff line number Diff line Loading @@ -839,8 +839,26 @@ static int ngd_xferandwait_ack(struct slim_controller *ctrl, { struct msm_slim_ctrl *dev = slim_get_ctrldata(ctrl); unsigned long flags; int ret; if (dev->state == MSM_CTRL_DOWN) { /* * no need to send anything to the bus due to SSR * transactions related to channel removal marked as success * since HW is down */ if ((txn->mt == SLIM_MSG_MT_DEST_REFERRED_USER) && ((txn->mc >= SLIM_USR_MC_CHAN_CTRL && txn->mc <= SLIM_USR_MC_REQ_BW) || txn->mc == SLIM_USR_MC_DISCONNECT_PORT)) { spin_lock_irqsave(&ctrl->txn_lock, flags); ctrl->txnt[txn->tid] = NULL; spin_unlock_irqrestore(&ctrl->txn_lock, flags); return 0; } } int ret = ngd_xfer_msg(ctrl, txn); ret = ngd_xfer_msg(ctrl, txn); if (!ret) { int timeout; timeout = wait_for_completion_timeout(txn->comp, HZ); Loading