[bug report] ASoC: Intel: KMB: Enable TDM audio capture

Sit, Michael Wei Hong michael.wei.hong.sit at intel.com
Tue Aug 25 19:22:18 CEST 2020



> On 25 Aug 2020, at 11:58 PM, Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com> wrote:
> 
> 
>>>>>  506          switch (config->chan_nr) {
>>>>>  507          case 8:
>>>>>  508          case 4:
>>>>>  509                  /*
>>>>>  510                   * Platform is not capable of providing clocks for
>>>>>  511                   * multi channel audio
>>>>>  512                   */
>>>>>  513                  if (kmb_i2s->master)
>>>>>  514                          return -EINVAL;
>>>>>  515
>>>>>  516                  write_val = ((config->chan_nr / 2) << TDM_CHANNEL_CONFIG_BIT) |
>>>>>  517                                  (config->data_width << DATA_WIDTH_CONFIG_BIT) |
>>>>>  518                                  !MASTER_MODE | TDM_OPERATION;
>>>>>                                       ^^^^^^^^^^^^
>>>>> MASTER_MODE is BIT(13).  It's unclear what this is supposed to be.  My
>>>>> best guess is that the ! should just be deleted.
>>>> 
>>>> This ! is intentional because it is meant to be Slave mode. Would a better approach be to create another #define for slave mode?
>>> 
>>> In my opinion, it's better to just leave it out.  ORing with zero causes
>>> a different static checker warning on my unreleased checks...  Is it
>>> 0 << 13?  I feel like ORing with zero just makes things more confusing.
>>> 
>> It is 0<<13, in the event it was previously configured to Master I would need to unset the bit
> 
> You are assigning the result to write_val, so there's no memory of what was configured before?

Yea you are right, would leaving this !MASTER_MODE out the best solution?


More information about the Alsa-devel mailing list