|
@@ -195,7 +195,6 @@ static void etb_dump_hw(struct etb_drvdata *drvdata)
|
|
|
bool lost = false;
|
|
|
int i;
|
|
|
u8 *buf_ptr;
|
|
|
- const u32 *barrier;
|
|
|
u32 read_data, depth;
|
|
|
u32 read_ptr, write_ptr;
|
|
|
u32 frame_off, frame_endoff;
|
|
@@ -226,19 +225,16 @@ static void etb_dump_hw(struct etb_drvdata *drvdata)
|
|
|
|
|
|
depth = drvdata->buffer_depth;
|
|
|
buf_ptr = drvdata->buf;
|
|
|
- barrier = barrier_pkt;
|
|
|
for (i = 0; i < depth; i++) {
|
|
|
read_data = readl_relaxed(drvdata->base +
|
|
|
ETB_RAM_READ_DATA_REG);
|
|
|
- if (lost && *barrier) {
|
|
|
- read_data = *barrier;
|
|
|
- barrier++;
|
|
|
- }
|
|
|
-
|
|
|
*(u32 *)buf_ptr = read_data;
|
|
|
buf_ptr += 4;
|
|
|
}
|
|
|
|
|
|
+ if (lost)
|
|
|
+ coresight_insert_barrier_packet(drvdata->buf);
|
|
|
+
|
|
|
if (frame_off) {
|
|
|
buf_ptr -= (frame_endoff * 4);
|
|
|
for (i = 0; i < frame_endoff; i++) {
|
|
@@ -447,7 +443,7 @@ static void etb_update_buffer(struct coresight_device *csdev,
|
|
|
buf_ptr = buf->data_pages[cur] + offset;
|
|
|
read_data = readl_relaxed(drvdata->base +
|
|
|
ETB_RAM_READ_DATA_REG);
|
|
|
- if (lost && *barrier) {
|
|
|
+ if (lost && i < CORESIGHT_BARRIER_PKT_SIZE) {
|
|
|
read_data = *barrier;
|
|
|
barrier++;
|
|
|
}
|