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()
392 ret = fn_set(tc->ntb, bits); in tool_fn_write()
397 ret = fn_clear(tc->ntb, bits); in tool_fn_write()
417 pos = scnprintf(buf, sizeof(buf), "%d\n", ntb_port_number(tc->ntb)); in tool_port_read()
435 ntb_peer_port_number(tc->ntb, peer->pidx)); in tool_peer_port_read()
448 tc->peer_cnt = ntb_peer_port_count(tc->ntb); in tool_init_peers()
449 tc->peers = devm_kcalloc(&tc->ntb->dev, tc->peer_cnt, in tool_init_peers()
479 ret = ntb_link_enable(tc->ntb, NTB_SPEED_AUTO, NTB_WIDTH_AUTO); in tool_link_write()
481 ret = ntb_link_disable(tc->ntb); in tool_link_write()
500 if (ntb_link_is_up(tc->ntb, NULL, NULL) & BIT(peer->pidx)) in tool_peer_link_read()
531 !!(ntb_link_is_up(tc->ntb, NULL, NULL) & link_msk) == val)) in tool_peer_link_event_write()
585 ret = ntb_mw_get_align(tc->ntb, pidx, widx, &addr_align, in tool_setup_mw()
593 inmw->mm_base = dma_alloc_coherent(&tc->ntb->pdev->dev, inmw->size, in tool_setup_mw()
603 ret = ntb_mw_set_trans(tc->ntb, pidx, widx, inmw->dma_base, inmw->size); in tool_setup_mw()
615 dma_free_coherent(&tc->ntb->pdev->dev, inmw->size, inmw->mm_base, in tool_setup_mw()
631 ntb_mw_clear_trans(tc->ntb, pidx, widx); in tool_free_mw()
632 dma_free_coherent(&tc->ntb->pdev->dev, inmw->size, in tool_free_mw()
659 ret = ntb_mw_get_align(inmw->tc->ntb, inmw->pidx, inmw->widx, in tool_mw_trans_read()
670 ntb_peer_port_number(inmw->tc->ntb, inmw->pidx), in tool_mw_trans_read()
821 ret = ntb_peer_mw_get_addr(tc->ntb, widx, &map_base, &map_size); in tool_setup_peer_mw()
825 ret = ntb_peer_mw_set_trans(tc->ntb, pidx, widx, req_addr, req_size); in tool_setup_peer_mw()
847 ntb_peer_mw_clear_trans(tc->ntb, pidx, widx); in tool_setup_peer_mw()
860 ntb_peer_mw_clear_trans(tc->ntb, outmw->pidx, widx); in tool_free_peer_mw()
882 ret = ntb_peer_mw_get_addr(outmw->tc->ntb, outmw->widx, in tool_peer_mw_trans_read()
899 ntb_peer_port_number(outmw->tc->ntb, outmw->pidx), in tool_peer_mw_trans_read()
968 tc->outmw_cnt = ntb_peer_mw_count(tc->ntb); in tool_init_mws()
969 tc->outmws = devm_kcalloc(&tc->ntb->dev, tc->outmw_cnt, in tool_init_mws()
982 tc->peers[pidx].inmw_cnt = ntb_mw_count(tc->ntb, pidx); in tool_init_mws()
984 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].inmw_cnt, in tool_init_mws()
995 tc->peers[pidx].outmw_cnt = ntb_peer_mw_count(tc->ntb); in tool_init_mws()
997 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmw_cnt, in tool_init_mws()
1033 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read); in tool_db_read()
1041 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set, in tool_db_write()
1042 tc->ntb->ops->db_clear); in tool_db_write()
1054 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_valid_mask); in tool_db_valid_mask_read()
1066 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->db_read_mask); in tool_db_mask_read()
1074 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->db_set_mask, in tool_db_mask_write()
1075 tc->ntb->ops->db_clear_mask); in tool_db_mask_write()
1087 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->peer_db_read); in tool_peer_db_read()
1095 return tool_fn_write(tc, ubuf, size, offp, tc->ntb->ops->peer_db_set, in tool_peer_db_write()
1096 tc->ntb->ops->peer_db_clear); in tool_peer_db_write()
1109 tc->ntb->ops->peer_db_read_mask); in tool_peer_db_mask_read()
1119 tc->ntb->ops->peer_db_set_mask, in tool_peer_db_mask_write()
1120 tc->ntb->ops->peer_db_clear_mask); in tool_peer_db_mask_write()
1139 if (wait_event_interruptible(tc->db_wq, ntb_db_read(tc->ntb) == val)) in tool_db_event_write()
1161 if (!spad->tc->ntb->ops->spad_read) in tool_spad_read()
1165 ntb_spad_read(spad->tc->ntb, spad->sidx)); in tool_spad_read()
1177 if (!spad->tc->ntb->ops->spad_write) { in tool_spad_write()
1178 dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n"); in tool_spad_write()
1186 ret = ntb_spad_write(spad->tc->ntb, spad->sidx, val); in tool_spad_write()
1202 if (!spad->tc->ntb->ops->peer_spad_read) in tool_peer_spad_read()
1206 ntb_peer_spad_read(spad->tc->ntb, spad->pidx, spad->sidx)); in tool_peer_spad_read()
1218 if (!spad->tc->ntb->ops->peer_spad_write) { in tool_peer_spad_write()
1219 dev_dbg(&spad->tc->ntb->dev, "no spad write fn\n"); in tool_peer_spad_write()
1227 ret = ntb_peer_spad_write(spad->tc->ntb, spad->pidx, spad->sidx, val); in tool_peer_spad_write()
1241 tc->inspad_cnt = ntb_spad_count(tc->ntb); in tool_init_spads()
1242 tc->inspads = devm_kcalloc(&tc->ntb->dev, tc->inspad_cnt, in tool_init_spads()
1255 tc->peers[pidx].outspad_cnt = ntb_spad_count(tc->ntb); in tool_init_spads()
1257 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outspad_cnt, in tool_init_spads()
1286 data = ntb_msg_read(msg->tc->ntb, &pidx, msg->midx); in tool_inmsg_read()
1309 ret = ntb_peer_msg_write(msg->tc->ntb, msg->pidx, msg->midx, val); in tool_outmsg_write()
1323 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_read_sts); in tool_msg_sts_read()
1332 tc->ntb->ops->msg_clear_sts); in tool_msg_sts_write()
1344 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_inbits); in tool_msg_inbits_read()
1356 return tool_fn_read(tc, ubuf, size, offp, tc->ntb->ops->msg_outbits); in tool_msg_outbits_read()
1369 tc->ntb->ops->msg_set_mask, in tool_msg_mask_write()
1370 tc->ntb->ops->msg_clear_mask); in tool_msg_mask_write()
1390 ntb_msg_read_sts(tc->ntb) == val)) in tool_msg_event_write()
1405 tc->inmsg_cnt = ntb_msg_count(tc->ntb); in tool_init_msgs()
1406 tc->inmsgs = devm_kcalloc(&tc->ntb->dev, tc->inmsg_cnt, in tool_init_msgs()
1419 tc->peers[pidx].outmsg_cnt = ntb_msg_count(tc->ntb); in tool_init_msgs()
1421 devm_kcalloc(&tc->ntb->dev, tc->peers[pidx].outmsg_cnt, in tool_init_msgs()
1441 static struct tool_ctx *tool_create_data(struct ntb_dev *ntb) in tool_create_data() argument
1445 tc = devm_kzalloc(&ntb->dev, sizeof(*tc), GFP_KERNEL); in tool_create_data()
1449 tc->ntb = ntb; in tool_create_data()
1454 if (ntb_db_is_unsafe(ntb)) in tool_create_data()
1455 dev_dbg(&ntb->dev, "doorbell is unsafe\n"); in tool_create_data()
1457 if (ntb_spad_is_unsafe(ntb)) in tool_create_data()
1458 dev_dbg(&ntb->dev, "scratchpad is unsafe\n"); in tool_create_data()
1472 return ntb_set_ctx(tc->ntb, tc, &tool_ops); in tool_init_ntb()
1477 ntb_clear_ctx(tc->ntb); in tool_clear_ntb()
1478 ntb_link_disable(tc->ntb); in tool_clear_ntb()
1492 tc->dbgfs_dir = debugfs_create_dir(dev_name(&tc->ntb->dev), in tool_setup_dbgfs()
1610 static int tool_probe(struct ntb_client *self, struct ntb_dev *ntb) in tool_probe() argument
1615 tc = tool_create_data(ntb); in tool_probe()
1652 static void tool_remove(struct ntb_client *self, struct ntb_dev *ntb) in tool_remove() argument
1654 struct tool_ctx *tc = ntb->ctx; in tool_remove()