libwd/0126-uadk-sgl-data-can-be-dumped.patch
Yang Shen ec2f993b84 libwd: backport for uadk from 2.3.31 to 2.3.36
Update some patch for uadk from mainline.
To get more information, please visit the homepage:
https://github.comp/Linaro/uadk

Signed-off-by: Yang Shen <shenyang39@huawei.com>
2022-07-28 15:32:23 +08:00

97 lines
2.6 KiB
Diff

From 96eae2df1f7a42580037320ae78d513ae5c69dc3 Mon Sep 17 00:00:00 2001
From: Kai Ye <yekai13@huawei.com>
Date: Wed, 22 Jun 2022 10:26:29 +0800
Subject: [PATCH 139/183] uadk: sgl data can be dumped
Users can dump the sgl data after setting the uadk log is the
debug level.
Signed-off-by: Kai Ye <yekai13@huawei.com>
---
drv/hisi_qm_udrv.c | 55 +++++++++++++++++++++++++++-------------------
1 file changed, 33 insertions(+), 22 deletions(-)
diff --git a/drv/hisi_qm_udrv.c b/drv/hisi_qm_udrv.c
index 3cb6ffb..985aecc 100644
--- a/drv/hisi_qm_udrv.c
+++ b/drv/hisi_qm_udrv.c
@@ -737,6 +737,37 @@ void hisi_qm_put_hw_sgl(handle_t sgl_pool, void *hw_sgl)
return;
}
+static void hisi_qm_dump_sgl(void *sgl)
+{
+ struct hisi_sgl *tmp = (struct hisi_sgl *)sgl;
+ bool need_debug = wd_need_debug();
+ int k = 0;
+ int i;
+
+ if (!need_debug)
+ return;
+
+ while (tmp) {
+ WD_DEBUG("[sgl-%d]->entry_sum_in_chain: %u\n", k,
+ tmp->entry_sum_in_chain);
+ WD_DEBUG("[sgl-%d]->entry_sum_in_sgl: %u\n", k,
+ tmp->entry_sum_in_sgl);
+ WD_DEBUG("[sgl-%d]->entry_length_in_sgl: %u\n", k,
+ tmp->entry_length_in_sgl);
+ for (i = 0; i < tmp->entry_sum_in_sgl; i++)
+ WD_DEBUG("[sgl-%d]->sge_entries[%d].len: %u\n", k, i,
+ tmp->sge_entries[i].len);
+
+ tmp = (struct hisi_sgl *)tmp->next_dma;
+ k++;
+
+ if (!tmp) {
+ WD_DEBUG("debug: sgl num size:%d\n", k);
+ return;
+ }
+ }
+}
+
void *hisi_qm_get_hw_sgl(handle_t sgl_pool, struct wd_datalist *sgl)
{
struct hisi_sgl_pool *pool = (struct hisi_sgl_pool *)sgl_pool;
@@ -799,6 +830,8 @@ void *hisi_qm_get_hw_sgl(handle_t sgl_pool, struct wd_datalist *sgl)
if (!head->entry_sum_in_chain)
goto err_out;
+ hisi_qm_dump_sgl(head);
+
return head;
err_out:
hisi_qm_put_hw_sgl(sgl_pool, head);
@@ -922,28 +955,6 @@ void hisi_qm_sgl_copy(void *pbuff, void *hw_sgl, __u32 offset, __u32 size,
size);
}
-void hisi_qm_dump_sgl(void *sgl)
-{
- struct hisi_sgl *tmp = (struct hisi_sgl *)sgl;
- int i;
-
- while (tmp) {
- WD_ERR("sgl->entry_sum_in_chain : %u\n",
- tmp->entry_sum_in_chain);
- WD_ERR("sgl->entry_sum_in_sgl : %u\n",
- tmp->entry_sum_in_sgl);
- WD_ERR("sgl->entry_length_in_sgl : %u\n",
- tmp->entry_length_in_sgl);
- for (i = 0; i < tmp->entry_sum_in_sgl; i++) {
- WD_ERR("sgl->sge_entries[%d].buff : 0x%lx\n", i,
- tmp->sge_entries[i].buff);
- WD_ERR("sgl->sge_entries[%d].len : %u\n", i,
- tmp->sge_entries[i].len);
- }
- tmp = (struct hisi_sgl *)tmp->next_dma;
- }
-}
-
__u32 hisi_qm_get_list_size(struct wd_datalist *start_node,
struct wd_datalist *end_node)
{
--
2.27.0