Lines Matching refs:ntb
257 struct ntb_dev *ntb; member
296 up = ntb_link_is_up(tc->ntb, &speed, &width); in tool_link_event()
298 dev_dbg(&tc->ntb->dev, "link is %s speed %d width %d\n", in tool_link_event()
309 db_mask = ntb_db_vector_mask(tc->ntb, vec); in tool_db_event()
310 db_bits = ntb_db_read(tc->ntb); in tool_db_event()
312 dev_dbg(&tc->ntb->dev, "doorbell vec %d mask %#llx bits %#llx\n", in tool_db_event()
323 msg_sts = ntb_msg_read_sts(tc->ntb); in tool_msg_event()
325 dev_dbg(&tc->ntb->dev, "message bits %#llx\n", msg_sts); in tool_msg_event()
354 pos = scnprintf(buf, buf_size, "%#llx\n", fn_read(tc->ntb)); in tool_fn_read()
387 ret = fn_set(tc->ntb, bits); in tool_fn_write()
392 ret = fn_clear(tc->ntb, bits); in tool_fn_write()
412 pos = scnprintf(buf, sizeof(buf), "%d\n", ntb_port_number(tc->ntb)); in tool_port_read()
430 ntb_peer_port_number(tc->ntb, peer->pidx)); in tool_peer_port_read()
443 tc->peer_cnt = ntb_peer_port_count(tc->ntb); in tool_init_peers()
444 tc->peers = devm_kcalloc(&tc->ntb->dev, tc->peer_cnt, in tool_init_peers()
474 ret = ntb_link_enable(tc->ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO); in tool_link_write()
476 ret = ntb_link_disable(tc->ntb); in tool_link_write()
495 if (ntb_link_is_up(tc->ntb, NULL, NULL) & BIT(peer->pidx)) in tool_peer_link_read()
526 !!(ntb_link_is_up(tc->ntb, NULL, NULL) & link_msk) == val)) in tool_peer_link_event_write()
580 ret = ntb_mw_get_align(tc->ntb, pidx, widx, &addr_align, in tool_setup_mw()
588 inmw->mm_base = dma_alloc_coherent(&tc->ntb->pdev->dev, inmw->size, in tool_setup_mw()
598 ret = ntb_mw_set_trans(tc->ntb, pidx, widx, inmw->dma_base, inmw->size); in tool_setup_mw()
610 dma_free_coherent(&tc->ntb->pdev->dev, inmw->size, inmw->mm_base, in tool_setup_mw()
626 ntb_mw_clear_trans(tc->ntb, pidx, widx); in tool_free_mw()
627 dma_free_coherent(&tc->ntb->pdev->dev, inmw->size, in tool_free_mw()
654 ret = ntb_mw_get_align(inmw->tc->ntb, inmw->pidx, inmw->widx, in tool_mw_trans_read()
665 ntb_peer_port_number(inmw->tc->ntb, inmw->pidx), in tool_mw_trans_read()
816 ret = ntb_peer_mw_get_addr(tc->ntb, widx, &map_base, &map_size); in tool_setup_peer_mw()
820 ret = ntb_peer_mw_set_trans(tc->ntb, pidx, widx, req_addr, req_size); in tool_setup_peer_mw()
842 ntb_peer_mw_clear_trans(tc->ntb, pidx, widx); in tool_setup_peer_mw()
855 ntb_peer_mw_clear_trans(tc->ntb, outmw->pidx, widx); in tool_free_peer_mw()
877 ret = ntb_peer_mw_get_addr(outmw->tc->ntb, outmw->widx, in tool_peer_mw_trans_read()
894 ntb_peer_port_number(outmw->tc->ntb, outmw->pidx), in tool_peer_mw_trans_read()
963 tc->outmw_cnt = ntb_peer_mw_count(tc->ntb); in tool_init_mws()
964 tc->outmws = devm_kcalloc(&tc->ntb->dev, tc->outmw_cnt, in tool_init_mws()
977 tc->peers[pidx].inmw_cnt = ntb_mw_count(tc->ntb, pidx); in tool_init_mws()
979 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].inmw_cnt, in tool_init_mws()
990 tc->peers[pidx].outmw_cnt = ntb_peer_mw_count(tc->ntb); in tool_init_mws()
992 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmw_cnt, in tool_init_mws()
1030 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read); in tool_db_read()
1038 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set, in tool_db_write()
1039 tc->ntb->ops->db_clear); in tool_db_write()
1051 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_valid_mask); in tool_db_valid_mask_read()
1063 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read_mask); in tool_db_mask_read()
1071 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set_mask, in tool_db_mask_write()
1072 tc->ntb->ops->db_clear_mask); in tool_db_mask_write()
1084 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->peer_db_read); in tool_peer_db_read()
1092 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->peer_db_set, in tool_peer_db_write()
1093 tc->ntb->ops->peer_db_clear); in tool_peer_db_write()
1106 tc->ntb->ops->peer_db_read_mask); in tool_peer_db_mask_read()
1116 tc->ntb->ops->peer_db_set_mask, in tool_peer_db_mask_write()
1117 tc->ntb->ops->peer_db_clear_mask); in tool_peer_db_mask_write()
1136 if (wait_event_interruptible(tc->db_wq, ntb_db_read(tc->ntb) == val)) in tool_db_event_write()
1158 if (!spad->tc->ntb->ops->spad_read) in tool_spad_read()
1162 ntb_spad_read(spad->tc->ntb, spad->sidx)); in tool_spad_read()
1174 if (!spad->tc->ntb->ops->spad_write) { in tool_spad_write()
1175 dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n"); in tool_spad_write()
1183 ret = ntb_spad_write(spad->tc->ntb, spad->sidx, val); in tool_spad_write()
1199 if (!spad->tc->ntb->ops->peer_spad_read) in tool_peer_spad_read()
1203 ntb_peer_spad_read(spad->tc->ntb, spad->pidx, spad->sidx)); in tool_peer_spad_read()
1215 if (!spad->tc->ntb->ops->peer_spad_write) { in tool_peer_spad_write()
1216 dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n"); in tool_peer_spad_write()
1224 ret = ntb_peer_spad_write(spad->tc->ntb, spad->pidx, spad->sidx, val); in tool_peer_spad_write()
1238 tc->inspad_cnt = ntb_spad_count(tc->ntb); in tool_init_spads()
1239 tc->inspads = devm_kcalloc(&tc->ntb->dev, tc->inspad_cnt, in tool_init_spads()
1252 tc->peers[pidx].outspad_cnt = ntb_spad_count(tc->ntb); in tool_init_spads()
1254 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outspad_cnt, in tool_init_spads()
1283 data = ntb_msg_read(msg->tc->ntb, &pidx, msg->midx); in tool_inmsg_read()
1306 ret = ntb_peer_msg_write(msg->tc->ntb, msg->pidx, msg->midx, val); in tool_outmsg_write()
1320 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_read_sts); in tool_msg_sts_read()
1329 tc->ntb->ops->msg_clear_sts); in tool_msg_sts_write()
1341 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_inbits); in tool_msg_inbits_read()
1353 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_outbits); in tool_msg_outbits_read()
1366 tc->ntb->ops->msg_set_mask, in tool_msg_mask_write()
1367 tc->ntb->ops->msg_clear_mask); in tool_msg_mask_write()
1387 ntb_msg_read_sts(tc->ntb) == val)) in tool_msg_event_write()
1402 tc->inmsg_cnt = ntb_msg_count(tc->ntb); in tool_init_msgs()
1403 tc->inmsgs = devm_kcalloc(&tc->ntb->dev, tc->inmsg_cnt, in tool_init_msgs()
1416 tc->peers[pidx].outmsg_cnt = ntb_msg_count(tc->ntb); in tool_init_msgs()
1418 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmsg_cnt, in tool_init_msgs()
1438 static struct tool_ctx *tool_create_data(struct ntb_dev *ntb) in tool_create_data() argument
1442 tc = devm_kzalloc(&ntb->dev, sizeof(*tc), GFP_KERNEL); in tool_create_data()
1446 tc->ntb = ntb; in tool_create_data()
1451 if (ntb_db_is_unsafe(ntb)) in tool_create_data()
1452 dev_dbg(&ntb->dev, "doorbell is unsafe\n"); in tool_create_data()
1454 if (ntb_spad_is_unsafe(ntb)) in tool_create_data()
1455 dev_dbg(&ntb->dev, "scratchpad is unsafe\n"); in tool_create_data()
1469 return ntb_set_ctx(tc->ntb, tc, &tool_ops); in tool_init_ntb()
1474 ntb_clear_ctx(tc->ntb); in tool_clear_ntb()
1475 ntb_link_disable(tc->ntb); in tool_clear_ntb()
1489 tc->dbgfs_dir = debugfs_create_dir(dev_name(&tc->ntb->dev), in tool_setup_dbgfs()
1605 static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb) in tool_probe() argument
1610 tc = tool_create_data(ntb); in tool_probe()
1647 static void tool_remove(struct ntb_client *self, struct ntb_dev *ntb) in tool_remove() argument
1649 struct tool_ctx *tc = ntb->ctx; in tool_remove()