Lines Matching defs:ntb

189 #include <linux/ntb.h>
257 struct ntb_dev *ntb;
296 up = ntb_link_is_up(tc->ntb, &speed, &width);
298 dev_dbg(&tc->ntb->dev, "link is %s speed %d width %d\n",
309 db_mask = ntb_db_vector_mask(tc->ntb, vec);
310 db_bits = ntb_db_read(tc->ntb);
312 dev_dbg(&tc->ntb->dev, "doorbell vec %d mask %#llx bits %#llx\n",
323 msg_sts = ntb_msg_read_sts(tc->ntb);
325 dev_dbg(&tc->ntb->dev, "message bits %#llx\n", msg_sts);
354 pos = scnprintf(buf, buf_size, "%#llx\n", fn_read(tc->ntb));
394 ret = fn_set(tc->ntb, bits);
399 ret = fn_clear(tc->ntb, bits);
419 pos = scnprintf(buf, sizeof(buf), "%d\n", ntb_port_number(tc->ntb));
437 ntb_peer_port_number(tc->ntb, peer->pidx));
450 tc->peer_cnt = ntb_peer_port_count(tc->ntb);
451 tc->peers = devm_kcalloc(&tc->ntb->dev, tc->peer_cnt,
481 ret = ntb_link_enable(tc->ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO);
483 ret = ntb_link_disable(tc->ntb);
502 if (ntb_link_is_up(tc->ntb, NULL, NULL) & BIT(peer->pidx))
533 !!(ntb_link_is_up(tc->ntb, NULL, NULL) & link_msk) == val))
587 ret = ntb_mw_get_align(tc->ntb, pidx, widx, &addr_align,
595 inmw->mm_base = dma_alloc_coherent(&tc->ntb->pdev->dev, inmw->size,
605 ret = ntb_mw_set_trans(tc->ntb, pidx, widx, inmw->dma_base, inmw->size);
617 dma_free_coherent(&tc->ntb->pdev->dev, inmw->size, inmw->mm_base,
633 ntb_mw_clear_trans(tc->ntb, pidx, widx);
634 dma_free_coherent(&tc->ntb->pdev->dev, inmw->size,
661 ret = ntb_mw_get_align(inmw->tc->ntb, inmw->pidx, inmw->widx,
672 ntb_peer_port_number(inmw->tc->ntb, inmw->pidx),
823 ret = ntb_peer_mw_get_addr(tc->ntb, widx, &map_base, &map_size);
827 ret = ntb_peer_mw_set_trans(tc->ntb, pidx, widx, req_addr, req_size);
849 ntb_peer_mw_clear_trans(tc->ntb, pidx, widx);
862 ntb_peer_mw_clear_trans(tc->ntb, outmw->pidx, widx);
884 ret = ntb_peer_mw_get_addr(outmw->tc->ntb, outmw->widx,
901 ntb_peer_port_number(outmw->tc->ntb, outmw->pidx),
970 tc->outmw_cnt = ntb_peer_mw_count(tc->ntb);
971 tc->outmws = devm_kcalloc(&tc->ntb->dev, tc->outmw_cnt,
984 tc->peers[pidx].inmw_cnt = ntb_mw_count(tc->ntb, pidx);
986 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].inmw_cnt,
997 tc->peers[pidx].outmw_cnt = ntb_peer_mw_count(tc->ntb);
999 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmw_cnt,
1037 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read);
1045 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set,
1046 tc->ntb->ops->db_clear);
1058 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_valid_mask);
1070 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read_mask);
1078 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set_mask,
1079 tc->ntb->ops->db_clear_mask);
1091 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->peer_db_read);
1099 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->peer_db_set,
1100 tc->ntb->ops->peer_db_clear);
1113 tc->ntb->ops->peer_db_read_mask);
1123 tc->ntb->ops->peer_db_set_mask,
1124 tc->ntb->ops->peer_db_clear_mask);
1143 if (wait_event_interruptible(tc->db_wq, ntb_db_read(tc->ntb) == val))
1165 if (!spad->tc->ntb->ops->spad_read)
1169 ntb_spad_read(spad->tc->ntb, spad->sidx));
1181 if (!spad->tc->ntb->ops->spad_write) {
1182 dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n");
1190 ret = ntb_spad_write(spad->tc->ntb, spad->sidx, val);
1206 if (!spad->tc->ntb->ops->peer_spad_read)
1210 ntb_peer_spad_read(spad->tc->ntb, spad->pidx, spad->sidx));
1222 if (!spad->tc->ntb->ops->peer_spad_write) {
1223 dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n");
1231 ret = ntb_peer_spad_write(spad->tc->ntb, spad->pidx, spad->sidx, val);
1245 tc->inspad_cnt = ntb_spad_count(tc->ntb);
1246 tc->inspads = devm_kcalloc(&tc->ntb->dev, tc->inspad_cnt,
1259 tc->peers[pidx].outspad_cnt = ntb_spad_count(tc->ntb);
1261 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outspad_cnt,
1290 data = ntb_msg_read(msg->tc->ntb, &pidx, msg->midx);
1313 ret = ntb_peer_msg_write(msg->tc->ntb, msg->pidx, msg->midx, val);
1327 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_read_sts);
1336 tc->ntb->ops->msg_clear_sts);
1348 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_inbits);
1360 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_outbits);
1373 tc->ntb->ops->msg_set_mask,
1374 tc->ntb->ops->msg_clear_mask);
1394 ntb_msg_read_sts(tc->ntb) == val))
1409 tc->inmsg_cnt = ntb_msg_count(tc->ntb);
1410 tc->inmsgs = devm_kcalloc(&tc->ntb->dev, tc->inmsg_cnt,
1423 tc->peers[pidx].outmsg_cnt = ntb_msg_count(tc->ntb);
1425 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmsg_cnt,
1445 static struct tool_ctx *tool_create_data(struct ntb_dev *ntb)
1449 tc = devm_kzalloc(&ntb->dev, sizeof(*tc), GFP_KERNEL);
1453 tc->ntb = ntb;
1458 if (ntb_db_is_unsafe(ntb))
1459 dev_dbg(&ntb->dev, "doorbell is unsafe\n");
1461 if (ntb_spad_is_unsafe(ntb))
1462 dev_dbg(&ntb->dev, "scratchpad is unsafe\n");
1476 return ntb_set_ctx(tc->ntb, tc, &tool_ops);
1481 ntb_clear_ctx(tc->ntb);
1482 ntb_link_disable(tc->ntb);
1496 tc->dbgfs_dir = debugfs_create_dir(dev_name(&tc->ntb->dev),
1614 static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb)
1619 tc = tool_create_data(ntb);
1656 static void tool_remove(struct ntb_client *self, struct ntb_dev *ntb)
1658 struct tool_ctx *tc = ntb->ctx;