On 2018/12/6 下午11:08, Pierre-Louis Bossart wrote:
On 12/6/18 8:52 AM, Hui Wang wrote:
The new Dell IoT platform uses kabylake + alc3277 codec, and alc3277 shares the driver with the codec rt5660, here we choose the closest machine driver kbl_da7219_max98357a, and based on this driver, we add a new codec rt5660 to it.
The audio design on this IoT platform is as below: - Intel kabylake platform - connect the codec ALC3277 via SSP0 - line-out and line-in with Micbias jacks - line-out mute control and jack detection of line-out and line-in - two HDMI ports with audio capability
I am not sure it makes sense to stuff the rt5660 support in a machine driver that's meant mostly for Chromebooks, and I am not sure why you picked this one specifically.
Since this is a kabylake platform, we have 4 candidates to choose if we want to stuff the code into an existing machine driver, they are:
kbl_da7219_max98357a.c kbl_da7219_max98927.c kbl_rt5663_max98927.c kbl_rt5663_rt5514_max98927.c
kbl_da7219_max98927.c: it connects 2 codecs via SSP0, so we can't share the ssp0_hw_params and ssp_fixup functions with this Dell IoT design
kbl_rt5663_max98927.c: it connects 2 codes via SSP0, and the rt5663 is connected to SSP1, we can't share the ssp0_hw_params and ssp_fixup functions with this Dell IoT design, more over, it requires the clock of "ssp1_mclk" and "ssp1_sclk" which is not needed on Dell IoT.
kbl_rt5663_rt5514_max98927.c: nearly same as kbl_rt5663_max98927.c
So in order to share the existing code with Dell IoT maximumly, I choose kbl_da7219_max98357a.c, it connects 1 codec via SSP0 with SND_SOC_DAIFMT_I2S_B, this is same as the Dell IoT's design.
Since there is no reuse of the DA7219, DMIC or MAX98357a, I would argue that you want to define a new machine driver so that you only select and compile in what you need, not to mention that it'll be easier to maintain, both for upstream and for Chrome backports.
Yes, a standalone driver for a specific HW is easy to maintain, but it will add lots of copy-and-paste code. If it is really not good to stuff Dell IoT into an existing machine driver, I will prepare a standalone machine driver for it in the V2.
Thanks for reviewing, and expect your comment and direction.
Regards,
Hui.
Thanks! -Pierre
Signed-off-by: Hui Wang hui.wang@canonical.com
sound/soc/intel/boards/Kconfig | 7 +- sound/soc/intel/boards/Makefile | 4 +-