At Tue, 15 Sep 2009 00:45:02 +0200, pavel.hofman@xxxxxxxxxxx wrote: > > From: Pavel Hofman <pavel.hofman@xxxxxxxxxxx> > > > Signed-off-by: Pavel Hofman <pavel.hofman@xxxxxxxxxxx> > > diff --git a/pci/ice1712/ice1712.h b/pci/ice1712/ice1712.h > --- a/pci/ice1712/ice1724.c > +++ b/pci/ice1712/ice1724.c > @@ -120,7 +122,7 @@ static inline int stdclock_is_spdif_master(struct snd_ice1712 *ice) > > static inline int is_pro_rate_locked(struct snd_ice1712 *ice) > { > - return ice->is_spdif_master(ice) || PRO_RATE_LOCKED; > + return (!ice->is_spdif_master(ice)) && PRO_RATE_LOCKED; What is the reason of this change of logic? > @@ -210,6 +212,16 @@ static void snd_vt1724_set_gpio_mask(struct snd_ice1712 *ice, unsigned int data) > outb((data >> 16) & 0xff, ICEREG1724(ice, GPIO_WRITE_MASK_22)); > inw(ICEREG1724(ice, GPIO_WRITE_MASK)); /* dummy read for pci-posting */ > } > +static unsigned int snd_vt1724_get_gpio_mask(struct snd_ice1712 *ice) > +{ > + unsigned int mask; > + if (!ice->vt1720) > + mask = (unsigned int)inb(ICEREG1724(ice, GPIO_WRITE_MASK_22)); > + else > + mask = 0; > + mask = (mask << 16) | inw(ICEREG1724(ice, GPIO_WRITE_MASK)); > + return mask; > +} Put this into the previous patch. > @@ -661,12 +673,16 @@ static int snd_vt1724_set_pro_rate(struct snd_ice1712 *ice, unsigned int rate, > return (rate == ice->cur_rate) ? 0 : -EBUSY; > } > > - old_rate = ice->get_rate(ice); > - if (force || (old_rate != rate)) > - ice->set_rate(ice, rate); > - else if (rate == ice->cur_rate) { > - spin_unlock_irqrestore(&ice->reg_lock, flags); > - return 0; > + if (force || !ice->is_spdif_master(ice)) { > + /* force means the rate was switched by ucontrol, otherwise > + * setting clock rate for internal clock mode */ > + old_rate = ice->get_rate(ice); > + if (force || (old_rate != rate)) > + ice->set_rate(ice, rate); > + else if (rate == ice->cur_rate) { > + spin_unlock_irqrestore(&ice->reg_lock, flags); > + return 0; > + } This should be related with the change above... thanks, Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel