From 11e9935ab1598ee9d87b7b4d6004a808f6d30b3c Mon Sep 17 00:00:00 2001 From: Tingwei Zhang Date: Fri, 22 May 2020 19:25:26 +0800 Subject: [PATCH] coresight: tmc: set buffer size to 32MB on SW USB mode We are using memory as buffer for SW USB mode. Too small buffer could cause packet drop issue. Always set ETR buffer to 32MB on SW USB mode to resolve this issue. Change-Id: I222152f15c5cc61141b9a9eb18c1b2bb19714174 Signed-off-by: Tingwei Zhang --- drivers/hwtracing/coresight/coresight-tmc-etr.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c index 41e87f99ee60..e664292222c4 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c @@ -45,6 +45,9 @@ struct etr_perf_buffer { /* Lower limit for ETR hardware buffer */ #define TMC_ETR_PERF_MIN_BUF_SIZE SZ_1M +/* SW USB reserved memory size */ +#define TMC_ETR_SW_USB_BUF_SIZE SZ_32M + /* * The TMC ETR SG has a page size of 4K. The SG table contains pointers * to 4KB buffers. However, the OS may use a PAGE_SIZE different from @@ -1082,7 +1085,11 @@ ssize_t tmc_etr_get_sysfs_trace(struct tmc_drvdata *drvdata, static struct etr_buf * tmc_etr_setup_sysfs_buf(struct tmc_drvdata *drvdata) { - return tmc_alloc_etr_buf(drvdata, drvdata->size, + if (drvdata->byte_cntr->sw_usb) + return tmc_alloc_etr_buf(drvdata, TMC_ETR_SW_USB_BUF_SIZE, + 0, cpu_to_node(0), NULL); + else + return tmc_alloc_etr_buf(drvdata, drvdata->size, 0, cpu_to_node(0), NULL); }