All of lore.kernel.org
 help / color / mirror / Atom feed
* [morimoto:sound-cleanup-2026-09-04 259/343] sound/soc/codecs/sn624x-sdca-sdw.c:1456:22: error: implicit declaration of function 'snd_soc_dai_get_dma_data'; did you mean 'snd_soc_card_get_drvdata'?
@ 2026-09-07 18:36 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-07 18:36 UTC (permalink / raw)
  To: Kuninori Morimoto; +Cc: oe-kbuild-all

tree:   https://github.com/morimoto/linux sound-cleanup-2026-09-04
head:   dfa282dfe99643be782149d948208f3d514ebb99
commit: a7a06cf364b8e47e448915cbebda2c6b4a70ac0b [259/343] ASoC: soc-dai: remove compatible definition
config: x86_64-rhel-9.4 (https://download.01.org/0day-ci/archive/20260908/202609080245.KEp3nwVb-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260908/202609080245.KEp3nwVb-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609080245.KEp3nwVb-lkp@intel.com/

All errors (new ones prefixed by >>):

   sound/soc/codecs/sn624x-sdca-sdw.c: In function 'sn624x_sdca_pcm_hw_params':
>> sound/soc/codecs/sn624x-sdca-sdw.c:1456:22: error: implicit declaration of function 'snd_soc_dai_get_dma_data'; did you mean 'snd_soc_card_get_drvdata'? [-Wimplicit-function-declaration]
    1456 |         sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
         |                      ^~~~~~~~~~~~~~~~~~~~~~~~
         |                      snd_soc_card_get_drvdata
>> sound/soc/codecs/sn624x-sdca-sdw.c:1456:20: error: assignment to 'struct sdw_stream_runtime *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
    1456 |         sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
         |                    ^
   sound/soc/codecs/sn624x-sdca-sdw.c: In function 'sn624x_sdca_pcm_hw_free':
>> sound/soc/codecs/sn624x-sdca-sdw.c:1548:17: error: initialization of 'struct sdw_stream_runtime *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
    1548 |                 snd_soc_dai_get_dma_data(dai, substream);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/codecs/sn624x-sdca-sdw.c: In function 'sn624x_sdca_set_sdw_stream':
>> sound/soc/codecs/sn624x-sdca-sdw.c:1559:9: error: implicit declaration of function 'snd_soc_dai_dma_data_set'; did you mean 'snd_soc_dai_stream_dma_data_set'? [-Wimplicit-function-declaration]
    1559 |         snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~
         |         snd_soc_dai_stream_dma_data_set
   sound/soc/codecs/sn624x-sdca-sdw.c: In function 'sn624x_sdca_shutdown':
>> sound/soc/codecs/sn624x-sdca-sdw.c:1566:9: error: implicit declaration of function 'snd_soc_dai_set_dma_data'; did you mean 'snd_soc_dai_set_tristate'? [-Wimplicit-function-declaration]
    1566 |         snd_soc_dai_set_dma_data(dai, substream, NULL);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~
         |         snd_soc_dai_set_tristate


vim +1456 sound/soc/codecs/sn624x-sdca-sdw.c

12d9c9f8679c56e Qianghua Wang 2026-09-01  1438  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1439  static int sn624x_sdca_pcm_hw_params(struct snd_pcm_substream *substream,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1440  				     struct snd_pcm_hw_params *params,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1441  				     struct snd_soc_dai *dai)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1442  {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1443  	struct snd_soc_component *component = dai->component;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1444  	struct sn624x_sdca_priv *sn624x = snd_soc_component_get_drvdata(component);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1445  	struct sdw_stream_config stream_config = {};
12d9c9f8679c56e Qianghua Wang 2026-09-01  1446  	struct sdw_port_config port_config = {};
12d9c9f8679c56e Qianghua Wang 2026-09-01  1447  	struct sdw_stream_runtime *sdw_stream;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1448  	unsigned int sampling_rate;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1449  	int port;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1450  	int ret;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1451  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1452  	dev_dbg(dai->dev,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1453  		 "sn624x: hw_params: entered dai=%s id=%d stream=%s\n",
12d9c9f8679c56e Qianghua Wang 2026-09-01  1454  		 dai->name, dai->id, snd_pcm_stream_str(substream));
12d9c9f8679c56e Qianghua Wang 2026-09-01  1455  
12d9c9f8679c56e Qianghua Wang 2026-09-01 @1456  	sdw_stream = snd_soc_dai_get_dma_data(dai, substream);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1457  	if (!sdw_stream) {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1458  		dev_warn(dai->dev,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1459  			 "sn624x: hw_params: no SDW stream (set_stream not run yet?)\n");
12d9c9f8679c56e Qianghua Wang 2026-09-01  1460  		return -EINVAL;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1461  	}
12d9c9f8679c56e Qianghua Wang 2026-09-01  1462  	if (!sn624x->slave) {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1463  		dev_warn(dai->dev, "sn624x: hw_params: slave NULL\n");
12d9c9f8679c56e Qianghua Wang 2026-09-01  1464  		return -EINVAL;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1465  	}
12d9c9f8679c56e Qianghua Wang 2026-09-01  1466  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1467  	ret = pm_runtime_resume(component->dev);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1468  	if (ret < 0 && ret != -EACCES) {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1469  		dev_err(dai->dev,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1470  			"sn624x: hw_params: pm_runtime_resume failed (%d)\n", ret);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1471  		return ret;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1472  	}
12d9c9f8679c56e Qianghua Wang 2026-09-01  1473  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1474  	snd_sdw_params_to_config(substream, params, &stream_config, &port_config);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1475  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1476  	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1477  		if (dai->id == SN624X_DAI_JACK)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1478  			port = SN624X_PORT_JACK_PLAYBACK;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1479  		else if (dai->id == SN624X_DAI_SPEAKER)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1480  			port = SN624X_PORT_SPEAKER_PLAYBACK;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1481  		else
12d9c9f8679c56e Qianghua Wang 2026-09-01  1482  			return -EINVAL;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1483  	} else {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1484  		if (dai->id == SN624X_DAI_JACK)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1485  			port = SN624X_PORT_JACK_CAPTURE;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1486  		else if (dai->id == SN624X_DAI_DMIC)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1487  			port = SN624X_PORT_DMIC_CAPTURE;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1488  		else
12d9c9f8679c56e Qianghua Wang 2026-09-01  1489  			return -EINVAL;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1490  	}
12d9c9f8679c56e Qianghua Wang 2026-09-01  1491  	port_config.num = port;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1492  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1493  	ret = sdw_stream_add_slave(sn624x->slave, &stream_config,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1494  				   &port_config, 1, sdw_stream);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1495  	if (ret) {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1496  		dev_err(dai->dev, "%s: sdw_stream_add_slave port %d failed: %d\n",
12d9c9f8679c56e Qianghua Wang 2026-09-01  1497  			__func__, port, ret);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1498  		return ret;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1499  	}
12d9c9f8679c56e Qianghua Wang 2026-09-01  1500  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1501  	/* SDCA SampleFreqIndex (same encoding as other SDCA codecs) */
12d9c9f8679c56e Qianghua Wang 2026-09-01  1502  	switch (params_rate(params)) {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1503  	case 44100:
12d9c9f8679c56e Qianghua Wang 2026-09-01  1504  		sampling_rate = SN624X_SDCA_RATE_44100HZ;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1505  		break;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1506  	case 48000:
12d9c9f8679c56e Qianghua Wang 2026-09-01  1507  		sampling_rate = SN624X_SDCA_RATE_48000HZ;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1508  		break;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1509  	case 96000:
12d9c9f8679c56e Qianghua Wang 2026-09-01  1510  		sampling_rate = SN624X_SDCA_RATE_96000HZ;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1511  		break;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1512  	case 192000:
12d9c9f8679c56e Qianghua Wang 2026-09-01  1513  		sampling_rate = SN624X_SDCA_RATE_192000HZ;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1514  		break;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1515  	default:
12d9c9f8679c56e Qianghua Wang 2026-09-01  1516  		dev_err(dai->dev, "%s: Rate %d is not supported\n",
12d9c9f8679c56e Qianghua Wang 2026-09-01  1517  			__func__, params_rate(params));
12d9c9f8679c56e Qianghua Wang 2026-09-01  1518  		return -EINVAL;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1519  	}
12d9c9f8679c56e Qianghua Wang 2026-09-01  1520  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1521  	if (dai->id == SN624X_DAI_JACK) {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1522  		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1523  			ret = regmap_write(sn624x->regmap,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1524  					   SN624X_REG_JACK_OUT_RATE_SEL,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1525  					   sampling_rate);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1526  		else
12d9c9f8679c56e Qianghua Wang 2026-09-01  1527  			ret = regmap_write(sn624x->regmap,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1528  					   SN624X_REG_JACK_CAP_RATE_SEL,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1529  					   sampling_rate);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1530  	} else if (dai->id == SN624X_DAI_SPEAKER) {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1531  		ret = regmap_write(sn624x->regmap, SN624X_REG_RATE_SEL,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1532  				   sampling_rate);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1533  	} else if (dai->id == SN624X_DAI_DMIC) {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1534  		ret = regmap_write(sn624x->regmap, SN624X_REG_DMIC_CAP_RATE_SEL,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1535  				   sampling_rate);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1536  	} else {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1537  		return -EINVAL;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1538  	}
12d9c9f8679c56e Qianghua Wang 2026-09-01  1539  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1540  	return ret;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1541  }
12d9c9f8679c56e Qianghua Wang 2026-09-01  1542  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1543  static int sn624x_sdca_pcm_hw_free(struct snd_pcm_substream *substream,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1544  				   struct snd_soc_dai *dai)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1545  {
12d9c9f8679c56e Qianghua Wang 2026-09-01  1546  	struct sn624x_sdca_priv *sn624x = snd_soc_component_get_drvdata(dai->component);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1547  	struct sdw_stream_runtime *sdw_stream =
12d9c9f8679c56e Qianghua Wang 2026-09-01 @1548  		snd_soc_dai_get_dma_data(dai, substream);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1549  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1550  	if (!sn624x->slave)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1551  		return -EINVAL;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1552  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1553  	return sdw_stream_remove_slave(sn624x->slave, sdw_stream);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1554  }
12d9c9f8679c56e Qianghua Wang 2026-09-01  1555  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1556  static int sn624x_sdca_set_sdw_stream(struct snd_soc_dai *dai, void *sdw_stream,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1557  				      int direction)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1558  {
12d9c9f8679c56e Qianghua Wang 2026-09-01 @1559  	snd_soc_dai_dma_data_set(dai, direction, sdw_stream);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1560  	return 0;
12d9c9f8679c56e Qianghua Wang 2026-09-01  1561  }
12d9c9f8679c56e Qianghua Wang 2026-09-01  1562  
12d9c9f8679c56e Qianghua Wang 2026-09-01  1563  static void sn624x_sdca_shutdown(struct snd_pcm_substream *substream,
12d9c9f8679c56e Qianghua Wang 2026-09-01  1564  				 struct snd_soc_dai *dai)
12d9c9f8679c56e Qianghua Wang 2026-09-01  1565  {
12d9c9f8679c56e Qianghua Wang 2026-09-01 @1566  	snd_soc_dai_set_dma_data(dai, substream, NULL);
12d9c9f8679c56e Qianghua Wang 2026-09-01  1567  }
12d9c9f8679c56e Qianghua Wang 2026-09-01  1568  

:::::: The code at line 1456 was first introduced by commit
:::::: 12d9c9f8679c56e8c131dc2d8985c350ece7c4c3 ASoC: codecs: add SN624x SDCA SoundWire driver

:::::: TO: Qianghua Wang <qianghua.wang@senarytech.com>
:::::: CC: Mark Brown <broonie@kernel.org>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-07 18:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-07 18:36 [morimoto:sound-cleanup-2026-09-04 259/343] sound/soc/codecs/sn624x-sdca-sdw.c:1456:22: error: implicit declaration of function 'snd_soc_dai_get_dma_data'; did you mean 'snd_soc_card_get_drvdata'? kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.