gpu: host1x: Whitespace cleanup for readability

Insert a number of blank lines in places where they increase readability
of the code. Also collapse various variable declarations to shorten some
functions and finally rewrite some code for readability.

Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
Thierry Reding 2016-06-23 11:35:50 +02:00
parent 6df633d0dc
commit 0b8070d12e
10 changed files with 92 additions and 43 deletions

View File

@ -134,14 +134,19 @@ unsigned int host1x_cdma_wait_locked(struct host1x_cdma *cdma,
enum cdma_event event) enum cdma_event event)
{ {
for (;;) { for (;;) {
struct push_buffer *pb = &cdma->push_buffer;
unsigned int space; unsigned int space;
if (event == CDMA_EVENT_SYNC_QUEUE_EMPTY) switch (event) {
case CDMA_EVENT_SYNC_QUEUE_EMPTY:
space = list_empty(&cdma->sync_queue) ? 1 : 0; space = list_empty(&cdma->sync_queue) ? 1 : 0;
else if (event == CDMA_EVENT_PUSH_BUFFER_SPACE) { break;
struct push_buffer *pb = &cdma->push_buffer;
case CDMA_EVENT_PUSH_BUFFER_SPACE:
space = host1x_pushbuffer_space(pb); space = host1x_pushbuffer_space(pb);
} else { break;
default:
WARN_ON(1); WARN_ON(1);
return -EINVAL; return -EINVAL;
} }
@ -159,12 +164,14 @@ unsigned int host1x_cdma_wait_locked(struct host1x_cdma *cdma,
mutex_lock(&cdma->lock); mutex_lock(&cdma->lock);
continue; continue;
} }
cdma->event = event; cdma->event = event;
mutex_unlock(&cdma->lock); mutex_unlock(&cdma->lock);
down(&cdma->sem); down(&cdma->sem);
mutex_lock(&cdma->lock); mutex_lock(&cdma->lock);
} }
return 0; return 0;
} }
@ -234,6 +241,7 @@ static void update_cdma_locked(struct host1x_cdma *cdma)
/* Start timer on next pending syncpt */ /* Start timer on next pending syncpt */
if (job->timeout) if (job->timeout)
cdma_start_timer_locked(cdma, job); cdma_start_timer_locked(cdma, job);
break; break;
} }
@ -249,6 +257,7 @@ static void update_cdma_locked(struct host1x_cdma *cdma)
struct push_buffer *pb = &cdma->push_buffer; struct push_buffer *pb = &cdma->push_buffer;
host1x_pushbuffer_pop(pb, job->num_slots); host1x_pushbuffer_pop(pb, job->num_slots);
if (cdma->event == CDMA_EVENT_PUSH_BUFFER_SPACE) if (cdma->event == CDMA_EVENT_PUSH_BUFFER_SPACE)
signal = true; signal = true;
} }
@ -270,11 +279,9 @@ static void update_cdma_locked(struct host1x_cdma *cdma)
void host1x_cdma_update_sync_queue(struct host1x_cdma *cdma, void host1x_cdma_update_sync_queue(struct host1x_cdma *cdma,
struct device *dev) struct device *dev)
{ {
u32 restart_addr;
u32 syncpt_incrs;
struct host1x_job *job = NULL;
u32 syncpt_val;
struct host1x *host1x = cdma_to_host1x(cdma); struct host1x *host1x = cdma_to_host1x(cdma);
u32 restart_addr, syncpt_incrs, syncpt_val;
struct host1x_job *job = NULL;
syncpt_val = host1x_syncpt_load(cdma->timeout.syncpt); syncpt_val = host1x_syncpt_load(cdma->timeout.syncpt);
@ -378,6 +385,7 @@ int host1x_cdma_init(struct host1x_cdma *cdma)
err = host1x_pushbuffer_init(&cdma->push_buffer); err = host1x_pushbuffer_init(&cdma->push_buffer);
if (err) if (err)
return err; return err;
return 0; return 0;
} }
@ -422,6 +430,7 @@ int host1x_cdma_begin(struct host1x_cdma *cdma, struct host1x_job *job)
} }
} }
} }
if (!cdma->running) if (!cdma->running)
host1x_hw_cdma_start(host1x, cdma); host1x_hw_cdma_start(host1x, cdma);
@ -452,6 +461,7 @@ void host1x_cdma_push(struct host1x_cdma *cdma, u32 op1, u32 op2)
slots_free = host1x_cdma_wait_locked(cdma, slots_free = host1x_cdma_wait_locked(cdma,
CDMA_EVENT_PUSH_BUFFER_SPACE); CDMA_EVENT_PUSH_BUFFER_SPACE);
} }
cdma->slots_free = slots_free - 1; cdma->slots_free = slots_free - 1;
cdma->slots_used++; cdma->slots_used++;
host1x_pushbuffer_push(pb, op1, op2); host1x_pushbuffer_push(pb, op1, op2);

