mirror of https://github.com/torvalds/linux.git
ALSA: dummy: 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/20250829150026.6379-9-tiwai@suse.de
This commit is contained in:
parent
353fc3e381
commit
638c33ef79
|
|
@ -269,19 +269,19 @@ static void dummy_systimer_update(struct dummy_systimer_pcm *dpcm)
|
||||||
static int dummy_systimer_start(struct snd_pcm_substream *substream)
|
static int dummy_systimer_start(struct snd_pcm_substream *substream)
|
||||||
{
|
{
|
||||||
struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
|
struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
|
||||||
spin_lock(&dpcm->lock);
|
|
||||||
|
guard(spinlock)(&dpcm->lock);
|
||||||
dpcm->base_time = jiffies;
|
dpcm->base_time = jiffies;
|
||||||
dummy_systimer_rearm(dpcm);
|
dummy_systimer_rearm(dpcm);
|
||||||
spin_unlock(&dpcm->lock);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dummy_systimer_stop(struct snd_pcm_substream *substream)
|
static int dummy_systimer_stop(struct snd_pcm_substream *substream)
|
||||||
{
|
{
|
||||||
struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
|
struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
|
||||||
spin_lock(&dpcm->lock);
|
|
||||||
|
guard(spinlock)(&dpcm->lock);
|
||||||
timer_delete(&dpcm->timer);
|
timer_delete(&dpcm->timer);
|
||||||
spin_unlock(&dpcm->lock);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -303,15 +303,14 @@ static int dummy_systimer_prepare(struct snd_pcm_substream *substream)
|
||||||
static void dummy_systimer_callback(struct timer_list *t)
|
static void dummy_systimer_callback(struct timer_list *t)
|
||||||
{
|
{
|
||||||
struct dummy_systimer_pcm *dpcm = timer_container_of(dpcm, t, timer);
|
struct dummy_systimer_pcm *dpcm = timer_container_of(dpcm, t, timer);
|
||||||
unsigned long flags;
|
|
||||||
int elapsed = 0;
|
int elapsed = 0;
|
||||||
|
|
||||||
spin_lock_irqsave(&dpcm->lock, flags);
|
scoped_guard(spinlock_irqsave, &dpcm->lock) {
|
||||||
dummy_systimer_update(dpcm);
|
dummy_systimer_update(dpcm);
|
||||||
dummy_systimer_rearm(dpcm);
|
dummy_systimer_rearm(dpcm);
|
||||||
elapsed = dpcm->elapsed;
|
elapsed = dpcm->elapsed;
|
||||||
dpcm->elapsed = 0;
|
dpcm->elapsed = 0;
|
||||||
spin_unlock_irqrestore(&dpcm->lock, flags);
|
}
|
||||||
if (elapsed)
|
if (elapsed)
|
||||||
snd_pcm_period_elapsed(dpcm->substream);
|
snd_pcm_period_elapsed(dpcm->substream);
|
||||||
}
|
}
|
||||||
|
|
@ -320,13 +319,10 @@ static snd_pcm_uframes_t
|
||||||
dummy_systimer_pointer(struct snd_pcm_substream *substream)
|
dummy_systimer_pointer(struct snd_pcm_substream *substream)
|
||||||
{
|
{
|
||||||
struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
|
struct dummy_systimer_pcm *dpcm = substream->runtime->private_data;
|
||||||
snd_pcm_uframes_t pos;
|
|
||||||
|
|
||||||
spin_lock(&dpcm->lock);
|
guard(spinlock)(&dpcm->lock);
|
||||||
dummy_systimer_update(dpcm);
|
dummy_systimer_update(dpcm);
|
||||||
pos = dpcm->frac_pos / HZ;
|
return dpcm->frac_pos / HZ;
|
||||||
spin_unlock(&dpcm->lock);
|
|
||||||
return pos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dummy_systimer_create(struct snd_pcm_substream *substream)
|
static int dummy_systimer_create(struct snd_pcm_substream *substream)
|
||||||
|
|
@ -724,10 +720,9 @@ static int snd_dummy_volume_get(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
|
struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
|
||||||
int addr = kcontrol->private_value;
|
int addr = kcontrol->private_value;
|
||||||
|
|
||||||
spin_lock_irq(&dummy->mixer_lock);
|
guard(spinlock_irq)(&dummy->mixer_lock);
|
||||||
ucontrol->value.integer.value[0] = dummy->mixer_volume[addr][0];
|
ucontrol->value.integer.value[0] = dummy->mixer_volume[addr][0];
|
||||||
ucontrol->value.integer.value[1] = dummy->mixer_volume[addr][1];
|
ucontrol->value.integer.value[1] = dummy->mixer_volume[addr][1];
|
||||||
spin_unlock_irq(&dummy->mixer_lock);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -748,12 +743,11 @@ static int snd_dummy_volume_put(struct snd_kcontrol *kcontrol,
|
||||||
right = mixer_volume_level_min;
|
right = mixer_volume_level_min;
|
||||||
if (right > mixer_volume_level_max)
|
if (right > mixer_volume_level_max)
|
||||||
right = mixer_volume_level_max;
|
right = mixer_volume_level_max;
|
||||||
spin_lock_irq(&dummy->mixer_lock);
|
guard(spinlock_irq)(&dummy->mixer_lock);
|
||||||
change = dummy->mixer_volume[addr][0] != left ||
|
change = dummy->mixer_volume[addr][0] != left ||
|
||||||
dummy->mixer_volume[addr][1] != right;
|
dummy->mixer_volume[addr][1] != right;
|
||||||
dummy->mixer_volume[addr][0] = left;
|
dummy->mixer_volume[addr][0] = left;
|
||||||
dummy->mixer_volume[addr][1] = right;
|
dummy->mixer_volume[addr][1] = right;
|
||||||
spin_unlock_irq(&dummy->mixer_lock);
|
|
||||||
return change;
|
return change;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -773,10 +767,9 @@ static int snd_dummy_capsrc_get(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
|
struct snd_dummy *dummy = snd_kcontrol_chip(kcontrol);
|
||||||
int addr = kcontrol->private_value;
|
int addr = kcontrol->private_value;
|
||||||
|
|
||||||
spin_lock_irq(&dummy->mixer_lock);
|
guard(spinlock_irq)(&dummy->mixer_lock);
|
||||||
ucontrol->value.integer.value[0] = dummy->capture_source[addr][0];
|
ucontrol->value.integer.value[0] = dummy->capture_source[addr][0];
|
||||||
ucontrol->value.integer.value[1] = dummy->capture_source[addr][1];
|
ucontrol->value.integer.value[1] = dummy->capture_source[addr][1];
|
||||||
spin_unlock_irq(&dummy->mixer_lock);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -788,12 +781,11 @@ static int snd_dummy_capsrc_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el
|
||||||
|
|
||||||
left = ucontrol->value.integer.value[0] & 1;
|
left = ucontrol->value.integer.value[0] & 1;
|
||||||
right = ucontrol->value.integer.value[1] & 1;
|
right = ucontrol->value.integer.value[1] & 1;
|
||||||
spin_lock_irq(&dummy->mixer_lock);
|
guard(spinlock_irq)(&dummy->mixer_lock);
|
||||||
change = dummy->capture_source[addr][0] != left &&
|
change = dummy->capture_source[addr][0] != left &&
|
||||||
dummy->capture_source[addr][1] != right;
|
dummy->capture_source[addr][1] != right;
|
||||||
dummy->capture_source[addr][0] = left;
|
dummy->capture_source[addr][0] = left;
|
||||||
dummy->capture_source[addr][1] = right;
|
dummy->capture_source[addr][1] = right;
|
||||||
spin_unlock_irq(&dummy->mixer_lock);
|
|
||||||
return change;
|
return change;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue