CC: [email protected] BCC: [email protected] In-Reply-To: <[email protected]> References: <[email protected]> TO: Yihao Han <[email protected]> TO: Shengjiu Wang <[email protected]> TO: Xiubo Li <[email protected]> TO: Fabio Estevam <[email protected]> TO: Nicolin Chen <[email protected]> TO: Liam Girdwood <[email protected]> TO: Mark Brown <[email protected]> TO: Jaroslav Kysela <[email protected]> TO: Takashi Iwai <[email protected]> TO: Shawn Guo <[email protected]> TO: Sascha Hauer <[email protected]> TO: Pengutronix Kernel Team <[email protected]> TO: NXP Linux Team <[email protected]> TO: [email protected] TO: [email protected] TO: [email protected] TO: [email protected] CC: Yihao Han <[email protected]>
Hi Yihao, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on next-20220601] [also build test WARNING on v5.18] [cannot apply to shawnguo/for-next v5.18 v5.18-rc7 v5.18-rc6] [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/intel-lab-lkp/linux/commits/Yihao-Han/ASoC-fsl-Check-before-clk_put-not-needed/20220601-211623 base: 5d8e7e3bbaaf115a935accd269873469928848c0 :::::: branch date: 4 days ago :::::: commit date: 4 days ago config: sparc-randconfig-c004-20220605 (https://download.01.org/0day-ci/archive/20220606/[email protected]/config) compiler: sparc64-linux-gcc (GCC) 11.3.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> Reported-by: Julia Lawall <[email protected]> cocci warnings: (new ones prefixed by >>) >> sound/soc/fsl/imx-sgtl5000.c:188:15-24: ERROR: data is NULL but dereferenced. vim +188 sound/soc/fsl/imx-sgtl5000.c 172b4c5c8afdb7 Shawn Guo 2012-03-30 50 a0a3d518c33853 Bill Pemberton 2012-12-07 51 static int imx_sgtl5000_probe(struct platform_device *pdev) c448303e86c970 Shawn Guo 2012-03-16 52 { c448303e86c970 Shawn Guo 2012-03-16 53 struct device_node *np = pdev->dev.of_node; c448303e86c970 Shawn Guo 2012-03-16 54 struct device_node *ssi_np, *codec_np; c448303e86c970 Shawn Guo 2012-03-16 55 struct platform_device *ssi_pdev; 81e8e4926167ab Richard Zhao 2012-04-27 56 struct i2c_client *codec_dev; 50d4a790e65f5a Philipp Zabel 2013-09-25 57 struct imx_sgtl5000_data *data = NULL; 3026ef68d2c508 Kuninori Morimoto 2019-06-06 58 struct snd_soc_dai_link_component *comp; c448303e86c970 Shawn Guo 2012-03-16 59 int int_port, ext_port; c448303e86c970 Shawn Guo 2012-03-16 60 int ret; c448303e86c970 Shawn Guo 2012-03-16 61 c448303e86c970 Shawn Guo 2012-03-16 62 ret = of_property_read_u32(np, "mux-int-port", &int_port); c448303e86c970 Shawn Guo 2012-03-16 63 if (ret) { c448303e86c970 Shawn Guo 2012-03-16 64 dev_err(&pdev->dev, "mux-int-port missing or invalid\n"); c448303e86c970 Shawn Guo 2012-03-16 65 return ret; c448303e86c970 Shawn Guo 2012-03-16 66 } c448303e86c970 Shawn Guo 2012-03-16 67 ret = of_property_read_u32(np, "mux-ext-port", &ext_port); c448303e86c970 Shawn Guo 2012-03-16 68 if (ret) { c448303e86c970 Shawn Guo 2012-03-16 69 dev_err(&pdev->dev, "mux-ext-port missing or invalid\n"); c448303e86c970 Shawn Guo 2012-03-16 70 return ret; c448303e86c970 Shawn Guo 2012-03-16 71 } c448303e86c970 Shawn Guo 2012-03-16 72 c448303e86c970 Shawn Guo 2012-03-16 73 /* c448303e86c970 Shawn Guo 2012-03-16 74 * The port numbering in the hardware manual starts at 1, while c448303e86c970 Shawn Guo 2012-03-16 75 * the audmux API expects it starts at 0. c448303e86c970 Shawn Guo 2012-03-16 76 */ c448303e86c970 Shawn Guo 2012-03-16 77 int_port--; c448303e86c970 Shawn Guo 2012-03-16 78 ext_port--; c448303e86c970 Shawn Guo 2012-03-16 79 ret = imx_audmux_v2_configure_port(int_port, c448303e86c970 Shawn Guo 2012-03-16 80 IMX_AUDMUX_V2_PTCR_SYN | c448303e86c970 Shawn Guo 2012-03-16 81 IMX_AUDMUX_V2_PTCR_TFSEL(ext_port) | c448303e86c970 Shawn Guo 2012-03-16 82 IMX_AUDMUX_V2_PTCR_TCSEL(ext_port) | c448303e86c970 Shawn Guo 2012-03-16 83 IMX_AUDMUX_V2_PTCR_TFSDIR | c448303e86c970 Shawn Guo 2012-03-16 84 IMX_AUDMUX_V2_PTCR_TCLKDIR, c448303e86c970 Shawn Guo 2012-03-16 85 IMX_AUDMUX_V2_PDCR_RXDSEL(ext_port)); c448303e86c970 Shawn Guo 2012-03-16 86 if (ret) { c448303e86c970 Shawn Guo 2012-03-16 87 dev_err(&pdev->dev, "audmux internal port setup failed\n"); c448303e86c970 Shawn Guo 2012-03-16 88 return ret; c448303e86c970 Shawn Guo 2012-03-16 89 } db8b624d55e65a Julia Lawall 2012-08-19 90 ret = imx_audmux_v2_configure_port(ext_port, ef3207c503519b Hui Wang 2012-07-04 91 IMX_AUDMUX_V2_PTCR_SYN, c448303e86c970 Shawn Guo 2012-03-16 92 IMX_AUDMUX_V2_PDCR_RXDSEL(int_port)); c448303e86c970 Shawn Guo 2012-03-16 93 if (ret) { c448303e86c970 Shawn Guo 2012-03-16 94 dev_err(&pdev->dev, "audmux external port setup failed\n"); c448303e86c970 Shawn Guo 2012-03-16 95 return ret; c448303e86c970 Shawn Guo 2012-03-16 96 } c448303e86c970 Shawn Guo 2012-03-16 97 c448303e86c970 Shawn Guo 2012-03-16 98 ssi_np = of_parse_phandle(pdev->dev.of_node, "ssi-controller", 0); c448303e86c970 Shawn Guo 2012-03-16 99 codec_np = of_parse_phandle(pdev->dev.of_node, "audio-codec", 0); c448303e86c970 Shawn Guo 2012-03-16 100 if (!ssi_np || !codec_np) { c448303e86c970 Shawn Guo 2012-03-16 101 dev_err(&pdev->dev, "phandle missing or invalid\n"); 717071dc273bb0 Richard Zhao 2012-04-27 102 ret = -EINVAL; 717071dc273bb0 Richard Zhao 2012-04-27 103 goto fail; c448303e86c970 Shawn Guo 2012-03-16 104 } c448303e86c970 Shawn Guo 2012-03-16 105 c448303e86c970 Shawn Guo 2012-03-16 106 ssi_pdev = of_find_device_by_node(ssi_np); c448303e86c970 Shawn Guo 2012-03-16 107 if (!ssi_pdev) { 691beb02d9ff36 Stefan Agner 2019-01-18 108 dev_dbg(&pdev->dev, "failed to find SSI platform device\n"); 28e5ca73ef9072 Arnaud Patard 2013-06-20 109 ret = -EPROBE_DEFER; 717071dc273bb0 Richard Zhao 2012-04-27 110 goto fail; c448303e86c970 Shawn Guo 2012-03-16 111 } 8fa857da9744f5 Wen Yang 2019-02-18 112 put_device(&ssi_pdev->dev); 81e8e4926167ab Richard Zhao 2012-04-27 113 codec_dev = of_find_i2c_device_by_node(codec_np); 81e8e4926167ab Richard Zhao 2012-04-27 114 if (!codec_dev) { 691beb02d9ff36 Stefan Agner 2019-01-18 115 dev_dbg(&pdev->dev, "failed to find codec platform device\n"); d9866572486802 Stefan Agner 2019-01-18 116 ret = -EPROBE_DEFER; d9866572486802 Stefan Agner 2019-01-18 117 goto fail; 81e8e4926167ab Richard Zhao 2012-04-27 118 } c448303e86c970 Shawn Guo 2012-03-16 119 c448303e86c970 Shawn Guo 2012-03-16 120 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); 717071dc273bb0 Richard Zhao 2012-04-27 121 if (!data) { 717071dc273bb0 Richard Zhao 2012-04-27 122 ret = -ENOMEM; 41cd312dfe980a Miaoqian Lin 2022-05-11 123 goto put_device; 717071dc273bb0 Richard Zhao 2012-04-27 124 } c448303e86c970 Shawn Guo 2012-03-16 125 2b1407c989ec20 Kuninori Morimoto 2019-06-28 126 comp = devm_kzalloc(&pdev->dev, 3 * sizeof(*comp), GFP_KERNEL); 3026ef68d2c508 Kuninori Morimoto 2019-06-06 127 if (!comp) { 3026ef68d2c508 Kuninori Morimoto 2019-06-06 128 ret = -ENOMEM; 41cd312dfe980a Miaoqian Lin 2022-05-11 129 goto put_device; 3026ef68d2c508 Kuninori Morimoto 2019-06-06 130 } 3026ef68d2c508 Kuninori Morimoto 2019-06-06 131 a8b22c1ccccd2a Philipp Zabel 2013-09-25 132 data->codec_clk = clk_get(&codec_dev->dev, NULL); f1269ae41f2e28 Wei Yongjun 2013-07-16 133 if (IS_ERR(data->codec_clk)) { f1269ae41f2e28 Wei Yongjun 2013-07-16 134 ret = PTR_ERR(data->codec_clk); 41cd312dfe980a Miaoqian Lin 2022-05-11 135 goto put_device; f1269ae41f2e28 Wei Yongjun 2013-07-16 136 } 9e13f345887c17 Fabio Estevam 2013-06-09 137 81e8e4926167ab Richard Zhao 2012-04-27 138 data->clk_frequency = clk_get_rate(data->codec_clk); c448303e86c970 Shawn Guo 2012-03-16 139 3026ef68d2c508 Kuninori Morimoto 2019-06-06 140 data->dai.cpus = &comp[0]; 3026ef68d2c508 Kuninori Morimoto 2019-06-06 141 data->dai.codecs = &comp[1]; 2b1407c989ec20 Kuninori Morimoto 2019-06-28 142 data->dai.platforms = &comp[2]; 3026ef68d2c508 Kuninori Morimoto 2019-06-06 143 3026ef68d2c508 Kuninori Morimoto 2019-06-06 144 data->dai.num_cpus = 1; 3026ef68d2c508 Kuninori Morimoto 2019-06-06 145 data->dai.num_codecs = 1; 2b1407c989ec20 Kuninori Morimoto 2019-06-28 146 data->dai.num_platforms = 1; 3026ef68d2c508 Kuninori Morimoto 2019-06-06 147 c448303e86c970 Shawn Guo 2012-03-16 148 data->dai.name = "HiFi"; c448303e86c970 Shawn Guo 2012-03-16 149 data->dai.stream_name = "HiFi"; 3026ef68d2c508 Kuninori Morimoto 2019-06-06 150 data->dai.codecs->dai_name = "sgtl5000"; 3026ef68d2c508 Kuninori Morimoto 2019-06-06 151 data->dai.codecs->of_node = codec_np; 3026ef68d2c508 Kuninori Morimoto 2019-06-06 152 data->dai.cpus->of_node = ssi_np; 2b1407c989ec20 Kuninori Morimoto 2019-06-28 153 data->dai.platforms->of_node = ssi_np; c448303e86c970 Shawn Guo 2012-03-16 154 data->dai.init = &imx_sgtl5000_dai_init; c448303e86c970 Shawn Guo 2012-03-16 155 data->dai.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | 419099b4c3318a Mark Brown 2021-09-21 156 SND_SOC_DAIFMT_CBP_CFP; c448303e86c970 Shawn Guo 2012-03-16 157 c448303e86c970 Shawn Guo 2012-03-16 158 data->card.dev = &pdev->dev; c448303e86c970 Shawn Guo 2012-03-16 159 ret = snd_soc_of_parse_card_name(&data->card, "model"); 172b4c5c8afdb7 Shawn Guo 2012-03-30 160 if (ret) 41cd312dfe980a Miaoqian Lin 2022-05-11 161 goto put_device; 172b4c5c8afdb7 Shawn Guo 2012-03-30 162 ret = snd_soc_of_parse_audio_routing(&data->card, "audio-routing"); c448303e86c970 Shawn Guo 2012-03-16 163 if (ret) 41cd312dfe980a Miaoqian Lin 2022-05-11 164 goto put_device; c448303e86c970 Shawn Guo 2012-03-16 165 data->card.num_links = 1; 29df430692c46b Lothar Waßmann 2012-11-22 166 data->card.owner = THIS_MODULE; c448303e86c970 Shawn Guo 2012-03-16 167 data->card.dai_link = &data->dai; 172b4c5c8afdb7 Shawn Guo 2012-03-30 168 data->card.dapm_widgets = imx_sgtl5000_dapm_widgets; 172b4c5c8afdb7 Shawn Guo 2012-03-30 169 data->card.num_dapm_widgets = ARRAY_SIZE(imx_sgtl5000_dapm_widgets); c448303e86c970 Shawn Guo 2012-03-16 170 47cf84e17ebb79 Shawn Guo 2014-02-08 171 platform_set_drvdata(pdev, &data->card); 47cf84e17ebb79 Shawn Guo 2014-02-08 172 snd_soc_card_set_drvdata(&data->card, data); 47cf84e17ebb79 Shawn Guo 2014-02-08 173 01984a47e21a7d Sachin Kamat 2013-09-17 174 ret = devm_snd_soc_register_card(&pdev->dev, &data->card); c448303e86c970 Shawn Guo 2012-03-16 175 if (ret) { 2e6f557ca35aa3 Kuninori Morimoto 2021-12-14 176 dev_err_probe(&pdev->dev, ret, "snd_soc_register_card failed\n"); 41cd312dfe980a Miaoqian Lin 2022-05-11 177 goto put_device; c448303e86c970 Shawn Guo 2012-03-16 178 } c448303e86c970 Shawn Guo 2012-03-16 179 2fc059f2cc875a Fabio Estevam 2013-04-24 180 of_node_put(ssi_np); 2fc059f2cc875a Fabio Estevam 2013-04-24 181 of_node_put(codec_np); 2fc059f2cc875a Fabio Estevam 2013-04-24 182 2fc059f2cc875a Fabio Estevam 2013-04-24 183 return 0; 2fc059f2cc875a Fabio Estevam 2013-04-24 184 41cd312dfe980a Miaoqian Lin 2022-05-11 185 put_device: 41cd312dfe980a Miaoqian Lin 2022-05-11 186 put_device(&codec_dev->dev); 717071dc273bb0 Richard Zhao 2012-04-27 187 fail: a8b22c1ccccd2a Philipp Zabel 2013-09-25 @188 clk_put(data->codec_clk); c448303e86c970 Shawn Guo 2012-03-16 189 of_node_put(ssi_np); c448303e86c970 Shawn Guo 2012-03-16 190 of_node_put(codec_np); c448303e86c970 Shawn Guo 2012-03-16 191 717071dc273bb0 Richard Zhao 2012-04-27 192 return ret; c448303e86c970 Shawn Guo 2012-03-16 193 } c448303e86c970 Shawn Guo 2012-03-16 194 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