View File

@ -39,6 +39,7 @@ void host1x_debug_output(struct output *o, const char *fmt, ...)
va_start(args, fmt); va_start(args, fmt);
len = vsnprintf(o->buf, sizeof(o->buf), fmt, args); len = vsnprintf(o->buf, sizeof(o->buf), fmt, args);
va_end(args); va_end(args);
o->fn(o->ctx, o->buf, len); o->fn(o->ctx, o->buf, len);
} }
@ -48,13 +49,17 @@ static int show_channels(struct host1x_channel *ch, void *data, bool show_fifo)
struct output *o = data; struct output *o = data;
mutex_lock(&ch->reflock); mutex_lock(&ch->reflock);
if (ch->refcount) { if (ch->refcount) {
mutex_lock(&ch->cdma.lock); mutex_lock(&ch->cdma.lock);
if (show_fifo) if (show_fifo)
host1x_hw_show_channel_fifo(m, ch, o); host1x_hw_show_channel_fifo(m, ch, o);
host1x_hw_show_channel_cdma(m, ch, o); host1x_hw_show_channel_cdma(m, ch, o);
mutex_unlock(&ch->cdma.lock); mutex_unlock(&ch->cdma.lock);
} }
mutex_unlock(&ch->reflock); mutex_unlock(&ch->reflock);
return 0; return 0;
@ -65,6 +70,7 @@ static void show_syncpts(struct host1x *m, struct output *o)
unsigned int i; unsigned int i;
host1x_debug_output(o, "---- syncpts ----\n"); host1x_debug_output(o, "---- syncpts ----\n");
for (i = 0; i < host1x_syncpt_nb_pts(m); i++) { for (i = 0; i < host1x_syncpt_nb_pts(m); i++) {
u32 max = host1x_syncpt_read_max(m->syncpt + i); u32 max = host1x_syncpt_read_max(m->syncpt + i);
u32 min = host1x_syncpt_load(m->syncpt + i); u32 min = host1x_syncpt_load(m->syncpt + i);
@ -118,7 +124,9 @@ static int host1x_debug_show_all(struct seq_file *s, void *unused)
.fn = write_to_seqfile, .fn = write_to_seqfile,
.ctx = s .ctx = s
}; };
show_all(s->private, &o); show_all(s->private, &o);
return 0; return 0;
} }
@ -128,7 +136,9 @@ static int host1x_debug_show(struct seq_file *s, void *unused)
.fn = write_to_seqfile, .fn = write_to_seqfile,
.ctx = s .ctx = s
}; };
show_all_no_fifo(s->private, &o); show_all_no_fifo(s->private, &o);
return 0; return 0;
} }
@ -138,10 +148,10 @@ static int host1x_debug_open_all(struct inode *inode, struct file *file)
} }
static const struct file_operations host1x_debug_all_fops = { static const struct file_operations host1x_debug_all_fops = {
.open = host1x_debug_open_all, .open = host1x_debug_open_all,
.read = seq_read, .read = seq_read,
.llseek = seq_lseek, .llseek = seq_lseek,
.release = single_release, .release = single_release,
}; };
static int host1x_debug_open(struct inode *inode, struct file *file) static int host1x_debug_open(struct inode *inode, struct file *file)
@ -150,10 +160,10 @@ static int host1x_debug_open(struct inode *inode, struct file *file)
} }
static const struct file_operations host1x_debug_fops = { static const struct file_operations host1x_debug_fops = {
.open = host1x_debug_open, .open = host1x_debug_open,
.read = seq_read, .read = seq_read,
.llseek = seq_lseek, .llseek = seq_lseek,
.release = single_release, .release = single_release,
}; };
static void host1x_debugfs_init(struct host1x *host1x) static void host1x_debugfs_init(struct host1x *host1x)
@ -205,6 +215,7 @@ void host1x_debug_dump(struct host1x *host1x)
struct output o = { struct output o = {
.fn = write_to_printk .fn = write_to_printk
}; };
show_all(host1x, &o); show_all(host1x, &o);
} }
@ -213,5 +224,6 @@ void host1x_debug_dump_syncpts(struct host1x *host1x)
struct output o = { struct output o = {
.fn = write_to_printk .fn = write_to_printk
}; };
show_syncpts(host1x, &o); show_syncpts(host1x, &o);
} }

View File

@ -63,13 +63,13 @@ u32 host1x_ch_readl(struct host1x_channel *ch, u32 r)
} }
static const struct host1x_info host1x01_info = { static const struct host1x_info host1x01_info = {
.nb_channels = 8, .nb_channels = 8,
.nb_pts = 32, .nb_pts = 32,
.nb_mlocks = 16, .nb_mlocks = 16,
.nb_bases = 8, .nb_bases = 8,
.init = host1x01_init, .init = host1x01_init,
.sync_offset = 0x3000, .sync_offset = 0x3000,
.dma_mask = DMA_BIT_MASK(32), .dma_mask = DMA_BIT_MASK(32),
}; };
static const struct host1x_info host1x02_info = { static const struct host1x_info host1x02_info = {

View File

@ -58,6 +58,7 @@ static void cdma_timeout_cpu_incr(struct host1x_cdma *cdma, u32 getptr,
&pb->phys, getptr); &pb->phys, getptr);
getptr = (getptr + 8) & (pb->size_bytes - 1); getptr = (getptr + 8) & (pb->size_bytes - 1);
} }
wmb(); wmb();
} }
@ -162,12 +163,14 @@ static void cdma_stop(struct host1x_cdma *cdma)
struct host1x_channel *ch = cdma_to_channel(cdma); struct host1x_channel *ch = cdma_to_channel(cdma);
mutex_lock(&cdma->lock); mutex_lock(&cdma->lock);
if (cdma->running) { if (cdma->running) {
host1x_cdma_wait_locked(cdma, CDMA_EVENT_SYNC_QUEUE_EMPTY); host1x_cdma_wait_locked(cdma, CDMA_EVENT_SYNC_QUEUE_EMPTY);
host1x_ch_writel(ch, HOST1X_CHANNEL_DMACTRL_DMASTOP, host1x_ch_writel(ch, HOST1X_CHANNEL_DMACTRL_DMASTOP,
HOST1X_CHANNEL_DMACTRL); HOST1X_CHANNEL_DMACTRL);
cdma->running = false; cdma->running = false;
} }
mutex_unlock(&cdma->lock); mutex_unlock(&cdma->lock);
} }
@ -231,14 +234,11 @@ static void cdma_resume(struct host1x_cdma *cdma, u32 getptr)
*/ */
static void cdma_timeout_handler(struct work_struct *work) static void cdma_timeout_handler(struct work_struct *work)
{ {
u32 prev_cmdproc, cmdproc_stop, syncpt_val;
struct host1x_cdma *cdma; struct host1x_cdma *cdma;
struct host1x *host1x; struct host1x *host1x;
struct host1x_channel *ch; struct host1x_channel *ch;
u32 syncpt_val;
u32 prev_cmdproc, cmdproc_stop;
cdma = container_of(to_delayed_work(work), struct host1x_cdma, cdma = container_of(to_delayed_work(work), struct host1x_cdma,
timeout.wq); timeout.wq);
host1x = cdma_to_host1x(cdma); host1x = cdma_to_host1x(cdma);
@ -278,8 +278,8 @@ static void cdma_timeout_handler(struct work_struct *work)
} }
dev_warn(host1x->dev, "%s: timeout: %u (%s), HW thresh %d, done %d\n", dev_warn(host1x->dev, "%s: timeout: %u (%s), HW thresh %d, done %d\n",
__func__, cdma->timeout.syncpt->id, cdma->timeout.syncpt->name, __func__, cdma->timeout.syncpt->id, cdma->timeout.syncpt->name,
syncpt_val, cdma->timeout.syncpt_val); syncpt_val, cdma->timeout.syncpt_val);
/* stop HW, resetting channel/module */ /* stop HW, resetting channel/module */
host1x_hw_cdma_freeze(host1x, cdma); host1x_hw_cdma_freeze(host1x, cdma);
@ -306,6 +306,7 @@ static void cdma_timeout_destroy(struct host1x_cdma *cdma)
{ {
if (cdma->timeout.initialized) if (cdma->timeout.initialized)
cancel_delayed_work(&cdma->timeout.wq); cancel_delayed_work(&cdma->timeout.wq);
cdma->timeout.initialized = false; cdma->timeout.initialized = false;
} }

