[alsa-devel] [PATCH 1/1] ALSA: hdspm - Work around broken DDS value on PCI RME MADI
Takashi Iwai
tiwai at suse.de
Thu May 31 10:32:05 CEST 2012
At Wed, 30 May 2012 14:23:18 +0200,
Adrian Knoth wrote:
>
> On PCI RME MADI cards, the PLL register does not contain the proper
> value, so the calculated system_sample_rate is wrong. In this case, we
> simply return the cached rate from struct hdspm.
>
> Signed-off-by: Adrian Knoth <adi at drcomp.erfurt.thur.de>
Applied now. Thanks.
Takashi
> diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
> index f27a98e..f3cf8d0 100644
> --- a/sound/pci/rme9652/hdspm.c
> +++ b/sound/pci/rme9652/hdspm.c
> @@ -1988,6 +1988,13 @@ static int hdspm_get_system_sample_rate(struct hdspm *hdspm)
> period = hdspm_read(hdspm, HDSPM_RD_PLL_FREQ);
> rate = hdspm_calc_dds_value(hdspm, period);
>
> + if (rate > 207000) {
> + /* Unreasonable high sample rate as seen on PCI MADI cards.
> + * Use the cached value instead.
> + */
> + rate = hdspm->system_sample_rate;
> + }
> +
> return rate;
> }
>
> --
> 1.7.10
>
More information about the Alsa-devel
mailing list