[v7 2/4] ASoC: Add Rockchip rk817 audio CODEC support

kernel test robot lkp at intel.com
Tue Apr 20 22:34:19 CEST 2021


Hi Chris,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on asoc/for-next]
[also build test ERROR on lee-mfd/for-mfd-next sound/for-next v5.12-rc8 next-20210420]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Chris-Morgan/mfd-Add-Rockchip-rk817-audio-CODEC-support/20210421-000916
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
config: nds32-randconfig-r004-20210420 (attached as .config)
compiler: nds32le-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/438ec6f1ceec6d4d7cde8169bc80110102e6a396
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Chris-Morgan/mfd-Add-Rockchip-rk817-audio-CODEC-support/20210421-000916
        git checkout 438ec6f1ceec6d4d7cde8169bc80110102e6a396
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=nds32 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All error/warnings (new ones prefixed by >>):

   sound/soc/codecs/rk817_codec.c: In function 'rk817_probe':
>> sound/soc/codecs/rk817_codec.c:418:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
     418 |  int ret;
         |      ^~~
   In file included from include/linux/bpf.h:19,
                    from include/linux/bpf-cgroup.h:5,
                    from include/linux/cgroup-defs.h:22,
                    from include/linux/cgroup.h:28,
                    from include/linux/memcontrol.h:13,
                    from include/linux/swap.h:9,
                    from include/linux/suspend.h:5,
                    from include/linux/regulator/consumer.h:35,
                    from include/linux/regulator/machine.h:15,
                    from include/linux/mfd/rk808.h:18,
                    from sound/soc/codecs/rk817_codec.c:10:
   sound/soc/codecs/rk817_codec.c: At top level:
>> sound/soc/codecs/rk817_codec.c:546:25: error: 'rk817_codec_dt_ids' undeclared here (not in a function); did you mean 'rk817_codec_priv'?
     546 | MODULE_DEVICE_TABLE(of, rk817_codec_dt_ids);
         |                         ^~~~~~~~~~~~~~~~~~
   include/linux/module.h:238:15: note: in definition of macro 'MODULE_DEVICE_TABLE'
     238 | extern typeof(name) __mod_##type##__##name##_device_table  \
         |               ^~~~
>> include/linux/module.h:238:21: error: '__mod_of__rk817_codec_dt_ids_device_table' aliased to undefined symbol 'rk817_codec_dt_ids'
     238 | extern typeof(name) __mod_##type##__##name##_device_table  \
         |                     ^~~~~~
   sound/soc/codecs/rk817_codec.c:546:1: note: in expansion of macro 'MODULE_DEVICE_TABLE'
     546 | MODULE_DEVICE_TABLE(of, rk817_codec_dt_ids);
         | ^~~~~~~~~~~~~~~~~~~


