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));
387 ret = fn_set(tc->ntb, bits);
392 ret = fn_clear(tc->ntb, bits);
412 pos = scnprintf(buf, sizeof(buf), "%d\n", ntb_port_number(tc->ntb));
430 ntb_peer_port_number(tc->ntb, peer->pidx));
443 tc->peer_cnt = ntb_peer_port_count(tc->ntb);
444 tc->peers = devm_kcalloc(&tc->ntb->dev, tc->peer_cnt,
474 ret = ntb_link_enable(tc->ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO);
476 ret = ntb_link_disable(tc->ntb);
495 if (ntb_link_is_up(tc->ntb, NULL, NULL) & BIT(peer->pidx))
526 !!(ntb_link_is_up(tc->ntb, NULL, NULL) & link_msk) == val))
580 ret = ntb_mw_get_align(tc->ntb, pidx, widx, &addr_align,
588 inmw->mm_base = dma_alloc_coherent(&tc->ntb->pdev->dev, inmw->size,
598 ret = ntb_mw_set_trans(tc->ntb, pidx, widx, inmw->dma_base, inmw->size);
610 dma_free_coherent(&tc->ntb->pdev->dev, inmw->size, inmw->mm_base,
626 ntb_mw_clear_trans(tc->ntb, pidx, widx);
627 dma_free_coherent(&tc->ntb->pdev->dev, inmw->size,
654 ret = ntb_mw_get_align(inmw->tc->ntb, inmw->pidx, inmw->widx,
665 ntb_peer_port_number(inmw->tc->ntb, inmw->pidx),
816 ret = ntb_peer_mw_get_addr(tc->ntb, widx, &map_base, &map_size);
820 ret = ntb_peer_mw_set_trans(tc->ntb, pidx, widx, req_addr, req_size);
842 ntb_peer_mw_clear_trans(tc->ntb, pidx, widx);
855 ntb_peer_mw_clear_trans(tc->ntb, outmw->pidx, widx);
877 ret = ntb_peer_mw_get_addr(outmw->tc->ntb, outmw->widx,
894 ntb_peer_port_number(outmw->tc->ntb, outmw->pidx),
963 tc->outmw_cnt = ntb_peer_mw_count(tc->ntb);
964 tc->outmws = devm_kcalloc(&tc->ntb->dev, tc->outmw_cnt,
977 tc->peers[pidx].inmw_cnt = ntb_mw_count(tc->ntb, pidx);
979 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].inmw_cnt,
990 tc->peers[pidx].outmw_cnt = ntb_peer_mw_count(tc->ntb);
992 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmw_cnt,
1030 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read);
1038 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set,
1039 tc->ntb->ops->db_clear);
1051 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_valid_mask);
1063 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read_mask);
1071 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set_mask,
1072 tc->ntb->ops->db_clear_mask);
1084 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->peer_db_read);
1092 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->peer_db_set,
1093 tc->ntb->ops->peer_db_clear);
1106 tc->ntb->ops->peer_db_read_mask);
1116 tc->ntb->ops->peer_db_set_mask,
1117 tc->ntb->ops->peer_db_clear_mask);
1136 if (wait_event_interruptible(tc->db_wq, ntb_db_read(tc->ntb) == val))
1158 if (!spad->tc->ntb->ops->spad_read)
1162 ntb_spad_read(spad->tc->ntb, spad->sidx));
1174 if (!spad->tc->ntb->ops->spad_write) {
1175 dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n");
1183 ret = ntb_spad_write(spad->tc->ntb, spad->sidx, val);
1199 if (!spad->tc->ntb->ops->peer_spad_read)
1203 ntb_peer_spad_read(spad->tc->ntb, spad->pidx, spad->sidx));
1215 if (!spad->tc->ntb->ops->peer_spad_write) {
1216 dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n");
1224 ret = ntb_peer_spad_write(spad->tc->ntb, spad->pidx, spad->sidx, val);
1238 tc->inspad_cnt = ntb_spad_count(tc->ntb);
1239 tc->inspads = devm_kcalloc(&tc->ntb->dev, tc->inspad_cnt,
1252 tc->peers[pidx].outspad_cnt = ntb_spad_count(tc->ntb);
1254 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outspad_cnt,
1283 data = ntb_msg_read(msg->tc->ntb, &pidx, msg->midx);
1306 ret = ntb_peer_msg_write(msg->tc->ntb, msg->pidx, msg->midx, val);
1320 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_read_sts);
1329 tc->ntb->ops->msg_clear_sts);
1341 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_inbits);
1353 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_outbits);
1366 tc->ntb->ops->msg_set_mask,
1367 tc->ntb->ops->msg_clear_mask);
1387 ntb_msg_read_sts(tc->ntb) == val))
1402 tc->inmsg_cnt = ntb_msg_count(tc->ntb);
1403 tc->inmsgs = devm_kcalloc(&tc->ntb->dev, tc->inmsg_cnt,
1416 tc->peers[pidx].outmsg_cnt = ntb_msg_count(tc->ntb);
1418 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmsg_cnt,
1438 static struct tool_ctx *tool_create_data(struct ntb_dev *ntb)
1442 tc = devm_kzalloc(&ntb->dev, sizeof(*tc), GFP_KERNEL);
1446 tc->ntb = ntb;
1451 if (ntb_db_is_unsafe(ntb))
1452 dev_dbg(&ntb->dev, "doorbell is unsafe\n");
1454 if (ntb_spad_is_unsafe(ntb))
1455 dev_dbg(&ntb->dev, "scratchpad is unsafe\n");
1469 return ntb_set_ctx(tc->ntb, tc, &tool_ops);
1474 ntb_clear_ctx(tc->ntb);
1475 ntb_link_disable(tc->ntb);
1489 tc->dbgfs_dir = debugfs_create_dir(dev_name(&tc->ntb->dev),
1605 static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb)
1610 tc = tool_create_data(ntb);
1647 static void tool_remove(struct ntb_client *self, struct ntb_dev *ntb)
1649 struct tool_ctx *tc = ntb->ctx;