From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [freescale-fslc:pr/312 15428/18196] sound/soc/codecs/pcm512x.c:1658 pcm512x_probe() warn: missing error code 'ret'
Date: Sat, 17 Apr 2021 17:11:53 +0800 [thread overview]
Message-ID: <202104171742.n7GLon9z-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 14756 bytes --]
CC: kbuild-all(a)lists.01.org
TO: Otavio Salvador <otavio@ossystems.com.br>
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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
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/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34546 bytes --]
next reply other threads:[~2021-04-17 9:11 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-17 9:11 kernel test robot [this message]
2021-04-20 8:32 [freescale-fslc:pr/312 15428/18196] sound/soc/codecs/pcm512x.c:1658 pcm512x_probe() warn: missing error code 'ret' Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202104171742.n7GLon9z-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.