Hi Takashi-san
Actually as Lars pointed out in another reply, the current code of soc_pcm_init_runtime_hw() is correct. It's a bit tricky but smartly handling the cases: when rate_min/max are to be overridden by rates bits, they are supposed to be zero, and min_not_zero() does the trick. Also, snd_pcm_rate_mask_intersect() sanitizes the bits when CONTINUOUS or KNOT is set, so the spurious rate bits won't be reflected in snd_pcm_limit_hw_rates(), too.
But still the dpcm_fe_dai_startup() needs to be fixed as you mentioned. Though, I guess we need to fix not there but rather other places (e.g. dpcm_set_fe_runtime() itself).
Ahh, Yes of course. Fixup dpcm_set_fe_runtime() is included in my previous "We need to fixup dpcm_fe_dai_startup()" :)
Thank you for your help !! Best regards --- Kuninori Morimoto