Skip to content

Commit

Permalink
gpu: host1x: debug: Dump only relevant parts of CDMA push buffer
Browse files Browse the repository at this point in the history
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: Thierry Reding <[email protected]>
  • Loading branch information
thierryreding committed Aug 13, 2021
1 parent ff41dd2 commit afa770f
Showing 1 changed file with 7 additions and 10 deletions.
17 changes: 7 additions & 10 deletions drivers/gpu/host1x/hw/debug_hw.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ static void show_gather(struct output *o, dma_addr_t phys_addr,
u32 val = *(map_addr + offset / 4 + i);

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);
} else {
host1x_debug_cont(o, "%08x%s", val,
Expand All @@ -195,19 +195,16 @@ static void show_channel_gathers(struct output *o, struct host1x_cdma *cdma)
struct push_buffer *pb = &cdma->push_buffer;
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) {
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",
job, job->syncpt->id, job->syncpt_end,
job->first_get, job->timeout,
host1x_debug_output(o, "JOB, syncpt %u: %u timeout: %u num_slots: %u num_handles: %u\n",
job->syncpt->id, job->syncpt_end, job->timeout,
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++) {
struct host1x_job_gather *g;
u32 *mapped;
Expand All @@ -227,7 +224,7 @@ static void show_channel_gathers(struct output *o, struct host1x_cdma *cdma)
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);

show_gather(o, g->base + g->offset, g->words, cdma,
Expand Down

0 comments on commit afa770f

Please sign in to comment.