drivers/hwtracing/coresight/coresight-catu.c
285
static void catu_free_etr_buf(struct etr_buf *etr_buf)
drivers/hwtracing/coresight/coresight-catu.c
289
if (!etr_buf || etr_buf->mode != ETR_MODE_CATU || !etr_buf->private)
drivers/hwtracing/coresight/coresight-catu.c
292
catu_buf = etr_buf->private;
drivers/hwtracing/coresight/coresight-catu.c
297
static ssize_t catu_get_data_etr_buf(struct etr_buf *etr_buf, u64 offset,
drivers/hwtracing/coresight/coresight-catu.c
300
struct catu_etr_buf *catu_buf = etr_buf->private;
drivers/hwtracing/coresight/coresight-catu.c
305
static void catu_sync_etr_buf(struct etr_buf *etr_buf, u64 rrp, u64 rwp)
drivers/hwtracing/coresight/coresight-catu.c
307
struct catu_etr_buf *catu_buf = etr_buf->private;
drivers/hwtracing/coresight/coresight-catu.c
315
r_offset = rrp - etr_buf->hwaddr;
drivers/hwtracing/coresight/coresight-catu.c
316
w_offset = rwp - etr_buf->hwaddr;
drivers/hwtracing/coresight/coresight-catu.c
318
if (!etr_buf->full) {
drivers/hwtracing/coresight/coresight-catu.c
319
etr_buf->len = w_offset - r_offset;
drivers/hwtracing/coresight/coresight-catu.c
321
etr_buf->len += etr_buf->size;
drivers/hwtracing/coresight/coresight-catu.c
323
etr_buf->len = etr_buf->size;
drivers/hwtracing/coresight/coresight-catu.c
326
etr_buf->offset = r_offset;
drivers/hwtracing/coresight/coresight-catu.c
327
tmc_sg_table_sync_data_range(catu_table, r_offset, etr_buf->len);
drivers/hwtracing/coresight/coresight-catu.c
331
struct etr_buf *etr_buf, int node, void **pages)
drivers/hwtracing/coresight/coresight-catu.c
345
etr_buf->size, pages);
drivers/hwtracing/coresight/coresight-catu.c
351
etr_buf->mode = ETR_MODE_CATU;
drivers/hwtracing/coresight/coresight-catu.c
352
etr_buf->private = catu_buf;
drivers/hwtracing/coresight/coresight-catu.c
353
etr_buf->hwaddr = CATU_DEFAULT_INADDR;
drivers/hwtracing/coresight/coresight-catu.c
404
struct etr_buf *etr_buf = NULL;
drivers/hwtracing/coresight/coresight-catu.c
428
etr_buf = tmc_etr_get_buffer(etrdev, cs_mode, path);
drivers/hwtracing/coresight/coresight-catu.c
429
if (IS_ERR(etr_buf))
drivers/hwtracing/coresight/coresight-catu.c
430
return PTR_ERR(etr_buf);
drivers/hwtracing/coresight/coresight-catu.c
434
if (etr_buf && etr_buf->mode == ETR_MODE_CATU) {
drivers/hwtracing/coresight/coresight-catu.c
435
struct catu_etr_buf *catu_buf = etr_buf->private;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1003
len = (len < (etr_buf->size - offset)) ? len : etr_buf->size - offset;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1005
return etr_buf->ops->get_data(etr_buf, (u64)offset, len, bufpp);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1009
tmc_etr_buf_insert_barrier_packet(struct etr_buf *etr_buf, u64 offset)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1014
len = tmc_etr_buf_get_data(etr_buf, offset,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1030
struct etr_buf *etr_buf = drvdata->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1045
etr_buf->len = 0;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1046
etr_buf->full = false;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1050
etr_buf->full = !!(status & TMC_STS_FULL);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1052
WARN_ON(!etr_buf->ops || !etr_buf->ops->sync);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1054
etr_buf->ops->sync(etr_buf, rrp, rwp);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1060
struct etr_buf *etr_buf = drvdata->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1074
writel_relaxed(etr_buf->size / 4, drvdata->base + TMC_RSZ);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1088
if (etr_buf->mode == ETR_MODE_ETR_SG)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1092
tmc_write_dba(drvdata, etr_buf->hwaddr);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1099
tmc_write_rrp(drvdata, etr_buf->hwaddr);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1100
tmc_write_rwp(drvdata, etr_buf->hwaddr);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1119
struct etr_buf *etr_buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1124
if (WARN_ON(!etr_buf))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1127
if ((etr_buf->mode == ETR_MODE_ETR_SG) &&
drivers/hwtracing/coresight/coresight-tmc-etr.c
1131
if (WARN_ON(drvdata->etr_buf))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1136
drvdata->etr_buf = etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1139
drvdata->etr_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1162
struct etr_buf *etr_buf = drvdata->sysfs_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1164
if (pos + actual > etr_buf->len)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1165
actual = etr_buf->len - pos;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1170
offset = etr_buf->offset + pos;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1171
if (offset >= etr_buf->size)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1172
offset -= etr_buf->size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1173
return tmc_etr_buf_get_data(etr_buf, offset, actual, bufpp);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1176
static struct etr_buf *
drivers/hwtracing/coresight/coresight-tmc-etr.c
1184
tmc_etr_free_sysfs_buf(struct etr_buf *buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1192
struct etr_buf *etr_buf = drvdata->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1194
if (WARN_ON(drvdata->sysfs_buf != etr_buf)) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1203
if (etr_buf->full)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1204
tmc_etr_buf_insert_barrier_packet(etr_buf,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1205
etr_buf->offset);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1232
drvdata->etr_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1235
static struct etr_buf *tmc_etr_get_sysfs_buffer(struct coresight_device *csdev)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1240
struct etr_buf *sysfs_buf = NULL, *new_buf = NULL, *free_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1300
struct etr_buf *sysfs_buf = tmc_etr_get_sysfs_buffer(csdev);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1345
struct etr_buf *tmc_etr_get_buffer(struct coresight_device *csdev,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1357
if (WARN_ON(!etr_perf || !etr_perf->etr_buf))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1359
return etr_perf->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1371
static struct etr_buf *
drivers/hwtracing/coresight/coresight-tmc-etr.c
1376
struct etr_buf *etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1390
etr_buf = tmc_alloc_etr_buf(drvdata, size, 0, node, NULL);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1391
if (!IS_ERR(etr_buf))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1392
return etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1399
static struct etr_buf *
drivers/hwtracing/coresight/coresight-tmc-etr.c
1406
struct etr_buf *etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1428
etr_buf = idr_find(&drvdata->idr, pid);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1429
if (etr_buf) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1430
refcount_inc(&etr_buf->refcount);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1432
return etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1438
etr_buf = alloc_etr_buf(drvdata, event, nr_pages, pages, snapshot);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1439
if (IS_ERR(etr_buf))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1440
return etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1444
ret = idr_alloc(&drvdata->idr, etr_buf, pid, pid + 1, GFP_KERNEL);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1449
tmc_free_etr_buf(etr_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1455
tmc_free_etr_buf(etr_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1460
return etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1463
static struct etr_buf *
drivers/hwtracing/coresight/coresight-tmc-etr.c
1475
static struct etr_buf *
drivers/hwtracing/coresight/coresight-tmc-etr.c
1492
struct etr_buf *etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1501
etr_buf = get_perf_etr_buf(drvdata, event, nr_pages, pages, snapshot);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1502
if (!IS_ERR(etr_buf))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1514
etr_perf->etr_buf = etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1546
struct etr_buf *buf, *etr_buf = etr_perf->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1548
if (!etr_buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1553
if (!refcount_dec_and_test(&etr_buf->refcount)) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1566
if (buf && WARN_ON(buf != etr_buf))
drivers/hwtracing/coresight/coresight-tmc-etr.c
1569
tmc_free_etr_buf(etr_perf->etr_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1587
struct etr_buf *etr_buf = etr_perf->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1603
if (src_offset >= etr_buf->size)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1604
src_offset -= etr_buf->size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1605
bytes = tmc_etr_buf_get_data(etr_buf, src_offset, to_copy,
drivers/hwtracing/coresight/coresight-tmc-etr.c
1643
struct etr_buf *etr_buf = etr_perf->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1654
if (WARN_ON(drvdata->perf_buf != etr_buf)) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1668
lost = etr_buf->full;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1669
offset = etr_buf->offset;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1670
size = etr_buf->len;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1687
offset = etr_buf->offset + etr_buf->len - size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1689
if (offset >= etr_buf->size)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1690
offset -= etr_buf->size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1696
tmc_etr_buf_insert_barrier_packet(etr_buf, offset);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1752
if (WARN_ON(!etr_perf || !etr_perf->etr_buf)) {
drivers/hwtracing/coresight/coresight-tmc-etr.c
1775
rc = tmc_etr_enable_hw(drvdata, etr_perf->etr_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
1780
drvdata->perf_buf = etr_perf->etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
1844
if (!drvdata->etr_buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1848
if (drvdata->etr_buf->mode != ETR_MODE_RESRV)
drivers/hwtracing/coresight/coresight-tmc-etr.c
1960
struct etr_buf *sysfs_buf = NULL;
drivers/hwtracing/coresight/coresight-tmc-etr.c
48
struct etr_buf *etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
603
struct etr_buf *etr_buf, int node,
drivers/hwtracing/coresight/coresight-tmc-etr.c
617
flat_buf->vaddr = dma_alloc_noncoherent(real_dev, etr_buf->size,
drivers/hwtracing/coresight/coresight-tmc-etr.c
626
flat_buf->size = etr_buf->size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
628
etr_buf->hwaddr = flat_buf->daddr;
drivers/hwtracing/coresight/coresight-tmc-etr.c
629
etr_buf->mode = ETR_MODE_FLAT;
drivers/hwtracing/coresight/coresight-tmc-etr.c
630
etr_buf->private = flat_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
634
static void tmc_etr_free_flat_buf(struct etr_buf *etr_buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
636
struct etr_flat_buf *flat_buf = etr_buf->private;
drivers/hwtracing/coresight/coresight-tmc-etr.c
641
dma_free_noncoherent(real_dev, etr_buf->size,
drivers/hwtracing/coresight/coresight-tmc-etr.c
648
static void tmc_etr_sync_flat_buf(struct etr_buf *etr_buf, u64 rrp, u64 rwp)
drivers/hwtracing/coresight/coresight-tmc-etr.c
650
struct etr_flat_buf *flat_buf = etr_buf->private;
drivers/hwtracing/coresight/coresight-tmc-etr.c
657
etr_buf->offset = rrp - etr_buf->hwaddr;
drivers/hwtracing/coresight/coresight-tmc-etr.c
658
if (etr_buf->full)
drivers/hwtracing/coresight/coresight-tmc-etr.c
659
etr_buf->len = etr_buf->size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
661
etr_buf->len = rwp - rrp;
drivers/hwtracing/coresight/coresight-tmc-etr.c
668
if (etr_buf->offset + etr_buf->len > etr_buf->size)
drivers/hwtracing/coresight/coresight-tmc-etr.c
670
etr_buf->size, DMA_FROM_DEVICE);
drivers/hwtracing/coresight/coresight-tmc-etr.c
673
flat_buf->daddr + etr_buf->offset,
drivers/hwtracing/coresight/coresight-tmc-etr.c
674
etr_buf->len, DMA_FROM_DEVICE);
drivers/hwtracing/coresight/coresight-tmc-etr.c
677
static ssize_t tmc_etr_get_data_flat_buf(struct etr_buf *etr_buf,
drivers/hwtracing/coresight/coresight-tmc-etr.c
680
struct etr_flat_buf *flat_buf = etr_buf->private;
drivers/hwtracing/coresight/coresight-tmc-etr.c
701
struct etr_buf *etr_buf, int node,
drivers/hwtracing/coresight/coresight-tmc-etr.c
725
resrv_buf->size = etr_buf->size = drvdata->resrv_buf.size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
727
etr_buf->hwaddr = resrv_buf->daddr;
drivers/hwtracing/coresight/coresight-tmc-etr.c
728
etr_buf->mode = ETR_MODE_RESRV;
drivers/hwtracing/coresight/coresight-tmc-etr.c
729
etr_buf->private = resrv_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
733
static void tmc_etr_free_resrv_buf(struct etr_buf *etr_buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
735
struct etr_flat_buf *resrv_buf = etr_buf->private;
drivers/hwtracing/coresight/coresight-tmc-etr.c
746
static void tmc_etr_sync_resrv_buf(struct etr_buf *etr_buf, u64 rrp, u64 rwp)
drivers/hwtracing/coresight/coresight-tmc-etr.c
752
etr_buf->offset = rrp - etr_buf->hwaddr;
drivers/hwtracing/coresight/coresight-tmc-etr.c
753
if (etr_buf->full)
drivers/hwtracing/coresight/coresight-tmc-etr.c
754
etr_buf->len = etr_buf->size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
756
etr_buf->len = rwp - rrp;
drivers/hwtracing/coresight/coresight-tmc-etr.c
771
struct etr_buf *etr_buf, int node,
drivers/hwtracing/coresight/coresight-tmc-etr.c
778
etr_buf->size, pages);
drivers/hwtracing/coresight/coresight-tmc-etr.c
781
etr_buf->hwaddr = etr_table->hwaddr;
drivers/hwtracing/coresight/coresight-tmc-etr.c
782
etr_buf->mode = ETR_MODE_ETR_SG;
drivers/hwtracing/coresight/coresight-tmc-etr.c
783
etr_buf->private = etr_table;
drivers/hwtracing/coresight/coresight-tmc-etr.c
787
static void tmc_etr_free_sg_buf(struct etr_buf *etr_buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
789
struct etr_sg_table *etr_table = etr_buf->private;
drivers/hwtracing/coresight/coresight-tmc-etr.c
797
static ssize_t tmc_etr_get_data_sg_buf(struct etr_buf *etr_buf, u64 offset,
drivers/hwtracing/coresight/coresight-tmc-etr.c
800
struct etr_sg_table *etr_table = etr_buf->private;
drivers/hwtracing/coresight/coresight-tmc-etr.c
805
static void tmc_etr_sync_sg_buf(struct etr_buf *etr_buf, u64 rrp, u64 rwp)
drivers/hwtracing/coresight/coresight-tmc-etr.c
808
struct etr_sg_table *etr_table = etr_buf->private;
drivers/hwtracing/coresight/coresight-tmc-etr.c
816
etr_buf->len = 0;
drivers/hwtracing/coresight/coresight-tmc-etr.c
824
etr_buf->len = 0;
drivers/hwtracing/coresight/coresight-tmc-etr.c
828
etr_buf->offset = r_offset;
drivers/hwtracing/coresight/coresight-tmc-etr.c
829
if (etr_buf->full)
drivers/hwtracing/coresight/coresight-tmc-etr.c
830
etr_buf->len = etr_buf->size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
832
etr_buf->len = ((w_offset < r_offset) ? etr_buf->size : 0) +
drivers/hwtracing/coresight/coresight-tmc-etr.c
834
tmc_sg_table_sync_data_range(table, r_offset, etr_buf->len);
drivers/hwtracing/coresight/coresight-tmc-etr.c
887
static int tmc_etr_mode_alloc_buf(int mode, struct tmc_drvdata *drvdata, struct etr_buf *etr_buf,
drivers/hwtracing/coresight/coresight-tmc-etr.c
898
rc = etr_buf_ops[mode]->alloc(drvdata, etr_buf,
drivers/hwtracing/coresight/coresight-tmc-etr.c
901
etr_buf->ops = etr_buf_ops[mode];
drivers/hwtracing/coresight/coresight-tmc-etr.c
933
static struct etr_buf *tmc_alloc_etr_buf(struct tmc_drvdata *drvdata,
drivers/hwtracing/coresight/coresight-tmc-etr.c
938
struct etr_buf *etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
943
etr_buf = kzalloc_obj(*etr_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
944
if (!etr_buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
947
etr_buf->size = size;
drivers/hwtracing/coresight/coresight-tmc-etr.c
952
etr_buf, node, pages);
drivers/hwtracing/coresight/coresight-tmc-etr.c
968
etr_buf, node, pages);
drivers/hwtracing/coresight/coresight-tmc-etr.c
971
etr_buf, node, pages);
drivers/hwtracing/coresight/coresight-tmc-etr.c
974
etr_buf, node, pages);
drivers/hwtracing/coresight/coresight-tmc-etr.c
976
kfree(etr_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
980
refcount_set(&etr_buf->refcount, 1);
drivers/hwtracing/coresight/coresight-tmc-etr.c
982
(unsigned long)size >> 10, etr_buf->mode);
drivers/hwtracing/coresight/coresight-tmc-etr.c
983
return etr_buf;
drivers/hwtracing/coresight/coresight-tmc-etr.c
986
static void tmc_free_etr_buf(struct etr_buf *etr_buf)
drivers/hwtracing/coresight/coresight-tmc-etr.c
988
WARN_ON(!etr_buf->ops || !etr_buf->ops->free);
drivers/hwtracing/coresight/coresight-tmc-etr.c
989
etr_buf->ops->free(etr_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
990
kfree(etr_buf);
drivers/hwtracing/coresight/coresight-tmc-etr.c
999
static ssize_t tmc_etr_buf_get_data(struct etr_buf *etr_buf,
drivers/hwtracing/coresight/coresight-tmc.h
262
struct etr_buf *etr_buf; /* TMC ETR */
drivers/hwtracing/coresight/coresight-tmc.h
274
struct etr_buf *sysfs_buf;
drivers/hwtracing/coresight/coresight-tmc.h
275
struct etr_buf *perf_buf;
drivers/hwtracing/coresight/coresight-tmc.h
281
int (*alloc)(struct tmc_drvdata *drvdata, struct etr_buf *etr_buf,
drivers/hwtracing/coresight/coresight-tmc.h
283
void (*sync)(struct etr_buf *etr_buf, u64 rrp, u64 rwp);
drivers/hwtracing/coresight/coresight-tmc.h
284
ssize_t (*get_data)(struct etr_buf *etr_buf, u64 offset, size_t len,
drivers/hwtracing/coresight/coresight-tmc.h
286
void (*free)(struct etr_buf *etr_buf);
drivers/hwtracing/coresight/coresight-tmc.h
446
struct etr_buf *tmc_etr_get_buffer(struct coresight_device *csdev,