[alsa-devel] [PATCH 2/3] ASoC: Intel: kbl_da7219_max98357a_rt5660: Add a new codec rt5660

Hui Wang hui.wang at canonical.com
Fri Dec 7 05:32:24 CET 2018


On 2018/12/7 上午9:18, Pierre-Louis Bossart wrote:
>
> On 12/6/18 7:01 PM, Hui Wang wrote:
>> 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.
> This description shows you've done your homework, but...
>>
>>
>>> 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.
>>
> ...the only thing that's really copy-paste is the HDMI part, which can 
> be factored without too many issues. All the maps, routing, codec 
> controls are different, and there is no benefit in having them in a 
> single file. There are multiple derivatives of those Chromebook 
> designs and you really don't want to have to deal with their updates. 
> And last the downside is really more complicated Kconfig dependencies.
>
> I am all for reuse, and just spent the last hour making sure we can 
> reuse between APL and GLK, but in this case I really strongly 
> encourage you to have a different machine driver, it'll be simpler to 
> review and maintain.
>
OK, got it. will implement a new c file in the V2.

Thanks,

Hui.

> Thanks
>
> -Pierre
>
>
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel


More information about the Alsa-devel mailing list