Commit afa770fe authored by Thierry Reding's avatar Thierry Reding

gpu: host1x: debug: Dump only relevant parts of CDMA push buffer

Dumping the full CDMA push buffer takes a long time and isn't very
useful since most of the contents are not relevant. Instead only show
the CDMA push buffer entries associated with current jobs.

While at it, tweak the indentation a bit to make the output more
readable.
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent ff41dd27
...@@ -180,7 +180,7 @@ static void show_gather(struct output *o, dma_addr_t phys_addr, ...@@ -180,7 +180,7 @@ static void show_gather(struct output *o, dma_addr_t phys_addr,
u32 val = *(map_addr + offset / 4 + i); u32 val = *(map_addr + offset / 4 + i);
if (!data_count) { if (!data_count) {
host1x_debug_output(o, "%pad: %08x: ", &addr, val); host1x_debug_output(o, " %pad: %08x: ", &addr, val);
data_count = show_channel_command(o, val, &payload); data_count = show_channel_command(o, val, &payload);
} else { } else {
host1x_debug_cont(o, "%08x%s", val, host1x_debug_cont(o, "%08x%s", val,
...@@ -195,19 +195,16 @@ static void show_channel_gathers(struct output *o, struct host1x_cdma *cdma) ...@@ -195,19 +195,16 @@ static void show_channel_gathers(struct output *o, struct host1x_cdma *cdma)
struct push_buffer *pb = &cdma->push_buffer; struct push_buffer *pb = &cdma->push_buffer;
struct host1x_job *job; struct host1x_job *job;
host1x_debug_output(o, "PUSHBUF at %pad, %u words\n",
&pb->dma, pb->size / 4);
show_gather(o, pb->dma, pb->size / 4, cdma, pb->dma, pb->mapped);
list_for_each_entry(job, &cdma->sync_queue, list) { list_for_each_entry(job, &cdma->sync_queue, list) {
unsigned int i; unsigned int i;
host1x_debug_output(o, "\n%p: JOB, syncpt_id=%d, syncpt_val=%d, first_get=%08x, timeout=%d num_slots=%d, num_handles=%d\n", host1x_debug_output(o, "JOB, syncpt %u: %u timeout: %u num_slots: %u num_handles: %u\n",
job, job->syncpt->id, job->syncpt_end, job->syncpt->id, job->syncpt_end, job->timeout,
job->first_get, job->timeout,
job->num_slots, job->num_unpins); job->num_slots, job->num_unpins);
show_gather(o, pb->dma + job->first_get, job->num_slots * 2, cdma,
pb->dma + job->first_get, pb->mapped + job->first_get);
for (i = 0; i < job->num_cmds; i++) { for (i = 0; i < job->num_cmds; i++) {
struct host1x_job_gather *g; struct host1x_job_gather *g;
u32 *mapped; u32 *mapped;
...@@ -227,7 +224,7 @@ static void show_channel_gathers(struct output *o, struct host1x_cdma *cdma) ...@@ -227,7 +224,7 @@ static void show_channel_gathers(struct output *o, struct host1x_cdma *cdma)
continue; continue;
} }
host1x_debug_output(o, " GATHER at %pad+%#x, %d words\n", host1x_debug_output(o, " GATHER at %pad+%#x, %d words\n",
&g->base, g->offset, g->words); &g->base, g->offset, g->words);
show_gather(o, g->base + g->offset, g->words, cdma, show_gather(o, g->base + g->offset, g->words, cdma,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment