Commit 304d20fb authored by Weibo Zhao's avatar Weibo Zhao Committed by JiangShui
Browse files

hns3 udma: support import and unimport segment

driver inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I85R2F


CVE: NA

-----------------------------------------------------------

The mainly part of function of import segment is excuted
by urma. Driver should only alloc and free memory.

Signed-off-by: default avatarWeibo Zhao <zhaoweibo3@huawei.com>
parent e94ccb1b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -182,6 +182,8 @@ static struct ubcore_ops g_udma_dev_ops = {
	.mmap = udma_mmap,
	.register_seg = udma_register_seg,
	.unregister_seg = udma_unregister_seg,
	.import_seg = udma_import_seg,
	.unimport_seg = udma_unimport_seg,
	.create_jfc = udma_create_jfc,
	.modify_jfc = udma_modify_jfc,
	.destroy_jfc = udma_destroy_jfc,
+20 −0
Original line number Diff line number Diff line
@@ -311,3 +311,23 @@ int udma_unregister_seg(struct ubcore_target_seg *seg)

	return 0;
}

struct ubcore_target_seg *udma_import_seg(struct ubcore_device *dev,
			       const struct ubcore_target_seg_cfg *cfg,
			       struct ubcore_udata *udata)
{
	struct ubcore_target_seg *tseg;

	tseg = kcalloc(1, sizeof(*tseg), GFP_KERNEL);
	if (!tseg)
		return NULL;

	return tseg;
}

int udma_unimport_seg(struct ubcore_target_seg *tseg)
{
	kfree(tseg);

	return 0;
}
+4 −0
Original line number Diff line number Diff line
@@ -79,6 +79,10 @@ struct ubcore_target_seg *udma_register_seg(struct ubcore_device *dev,
				 const struct ubcore_seg_cfg *cfg,
				 struct ubcore_udata *udata);
int udma_unregister_seg(struct ubcore_target_seg *seg);
struct ubcore_target_seg *udma_import_seg(struct ubcore_device *dev,
			       const struct ubcore_target_seg_cfg *cfg,
			       struct ubcore_udata *udata);
int udma_unimport_seg(struct ubcore_target_seg *tseg);
uint64_t key_to_hw_index(uint32_t key);

#endif /* _UDMA_SEGMENT_H */