X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=sound%2Fsh%2Faica.c;h=d49417bf78c693dc115390cd14d6c54d84fd8c7f;hb=edb54a55d2e36de2183a89efa97fadede33b1166;hp=88dc840152ce9369f57956c2d43cde2ac0e936ab;hpb=c7ffb6bb7a1b6fe5912a009d561733911769d32b;p=powerpc.git diff --git a/sound/sh/aica.c b/sound/sh/aica.c index 88dc840152..d49417bf78 100644 --- a/sound/sh/aica.c +++ b/sound/sh/aica.c @@ -35,7 +35,6 @@ #include #include #include -#include #include #include #include @@ -237,6 +236,7 @@ static int aica_dma_transfer(int channels, int buffer_size, struct snd_card_aica *dreamcastcard; struct snd_pcm_runtime *runtime; unsigned long flags; + err = 0; dreamcastcard = substream->pcm->private_data; period_offset = dreamcastcard->clicks; period_offset %= (AICA_PERIOD_NUMBER / channels); @@ -522,11 +522,14 @@ static int aica_pcmvolume_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) { struct snd_card_aica *dreamcastcard; + unsigned int vol; dreamcastcard = kcontrol->private_data; if (unlikely(!dreamcastcard->channel)) return -ETXTBSY; - if (unlikely(dreamcastcard->channel->vol == - ucontrol->value.integer.value[0])) + vol = ucontrol->value.integer.value[0]; + if (vol > 0xff) + return -EINVAL; + if (unlikely(dreamcastcard->channel->vol == vol)) return 0; dreamcastcard->channel->vol = ucontrol->value.integer.value[0]; dreamcastcard->master_volume = ucontrol->value.integer.value[0];