View File

@ -46,6 +46,7 @@ static void trace_write_gather(struct host1x_cdma *cdma, struct host1x_bo *bo,
*/ */
for (i = 0; i < words; i += TRACE_MAX_LENGTH) { for (i = 0; i < words; i += TRACE_MAX_LENGTH) {
u32 num_words = min(words - i, TRACE_MAX_LENGTH); u32 num_words = min(words - i, TRACE_MAX_LENGTH);
offset += i * sizeof(u32); offset += i * sizeof(u32);
trace_host1x_cdma_push_gather(dev_name(dev), bo, trace_host1x_cdma_push_gather(dev_name(dev), bo,
@ -66,6 +67,7 @@ static void submit_gathers(struct host1x_job *job)
struct host1x_job_gather *g = &job->gathers[i]; struct host1x_job_gather *g = &job->gathers[i];
u32 op1 = host1x_opcode_gather(g->words); u32 op1 = host1x_opcode_gather(g->words);
u32 op2 = g->base + g->offset; u32 op2 = g->base + g->offset;
trace_write_gather(cdma, g->bo, g->offset, op1 & 0xffff); trace_write_gather(cdma, g->bo, g->offset, op1 & 0xffff);
host1x_cdma_push(cdma, op1, op2); host1x_cdma_push(cdma, op1, op2);
} }

View File

@ -40,8 +40,7 @@ enum {
static unsigned int show_channel_command(struct output *o, u32 val) static unsigned int show_channel_command(struct output *o, u32 val)
{ {
unsigned mask; unsigned int mask, subop;
unsigned subop;
switch (val >> 28) { switch (val >> 28) {
case HOST1X_OPCODE_SETCLASS: case HOST1X_OPCODE_SETCLASS:
@ -200,14 +199,13 @@ static void host1x_debug_show_channel_cdma(struct host1x *host,
if (HOST1X_SYNC_CBSTAT_CBCLASS_V(cbstat) == HOST1X_CLASS_HOST1X && if (HOST1X_SYNC_CBSTAT_CBCLASS_V(cbstat) == HOST1X_CLASS_HOST1X &&
HOST1X_SYNC_CBSTAT_CBOFFSET_V(cbstat) == HOST1X_SYNC_CBSTAT_CBOFFSET_V(cbstat) ==
HOST1X_UCLASS_WAIT_SYNCPT) HOST1X_UCLASS_WAIT_SYNCPT)
host1x_debug_output(o, "waiting on syncpt %d val %d\n", host1x_debug_output(o, "waiting on syncpt %d val %d\n",
cbread >> 24, cbread & 0xffffff); cbread >> 24, cbread & 0xffffff);
else if (HOST1X_SYNC_CBSTAT_CBCLASS_V(cbstat) == else if (HOST1X_SYNC_CBSTAT_CBCLASS_V(cbstat) ==
HOST1X_CLASS_HOST1X && HOST1X_CLASS_HOST1X &&
HOST1X_SYNC_CBSTAT_CBOFFSET_V(cbstat) == HOST1X_SYNC_CBSTAT_CBOFFSET_V(cbstat) ==
HOST1X_UCLASS_WAIT_SYNCPT_BASE) { HOST1X_UCLASS_WAIT_SYNCPT_BASE) {
base = (cbread >> 16) & 0xff; base = (cbread >> 16) & 0xff;
baseval = baseval =
host1x_sync_readl(host, HOST1X_SYNC_SYNCPT_BASE(base)); host1x_sync_readl(host, HOST1X_SYNC_SYNCPT_BASE(base));
@ -293,6 +291,7 @@ static void host1x_debug_show_mlocks(struct host1x *host, struct output *o)
unsigned int i; unsigned int i;
host1x_debug_output(o, "---- mlocks ----\n"); host1x_debug_output(o, "---- mlocks ----\n");
for (i = 0; i < host1x_syncpt_nb_mlocks(host); i++) { for (i = 0; i < host1x_syncpt_nb_mlocks(host); i++) {
u32 owner = u32 owner =
host1x_sync_readl(host, HOST1X_SYNC_MLOCK_OWNER(i)); host1x_sync_readl(host, HOST1X_SYNC_MLOCK_OWNER(i));
@ -304,6 +303,7 @@ static void host1x_debug_show_mlocks(struct host1x *host, struct output *o)
else else
host1x_debug_output(o, "%u: unlocked\n", i); host1x_debug_output(o, "%u: unlocked\n", i);
} }
host1x_debug_output(o, "\n"); host1x_debug_output(o, "\n");
} }

View File

@ -72,8 +72,9 @@ static void _host1x_intr_disable_all_syncpt_intrs(struct host1x *host)
} }
} }
static int _host1x_intr_init_host_sync(struct host1x *host, u32 cpm, static int
void (*syncpt_thresh_work)(struct work_struct *)) _host1x_intr_init_host_sync(struct host1x *host, u32 cpm,
void (*syncpt_thresh_work)(struct work_struct *))
{ {
unsigned int i; unsigned int i;
int err; int err;
@ -137,6 +138,7 @@ static int _host1x_free_syncpt_irq(struct host1x *host)
for (i = 0; i < host->info->nb_pts; i++) for (i = 0; i < host->info->nb_pts; i++)
cancel_work_sync(&host->syncpt[i].intr.work); cancel_work_sync(&host->syncpt[i].intr.work);
return 0; return 0;
} }

View File

@ -88,6 +88,7 @@ static int syncpt_cpu_incr(struct host1x_syncpt *sp)
if (!host1x_syncpt_client_managed(sp) && if (!host1x_syncpt_client_managed(sp) &&
host1x_syncpt_idle(sp)) host1x_syncpt_idle(sp))
return -EINVAL; return -EINVAL;
host1x_sync_writel(host, BIT_MASK(sp->id), host1x_sync_writel(host, BIT_MASK(sp->id),
HOST1X_SYNC_SYNCPT_CPU_INCR(reg_offset)); HOST1X_SYNC_SYNCPT_CPU_INCR(reg_offset));
wmb(); wmb();
@ -98,10 +99,10 @@ static int syncpt_cpu_incr(struct host1x_syncpt *sp)
/* remove a wait pointed to by patch_addr */ /* remove a wait pointed to by patch_addr */
static int syncpt_patch_wait(struct host1x_syncpt *sp, void *patch_addr) static int syncpt_patch_wait(struct host1x_syncpt *sp, void *patch_addr)
{ {
u32 override = host1x_class_host_wait_syncpt( u32 override = host1x_class_host_wait_syncpt(HOST1X_SYNCPT_RESERVED, 0);
HOST1X_SYNCPT_RESERVED, 0);
*((u32 *)patch_addr) = override; *((u32 *)patch_addr) = override;
return 0; return 0;
} }

View File

@ -577,11 +577,12 @@ void host1x_job_unpin(struct host1x_job *job)
host1x_bo_unpin(unpin->bo, unpin->sgt); host1x_bo_unpin(unpin->bo, unpin->sgt);
host1x_bo_put(unpin->bo); host1x_bo_put(unpin->bo);
} }
job->num_unpins = 0; job->num_unpins = 0;
if (job->gather_copy_size) if (job->gather_copy_size)
dma_free_wc(job->channel->dev, job->gather_copy_size, dma_free_wc(job->channel->dev, job->gather_copy_size,
job->gather_copy_mapped, job->gather_copy); job->gather_copy_mapped, job->gather_copy);
} }
EXPORT_SYMBOL(host1x_job_unpin); EXPORT_SYMBOL(host1x_job_unpin);

View File

@ -114,8 +114,10 @@ void host1x_syncpt_restore(struct host1x *host)
for (i = 0; i < host1x_syncpt_nb_pts(host); i++) for (i = 0; i < host1x_syncpt_nb_pts(host); i++)
host1x_hw_syncpt_restore(host, sp_base + i); host1x_hw_syncpt_restore(host, sp_base + i);
for (i = 0; i < host1x_syncpt_nb_bases(host); i++) for (i = 0; i < host1x_syncpt_nb_bases(host); i++)
host1x_hw_syncpt_restore_wait_base(host, sp_base + i); host1x_hw_syncpt_restore_wait_base(host, sp_base + i);
wmb(); wmb();
} }
@ -181,6 +183,7 @@ EXPORT_SYMBOL(host1x_syncpt_incr);
static bool syncpt_load_min_is_expired(struct host1x_syncpt *sp, u32 thresh) static bool syncpt_load_min_is_expired(struct host1x_syncpt *sp, u32 thresh)
{ {
host1x_hw_syncpt_load(sp->host, sp); host1x_hw_syncpt_load(sp->host, sp);
return host1x_syncpt_is_expired(sp, thresh); return host1x_syncpt_is_expired(sp, thresh);
} }
@ -188,7 +191,7 @@ static bool syncpt_load_min_is_expired(struct host1x_syncpt *sp, u32 thresh)
* Main entrypoint for syncpoint value waits. * Main entrypoint for syncpoint value waits.
*/ */
int host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, long timeout, int host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, long timeout,
u32 *value) u32 *value)
{ {
DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
void *ref; void *ref;
@ -203,6 +206,7 @@ int host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, long timeout,
if (host1x_syncpt_is_expired(sp, thresh)) { if (host1x_syncpt_is_expired(sp, thresh)) {
if (value) if (value)
*value = host1x_syncpt_load(sp); *value = host1x_syncpt_load(sp);
return 0; return 0;
} }
@ -211,6 +215,7 @@ int host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, long timeout,
if (host1x_syncpt_is_expired(sp, thresh)) { if (host1x_syncpt_is_expired(sp, thresh)) {
if (value) if (value)
*value = val; *value = val;
goto done; goto done;
} }
@ -241,20 +246,27 @@ int host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, long timeout,
/* wait for the syncpoint, or timeout, or signal */ /* wait for the syncpoint, or timeout, or signal */
while (timeout) { while (timeout) {
long check = min_t(long, SYNCPT_CHECK_PERIOD, timeout); long check = min_t(long, SYNCPT_CHECK_PERIOD, timeout);
int remain = wait_event_interruptible_timeout(wq, int remain;
remain = wait_event_interruptible_timeout(wq,
syncpt_load_min_is_expired(sp, thresh), syncpt_load_min_is_expired(sp, thresh),
check); check);
if (remain > 0 || host1x_syncpt_is_expired(sp, thresh)) { if (remain > 0 || host1x_syncpt_is_expired(sp, thresh)) {
if (value) if (value)
*value = host1x_syncpt_load(sp); *value = host1x_syncpt_load(sp);
err = 0; err = 0;
break; break;
} }
if (remain < 0) { if (remain < 0) {
err = remain; err = remain;
break; break;
} }
timeout -= check; timeout -= check;
if (timeout && check_count <= MAX_STUCK_CHECK_COUNT) { if (timeout && check_count <= MAX_STUCK_CHECK_COUNT) {
dev_warn(sp->host->dev, dev_warn(sp->host->dev,
"%s: syncpoint id %u (%s) stuck waiting %d, timeout=%ld\n", "%s: syncpoint id %u (%s) stuck waiting %d, timeout=%ld\n",
@ -262,11 +274,14 @@ int host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, long timeout,
thresh, timeout); thresh, timeout);
host1x_debug_dump_syncpts(sp->host); host1x_debug_dump_syncpts(sp->host);
if (check_count == MAX_STUCK_CHECK_COUNT) if (check_count == MAX_STUCK_CHECK_COUNT)
host1x_debug_dump(sp->host); host1x_debug_dump(sp->host);
check_count++; check_count++;
} }
} }
host1x_intr_put_ref(sp->host, sp->id, ref); host1x_intr_put_ref(sp->host, sp->id, ref);
done: done:
@ -283,6 +298,7 @@ bool host1x_syncpt_is_expired(struct host1x_syncpt *sp, u32 thresh)
u32 future_val; u32 future_val;
smp_rmb(); smp_rmb();
current_val = (u32)atomic_read(&sp->min_val); current_val = (u32)atomic_read(&sp->min_val);
future_val = (u32)atomic_read(&sp->max_val); future_val = (u32)atomic_read(&sp->max_val);
@ -381,6 +397,7 @@ struct host1x_syncpt *host1x_syncpt_request(struct device *dev,
unsigned long flags) unsigned long flags)
{ {
struct host1x *host = dev_get_drvdata(dev->parent); struct host1x *host = dev_get_drvdata(dev->parent);
return host1x_syncpt_alloc(host, dev, flags); return host1x_syncpt_alloc(host, dev, flags);
} }
EXPORT_SYMBOL(host1x_syncpt_request); EXPORT_SYMBOL(host1x_syncpt_request);
@ -415,6 +432,7 @@ void host1x_syncpt_deinit(struct host1x *host)
u32 host1x_syncpt_read_max(struct host1x_syncpt *sp) u32 host1x_syncpt_read_max(struct host1x_syncpt *sp)
{ {
smp_rmb(); smp_rmb();
return (u32)atomic_read(&sp->max_val); return (u32)atomic_read(&sp->max_val);
} }
EXPORT_SYMBOL(host1x_syncpt_read_max); EXPORT_SYMBOL(host1x_syncpt_read_max);
@ -425,6 +443,7 @@ EXPORT_SYMBOL(host1x_syncpt_read_max);
u32 host1x_syncpt_read_min(struct host1x_syncpt *sp) u32 host1x_syncpt_read_min(struct host1x_syncpt *sp)
{ {
smp_rmb(); smp_rmb();
return (u32)atomic_read(&sp->min_val); return (u32)atomic_read(&sp->min_val);
} }
EXPORT_SYMBOL(host1x_syncpt_read_min); EXPORT_SYMBOL(host1x_syncpt_read_min);
@ -454,6 +473,7 @@ struct host1x_syncpt *host1x_syncpt_get(struct host1x *host, unsigned int id)
{ {
if (host->info->nb_pts < id) if (host->info->nb_pts < id)
return NULL; return NULL;
return host->syncpt + id; return host->syncpt + id;
} }
EXPORT_SYMBOL(host1x_syncpt_get); EXPORT_SYMBOL(host1x_syncpt_get);