[alsa-devel] [PATCH 1/1] ALSA: hdspm - Fix wordclock status on AES32
Takashi Iwai
tiwai at suse.de
Wed Jan 9 16:22:20 CET 2013
At Wed, 9 Jan 2013 14:40:18 +0100,
Adrian Knoth wrote:
>
> From: Andre Schramm <andre.schramm at iosono-sound.com>
>
> Use correct bitmask for AES32 cards to determine wordclock lock state,
> add missing bitmask for sync check and make output of the corresponding
> control and /proc coherent.
>
> Signed-off-by: Andre Schramm <andre.schramm at iosono-sound.com>
> Signed-off-by: Adrian Knoth <adi at drcomp.erfurt.thur.de>
>
> diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
> index 6e02e06..36e247f 100644
> --- a/sound/pci/rme9652/hdspm.c
> +++ b/sound/pci/rme9652/hdspm.c
> @@ -441,6 +441,7 @@ MODULE_SUPPORTED_DEVICE("{{RME HDSPM-MADI}}");
> */
> /* status */
> #define HDSPM_AES32_wcLock 0x0200000
> +#define HDSPM_AES32_wcSync 0x0100000
> #define HDSPM_AES32_wcFreq_bit 22
> /* (status >> HDSPM_AES32_wcFreq_bit) & 0xF gives WC frequency (cf function
> HDSPM_bit2freq */
> @@ -3467,10 +3468,12 @@ static int hdspm_wc_sync_check(struct hdspm *hdspm)
> switch (hdspm->io_type) {
> case AES32:
> status = hdspm_read(hdspm, HDSPM_statusRegister);
> - if (status & HDSPM_wcSync)
> - return 2;
> - else if (status & HDSPM_wcLock)
> - return 1;
> + if (status & HDSPM_AES32_wcLock) {
> + if (status & HDSPM_AES32_wcSync)
> + return 2;
> + else
> + return 1;
> + }
> return 0;
> break;
>
> @@ -4658,6 +4661,7 @@ snd_hdspm_proc_read_aes32(struct snd_info_entry * entry,
> unsigned int status;
> unsigned int status2;
> unsigned int timecode;
> + unsigned int wcLock, wcSync;
> int pref_syncref;
> char *autosync_ref;
> int x;
> @@ -4751,8 +4755,11 @@ snd_hdspm_proc_read_aes32(struct snd_info_entry * entry,
>
> snd_iprintf(buffer, "--- Status:\n");
>
> + wcLock = status & HDSPM_AES32_wcLock;
> + wcSync = wcLock && (status & HDSPM_AES32_wcSync);
> +
> snd_iprintf(buffer, "Word: %s Frequency: %d\n",
> - (status & HDSPM_AES32_wcLock) ? "Sync " : "No Lock",
> + (wcLock) ? (wcSync ? "Sync " : "Lock") : "No Lock",
I guess you wanted to align the string size by extra spaces after
"Sync", but forgot after "Lock"?
Takashi
More information about the Alsa-devel
mailing list