• Home
  • Raw
  • Download

Lines Matching refs:dev

25 static unsigned int dw_pcm_tx_##sample_bits(struct dw_i2s_dev *dev, \
33 for (i = 0; i < dev->fifo_th; i++) { \
34 iowrite32(p[tx_ptr][0], dev->i2s_base + LRBR_LTHR(0)); \
35 iowrite32(p[tx_ptr][1], dev->i2s_base + RRBR_RTHR(0)); \
45 static unsigned int dw_pcm_rx_##sample_bits(struct dw_i2s_dev *dev, \
53 for (i = 0; i < dev->fifo_th; i++) { \
54 p[rx_ptr][0] = ioread32(dev->i2s_base + LRBR_LTHR(0)); \
55 p[rx_ptr][1] = ioread32(dev->i2s_base + RRBR_RTHR(0)); \
95 static void dw_pcm_transfer(struct dw_i2s_dev *dev, bool push) in dw_pcm_transfer() argument
102 substream = rcu_dereference(dev->tx_substream); in dw_pcm_transfer()
104 substream = rcu_dereference(dev->rx_substream); in dw_pcm_transfer()
111 ptr = READ_ONCE(dev->tx_ptr); in dw_pcm_transfer()
112 new_ptr = dev->tx_fn(dev, substream->runtime, ptr, in dw_pcm_transfer()
114 cmpxchg(&dev->tx_ptr, ptr, new_ptr); in dw_pcm_transfer()
116 ptr = READ_ONCE(dev->rx_ptr); in dw_pcm_transfer()
117 new_ptr = dev->rx_fn(dev, substream->runtime, ptr, in dw_pcm_transfer()
119 cmpxchg(&dev->rx_ptr, ptr, new_ptr); in dw_pcm_transfer()
128 void dw_pcm_push_tx(struct dw_i2s_dev *dev) in dw_pcm_push_tx() argument
130 dw_pcm_transfer(dev, true); in dw_pcm_push_tx()
133 void dw_pcm_pop_rx(struct dw_i2s_dev *dev) in dw_pcm_pop_rx() argument
135 dw_pcm_transfer(dev, false); in dw_pcm_pop_rx()
142 struct dw_i2s_dev *dev = snd_soc_dai_get_drvdata(rtd->cpu_dai); in dw_pcm_open() local
146 runtime->private_data = dev; in dw_pcm_open()
161 struct dw_i2s_dev *dev = runtime->private_data; in dw_pcm_hw_params() local
168 dev_err(dev->dev, "invalid channels number\n"); in dw_pcm_hw_params()
174 dev->tx_fn = dw_pcm_tx_16; in dw_pcm_hw_params()
175 dev->rx_fn = dw_pcm_rx_16; in dw_pcm_hw_params()
179 dev->tx_fn = dw_pcm_tx_32; in dw_pcm_hw_params()
180 dev->rx_fn = dw_pcm_rx_32; in dw_pcm_hw_params()
183 dev_err(dev->dev, "invalid format\n"); in dw_pcm_hw_params()
203 struct dw_i2s_dev *dev = runtime->private_data; in dw_pcm_trigger() local
211 WRITE_ONCE(dev->tx_ptr, 0); in dw_pcm_trigger()
212 rcu_assign_pointer(dev->tx_substream, substream); in dw_pcm_trigger()
214 WRITE_ONCE(dev->rx_ptr, 0); in dw_pcm_trigger()
215 rcu_assign_pointer(dev->rx_substream, substream); in dw_pcm_trigger()
222 rcu_assign_pointer(dev->tx_substream, NULL); in dw_pcm_trigger()
224 rcu_assign_pointer(dev->rx_substream, NULL); in dw_pcm_trigger()
237 struct dw_i2s_dev *dev = runtime->private_data; in dw_pcm_pointer() local
241 pos = READ_ONCE(dev->tx_ptr); in dw_pcm_pointer()
243 pos = READ_ONCE(dev->rx_ptr); in dw_pcm_pointer()
280 return devm_snd_soc_register_platform(&pdev->dev, &dw_pcm_platform); in dw_pcm_register()