Subject: [PATCH 1/2] ASoC: rockchip: i2s: add 8 channels capture and lrck-mode support

From: [email-masked] (sugar)
Date: Wed, 7 Oct 2015 16:01:38 +0800

Sorry for late reply, we were in the National Day Holiday.

? 10/1/2015 02:46, Mark Brown ??:
> On Mon, Sep 28, 2015 at 04:16:12PM +0800, sugar wrote:
>> ? 9/24/2015 00:24, Mark Brown ??:
>
>>> My initial thought here is that the machine driver should be responsible
>>> for setting this and then the DAI driver should check to see if
>>> symmetric_rates are in use and configure itself appropriately.  Is there
>>> a reason why this won't work here?
>
>> It's for i2s ip configuration, in the most situation, there is no need
>> to use this property, except one case:
>
>> In order to save gpio pins for other function use, we may use single
>> lrck(tx or rx) pin. of course, it depends on product design. when in i2s
>> slave mode, we need to configure this to share lrck with tx/rx inside i2s
>> logic.
>
>> symmetric_rates flag works fine on rockchip platform, but it can't cover the
>> above case.
>
>> Do you have any suggestion about this or maybe there is no need to upstream
>> this special part?
>
> What makes you say that the symmetric_rates flag can't be used to cover
> this case?  What you describe above is hte normal reason for needing to
> enforce symmetric_rates.  The driver should be able to check if the flag
> has been set just as well as the core is.
>

Got it, How about the following modify?

if (dai->symmetric_rates)
	regmap_update_bits(i2s->regmap, I2S_CKR,
                            I2S_CKR_TRCM_MASK,
                            I2S_CKR_TRCM(val));