Lines Matching refs:cl

13  * @cl: client device instance
19 int ishtp_cl_alloc_rx_ring(struct ishtp_cl *cl)
21 size_t len = cl->device->fw_client->props.max_msg_length;
27 for (j = 0; j < cl->rx_ring_size; ++j) {
28 rb = ishtp_io_rb_init(cl);
36 spin_lock_irqsave(&cl->free_list_spinlock, flags);
37 list_add_tail(&rb->list, &cl->free_rb_list.list);
38 spin_unlock_irqrestore(&cl->free_list_spinlock, flags);
44 dev_err(&cl->device->dev, "error in allocating Rx buffers\n");
45 ishtp_cl_free_rx_ring(cl);
51 * @cl: client device instance
57 int ishtp_cl_alloc_tx_ring(struct ishtp_cl *cl)
59 size_t len = cl->device->fw_client->props.max_msg_length;
63 cl->tx_ring_free_size = 0;
66 for (j = 0; j < cl->tx_ring_size; ++j) {
79 spin_lock_irqsave(&cl->tx_free_list_spinlock, flags);
80 list_add_tail(&tx_buf->list, &cl->tx_free_list.list);
81 ++cl->tx_ring_free_size;
82 spin_unlock_irqrestore(&cl->tx_free_list_spinlock, flags);
86 dev_err(&cl->device->dev, "error in allocating Tx pool\n");
87 ishtp_cl_free_tx_ring(cl);
93 * @cl: client device instance
97 void ishtp_cl_free_rx_ring(struct ishtp_cl *cl)
103 spin_lock_irqsave(&cl->free_list_spinlock, flags);
104 while (!list_empty(&cl->free_rb_list.list)) {
105 rb = list_entry(cl->free_rb_list.list.next, struct ishtp_cl_rb,
111 spin_unlock_irqrestore(&cl->free_list_spinlock, flags);
113 spin_lock_irqsave(&cl->in_process_spinlock, flags);
114 while (!list_empty(&cl->in_process_list.list)) {
115 rb = list_entry(cl->in_process_list.list.next,
121 spin_unlock_irqrestore(&cl->in_process_spinlock, flags);
126 * @cl: client device instance
130 void ishtp_cl_free_tx_ring(struct ishtp_cl *cl)
135 spin_lock_irqsave(&cl->tx_free_list_spinlock, flags);
137 while (!list_empty(&cl->tx_free_list.list)) {
138 tx_buf = list_entry(cl->tx_free_list.list.next,
141 --cl->tx_ring_free_size;
145 spin_unlock_irqrestore(&cl->tx_free_list_spinlock, flags);
147 spin_lock_irqsave(&cl->tx_list_spinlock, flags);
149 while (!list_empty(&cl->tx_list.list)) {
150 tx_buf = list_entry(cl->tx_list.list.next,
156 spin_unlock_irqrestore(&cl->tx_list_spinlock, flags);
176 * @cl: client device instance
182 struct ishtp_cl_rb *ishtp_io_rb_init(struct ishtp_cl *cl)
191 rb->cl = cl;
231 struct ishtp_cl *cl;
235 if (!rb || !rb->cl)
238 cl = rb->cl;
239 spin_lock_irqsave(&cl->free_list_spinlock, flags);
240 list_add_tail(&rb->list, &cl->free_rb_list.list);
241 spin_unlock_irqrestore(&cl->free_list_spinlock, flags);
247 if (!cl->out_flow_ctrl_creds)
248 rets = ishtp_cl_read_start(cl);
256 * @cl: Pointer to client device instance
262 bool ishtp_cl_tx_empty(struct ishtp_cl *cl)
267 spin_lock_irqsave(&cl->tx_list_spinlock, tx_flags);
268 tx_list_empty = list_empty(&cl->tx_list.list);
269 spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
277 * @cl: Pointer to client device instance
283 struct ishtp_cl_rb *ishtp_cl_rx_get_rb(struct ishtp_cl *cl)
288 spin_lock_irqsave(&cl->in_process_spinlock, rx_flags);
289 rb = list_first_entry_or_null(&cl->in_process_list.list,
293 spin_unlock_irqrestore(&cl->in_process_spinlock, rx_flags);