mirror of https://github.com/thesofproject/sof.git
trace: add missing spinlocks
Adds missing spinlocks in trace_on(), trace_off() and trace_flush() functions. Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
This commit is contained in:
parent
93be71b1a7
commit
8e76346741
|
@ -192,25 +192,45 @@ _TRACE_EVENT_NTH_IMPL_GROUP(4)
|
||||||
|
|
||||||
void trace_flush(void)
|
void trace_flush(void)
|
||||||
{
|
{
|
||||||
|
struct trace *trace = trace_get();
|
||||||
volatile uint64_t *t;
|
volatile uint64_t *t;
|
||||||
|
uint32_t flags;
|
||||||
|
|
||||||
|
spin_lock_irq(trace->lock, flags);
|
||||||
|
|
||||||
/* get mailbox position */
|
/* get mailbox position */
|
||||||
t = (volatile uint64_t *)(MAILBOX_TRACE_BASE + trace_get()->pos);
|
t = (volatile uint64_t *)(MAILBOX_TRACE_BASE + trace->pos);
|
||||||
|
|
||||||
/* flush dma trace messages */
|
/* flush dma trace messages */
|
||||||
dma_trace_flush((void *)t);
|
dma_trace_flush((void *)t);
|
||||||
|
|
||||||
|
spin_unlock_irq(trace->lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
void trace_on(void)
|
void trace_on(void)
|
||||||
{
|
{
|
||||||
trace_get()->enable = 1;
|
struct trace *trace = trace_get();
|
||||||
|
uint32_t flags;
|
||||||
|
|
||||||
|
spin_lock_irq(trace->lock, flags);
|
||||||
|
|
||||||
|
trace->enable = 1;
|
||||||
dma_trace_on();
|
dma_trace_on();
|
||||||
|
|
||||||
|
spin_unlock_irq(trace->lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
void trace_off(void)
|
void trace_off(void)
|
||||||
{
|
{
|
||||||
trace_get()->enable = 0;
|
struct trace *trace = trace_get();
|
||||||
|
uint32_t flags;
|
||||||
|
|
||||||
|
spin_lock_irq(trace->lock, flags);
|
||||||
|
|
||||||
|
trace->enable = 0;
|
||||||
dma_trace_off();
|
dma_trace_off();
|
||||||
|
|
||||||
|
spin_unlock_irq(trace->lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
void trace_init(struct sof *sof)
|
void trace_init(struct sof *sof)
|
||||||
|
|
Loading…
Reference in New Issue