From: Pavel Hofman <pavel.hofman@ivitera.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH 5/6] adding support for multiple external clock types
Date: Tue, 15 Sep 2009 15:09:08 +0200 [thread overview]
Message-ID: <4AAF91F4.2050501@ivitera.com> (raw)
In-Reply-To: <s5hmy4wbgc6.wl%tiwai@suse.de>
Takashi Iwai wrote:
> At Tue, 15 Sep 2009 00:45:02 +0200,
> pavel.hofman@ivitera.com wrote:
>> From: Pavel Hofman <pavel.hofman@ivitera.com>
>>
>>
>> Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
>>
>> 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?
The original code comes from times when the sole use of
is_pro_rate_locked in snd_vt1724_set_pro_rate was simple:
if (!force && is_pro_rate_locked(ice))
return 0;
I.e. if the RATE_LOCK control is activated, no change in rate was allowed.
Later in
http://git.alsa-project.org/?p=alsa-kmirror.git;a=commitdiff;h=f1abd41e000348151d02d9ece830a0039fac3bbe
the code was changed to
if (!force && is_pro_rate_locked(ice)) {
return (rate == ice->cur_rate) ? 0 : -EBUSY;
The extra check rate == ice->cur_rate does not make sense for
external-clock modes and sometimes I experienced EBUSY when testing the
external-clock functionality.
>
>> @@ -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.
Sorry, I will move it.
>
>> @@ -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@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply other threads:[~2009-09-15 13:08 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-14 22:44 [PATCH 1/6] AK4114 - fix output selector bits, fix spelling pavel.hofman
2009-09-14 22:44 ` [PATCH 2/6] ak4620 support, moving the proc codec regs entry to ak4xxx-adda, pavel.hofman
2009-09-14 22:45 ` [PATCH 3/6] ak4113 support pavel.hofman
2009-09-14 22:45 ` [PATCH 4/6] Adding GPIO routines for mask and direction pavel.hofman
2009-09-14 22:45 ` [PATCH 5/6] adding support for multiple external clock types pavel.hofman
2009-09-14 22:45 ` [PATCH 6/6] Infrasonic Quartet support pavel.hofman
2009-09-15 11:36 ` Takashi Iwai
2009-09-15 11:24 ` [PATCH 5/6] adding support for multiple external clock types Takashi Iwai
2009-09-15 13:09 ` Pavel Hofman [this message]
2009-09-15 13:29 ` Takashi Iwai
2009-09-15 11:19 ` [PATCH 4/6] Adding GPIO routines for mask and direction Takashi Iwai
2009-09-15 11:55 ` Pavel Hofman
2009-09-15 11:15 ` [PATCH 3/6] ak4113 support Takashi Iwai
2009-09-15 11:54 ` Pavel Hofman
2009-09-15 11:12 ` [PATCH 2/6] ak4620 support, moving the proc codec regs entry to ak4xxx-adda, Takashi Iwai
2009-09-15 11:07 ` [PATCH 1/6] AK4114 - fix output selector bits, fix spelling Takashi Iwai
2009-09-15 11:51 ` Pavel Hofman
2009-09-15 12:31 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4AAF91F4.2050501@ivitera.com \
--to=pavel.hofman@ivitera.com \
--cc=alsa-devel@alsa-project.org \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.