ALSA: hiface: Use guard() for spin locks
Clean up the code using guard() for spin locks. Merely code refactoring, and no behavior change. Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20250829150724.6886-6-tiwai@suse.depull/476/head
parent
07f55c77b9
commit
ea3bfbbc9a
|
|
@ -305,7 +305,6 @@ static void hiface_pcm_out_urb_handler(struct urb *usb_urb)
|
||||||
struct pcm_runtime *rt = out_urb->chip->pcm;
|
struct pcm_runtime *rt = out_urb->chip->pcm;
|
||||||
struct pcm_substream *sub;
|
struct pcm_substream *sub;
|
||||||
bool do_period_elapsed = false;
|
bool do_period_elapsed = false;
|
||||||
unsigned long flags;
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (rt->panic || rt->stream_state == STREAM_STOPPING)
|
if (rt->panic || rt->stream_state == STREAM_STOPPING)
|
||||||
|
|
@ -325,13 +324,12 @@ static void hiface_pcm_out_urb_handler(struct urb *usb_urb)
|
||||||
|
|
||||||
/* now send our playback data (if a free out urb was found) */
|
/* now send our playback data (if a free out urb was found) */
|
||||||
sub = &rt->playback;
|
sub = &rt->playback;
|
||||||
spin_lock_irqsave(&sub->lock, flags);
|
scoped_guard(spinlock_irqsave, &sub->lock) {
|
||||||
if (sub->active)
|
if (sub->active)
|
||||||
do_period_elapsed = hiface_pcm_playback(sub, out_urb);
|
do_period_elapsed = hiface_pcm_playback(sub, out_urb);
|
||||||
else
|
else
|
||||||
memset(out_urb->buffer, 0, PCM_PACKET_SIZE);
|
memset(out_urb->buffer, 0, PCM_PACKET_SIZE);
|
||||||
|
}
|
||||||
spin_unlock_irqrestore(&sub->lock, flags);
|
|
||||||
|
|
||||||
if (do_period_elapsed)
|
if (do_period_elapsed)
|
||||||
snd_pcm_period_elapsed(sub->instance);
|
snd_pcm_period_elapsed(sub->instance);
|
||||||
|
|
@ -389,7 +387,6 @@ static int hiface_pcm_close(struct snd_pcm_substream *alsa_sub)
|
||||||
{
|
{
|
||||||
struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
|
struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
|
||||||
struct pcm_substream *sub = hiface_pcm_get_substream(alsa_sub);
|
struct pcm_substream *sub = hiface_pcm_get_substream(alsa_sub);
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
if (rt->panic)
|
if (rt->panic)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -399,11 +396,9 @@ static int hiface_pcm_close(struct snd_pcm_substream *alsa_sub)
|
||||||
hiface_pcm_stream_stop(rt);
|
hiface_pcm_stream_stop(rt);
|
||||||
|
|
||||||
/* deactivate substream */
|
/* deactivate substream */
|
||||||
spin_lock_irqsave(&sub->lock, flags);
|
guard(spinlock_irqsave)(&sub->lock);
|
||||||
sub->instance = NULL;
|
sub->instance = NULL;
|
||||||
sub->active = false;
|
sub->active = false;
|
||||||
spin_unlock_irqrestore(&sub->lock, flags);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -452,16 +447,16 @@ static int hiface_pcm_trigger(struct snd_pcm_substream *alsa_sub, int cmd)
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case SNDRV_PCM_TRIGGER_START:
|
case SNDRV_PCM_TRIGGER_START:
|
||||||
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
|
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
|
||||||
spin_lock_irq(&sub->lock);
|
scoped_guard(spinlock_irq, &sub->lock) {
|
||||||
sub->active = true;
|
sub->active = true;
|
||||||
spin_unlock_irq(&sub->lock);
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case SNDRV_PCM_TRIGGER_STOP:
|
case SNDRV_PCM_TRIGGER_STOP:
|
||||||
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
|
case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
|
||||||
spin_lock_irq(&sub->lock);
|
scoped_guard(spinlock_irq, &sub->lock) {
|
||||||
sub->active = false;
|
sub->active = false;
|
||||||
spin_unlock_irq(&sub->lock);
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
@ -473,15 +468,13 @@ static snd_pcm_uframes_t hiface_pcm_pointer(struct snd_pcm_substream *alsa_sub)
|
||||||
{
|
{
|
||||||
struct pcm_substream *sub = hiface_pcm_get_substream(alsa_sub);
|
struct pcm_substream *sub = hiface_pcm_get_substream(alsa_sub);
|
||||||
struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
|
struct pcm_runtime *rt = snd_pcm_substream_chip(alsa_sub);
|
||||||
unsigned long flags;
|
|
||||||
snd_pcm_uframes_t dma_offset;
|
snd_pcm_uframes_t dma_offset;
|
||||||
|
|
||||||
if (rt->panic || !sub)
|
if (rt->panic || !sub)
|
||||||
return SNDRV_PCM_POS_XRUN;
|
return SNDRV_PCM_POS_XRUN;
|
||||||
|
|
||||||
spin_lock_irqsave(&sub->lock, flags);
|
guard(spinlock_irqsave)(&sub->lock);
|
||||||
dma_offset = sub->dma_off;
|
dma_offset = sub->dma_off;
|
||||||
spin_unlock_irqrestore(&sub->lock, flags);
|
|
||||||
return bytes_to_frames(alsa_sub->runtime, dma_offset);
|
return bytes_to_frames(alsa_sub->runtime, dma_offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue