Lines Matching refs:sst

48 void sst_dsp_shim_write(struct sst_dsp *sst, u32 offset, u32 value)  in sst_dsp_shim_write()  argument
52 spin_lock_irqsave(&sst->spinlock, flags); in sst_dsp_shim_write()
53 sst->ops->write(sst->addr.shim, offset, value); in sst_dsp_shim_write()
54 spin_unlock_irqrestore(&sst->spinlock, flags); in sst_dsp_shim_write()
58 u32 sst_dsp_shim_read(struct sst_dsp *sst, u32 offset) in sst_dsp_shim_read() argument
63 spin_lock_irqsave(&sst->spinlock, flags); in sst_dsp_shim_read()
64 val = sst->ops->read(sst->addr.shim, offset); in sst_dsp_shim_read()
65 spin_unlock_irqrestore(&sst->spinlock, flags); in sst_dsp_shim_read()
71 void sst_dsp_shim_write_unlocked(struct sst_dsp *sst, u32 offset, u32 value) in sst_dsp_shim_write_unlocked() argument
73 sst->ops->write(sst->addr.shim, offset, value); in sst_dsp_shim_write_unlocked()
77 u32 sst_dsp_shim_read_unlocked(struct sst_dsp *sst, u32 offset) in sst_dsp_shim_read_unlocked() argument
79 return sst->ops->read(sst->addr.shim, offset); in sst_dsp_shim_read_unlocked()
83 int sst_dsp_shim_update_bits_unlocked(struct sst_dsp *sst, u32 offset, in sst_dsp_shim_update_bits_unlocked() argument
90 ret = sst_dsp_shim_read_unlocked(sst, offset); in sst_dsp_shim_update_bits_unlocked()
97 sst_dsp_shim_write_unlocked(sst, offset, new); in sst_dsp_shim_update_bits_unlocked()
104 void sst_dsp_shim_update_bits_forced_unlocked(struct sst_dsp *sst, u32 offset, in sst_dsp_shim_update_bits_forced_unlocked() argument
110 ret = sst_dsp_shim_read_unlocked(sst, offset); in sst_dsp_shim_update_bits_forced_unlocked()
115 sst_dsp_shim_write_unlocked(sst, offset, new); in sst_dsp_shim_update_bits_forced_unlocked()
119 int sst_dsp_shim_update_bits(struct sst_dsp *sst, u32 offset, in sst_dsp_shim_update_bits() argument
125 spin_lock_irqsave(&sst->spinlock, flags); in sst_dsp_shim_update_bits()
126 change = sst_dsp_shim_update_bits_unlocked(sst, offset, mask, value); in sst_dsp_shim_update_bits()
127 spin_unlock_irqrestore(&sst->spinlock, flags); in sst_dsp_shim_update_bits()
133 void sst_dsp_shim_update_bits_forced(struct sst_dsp *sst, u32 offset, in sst_dsp_shim_update_bits_forced() argument
138 spin_lock_irqsave(&sst->spinlock, flags); in sst_dsp_shim_update_bits_forced()
139 sst_dsp_shim_update_bits_forced_unlocked(sst, offset, mask, value); in sst_dsp_shim_update_bits_forced()
140 spin_unlock_irqrestore(&sst->spinlock, flags); in sst_dsp_shim_update_bits_forced()
184 int sst_dsp_mailbox_init(struct sst_dsp *sst, u32 inbox_offset, size_t inbox_size, in sst_dsp_mailbox_init() argument
187 sst->mailbox.in_base = sst->addr.lpe + inbox_offset; in sst_dsp_mailbox_init()
188 sst->mailbox.out_base = sst->addr.lpe + outbox_offset; in sst_dsp_mailbox_init()
189 sst->mailbox.in_size = inbox_size; in sst_dsp_mailbox_init()
190 sst->mailbox.out_size = outbox_size; in sst_dsp_mailbox_init()
195 void sst_dsp_outbox_write(struct sst_dsp *sst, void *message, size_t bytes) in sst_dsp_outbox_write() argument
201 memcpy_toio(sst->mailbox.out_base, message, bytes); in sst_dsp_outbox_write()
208 void sst_dsp_outbox_read(struct sst_dsp *sst, void *message, size_t bytes) in sst_dsp_outbox_read() argument
214 memcpy_fromio(message, sst->mailbox.out_base, bytes); in sst_dsp_outbox_read()
221 void sst_dsp_inbox_write(struct sst_dsp *sst, void *message, size_t bytes) in sst_dsp_inbox_write() argument
227 memcpy_toio(sst->mailbox.in_base, message, bytes); in sst_dsp_inbox_write()
234 void sst_dsp_inbox_read(struct sst_dsp *sst, void *message, size_t bytes) in sst_dsp_inbox_read() argument
240 memcpy_fromio(message, sst->mailbox.in_base, bytes); in sst_dsp_inbox_read()