Lines Matching refs:ctrl

14  * @ctrl: Controller handle
24 void slim_msg_response(struct slim_controller *ctrl, u8 *reply, u8 tid, u8 len)
30 spin_lock_irqsave(&ctrl->txn_lock, flags);
31 txn = idr_find(&ctrl->tid_idr, tid);
32 spin_unlock_irqrestore(&ctrl->txn_lock, flags);
39 dev_err(ctrl->dev, "Got response to invalid TID:%d, len:%d\n",
44 slim_free_txn_tid(ctrl, txn);
50 pm_runtime_mark_last_busy(ctrl->dev);
51 pm_runtime_put_autosuspend(ctrl->dev);
58 * @ctrl: Controller handle
63 int slim_alloc_txn_tid(struct slim_controller *ctrl, struct slim_msg_txn *txn)
68 spin_lock_irqsave(&ctrl->txn_lock, flags);
69 ret = idr_alloc_cyclic(&ctrl->tid_idr, txn, 1,
72 spin_unlock_irqrestore(&ctrl->txn_lock, flags);
76 spin_unlock_irqrestore(&ctrl->txn_lock, flags);
84 * @ctrl: Controller handle
87 void slim_free_txn_tid(struct slim_controller *ctrl, struct slim_msg_txn *txn)
91 spin_lock_irqsave(&ctrl->txn_lock, flags);
92 idr_remove(&ctrl->tid_idr, txn->tid);
93 spin_unlock_irqrestore(&ctrl->txn_lock, flags);
100 * @ctrl: Controller handle
110 int slim_do_transfer(struct slim_controller *ctrl, struct slim_msg_txn *txn)
120 if (ctrl->sched.clk_state == SLIM_CLK_ENTERING_PAUSE &&
127 ret = pm_runtime_get_sync(ctrl->dev);
128 if (ctrl->sched.clk_state != SLIM_CLK_ACTIVE) {
129 dev_err(ctrl->dev, "ctrl wrong state:%d, ret:%d\n",
130 ctrl->sched.clk_state, ret);
139 ret = slim_alloc_txn_tid(ctrl, txn);
149 ret = ctrl->xfer_msg(ctrl, txn);
158 slim_free_txn_tid(ctrl, txn);
163 dev_err(ctrl->dev, "Tx:MT:0x%x, MC:0x%x, LA:0x%x failed:%d\n",
172 pm_runtime_mark_last_busy(ctrl->dev);
173 pm_runtime_put_autosuspend(ctrl->dev);
179 static int slim_val_inf_sanity(struct slim_controller *ctrl,
206 dev_err(ctrl->dev, "Sanity check failed:msg:offset:0x%x, mc:%d\n",
238 struct slim_controller *ctrl = sbdev->ctrl;
242 if (!ctrl)
245 ret = slim_val_inf_sanity(ctrl, msg, mc);
251 dev_dbg(ctrl->dev, "SB xfer msg:os:%x, len:%d, MC:%x, sl:%x\n",
269 return slim_do_transfer(ctrl, txn);