diff --git a/src/include/sof/audio/coefficients/pdm_decim/pdm_decim_table.h b/src/include/sof/audio/coefficients/pdm_decim/pdm_decim_table.h index d2c51afe5..cfd4368bb 100644 --- a/src/include/sof/audio/coefficients/pdm_decim/pdm_decim_table.h +++ b/src/include/sof/audio/coefficients/pdm_decim/pdm_decim_table.h @@ -40,9 +40,17 @@ #include "pdm_decim_int32_12_4156_5345_010_090.h" #endif -/* Note: Higher spec filter must be before lower spec filter - * if there are multiple filters for a decimation factor. The naming - * scheme of coefficients set is: +/* Note 1: Higher spec filter must be before lower spec filter + * if there are multiple filters for a decimation factor. The first + * filter is skipped if the length is too much vs. overrun limit. If + * other order the better filter would be never selected. + * + * Note 2: The introduction order of FIR decimation factors is the selection + * preference order. The decimation factor 5 and 10 (2*5) cause a often less + * compatible output sample rate for CIC so they are not used if there other + * suitable nearby values. + * + * The naming scheme of coefficients set is: * _____ */ struct pdm_decim *fir_list[] = { @@ -56,20 +64,20 @@ struct pdm_decim *fir_list[] = { #if CONFIG_INTEL_DMIC_FIR_DECIMATE_BY_4 &pdm_decim_int32_04_4318_5100_010_095, #endif -#if CONFIG_INTEL_DMIC_FIR_DECIMATE_BY_5 - &pdm_decim_int32_05_4325_5100_010_095, -#endif #if CONFIG_INTEL_DMIC_FIR_DECIMATE_BY_6 &pdm_decim_int32_06_4172_5100_010_095, #endif +#if CONFIG_INTEL_DMIC_FIR_DECIMATE_BY_5 + &pdm_decim_int32_05_4325_5100_010_095, +#endif #if CONFIG_INTEL_DMIC_FIR_DECIMATE_BY_8 &pdm_decim_int32_08_4156_5301_010_090, #endif -#if CONFIG_INTEL_DMIC_FIR_DECIMATE_BY_10 - &pdm_decim_int32_10_4156_5345_010_090, -#endif #if CONFIG_INTEL_DMIC_FIR_DECIMATE_BY_12 &pdm_decim_int32_12_4156_5345_010_090, +#endif +#if CONFIG_INTEL_DMIC_FIR_DECIMATE_BY_10 + &pdm_decim_int32_10_4156_5345_010_090, #endif NULL, /* This marks the end of coefficients */ };