[bug report] ASoC: Intel: KMB: Enable TDM audio capture
Sit, Michael Wei Hong
michael.wei.hong.sit at intel.com
Tue Aug 25 15:49:25 CEST 2020
> On 25 Aug 2020, at 9:21 PM, Dan Carpenter <dan.carpenter at oracle.com> wrote:
>
> Hello Michael Sit Wei Hong,
>
> The patch 9c3bab3c4f15: "ASoC: Intel: KMB: Enable TDM audio capture"
> from Aug 11, 2020, leads to the following static checker warning:
>
> sound/soc/intel/keembay/kmb_platform.c:518 kmb_dai_hw_params()
> warn: potential ! vs ~ typo
>
> sound/soc/intel/keembay/kmb_platform.c
> 502 }
> 503
> 504 config->chan_nr = params_channels(hw_params);
> 505
> 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?
>
> 519
> 520 writel(write_val, kmb_i2s->pss_base + I2S_GEN_CFG_0);
> 521 break;
> 522 case 2:
> 523 /*
> 524 * Platform is only capable of providing clocks need for
> 525 * 2 channel master mode
> 526 */
> 527 if (!(kmb_i2s->master))
> 528 return -EINVAL;
> 529
> 530 write_val = ((config->chan_nr / 2) << TDM_CHANNEL_CONFIG_BIT) |
> 531 (config->data_width << DATA_WIDTH_CONFIG_BIT) |
> 532 MASTER_MODE | I2S_OPERATION;
> 533
> 534 writel(write_val, kmb_i2s->pss_base + I2S_GEN_CFG_0);
> 535 break;
> 536 default:
> 537 dev_dbg(kmb_i2s->dev, "channel not supported\n");
> 538 return -EINVAL;
> 539 }
>
> regards,
> dan carpenter
More information about the Alsa-devel
mailing list