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]

Reply via email to