* [linux-next:master 5449/5655] drivers/spi/spi-geni-qcom.c:637 spi_geni_init() warn: missing error code? 'ret'
@ 2026-07-13 8:02 ` Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-07-12 15:35 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Praveen Talari <praveen.talari@oss.qualcomm.com>
CC: Mark Brown <broonie@kernel.org>
CC: "Rafael J. Wysocki (Intel)" <rafael@kernel.org>
CC: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: bee763d5f341b99cf472afeb508d4988f62a6ca1
commit: d8e9ea989acb54508477e4a8c9d9eaf8217e0081 [5449/5655] spi: qcom-geni: Fix missing error check on pm_runtime_get_sync()
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: microblaze-randconfig-r071-20260711 (https://download.01.org/0day-ci/archive/20260712/202607122241.qzP3QAXF-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 8.5.0
smatch: v0.5.0-9185-gbcc58b9c
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202607122241.qzP3QAXF-lkp@intel.com/
New smatch warnings:
drivers/spi/spi-geni-qcom.c:637 spi_geni_init() warn: missing error code? 'ret'
Old smatch warnings:
drivers/spi/spi-geni-qcom.c:648 spi_geni_init() warn: missing error code? 'ret'
vim +/ret +637 drivers/spi/spi-geni-qcom.c
b59c122484ecb1 Vinod Koul 2021-10-20 616
561de45f72bd5f Girish Mahadevan 2018-10-03 617 static int spi_geni_init(struct spi_geni_master *mas)
561de45f72bd5f Girish Mahadevan 2018-10-03 618 {
14cea92338a077 Uwe Kleine-König 2024-02-07 619 struct spi_controller *spi = dev_get_drvdata(mas->dev);
561de45f72bd5f Girish Mahadevan 2018-10-03 620 struct geni_se *se = &mas->se;
561de45f72bd5f Girish Mahadevan 2018-10-03 621 unsigned int proto, major, minor, ver;
b59c122484ecb1 Vinod Koul 2021-10-20 622 u32 spi_tx_cfg, fifo_disable;
b59c122484ecb1 Vinod Koul 2021-10-20 623 int ret = -ENXIO;
561de45f72bd5f Girish Mahadevan 2018-10-03 624
d8e9ea989acb54 Praveen Talari 2026-07-10 625 PM_RUNTIME_ACQUIRE_IF_ENABLED(mas->dev, pm);
d8e9ea989acb54 Praveen Talari 2026-07-10 626 ret = PM_RUNTIME_ACQUIRE_ERR(&pm);
d8e9ea989acb54 Praveen Talari 2026-07-10 627 if (ret < 0) {
d8e9ea989acb54 Praveen Talari 2026-07-10 628 dev_err(mas->dev, "Failed to resume and get %d\n", ret);
d8e9ea989acb54 Praveen Talari 2026-07-10 629 return ret;
d8e9ea989acb54 Praveen Talari 2026-07-10 630 }
561de45f72bd5f Girish Mahadevan 2018-10-03 631
561de45f72bd5f Girish Mahadevan 2018-10-03 632 proto = geni_se_read_proto(se);
d7f74cc31a89a4 Praveen Talari 2023-07-14 633
8726bdcef62eac Yang Yingliang 2023-11-28 634 if (spi->target) {
d7f74cc31a89a4 Praveen Talari 2023-07-14 635 if (proto != GENI_SE_SPI_SLAVE) {
d7f74cc31a89a4 Praveen Talari 2023-07-14 636 dev_err(mas->dev, "Invalid proto %d\n", proto);
d8e9ea989acb54 Praveen Talari 2026-07-10 @637 return ret;
d7f74cc31a89a4 Praveen Talari 2023-07-14 638 }
d7f74cc31a89a4 Praveen Talari 2023-07-14 639 spi_slv_setup(mas);
99cf351ee1c46b Viken Dadhaniya 2025-09-11 640 } else if (proto == GENI_SE_INVALID_PROTO) {
99cf351ee1c46b Viken Dadhaniya 2025-09-11 641 ret = geni_load_se_firmware(se, GENI_SE_SPI);
99cf351ee1c46b Viken Dadhaniya 2025-09-11 642 if (ret) {
99cf351ee1c46b Viken Dadhaniya 2025-09-11 643 dev_err(mas->dev, "spi master firmware load failed ret: %d\n", ret);
d8e9ea989acb54 Praveen Talari 2026-07-10 644 return ret;
99cf351ee1c46b Viken Dadhaniya 2025-09-11 645 }
d7f74cc31a89a4 Praveen Talari 2023-07-14 646 } else if (proto != GENI_SE_SPI) {
561de45f72bd5f Girish Mahadevan 2018-10-03 647 dev_err(mas->dev, "Invalid proto %d\n", proto);
d8e9ea989acb54 Praveen Talari 2026-07-10 648 return ret;
561de45f72bd5f Girish Mahadevan 2018-10-03 649 }
561de45f72bd5f Girish Mahadevan 2018-10-03 650 mas->tx_fifo_depth = geni_se_get_tx_fifo_depth(se);
561de45f72bd5f Girish Mahadevan 2018-10-03 651
561de45f72bd5f Girish Mahadevan 2018-10-03 652 /* Width of Tx and Rx FIFO is same */
561de45f72bd5f Girish Mahadevan 2018-10-03 653 mas->fifo_width_bits = geni_se_get_tx_fifo_width(se);
561de45f72bd5f Girish Mahadevan 2018-10-03 654
561de45f72bd5f Girish Mahadevan 2018-10-03 655 /*
561de45f72bd5f Girish Mahadevan 2018-10-03 656 * Hardware programming guide suggests to configure
561de45f72bd5f Girish Mahadevan 2018-10-03 657 * RX FIFO RFR level to fifo_depth-2.
561de45f72bd5f Girish Mahadevan 2018-10-03 658 */
fc129a43aa2705 Douglas Anderson 2020-09-12 659 geni_se_init(se, mas->tx_fifo_depth - 3, mas->tx_fifo_depth - 2);
561de45f72bd5f Girish Mahadevan 2018-10-03 660 /* Transmit an entire FIFO worth of data per IRQ */
561de45f72bd5f Girish Mahadevan 2018-10-03 661 mas->tx_wm = 1;
561de45f72bd5f Girish Mahadevan 2018-10-03 662 ver = geni_se_get_qup_hw_version(se);
561de45f72bd5f Girish Mahadevan 2018-10-03 663 major = GENI_SE_VERSION_MAJOR(ver);
561de45f72bd5f Girish Mahadevan 2018-10-03 664 minor = GENI_SE_VERSION_MINOR(ver);
561de45f72bd5f Girish Mahadevan 2018-10-03 665
561de45f72bd5f Girish Mahadevan 2018-10-03 666 if (major == 1 && minor == 0)
561de45f72bd5f Girish Mahadevan 2018-10-03 667 mas->oversampling = 2;
561de45f72bd5f Girish Mahadevan 2018-10-03 668 else
561de45f72bd5f Girish Mahadevan 2018-10-03 669 mas->oversampling = 1;
561de45f72bd5f Girish Mahadevan 2018-10-03 670
b59c122484ecb1 Vinod Koul 2021-10-20 671 fifo_disable = readl(se->base + GENI_IF_DISABLE_RO) & FIFO_IF_DISABLE;
b59c122484ecb1 Vinod Koul 2021-10-20 672 switch (fifo_disable) {
b59c122484ecb1 Vinod Koul 2021-10-20 673 case 1:
b59c122484ecb1 Vinod Koul 2021-10-20 674 ret = spi_geni_grab_gpi_chan(mas);
b59c122484ecb1 Vinod Koul 2021-10-20 675 if (!ret) { /* success case */
b59c122484ecb1 Vinod Koul 2021-10-20 676 mas->cur_xfer_mode = GENI_GPI_DMA;
b59c122484ecb1 Vinod Koul 2021-10-20 677 geni_se_select_mode(se, GENI_GPI_DMA);
b59c122484ecb1 Vinod Koul 2021-10-20 678 dev_dbg(mas->dev, "Using GPI DMA mode for SPI\n");
b59c122484ecb1 Vinod Koul 2021-10-20 679 break;
9d7054fb3ac2e8 Neil Armstrong 2023-06-15 680 } else if (ret == -EPROBE_DEFER) {
d8e9ea989acb54 Praveen Talari 2026-07-10 681 return ret;
b59c122484ecb1 Vinod Koul 2021-10-20 682 }
b59c122484ecb1 Vinod Koul 2021-10-20 683 /*
e5f0dfa78ac773 Vijaya Krishna Nivarthi 2022-12-08 684 * in case of failure to get gpi dma channel, we can still do the
b59c122484ecb1 Vinod Koul 2021-10-20 685 * FIFO mode, so fallthrough
b59c122484ecb1 Vinod Koul 2021-10-20 686 */
b59c122484ecb1 Vinod Koul 2021-10-20 687 dev_warn(mas->dev, "FIFO mode disabled, but couldn't get DMA, fall back to FIFO mode\n");
b59c122484ecb1 Vinod Koul 2021-10-20 688 fallthrough;
b59c122484ecb1 Vinod Koul 2021-10-20 689
b59c122484ecb1 Vinod Koul 2021-10-20 690 case 0:
b59c122484ecb1 Vinod Koul 2021-10-20 691 mas->cur_xfer_mode = GENI_SE_FIFO;
da48dc8c70c20e Douglas Anderson 2020-07-01 692 geni_se_select_mode(se, GENI_SE_FIFO);
739062a9f1e9a7 Jonathan Marek 2025-11-20 693 /* setup_fifo_params assumes that these registers start with a zero value */
739062a9f1e9a7 Jonathan Marek 2025-11-20 694 writel(0, se->base + SE_SPI_LOOPBACK);
739062a9f1e9a7 Jonathan Marek 2025-11-20 695 writel(0, se->base + SE_SPI_DEMUX_SEL);
739062a9f1e9a7 Jonathan Marek 2025-11-20 696 writel(0, se->base + SE_SPI_CPHA);
739062a9f1e9a7 Jonathan Marek 2025-11-20 697 writel(0, se->base + SE_SPI_CPOL);
739062a9f1e9a7 Jonathan Marek 2025-11-20 698 writel(0, se->base + SE_SPI_DEMUX_OUTPUT_INV);
b59c122484ecb1 Vinod Koul 2021-10-20 699 ret = 0;
b59c122484ecb1 Vinod Koul 2021-10-20 700 break;
b59c122484ecb1 Vinod Koul 2021-10-20 701 }
da48dc8c70c20e Douglas Anderson 2020-07-01 702
b99181cdf9fa02 Jonathan Marek 2025-11-20 703 /* We never control CS manually */
8726bdcef62eac Yang Yingliang 2023-11-28 704 if (!spi->target) {
14ac4e049dc118 Douglas Anderson 2020-09-12 705 spi_tx_cfg = readl(se->base + SE_SPI_TRANS_CFG);
14ac4e049dc118 Douglas Anderson 2020-09-12 706 spi_tx_cfg &= ~CS_TOGGLE;
14ac4e049dc118 Douglas Anderson 2020-09-12 707 writel(spi_tx_cfg, se->base + SE_SPI_TRANS_CFG);
d7f74cc31a89a4 Praveen Talari 2023-07-14 708 }
14ac4e049dc118 Douglas Anderson 2020-09-12 709
b59c122484ecb1 Vinod Koul 2021-10-20 710 return ret;
561de45f72bd5f Girish Mahadevan 2018-10-03 711 }
561de45f72bd5f Girish Mahadevan 2018-10-03 712
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread* [linux-next:master 5449/5655] drivers/spi/spi-geni-qcom.c:637 spi_geni_init() warn: missing error code? 'ret'
@ 2026-07-13 8:02 ` Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2026-07-13 8:02 UTC (permalink / raw)
To: oe-kbuild, Praveen Talari
Cc: lkp, oe-kbuild-all, Mark Brown, Rafael J. Wysocki (Intel),
Konrad Dybcio
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: bee763d5f341b99cf472afeb508d4988f62a6ca1
commit: d8e9ea989acb54508477e4a8c9d9eaf8217e0081 [5449/5655] spi: qcom-geni: Fix missing error check on pm_runtime_get_sync()
config: microblaze-randconfig-r071-20260711 (https://download.01.org/0day-ci/archive/20260712/202607122241.qzP3QAXF-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 8.5.0
smatch: v0.5.0-9185-gbcc58b9c
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202607122241.qzP3QAXF-lkp@intel.com/
New smatch warnings:
drivers/spi/spi-geni-qcom.c:637 spi_geni_init() warn: missing error code? 'ret'
Old smatch warnings:
drivers/spi/spi-geni-qcom.c:648 spi_geni_init() warn: missing error code? 'ret'
vim +/ret +637 drivers/spi/spi-geni-qcom.c
561de45f72bd5f Girish Mahadevan 2018-10-03 617 static int spi_geni_init(struct spi_geni_master *mas)
561de45f72bd5f Girish Mahadevan 2018-10-03 618 {
14cea92338a077 Uwe Kleine-König 2024-02-07 619 struct spi_controller *spi = dev_get_drvdata(mas->dev);
561de45f72bd5f Girish Mahadevan 2018-10-03 620 struct geni_se *se = &mas->se;
561de45f72bd5f Girish Mahadevan 2018-10-03 621 unsigned int proto, major, minor, ver;
b59c122484ecb1 Vinod Koul 2021-10-20 622 u32 spi_tx_cfg, fifo_disable;
b59c122484ecb1 Vinod Koul 2021-10-20 623 int ret = -ENXIO;
561de45f72bd5f Girish Mahadevan 2018-10-03 624
d8e9ea989acb54 Praveen Talari 2026-07-10 625 PM_RUNTIME_ACQUIRE_IF_ENABLED(mas->dev, pm);
d8e9ea989acb54 Praveen Talari 2026-07-10 626 ret = PM_RUNTIME_ACQUIRE_ERR(&pm);
d8e9ea989acb54 Praveen Talari 2026-07-10 627 if (ret < 0) {
d8e9ea989acb54 Praveen Talari 2026-07-10 628 dev_err(mas->dev, "Failed to resume and get %d\n", ret);
d8e9ea989acb54 Praveen Talari 2026-07-10 629 return ret;
d8e9ea989acb54 Praveen Talari 2026-07-10 630 }
561de45f72bd5f Girish Mahadevan 2018-10-03 631
561de45f72bd5f Girish Mahadevan 2018-10-03 632 proto = geni_se_read_proto(se);
d7f74cc31a89a4 Praveen Talari 2023-07-14 633
8726bdcef62eac Yang Yingliang 2023-11-28 634 if (spi->target) {
d7f74cc31a89a4 Praveen Talari 2023-07-14 635 if (proto != GENI_SE_SPI_SLAVE) {
d7f74cc31a89a4 Praveen Talari 2023-07-14 636 dev_err(mas->dev, "Invalid proto %d\n", proto);
d8e9ea989acb54 Praveen Talari 2026-07-10 @637 return ret;
s/ret/-EINVAL/
d7f74cc31a89a4 Praveen Talari 2023-07-14 638 }
d7f74cc31a89a4 Praveen Talari 2023-07-14 639 spi_slv_setup(mas);
99cf351ee1c46b Viken Dadhaniya 2025-09-11 640 } else if (proto == GENI_SE_INVALID_PROTO) {
99cf351ee1c46b Viken Dadhaniya 2025-09-11 641 ret = geni_load_se_firmware(se, GENI_SE_SPI);
99cf351ee1c46b Viken Dadhaniya 2025-09-11 642 if (ret) {
99cf351ee1c46b Viken Dadhaniya 2025-09-11 643 dev_err(mas->dev, "spi master firmware load failed ret: %d\n", ret);
d8e9ea989acb54 Praveen Talari 2026-07-10 644 return ret;
99cf351ee1c46b Viken Dadhaniya 2025-09-11 645 }
d7f74cc31a89a4 Praveen Talari 2023-07-14 646 } else if (proto != GENI_SE_SPI) {
561de45f72bd5f Girish Mahadevan 2018-10-03 647 dev_err(mas->dev, "Invalid proto %d\n", proto);
d8e9ea989acb54 Praveen Talari 2026-07-10 648 return ret;
Same.
561de45f72bd5f Girish Mahadevan 2018-10-03 649 }
561de45f72bd5f Girish Mahadevan 2018-10-03 650 mas->tx_fifo_depth = geni_se_get_tx_fifo_depth(se);
561de45f72bd5f Girish Mahadevan 2018-10-03 651
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-13 8:02 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-12 15:35 [linux-next:master 5449/5655] drivers/spi/spi-geni-qcom.c:637 spi_geni_init() warn: missing error code? 'ret' kernel test robot
2026-07-13 8:02 ` Dan Carpenter
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.