vim +546 sound/soc/codecs/rk817_codec.c

   413	
   414	static int rk817_probe(struct snd_soc_component *component)
   415	{
   416		struct rk817_codec_priv *rk817 = snd_soc_component_get_drvdata(component);
   417		struct rk808 *rk808 = dev_get_drvdata(component->dev->parent);
 > 418		int ret;
   419	
   420		snd_soc_component_init_regmap(component, rk808->regmap);
   421		rk817->component = component;
   422	
   423		ret = snd_soc_component_write(component, RK817_CODEC_DTOP_LPT_SRST, 0x40);
   424	
   425		rk817_init(component);
   426	
   427		/* setting initial pll values so that we can continue to leverage simple-audio-card.
   428		 * The values aren't important since no parameters are used.
   429		 */
   430	
   431		snd_soc_component_set_pll(component, 0, 0, 0, 0);
   432	
   433		return 0;
   434	}
   435	
   436	static void rk817_remove(struct snd_soc_component *component)
   437	{
   438		snd_soc_component_exit_regmap(component);
   439	}
   440	
   441	static const struct snd_soc_component_driver soc_codec_dev_rk817 = {
   442		.probe = rk817_probe,
   443		.remove = rk817_remove,
   444		.idle_bias_on = 1,
   445		.use_pmdown_time = 1,
   446		.endianness = 1,
   447		.non_legacy_dai_naming = 1,
   448		.controls = rk817_volume_controls,
   449		.num_controls = ARRAY_SIZE(rk817_volume_controls),
   450		.dapm_routes = rk817_dapm_routes,
   451		.num_dapm_routes = ARRAY_SIZE(rk817_dapm_routes),
   452		.dapm_widgets = rk817_dapm_widgets,
   453		.num_dapm_widgets = ARRAY_SIZE(rk817_dapm_widgets),
   454		.set_pll = rk817_set_component_pll,
   455	};
   456	
   457	static int rk817_codec_parse_dt_property(struct device *dev,
   458						 struct rk817_codec_priv *rk817)
   459	{
   460		struct device_node *node = dev->parent->of_node;
   461	
   462		if (!node) {
   463			dev_err(dev, "%s() dev->parent->of_node is NULL\n",
   464				__func__);
   465			return -ENODEV;
   466		}
   467	
   468		node = of_get_child_by_name(dev->parent->of_node, "codec");
   469		if (!node) {
   470			dev_err(dev, "%s() Can not get child: codec\n",
   471				__func__);
   472			return -ENODEV;
   473		}
   474	
   475		rk817->mic_in_differential =
   476				of_property_read_bool(node, "mic-in-differential");
   477	
   478		return 0;
   479	}
   480	
   481	static int rk817_platform_probe(struct platform_device *pdev)
   482	{
   483		struct rk808 *rk808 = dev_get_drvdata(pdev->dev.parent);
   484		struct rk817_codec_priv *rk817_codec_data;
   485		int ret;
   486	
   487		if (!rk808) {
   488			dev_err(&pdev->dev, "%s : rk817 is NULL\n", __func__);
   489			return -EINVAL;
   490		}
   491	
   492		rk817_codec_data = devm_kzalloc(&pdev->dev,
   493						sizeof(struct rk817_codec_priv),
   494						GFP_KERNEL);
   495		if (!rk817_codec_data)
   496			return -ENOMEM;
   497	
   498		platform_set_drvdata(pdev, rk817_codec_data);
   499	
   500		rk817_codec_data->rk808 = rk808;
   501	
   502		ret = rk817_codec_parse_dt_property(&pdev->dev, rk817_codec_data);
   503		if (ret < 0) {
   504			dev_err(&pdev->dev, "%s() parse device tree property error %d\n",
   505				__func__, ret);
   506			goto err_;
   507		}
   508	
   509		rk817_codec_data->mclk = clk_get(pdev->dev.parent, "mclk");
   510		if (IS_ERR(rk817_codec_data->mclk)) {
   511			dev_err(&pdev->dev, "Unable to get mclk\n");
   512			ret = -ENXIO;
   513			goto err_;
   514		}
   515	
   516		ret = clk_prepare_enable(rk817_codec_data->mclk);
   517		if (ret < 0) {
   518			dev_err(&pdev->dev, "%s() clock prepare error %d\n",
   519				__func__, ret);
   520			goto err_;
   521		}
   522	
   523		ret = devm_snd_soc_register_component(&pdev->dev, &soc_codec_dev_rk817,
   524						      rk817_dai, ARRAY_SIZE(rk817_dai));
   525		if (ret < 0) {
   526			dev_err(&pdev->dev, "%s() register codec error %d\n",
   527				__func__, ret);
   528			goto err_;
   529		}
   530	
   531		return 0;
   532	err_:
   533	
   534		return ret;
   535	}
   536	
   537	static int rk817_platform_remove(struct platform_device *pdev)
   538	{
   539		struct rk817_codec_priv *rk817 = platform_get_drvdata(pdev);
   540	
   541		clk_disable_unprepare(rk817->mclk);
   542	
   543		return 0;
   544	}
   545	
 > 546	MODULE_DEVICE_TABLE(of, rk817_codec_dt_ids);
   547	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 32126 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20210421/4760f979/attachment-0001.gz>


More information about the Alsa-devel mailing list