aboutsummaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python
diff options
context:
space:
mode:
authorTakashi Iwai <[email protected]>2018-09-04 17:58:49 +0200
committerGreg Kroah-Hartman <[email protected]>2018-09-10 11:15:00 +0200
commitd7ca3a71545bae2a802ab64afd7636c2daf26699 (patch)
treea64a6df0f28aacf414c7fd6649608cfdcd2eb78d /tools/perf/scripts/python
parent0307363a4fbf301d0b25df6aa7827c30f11e220d (diff)
staging: bcm2835-audio: Operate non-atomic PCM ops
This is the most significant part in the patch series. The bcm2835-audio driver used to queue the commands to vc04 core via workqueue, but basically the whole accesses to vc04 core are done in the sleepable context, including the callback calls. In such a case, rewriting the code using non-atomic PCM ops will simplify the logic a lot. This patch does it: all workqueue are gone and each former-work implementation is now directly called from PCM ops like trigger and write transfer. Along with it, the DMA position updater, bcm2835_playback_fifo(), was also rewritten to use a simpler logic. Now it handles the XRUN and draining properly by calling snd_pcm_stop() conditionally. The current position is kept in atomic_t value so that it can be read concurrently from the pointer callback. Also, the bcm2835_audio_instance object is allocated at the beginning of bcm2835_audio_open(). This makes the resource management clearer. Signed-off-by: Takashi Iwai <[email protected]> Tested-by: Stefan Wahren <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions