CC: [email protected]
TO: Otavio Salvador <[email protected]>

tree:   https://github.com/Freescale/linux-fslc pr/312
head:   98ba4471da6187346dbcc17cdf31671fb5d28b91
commit: a452c44357d9c68c27c39327e50b41e4b6cffe8d [15428/18196] MLK-25015: 
sound: soc: codecs: pcm512x: set input sclk
:::::: branch date: 11 hours ago
:::::: commit date: 5 months ago
config: x86_64-randconfig-m001-20210416 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
sound/soc/codecs/pcm512x.c:1658 pcm512x_probe() warn: missing error code 'ret'

vim +/ret +1658 sound/soc/codecs/pcm512x.c

5a3af1293194d0 Mark Brown            2014-02-06  1554  
22066226b50e40 Mark Brown            2014-03-07  1555  int pcm512x_probe(struct 
device *dev, struct regmap *regmap)
5a3af1293194d0 Mark Brown            2014-02-06  1556  {
5a3af1293194d0 Mark Brown            2014-02-06  1557   struct pcm512x_priv 
*pcm512x;
a452c44357d9c6 Adrian Alonso         2020-11-16  1558   char clk_name[8];
5a3af1293194d0 Mark Brown            2014-02-06  1559   int i, ret;
5a3af1293194d0 Mark Brown            2014-02-06  1560  
5a3af1293194d0 Mark Brown            2014-02-06  1561   pcm512x = 
devm_kzalloc(dev, sizeof(struct pcm512x_priv), GFP_KERNEL);
5a3af1293194d0 Mark Brown            2014-02-06  1562   if (!pcm512x)
5a3af1293194d0 Mark Brown            2014-02-06  1563           return -ENOMEM;
5a3af1293194d0 Mark Brown            2014-02-06  1564  
3500f1c589e92e Dimitris Papavasiliou 2018-11-24  1565   
mutex_init(&pcm512x->mutex);
3500f1c589e92e Dimitris Papavasiliou 2018-11-24  1566  
5a3af1293194d0 Mark Brown            2014-02-06  1567   dev_set_drvdata(dev, 
pcm512x);
5a3af1293194d0 Mark Brown            2014-02-06  1568   pcm512x->regmap = 
regmap;
5a3af1293194d0 Mark Brown            2014-02-06  1569  
5a3af1293194d0 Mark Brown            2014-02-06  1570   for (i = 0; i < 
ARRAY_SIZE(pcm512x->supplies); i++)
5a3af1293194d0 Mark Brown            2014-02-06  1571           
pcm512x->supplies[i].supply = pcm512x_supply_names[i];
5a3af1293194d0 Mark Brown            2014-02-06  1572  
5a3af1293194d0 Mark Brown            2014-02-06  1573   ret = 
devm_regulator_bulk_get(dev, ARRAY_SIZE(pcm512x->supplies),
5a3af1293194d0 Mark Brown            2014-02-06  1574                           
      pcm512x->supplies);
5a3af1293194d0 Mark Brown            2014-02-06  1575   if (ret != 0) {
5a3af1293194d0 Mark Brown            2014-02-06  1576           dev_err(dev, 
"Failed to get supplies: %d\n", ret);
5a3af1293194d0 Mark Brown            2014-02-06  1577           return ret;
5a3af1293194d0 Mark Brown            2014-02-06  1578   }
5a3af1293194d0 Mark Brown            2014-02-06  1579  
5a3af1293194d0 Mark Brown            2014-02-06  1580   
pcm512x->supply_nb[0].notifier_call = pcm512x_regulator_event_0;
5a3af1293194d0 Mark Brown            2014-02-06  1581   
pcm512x->supply_nb[1].notifier_call = pcm512x_regulator_event_1;
5a3af1293194d0 Mark Brown            2014-02-06  1582   
pcm512x->supply_nb[2].notifier_call = pcm512x_regulator_event_2;
5a3af1293194d0 Mark Brown            2014-02-06  1583  
5a3af1293194d0 Mark Brown            2014-02-06  1584   for (i = 0; i < 
ARRAY_SIZE(pcm512x->supplies); i++) {
0bb423f2eaafed Guennadi Liakhovetski 2019-02-08  1585           ret = 
devm_regulator_register_notifier(
0bb423f2eaafed Guennadi Liakhovetski 2019-02-08  1586                           
                pcm512x->supplies[i].consumer,
5a3af1293194d0 Mark Brown            2014-02-06  1587                           
                &pcm512x->supply_nb[i]);
5a3af1293194d0 Mark Brown            2014-02-06  1588           if (ret != 0) {
5a3af1293194d0 Mark Brown            2014-02-06  1589                   
dev_err(dev,
5a3af1293194d0 Mark Brown            2014-02-06  1590                           
"Failed to register regulator notifier: %d\n",
5a3af1293194d0 Mark Brown            2014-02-06  1591                           
ret);
5a3af1293194d0 Mark Brown            2014-02-06  1592           }
5a3af1293194d0 Mark Brown            2014-02-06  1593   }
5a3af1293194d0 Mark Brown            2014-02-06  1594  
5a3af1293194d0 Mark Brown            2014-02-06  1595   ret = 
regulator_bulk_enable(ARRAY_SIZE(pcm512x->supplies),
5a3af1293194d0 Mark Brown            2014-02-06  1596                           
    pcm512x->supplies);
5a3af1293194d0 Mark Brown            2014-02-06  1597   if (ret != 0) {
5a3af1293194d0 Mark Brown            2014-02-06  1598           dev_err(dev, 
"Failed to enable supplies: %d\n", ret);
5a3af1293194d0 Mark Brown            2014-02-06  1599           return ret;
5a3af1293194d0 Mark Brown            2014-02-06  1600   }
5a3af1293194d0 Mark Brown            2014-02-06  1601  
5a3af1293194d0 Mark Brown            2014-02-06  1602   /* Reset the device, 
verifying I/O in the process for I2C */
5a3af1293194d0 Mark Brown            2014-02-06  1603   ret = 
regmap_write(regmap, PCM512x_RESET,
5a3af1293194d0 Mark Brown            2014-02-06  1604                      
PCM512x_RSTM | PCM512x_RSTR);
5a3af1293194d0 Mark Brown            2014-02-06  1605   if (ret != 0) {
5a3af1293194d0 Mark Brown            2014-02-06  1606           dev_err(dev, 
"Failed to reset device: %d\n", ret);
5a3af1293194d0 Mark Brown            2014-02-06  1607           goto err;
5a3af1293194d0 Mark Brown            2014-02-06  1608   }
5a3af1293194d0 Mark Brown            2014-02-06  1609  
5a3af1293194d0 Mark Brown            2014-02-06  1610   ret = 
regmap_write(regmap, PCM512x_RESET, 0);
5a3af1293194d0 Mark Brown            2014-02-06  1611   if (ret != 0) {
5a3af1293194d0 Mark Brown            2014-02-06  1612           dev_err(dev, 
"Failed to reset device: %d\n", ret);
5a3af1293194d0 Mark Brown            2014-02-06  1613           goto err;
5a3af1293194d0 Mark Brown            2014-02-06  1614   }
5a3af1293194d0 Mark Brown            2014-02-06  1615  
a452c44357d9c6 Adrian Alonso         2020-11-16  1616   /* default to first 
sclk */
a452c44357d9c6 Adrian Alonso         2020-11-16  1617   pcm512x->num_clocks = 1;
a452c44357d9c6 Adrian Alonso         2020-11-16  1618   pcm512x->sclk_src = 
PCM512x_SYSCLK_MCLK1;
a452c44357d9c6 Adrian Alonso         2020-11-16  1619  
a452c44357d9c6 Adrian Alonso         2020-11-16  1620   pcm512x->sclk[0] = 
devm_clk_get(dev, NULL);
a452c44357d9c6 Adrian Alonso         2020-11-16  1621   if 
(PTR_ERR(pcm512x->sclk[0]) == -EPROBE_DEFER) {
94c472e7b4e15e Matthias Reichl       2020-02-20  1622           ret = 
-EPROBE_DEFER;
94c472e7b4e15e Matthias Reichl       2020-02-20  1623           goto err;
94c472e7b4e15e Matthias Reichl       2020-02-20  1624   }
a452c44357d9c6 Adrian Alonso         2020-11-16  1625  
a452c44357d9c6 Adrian Alonso         2020-11-16  1626   if 
(!IS_ERR(pcm512x->sclk[0])) {
a452c44357d9c6 Adrian Alonso         2020-11-16  1627           ret = 
clk_prepare_enable(pcm512x->sclk[0]);
5a3af1293194d0 Mark Brown            2014-02-06  1628           if (ret != 0) {
5a3af1293194d0 Mark Brown            2014-02-06  1629                   
dev_err(dev, "Failed to enable SCLK: %d\n", ret);
94c472e7b4e15e Matthias Reichl       2020-02-20  1630                   goto 
err;
5a3af1293194d0 Mark Brown            2014-02-06  1631           }
5a3af1293194d0 Mark Brown            2014-02-06  1632   }
5a3af1293194d0 Mark Brown            2014-02-06  1633  
5a3af1293194d0 Mark Brown            2014-02-06  1634   /* Default to standby 
mode */
5a3af1293194d0 Mark Brown            2014-02-06  1635   ret = 
regmap_update_bits(pcm512x->regmap, PCM512x_POWER,
5a3af1293194d0 Mark Brown            2014-02-06  1636                           
 PCM512x_RQST, PCM512x_RQST);
5a3af1293194d0 Mark Brown            2014-02-06  1637   if (ret != 0) {
5a3af1293194d0 Mark Brown            2014-02-06  1638           dev_err(dev, 
"Failed to request standby: %d\n",
5a3af1293194d0 Mark Brown            2014-02-06  1639                   ret);
5a3af1293194d0 Mark Brown            2014-02-06  1640           goto err_clk;
5a3af1293194d0 Mark Brown            2014-02-06  1641   }
5a3af1293194d0 Mark Brown            2014-02-06  1642  
5a3af1293194d0 Mark Brown            2014-02-06  1643   
pm_runtime_set_active(dev);
5a3af1293194d0 Mark Brown            2014-02-06  1644   pm_runtime_enable(dev);
5a3af1293194d0 Mark Brown            2014-02-06  1645   pm_runtime_idle(dev);
5a3af1293194d0 Mark Brown            2014-02-06  1646  
f086ba9d5389cc Peter Rosin           2015-01-28  1647  #ifdef CONFIG_OF
f086ba9d5389cc Peter Rosin           2015-01-28  1648   if (dev->of_node) {
f086ba9d5389cc Peter Rosin           2015-01-28  1649           const struct 
device_node *np = dev->of_node;
2599a9609c588d Peter Rosin           2015-01-29  1650           u32 val;
f086ba9d5389cc Peter Rosin           2015-01-28  1651  
a452c44357d9c6 Adrian Alonso         2020-11-16  1652           if 
(of_property_read_bool(np, "clocks")) {
a452c44357d9c6 Adrian Alonso         2020-11-16  1653                   
pcm512x->num_clocks =
a452c44357d9c6 Adrian Alonso         2020-11-16  1654                           
of_property_count_u32_elems(np, "clocks");
a452c44357d9c6 Adrian Alonso         2020-11-16  1655                   if 
(pcm512x->num_clocks > PCM512x_MAX_NUM_SCLK) {
a452c44357d9c6 Adrian Alonso         2020-11-16  1656                           
dev_err(dev, "Failed unsupported max sclk: %d\n",
a452c44357d9c6 Adrian Alonso         2020-11-16  1657                           
        pcm512x->num_clocks);
a452c44357d9c6 Adrian Alonso         2020-11-16 @1658                           
goto err;
a452c44357d9c6 Adrian Alonso         2020-11-16  1659                   }
a452c44357d9c6 Adrian Alonso         2020-11-16  1660  
a452c44357d9c6 Adrian Alonso         2020-11-16  1661                   for (i 
= 0; i < pcm512x->num_clocks; i++) {
a452c44357d9c6 Adrian Alonso         2020-11-16  1662                           
sprintf(clk_name, "sclk%d", i);
a452c44357d9c6 Adrian Alonso         2020-11-16  1663                           
pcm512x->sclk[i] = devm_clk_get(dev, clk_name);
a452c44357d9c6 Adrian Alonso         2020-11-16  1664  
a452c44357d9c6 Adrian Alonso         2020-11-16  1665                           
if (IS_ERR(pcm512x->sclk[i])) {
a452c44357d9c6 Adrian Alonso         2020-11-16  1666                           
        dev_info(dev, "Failed to get sclk%d\n", i);
a452c44357d9c6 Adrian Alonso         2020-11-16  1667                           
        pcm512x->sclk[i] = NULL;
a452c44357d9c6 Adrian Alonso         2020-11-16  1668                           
}
a452c44357d9c6 Adrian Alonso         2020-11-16  1669                   }
a452c44357d9c6 Adrian Alonso         2020-11-16  1670           }
a452c44357d9c6 Adrian Alonso         2020-11-16  1671  
f086ba9d5389cc Peter Rosin           2015-01-28  1672           if 
(of_property_read_u32(np, "pll-in", &val) >= 0) {
f086ba9d5389cc Peter Rosin           2015-01-28  1673                   if (val 
> 6) {
f086ba9d5389cc Peter Rosin           2015-01-28  1674                           
dev_err(dev, "Invalid pll-in\n");
f086ba9d5389cc Peter Rosin           2015-01-28  1675                           
ret = -EINVAL;
f086ba9d5389cc Peter Rosin           2015-01-28  1676                           
goto err_clk;
f086ba9d5389cc Peter Rosin           2015-01-28  1677                   }
f086ba9d5389cc Peter Rosin           2015-01-28  1678                   
pcm512x->pll_in = val;
f086ba9d5389cc Peter Rosin           2015-01-28  1679           }
f086ba9d5389cc Peter Rosin           2015-01-28  1680  
f086ba9d5389cc Peter Rosin           2015-01-28  1681           if 
(of_property_read_u32(np, "pll-out", &val) >= 0) {
f086ba9d5389cc Peter Rosin           2015-01-28  1682                   if (val 
> 6) {
f086ba9d5389cc Peter Rosin           2015-01-28  1683                           
dev_err(dev, "Invalid pll-out\n");
f086ba9d5389cc Peter Rosin           2015-01-28  1684                           
ret = -EINVAL;
f086ba9d5389cc Peter Rosin           2015-01-28  1685                           
goto err_clk;
f086ba9d5389cc Peter Rosin           2015-01-28  1686                   }
f086ba9d5389cc Peter Rosin           2015-01-28  1687                   
pcm512x->pll_out = val;
f086ba9d5389cc Peter Rosin           2015-01-28  1688           }
f086ba9d5389cc Peter Rosin           2015-01-28  1689  
f086ba9d5389cc Peter Rosin           2015-01-28  1690           if 
(!pcm512x->pll_in != !pcm512x->pll_out) {
f086ba9d5389cc Peter Rosin           2015-01-28  1691                   
dev_err(dev,
f086ba9d5389cc Peter Rosin           2015-01-28  1692                           
"Error: both pll-in and pll-out, or none\n");
f086ba9d5389cc Peter Rosin           2015-01-28  1693                   ret = 
-EINVAL;
f086ba9d5389cc Peter Rosin           2015-01-28  1694                   goto 
err_clk;
f086ba9d5389cc Peter Rosin           2015-01-28  1695           }
f086ba9d5389cc Peter Rosin           2015-01-28  1696           if 
(pcm512x->pll_in && pcm512x->pll_in == pcm512x->pll_out) {
f086ba9d5389cc Peter Rosin           2015-01-28  1697                   
dev_err(dev, "Error: pll-in == pll-out\n");
f086ba9d5389cc Peter Rosin           2015-01-28  1698                   ret = 
-EINVAL;
f086ba9d5389cc Peter Rosin           2015-01-28  1699                   goto 
err_clk;
f086ba9d5389cc Peter Rosin           2015-01-28  1700           }
f086ba9d5389cc Peter Rosin           2015-01-28  1701   }
f086ba9d5389cc Peter Rosin           2015-01-28  1702  #endif
f086ba9d5389cc Peter Rosin           2015-01-28  1703  
5bdef14a35bb99 Kuninori Morimoto     2018-01-29  1704   ret = 
devm_snd_soc_register_component(dev, &pcm512x_component_driver,
5a3af1293194d0 Mark Brown            2014-02-06  1705                           
    &pcm512x_dai, 1);
5a3af1293194d0 Mark Brown            2014-02-06  1706   if (ret != 0) {
5a3af1293194d0 Mark Brown            2014-02-06  1707           dev_err(dev, 
"Failed to register CODEC: %d\n", ret);
5a3af1293194d0 Mark Brown            2014-02-06  1708           goto err_pm;
5a3af1293194d0 Mark Brown            2014-02-06  1709   }
5a3af1293194d0 Mark Brown            2014-02-06  1710  
5a3af1293194d0 Mark Brown            2014-02-06  1711   return 0;
5a3af1293194d0 Mark Brown            2014-02-06  1712  
5a3af1293194d0 Mark Brown            2014-02-06  1713  err_pm:
5a3af1293194d0 Mark Brown            2014-02-06  1714   pm_runtime_disable(dev);
5a3af1293194d0 Mark Brown            2014-02-06  1715  err_clk:
a452c44357d9c6 Adrian Alonso         2020-11-16  1716   for (i = 0; i < 
pcm512x->num_clocks; i++) {
a452c44357d9c6 Adrian Alonso         2020-11-16  1717           if 
(!IS_ERR(pcm512x->sclk[i]))
a452c44357d9c6 Adrian Alonso         2020-11-16  1718                   
clk_disable_unprepare(pcm512x->sclk[i]);
a452c44357d9c6 Adrian Alonso         2020-11-16  1719   }
5a3af1293194d0 Mark Brown            2014-02-06  1720  err:
5a3af1293194d0 Mark Brown            2014-02-06  1721   
regulator_bulk_disable(ARRAY_SIZE(pcm512x->supplies),
5a3af1293194d0 Mark Brown            2014-02-06  1722                           
     pcm512x->supplies);
5a3af1293194d0 Mark Brown            2014-02-06  1723   return ret;
5a3af1293194d0 Mark Brown            2014-02-06  1724  }
22066226b50e40 Mark Brown            2014-03-07  1725  
EXPORT_SYMBOL_GPL(pcm512x_probe);
5a3af1293194d0 Mark Brown            2014-02-06  1726  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to