diff options
Diffstat (limited to 'drivers/gpu/host1x/debug.c')
| -rw-r--r-- | drivers/gpu/host1x/debug.c | 14 | 
1 files changed, 11 insertions, 3 deletions
| diff --git a/drivers/gpu/host1x/debug.c b/drivers/gpu/host1x/debug.c index 1b4997bda1c7..8a14880c61bb 100644 --- a/drivers/gpu/host1x/debug.c +++ b/drivers/gpu/host1x/debug.c @@ -69,6 +69,7 @@ static int show_channel(struct host1x_channel *ch, void *data, bool show_fifo)  static void show_syncpts(struct host1x *m, struct output *o)  { +	struct list_head *pos;  	unsigned int i;  	host1x_debug_output(o, "---- syncpts ----\n"); @@ -76,12 +77,19 @@ static void show_syncpts(struct host1x *m, struct output *o)  	for (i = 0; i < host1x_syncpt_nb_pts(m); i++) {  		u32 max = host1x_syncpt_read_max(m->syncpt + i);  		u32 min = host1x_syncpt_load(m->syncpt + i); +		unsigned int waiters = 0; -		if (!min && !max) +		spin_lock(&m->syncpt[i].intr.lock); +		list_for_each(pos, &m->syncpt[i].intr.wait_head) +			waiters++; +		spin_unlock(&m->syncpt[i].intr.lock); + +		if (!min && !max && !waiters)  			continue; -		host1x_debug_output(o, "id %u (%s) min %d max %d\n", -				    i, m->syncpt[i].name, min, max); +		host1x_debug_output(o, +				    "id %u (%s) min %d max %d (%d waiters)\n", +				    i, m->syncpt[i].name, min, max, waiters);  	}  	for (i = 0; i < host1x_syncpt_nb_bases(m); i++) { | 
