Lines Matching refs:qp

105 int scif_setup_qp_connect(struct scif_qp *qp, dma_addr_t *qp_offset,  in scif_setup_qp_connect()  argument
108 void *local_q = qp->inbound_q.rb_base; in scif_setup_qp_connect()
112 spin_lock_init(&qp->send_lock); in scif_setup_qp_connect()
113 spin_lock_init(&qp->recv_lock); in scif_setup_qp_connect()
124 err = scif_map_single(&qp->local_buf, local_q, scifdev, local_size); in scif_setup_qp_connect()
131 scif_rb_init(&qp->inbound_q, in scif_setup_qp_connect()
133 &qp->local_write, in scif_setup_qp_connect()
139 qp->inbound_q.read_ptr = NULL; in scif_setup_qp_connect()
140 err = scif_map_single(qp_offset, qp, in scif_setup_qp_connect()
144 qp->local_qp = *qp_offset; in scif_setup_qp_connect()
147 scif_unmap_single(qp->local_buf, scifdev, local_size); in scif_setup_qp_connect()
148 qp->local_buf = 0; in scif_setup_qp_connect()
155 int scif_setup_qp_accept(struct scif_qp *qp, dma_addr_t *qp_offset, in scif_setup_qp_accept() argument
165 spin_lock_init(&qp->send_lock); in scif_setup_qp_accept()
166 spin_lock_init(&qp->recv_lock); in scif_setup_qp_accept()
171 qp->remote_qp = remote_qp; in scif_setup_qp_accept()
172 if (qp->remote_qp->magic != SCIFEP_MAGIC) { in scif_setup_qp_accept()
176 qp->remote_buf = remote_qp->local_buf; in scif_setup_qp_accept()
177 remote_size = qp->remote_qp->inbound_q.size; in scif_setup_qp_accept()
178 remote_q = scif_ioremap(qp->remote_buf, remote_size, scifdev); in scif_setup_qp_accept()
183 qp->remote_qp->local_write = 0; in scif_setup_qp_accept()
188 scif_rb_init(&qp->outbound_q, in scif_setup_qp_accept()
189 &qp->local_read, in scif_setup_qp_accept()
190 &qp->remote_qp->local_write, in scif_setup_qp_accept()
198 err = scif_map_single(&qp->local_buf, local_q, scifdev, local_size); in scif_setup_qp_accept()
201 qp->remote_qp->local_read = 0; in scif_setup_qp_accept()
206 scif_rb_init(&qp->inbound_q, in scif_setup_qp_accept()
207 &qp->remote_qp->local_read, in scif_setup_qp_accept()
208 &qp->local_write, in scif_setup_qp_accept()
210 err = scif_map_single(qp_offset, qp, scifdev, in scif_setup_qp_accept()
214 qp->local_qp = *qp_offset; in scif_setup_qp_accept()
217 scif_unmap_single(qp->local_buf, scifdev, local_size); in scif_setup_qp_accept()
218 qp->local_buf = 0; in scif_setup_qp_accept()
223 qp->outbound_q.rb_base = NULL; in scif_setup_qp_accept()
225 scif_iounmap(qp->remote_qp, sizeof(struct scif_qp), scifdev); in scif_setup_qp_accept()
226 qp->remote_qp = NULL; in scif_setup_qp_accept()
231 struct scif_qp *qp, u64 payload) in scif_setup_qp_connect_response() argument
238 qp->remote_qp = scif_ioremap(payload, sizeof(struct scif_qp), scifdev); in scif_setup_qp_connect_response()
240 if (!qp->remote_qp) { in scif_setup_qp_connect_response()
245 if (qp->remote_qp->magic != SCIFEP_MAGIC) { in scif_setup_qp_connect_response()
253 tmp_phys = qp->remote_qp->local_buf; in scif_setup_qp_connect_response()
254 remote_size = qp->remote_qp->inbound_q.size; in scif_setup_qp_connect_response()
260 qp->local_read = 0; in scif_setup_qp_connect_response()
261 scif_rb_init(&qp->outbound_q, in scif_setup_qp_connect_response()
262 &qp->local_read, in scif_setup_qp_connect_response()
263 &qp->remote_qp->local_write, in scif_setup_qp_connect_response()
270 qp->remote_qp->local_read = qp->inbound_q.current_read_offset; in scif_setup_qp_connect_response()
275 scif_rb_init(&qp->inbound_q, in scif_setup_qp_connect_response()
276 &qp->remote_qp->local_read, in scif_setup_qp_connect_response()
277 &qp->local_write, in scif_setup_qp_connect_response()
278 qp->inbound_q.rb_base, in scif_setup_qp_connect_response()
279 get_count_order(qp->inbound_q.size)); in scif_setup_qp_connect_response()
336 struct scif_qp *qp; in scif_setup_qp() local
340 qp = kzalloc(sizeof(*qp), GFP_KERNEL); in scif_setup_qp()
341 if (!qp) { in scif_setup_qp()
345 qp->magic = SCIFEP_MAGIC; in scif_setup_qp()
346 scifdev->qpairs = qp; in scif_setup_qp()
347 err = scif_setup_qp_connect(qp, &scifdev->qp_dma_addr, in scif_setup_qp()
620 struct scif_qp *qp = scifdev->qpairs; in _scif_nodeqp_send() local
624 if (!qp) { in _scif_nodeqp_send()
628 spin_lock(&qp->send_lock); in _scif_nodeqp_send()
630 while ((err = scif_rb_write(&qp->outbound_q, in _scif_nodeqp_send()
640 scif_rb_commit(&qp->outbound_q); in _scif_nodeqp_send()
641 spin_unlock(&qp->send_lock); in _scif_nodeqp_send()
861 struct scif_qp *qp = &peerdev->qpairs[0]; in scif_poll_qp_state() local
863 if (qp->qp_state != SCIF_QP_ONLINE || in scif_poll_qp_state()
864 qp->remote_qp->qp_state != SCIF_QP_ONLINE) { in scif_poll_qp_state()
868 qp->qp_state); in scif_poll_qp_state()
879 __func__, __LINE__, peerdev->node, qp->qp_state); in scif_poll_qp_state()
880 qp->remote_qp->qp_state = SCIF_QP_OFFLINE; in scif_poll_qp_state()
898 struct scif_qp *qp; in scif_node_add_ack() local
924 qp = &peerdev->qpairs[0]; in scif_node_add_ack()
930 qp->remote_qp->qp_state = SCIF_QP_ONLINE; in scif_node_add_ack()
1083 struct scif_qp *qp, struct scifmsg *msg) in scif_nodeqp_msg_handler() argument
1107 void scif_nodeqp_intrhandler(struct scif_dev *scifdev, struct scif_qp *qp) in scif_nodeqp_intrhandler() argument
1113 read_size = scif_rb_get_next(&qp->inbound_q, &msg, sizeof(msg)); in scif_nodeqp_intrhandler()
1116 scif_nodeqp_msg_handler(scifdev, qp, &msg); in scif_nodeqp_intrhandler()
1123 scif_rb_update_read_ptr(&qp->inbound_q); in scif_nodeqp_intrhandler()
1140 struct scif_qp *qp = scifdev->qpairs; in scif_loopb_wq_handler() local
1145 spin_lock(&qp->recv_lock); in scif_loopb_wq_handler()
1152 spin_unlock(&qp->recv_lock); in scif_loopb_wq_handler()
1155 scif_nodeqp_msg_handler(scifdev, qp, &msg->msg); in scif_loopb_wq_handler()
1194 scif_loopb_msg_handler(struct scif_dev *scifdev, struct scif_qp *qp) in scif_loopb_msg_handler() argument
1203 read_size = scif_rb_get_next(&qp->inbound_q, &msg->msg, in scif_loopb_msg_handler()
1207 scif_rb_update_read_ptr(&qp->inbound_q); in scif_loopb_msg_handler()
1210 spin_lock(&qp->recv_lock); in scif_loopb_msg_handler()
1212 spin_unlock(&qp->recv_lock); in scif_loopb_msg_handler()
1214 scif_rb_update_read_ptr(&qp->inbound_q); in scif_loopb_msg_handler()
1229 struct scif_qp *qp; in scif_setup_loopback_qp() local
1251 qp = scifdev->qpairs; in scif_setup_loopback_qp()
1252 qp->magic = SCIFEP_MAGIC; in scif_setup_loopback_qp()
1253 spin_lock_init(&qp->send_lock); in scif_setup_loopback_qp()
1254 spin_lock_init(&qp->recv_lock); in scif_setup_loopback_qp()
1266 scif_rb_init(&qp->outbound_q, in scif_setup_loopback_qp()
1267 &qp->local_read, in scif_setup_loopback_qp()
1268 &qp->local_write, in scif_setup_loopback_qp()
1271 scif_rb_init(&qp->inbound_q, in scif_setup_loopback_qp()
1272 &qp->local_read, in scif_setup_loopback_qp()
1273 &qp->local_write, in scif_setup_loopback_qp()