[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