tree:
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: e7b08814b16b80a0bf76eeca16317f8c2ed23b8c
commit: 4520af41fd21863d026d53c7e1eb987509cb3c24 [2996/14131] ASoC: fsl_asrc: Support new
property fsl,asrc-format
:::::: branch date: 3 days ago
:::::: commit date: 6 weeks ago
config: openrisc-randconfig-s031-20200601 (attached as .config)
compiler: or1k-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-243-gc100a7ab-dirty
git checkout 4520af41fd21863d026d53c7e1eb987509cb3c24
# save the attached .config to linux build tree
make W=1 C=1 ARCH=openrisc CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
sound/soc/fsl/fsl_asrc.c:1050:60: sparse: sparse: incorrect type in argument 3
(different base types) @@ expected unsigned int [usertype] *out_value @@ got
restricted snd_pcm_format_t * @@
sound/soc/fsl/fsl_asrc.c:1050:60: sparse: expected unsigned int [usertype]
*out_value
> sound/soc/fsl/fsl_asrc.c:1050:60: sparse: got restricted
snd_pcm_format_t *
sound/soc/fsl/fsl_asrc.c:1073:47: sparse: sparse: restricted
snd_pcm_format_t degrades to integer
#
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commi...
git remote add linux-next
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update linux-next
git checkout 4520af41fd21863d026d53c7e1eb987509cb3c24
vim +1050 sound/soc/fsl/fsl_asrc.c
3117bb3109dc22 Nicolin Chen 2014-07-29 933
3117bb3109dc22 Nicolin Chen 2014-07-29 934 static int fsl_asrc_probe(struct
platform_device *pdev)
3117bb3109dc22 Nicolin Chen 2014-07-29 935 {
3117bb3109dc22 Nicolin Chen 2014-07-29 936 struct device_node *np =
pdev->dev.of_node;
7470704d8b425c Shengjiu Wang 2020-04-16 937 struct fsl_asrc *asrc;
3117bb3109dc22 Nicolin Chen 2014-07-29 938 struct resource *res;
3117bb3109dc22 Nicolin Chen 2014-07-29 939 void __iomem *regs;
3117bb3109dc22 Nicolin Chen 2014-07-29 940 int irq, ret, i;
c05f10f28ef697 Shengjiu Wang 2019-12-04 941 u32 map_idx;
3117bb3109dc22 Nicolin Chen 2014-07-29 942 char tmp[16];
4520af41fd2186 Shengjiu Wang 2020-04-16 943 u32 width;
3117bb3109dc22 Nicolin Chen 2014-07-29 944
7470704d8b425c Shengjiu Wang 2020-04-16 945 asrc = devm_kzalloc(&pdev->dev,
sizeof(*asrc), GFP_KERNEL);
7470704d8b425c Shengjiu Wang 2020-04-16 946 if (!asrc)
3117bb3109dc22 Nicolin Chen 2014-07-29 947 return -ENOMEM;
3117bb3109dc22 Nicolin Chen 2014-07-29 948
7470704d8b425c Shengjiu Wang 2020-04-16 949 asrc->pdev = pdev;
3117bb3109dc22 Nicolin Chen 2014-07-29 950
3117bb3109dc22 Nicolin Chen 2014-07-29 951 /* Get the addresses and IRQ */
3117bb3109dc22 Nicolin Chen 2014-07-29 952 res = platform_get_resource(pdev,
IORESOURCE_MEM, 0);
3117bb3109dc22 Nicolin Chen 2014-07-29 953 regs =
devm_ioremap_resource(&pdev->dev, res);
3117bb3109dc22 Nicolin Chen 2014-07-29 954 if (IS_ERR(regs))
3117bb3109dc22 Nicolin Chen 2014-07-29 955 return PTR_ERR(regs);
3117bb3109dc22 Nicolin Chen 2014-07-29 956
7470704d8b425c Shengjiu Wang 2020-04-16 957 asrc->paddr = res->start;
3117bb3109dc22 Nicolin Chen 2014-07-29 958
7470704d8b425c Shengjiu Wang 2020-04-16 959 asrc->regmap =
devm_regmap_init_mmio_clk(&pdev->dev, "mem", regs,
3117bb3109dc22 Nicolin Chen 2014-07-29 960 &fsl_asrc_regmap_config);
7470704d8b425c Shengjiu Wang 2020-04-16 961 if (IS_ERR(asrc->regmap)) {
3117bb3109dc22 Nicolin Chen 2014-07-29 962 dev_err(&pdev->dev, "failed
to init regmap\n");
7470704d8b425c Shengjiu Wang 2020-04-16 963 return PTR_ERR(asrc->regmap);
3117bb3109dc22 Nicolin Chen 2014-07-29 964 }
3117bb3109dc22 Nicolin Chen 2014-07-29 965
3117bb3109dc22 Nicolin Chen 2014-07-29 966 irq = platform_get_irq(pdev, 0);
cf9441adb1a355 Stephen Boyd 2019-07-30 967 if (irq < 0)
3117bb3109dc22 Nicolin Chen 2014-07-29 968 return irq;
3117bb3109dc22 Nicolin Chen 2014-07-29 969
3117bb3109dc22 Nicolin Chen 2014-07-29 970 ret = devm_request_irq(&pdev->dev,
irq, fsl_asrc_isr, 0,
7470704d8b425c Shengjiu Wang 2020-04-16 971 dev_name(&pdev->dev),
asrc);
3117bb3109dc22 Nicolin Chen 2014-07-29 972 if (ret) {
3117bb3109dc22 Nicolin Chen 2014-07-29 973 dev_err(&pdev->dev, "failed
to claim irq %u: %d\n", irq, ret);
3117bb3109dc22 Nicolin Chen 2014-07-29 974 return ret;
3117bb3109dc22 Nicolin Chen 2014-07-29 975 }
3117bb3109dc22 Nicolin Chen 2014-07-29 976
7470704d8b425c Shengjiu Wang 2020-04-16 977 asrc->mem_clk =
devm_clk_get(&pdev->dev, "mem");
7470704d8b425c Shengjiu Wang 2020-04-16 978 if (IS_ERR(asrc->mem_clk)) {
3117bb3109dc22 Nicolin Chen 2014-07-29 979 dev_err(&pdev->dev, "failed
to get mem clock\n");
7470704d8b425c Shengjiu Wang 2020-04-16 980 return PTR_ERR(asrc->mem_clk);
3117bb3109dc22 Nicolin Chen 2014-07-29 981 }
3117bb3109dc22 Nicolin Chen 2014-07-29 982
7470704d8b425c Shengjiu Wang 2020-04-16 983 asrc->ipg_clk =
devm_clk_get(&pdev->dev, "ipg");
7470704d8b425c Shengjiu Wang 2020-04-16 984 if (IS_ERR(asrc->ipg_clk)) {
3117bb3109dc22 Nicolin Chen 2014-07-29 985 dev_err(&pdev->dev, "failed
to get ipg clock\n");
7470704d8b425c Shengjiu Wang 2020-04-16 986 return PTR_ERR(asrc->ipg_clk);
3117bb3109dc22 Nicolin Chen 2014-07-29 987 }
3117bb3109dc22 Nicolin Chen 2014-07-29 988
7470704d8b425c Shengjiu Wang 2020-04-16 989 asrc->spba_clk =
devm_clk_get(&pdev->dev, "spba");
7470704d8b425c Shengjiu Wang 2020-04-16 990 if (IS_ERR(asrc->spba_clk))
13b8a97a760eee Shengjiu Wang 2015-11-24 991 dev_warn(&pdev->dev, "failed
to get spba clock\n");
13b8a97a760eee Shengjiu Wang 2015-11-24 992
3117bb3109dc22 Nicolin Chen 2014-07-29 993 for (i = 0; i < ASRC_CLK_MAX_NUM; i++)
{
3117bb3109dc22 Nicolin Chen 2014-07-29 994 sprintf(tmp, "asrck_%x", i);
7470704d8b425c Shengjiu Wang 2020-04-16 995 asrc->asrck_clk[i] =
devm_clk_get(&pdev->dev, tmp);
7470704d8b425c Shengjiu Wang 2020-04-16 996 if (IS_ERR(asrc->asrck_clk[i])) {
3117bb3109dc22 Nicolin Chen 2014-07-29 997 dev_err(&pdev->dev, "failed
to get %s clock\n", tmp);
7470704d8b425c Shengjiu Wang 2020-04-16 998 return PTR_ERR(asrc->asrck_clk[i]);
3117bb3109dc22 Nicolin Chen 2014-07-29 999 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1000 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1001
7470704d8b425c Shengjiu Wang 2020-04-16 1002 asrc->soc =
of_device_get_match_data(&pdev->dev);
7470704d8b425c Shengjiu Wang 2020-04-16 1003 if (!asrc->soc) {
c05f10f28ef697 Shengjiu Wang 2019-12-04 1004 dev_err(&pdev->dev, "failed
to get soc data\n");
c05f10f28ef697 Shengjiu Wang 2019-12-04 1005 return -ENODEV;
c05f10f28ef697 Shengjiu Wang 2019-12-04 1006 }
c05f10f28ef697 Shengjiu Wang 2019-12-04 1007
f3d8ac8c4afea2 Fabio Estevam 2016-08-19 1008 if (of_device_is_compatible(np,
"fsl,imx35-asrc")) {
7470704d8b425c Shengjiu Wang 2020-04-16 1009 asrc->clk_map[IN] =
input_clk_map_imx35;
7470704d8b425c Shengjiu Wang 2020-04-16 1010 asrc->clk_map[OUT] =
output_clk_map_imx35;
c05f10f28ef697 Shengjiu Wang 2019-12-04 1011 } else if (of_device_is_compatible(np,
"fsl,imx53-asrc")) {
7470704d8b425c Shengjiu Wang 2020-04-16 1012 asrc->clk_map[IN] =
input_clk_map_imx53;
7470704d8b425c Shengjiu Wang 2020-04-16 1013 asrc->clk_map[OUT] =
output_clk_map_imx53;
c05f10f28ef697 Shengjiu Wang 2019-12-04 1014 } else if (of_device_is_compatible(np,
"fsl,imx8qm-asrc") ||
c05f10f28ef697 Shengjiu Wang 2019-12-04 1015 of_device_is_compatible(np,
"fsl,imx8qxp-asrc")) {
c05f10f28ef697 Shengjiu Wang 2019-12-04 1016 ret = of_property_read_u32(np,
"fsl,asrc-clk-map", &map_idx);
c05f10f28ef697 Shengjiu Wang 2019-12-04 1017 if (ret) {
c05f10f28ef697 Shengjiu Wang 2019-12-04 1018 dev_err(&pdev->dev, "failed
to get clk map index\n");
c05f10f28ef697 Shengjiu Wang 2019-12-04 1019 return ret;
c05f10f28ef697 Shengjiu Wang 2019-12-04 1020 }
c05f10f28ef697 Shengjiu Wang 2019-12-04 1021
c05f10f28ef697 Shengjiu Wang 2019-12-04 1022 if (map_idx > 1) {
c05f10f28ef697 Shengjiu Wang 2019-12-04 1023 dev_err(&pdev->dev,
"unsupported clk map index\n");
c05f10f28ef697 Shengjiu Wang 2019-12-04 1024 return -EINVAL;
c05f10f28ef697 Shengjiu Wang 2019-12-04 1025 }
c05f10f28ef697 Shengjiu Wang 2019-12-04 1026 if (of_device_is_compatible(np,
"fsl,imx8qm-asrc")) {
7470704d8b425c Shengjiu Wang 2020-04-16 1027 asrc->clk_map[IN] =
clk_map_imx8qm[map_idx];
7470704d8b425c Shengjiu Wang 2020-04-16 1028 asrc->clk_map[OUT] =
clk_map_imx8qm[map_idx];
3117bb3109dc22 Nicolin Chen 2014-07-29 1029 } else {
7470704d8b425c Shengjiu Wang 2020-04-16 1030 asrc->clk_map[IN] =
clk_map_imx8qxp[map_idx];
7470704d8b425c Shengjiu Wang 2020-04-16 1031 asrc->clk_map[OUT] =
clk_map_imx8qxp[map_idx];
c05f10f28ef697 Shengjiu Wang 2019-12-04 1032 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1033 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1034
7470704d8b425c Shengjiu Wang 2020-04-16 1035 ret = fsl_asrc_init(asrc);
3117bb3109dc22 Nicolin Chen 2014-07-29 1036 if (ret) {
3117bb3109dc22 Nicolin Chen 2014-07-29 1037 dev_err(&pdev->dev, "failed
to init asrc %d\n", ret);
c0296950851455 Fabio Estevam 2016-08-19 1038 return ret;
3117bb3109dc22 Nicolin Chen 2014-07-29 1039 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1040
7470704d8b425c Shengjiu Wang 2020-04-16 1041 asrc->channel_avail = 10;
3117bb3109dc22 Nicolin Chen 2014-07-29 1042
3117bb3109dc22 Nicolin Chen 2014-07-29 1043 ret = of_property_read_u32(np,
"fsl,asrc-rate",
7470704d8b425c Shengjiu Wang 2020-04-16 1044 &asrc->asrc_rate);
3117bb3109dc22 Nicolin Chen 2014-07-29 1045 if (ret) {
3117bb3109dc22 Nicolin Chen 2014-07-29 1046 dev_err(&pdev->dev, "failed
to get output rate\n");
c0296950851455 Fabio Estevam 2016-08-19 1047 return ret;
3117bb3109dc22 Nicolin Chen 2014-07-29 1048 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1049
4520af41fd2186 Shengjiu Wang 2020-04-16 @1050 ret = of_property_read_u32(np,
"fsl,asrc-format", &asrc->asrc_format);
4520af41fd2186 Shengjiu Wang 2020-04-16 1051 if (ret) {
4520af41fd2186 Shengjiu Wang 2020-04-16 1052 ret = of_property_read_u32(np,
"fsl,asrc-width", &width);
3117bb3109dc22 Nicolin Chen 2014-07-29 1053 if (ret) {
4520af41fd2186 Shengjiu Wang 2020-04-16 1054 dev_err(&pdev->dev, "failed
to decide output format\n");
c0296950851455 Fabio Estevam 2016-08-19 1055 return ret;
3117bb3109dc22 Nicolin Chen 2014-07-29 1056 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1057
4520af41fd2186 Shengjiu Wang 2020-04-16 1058 switch (width) {
4520af41fd2186 Shengjiu Wang 2020-04-16 1059 case 16:
4520af41fd2186 Shengjiu Wang 2020-04-16 1060 asrc->asrc_format =
SNDRV_PCM_FORMAT_S16_LE;
4520af41fd2186 Shengjiu Wang 2020-04-16 1061 break;
4520af41fd2186 Shengjiu Wang 2020-04-16 1062 case 24:
4520af41fd2186 Shengjiu Wang 2020-04-16 1063 asrc->asrc_format =
SNDRV_PCM_FORMAT_S24_LE;
4520af41fd2186 Shengjiu Wang 2020-04-16 1064 break;
4520af41fd2186 Shengjiu Wang 2020-04-16 1065 default:
4520af41fd2186 Shengjiu Wang 2020-04-16 1066 dev_warn(&pdev->dev,
4520af41fd2186 Shengjiu Wang 2020-04-16 1067 "unsupported width, use default
S24_LE\n");
4520af41fd2186 Shengjiu Wang 2020-04-16 1068 asrc->asrc_format =
SNDRV_PCM_FORMAT_S24_LE;
4520af41fd2186 Shengjiu Wang 2020-04-16 1069 break;
4520af41fd2186 Shengjiu Wang 2020-04-16 1070 }
4520af41fd2186 Shengjiu Wang 2020-04-16 1071 }
4520af41fd2186 Shengjiu Wang 2020-04-16 1072
4520af41fd2186 Shengjiu Wang 2020-04-16 1073 if (!(FSL_ASRC_FORMATS & (1ULL
<< asrc->asrc_format))) {
4520af41fd2186 Shengjiu Wang 2020-04-16 1074 dev_warn(&pdev->dev,
"unsupported width, use default S24_LE\n");
4520af41fd2186 Shengjiu Wang 2020-04-16 1075 asrc->asrc_format =
SNDRV_PCM_FORMAT_S24_LE;
3117bb3109dc22 Nicolin Chen 2014-07-29 1076 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1077
7470704d8b425c Shengjiu Wang 2020-04-16 1078 platform_set_drvdata(pdev, asrc);
3117bb3109dc22 Nicolin Chen 2014-07-29 1079 pm_runtime_enable(&pdev->dev);
7470704d8b425c Shengjiu Wang 2020-04-16 1080 spin_lock_init(&asrc->lock);
3117bb3109dc22 Nicolin Chen 2014-07-29 1081
3117bb3109dc22 Nicolin Chen 2014-07-29 1082 ret =
devm_snd_soc_register_component(&pdev->dev, &fsl_asrc_component,
3117bb3109dc22 Nicolin Chen 2014-07-29 1083 &fsl_asrc_dai, 1);
3117bb3109dc22 Nicolin Chen 2014-07-29 1084 if (ret) {
3117bb3109dc22 Nicolin Chen 2014-07-29 1085 dev_err(&pdev->dev, "failed
to register ASoC DAI\n");
3117bb3109dc22 Nicolin Chen 2014-07-29 1086 return ret;
3117bb3109dc22 Nicolin Chen 2014-07-29 1087 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1088
3117bb3109dc22 Nicolin Chen 2014-07-29 1089 return 0;
3117bb3109dc22 Nicolin Chen 2014-07-29 1090 }
3117bb3109dc22 Nicolin Chen 2014-07-29 1091
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org