All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [vkoul-soundwire:next 33/36] drivers/soundwire/qcom.c:376 qcom_swrm_irq_handler() warn: impossible condition '(devnum < 0) => (0-255 < 0)'
Date: Wed, 31 Mar 2021 14:25:11 +0800	[thread overview]
Message-ID: <202103311403.CW1Z7TK7-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 10630 bytes --]

CC: kbuild-all(a)lists.01.org
TO: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
CC: Vinod Koul <vkoul@kernel.org>
CC: "Pierre-Louis Bossart" <pierre-louis.bossart@linux.intel.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire.git next
head:   06dd96738d618391ae58e1b28f1ba49fef214c95
commit: c7d49c76d1d5f5a41f637c18ce3b756351c7fdf9 [33/36] soundwire: qcom: add support to new interrupts
:::::: branch date: 13 hours ago
:::::: commit date: 13 hours ago
config: x86_64-randconfig-m001-20210330 (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:
drivers/soundwire/qcom.c:376 qcom_swrm_irq_handler() warn: impossible condition '(devnum < 0) => (0-255 < 0)'

vim +376 drivers/soundwire/qcom.c

02efb49aa805cee Srinivas Kandagatla 2020-01-13  355  
02efb49aa805cee Srinivas Kandagatla 2020-01-13  356  static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id)
02efb49aa805cee Srinivas Kandagatla 2020-01-13  357  {
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  358  	struct qcom_swrm_ctrl *swrm = dev_id;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  359  	u32 value, intr_sts, intr_sts_masked;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  360  	u32 i;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  361  	u8 devnum = 0;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  362  	int ret = IRQ_HANDLED;
02efb49aa805cee Srinivas Kandagatla 2020-01-13  363  
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  364  	swrm->reg_read(swrm, SWRM_INTERRUPT_STATUS, &intr_sts);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  365  	intr_sts_masked = intr_sts & swrm->intr_mask;
02efb49aa805cee Srinivas Kandagatla 2020-01-13  366  
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  367  	do {
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  368  		for (i = 0; i < SWRM_INTERRUPT_MAX; i++) {
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  369  			value = intr_sts_masked & BIT(i);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  370  			if (!value)
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  371  				continue;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  372  
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  373  			switch (value) {
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  374  			case SWRM_INTERRUPT_STATUS_SLAVE_PEND_IRQ:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  375  				devnum = qcom_swrm_get_alert_slave_dev_num(swrm);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30 @376  				if (devnum < 0) {
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  377  					dev_err_ratelimited(swrm->dev,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  378  					    "no slave alert found.spurious interrupt\n");
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  379  				} else {
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  380  					sdw_handle_slave_status(&swrm->bus, swrm->status);
02efb49aa805cee Srinivas Kandagatla 2020-01-13  381  				}
02efb49aa805cee Srinivas Kandagatla 2020-01-13  382  
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  383  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  384  			case SWRM_INTERRUPT_STATUS_NEW_SLAVE_ATTACHED:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  385  			case SWRM_INTERRUPT_STATUS_CHANGE_ENUM_SLAVE_STATUS:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  386  				dev_err_ratelimited(swrm->dev, "%s: SWR new slave attached\n",
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  387  					__func__);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  388  				qcom_swrm_get_device_status(swrm);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  389  				sdw_handle_slave_status(&swrm->bus, swrm->status);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  390  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  391  			case SWRM_INTERRUPT_STATUS_MASTER_CLASH_DET:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  392  				dev_err_ratelimited(swrm->dev,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  393  						"%s: SWR bus clsh detected\n",
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  394  						__func__);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  395  				swrm->intr_mask &= ~SWRM_INTERRUPT_STATUS_MASTER_CLASH_DET;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  396  				swrm->reg_write(swrm, SWRM_INTERRUPT_CPU_EN, swrm->intr_mask);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  397  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  398  			case SWRM_INTERRUPT_STATUS_RD_FIFO_OVERFLOW:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  399  				swrm->reg_read(swrm, SWRM_CMD_FIFO_STATUS, &value);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  400  				dev_err_ratelimited(swrm->dev,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  401  					"%s: SWR read FIFO overflow fifo status 0x%x\n",
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  402  					__func__, value);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  403  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  404  			case SWRM_INTERRUPT_STATUS_RD_FIFO_UNDERFLOW:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  405  				swrm->reg_read(swrm, SWRM_CMD_FIFO_STATUS, &value);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  406  				dev_err_ratelimited(swrm->dev,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  407  					"%s: SWR read FIFO underflow fifo status 0x%x\n",
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  408  					__func__, value);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  409  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  410  			case SWRM_INTERRUPT_STATUS_WR_CMD_FIFO_OVERFLOW:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  411  				swrm->reg_read(swrm, SWRM_CMD_FIFO_STATUS, &value);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  412  				dev_err(swrm->dev,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  413  					"%s: SWR write FIFO overflow fifo status %x\n",
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  414  					__func__, value);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  415  				swrm->reg_write(swrm, SWRM_CMD_FIFO_CMD, 0x1);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  416  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  417  			case SWRM_INTERRUPT_STATUS_CMD_ERROR:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  418  				swrm->reg_read(swrm, SWRM_CMD_FIFO_STATUS, &value);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  419  				dev_err_ratelimited(swrm->dev,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  420  					"%s: SWR CMD error, fifo status 0x%x, flushing fifo\n",
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  421  					__func__, value);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  422  				swrm->reg_write(swrm, SWRM_CMD_FIFO_CMD, 0x1);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  423  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  424  			case SWRM_INTERRUPT_STATUS_DOUT_PORT_COLLISION:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  425  				dev_err_ratelimited(swrm->dev,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  426  						"%s: SWR Port collision detected\n",
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  427  						__func__);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  428  				swrm->intr_mask &= ~SWRM_INTERRUPT_STATUS_DOUT_PORT_COLLISION;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  429  				swrm->reg_write(swrm,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  430  					SWRM_INTERRUPT_CPU_EN, swrm->intr_mask);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  431  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  432  			case SWRM_INTERRUPT_STATUS_READ_EN_RD_VALID_MISMATCH:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  433  				dev_err_ratelimited(swrm->dev,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  434  					"%s: SWR read enable valid mismatch\n",
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  435  					__func__);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  436  				swrm->intr_mask &=
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  437  					~SWRM_INTERRUPT_STATUS_READ_EN_RD_VALID_MISMATCH;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  438  				swrm->reg_write(swrm,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  439  					SWRM_INTERRUPT_CPU_EN, swrm->intr_mask);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  440  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  441  			case SWRM_INTERRUPT_STATUS_SPECIAL_CMD_ID_FINISHED:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  442  				complete(&swrm->broadcast);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  443  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  444  			case SWRM_INTERRUPT_STATUS_BUS_RESET_FINISHED_V2:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  445  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  446  			case SWRM_INTERRUPT_STATUS_CLK_STOP_FINISHED_V2:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  447  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  448  			case SWRM_INTERRUPT_STATUS_EXT_CLK_STOP_WAKEUP:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  449  				break;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  450  			default:
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  451  				dev_err_ratelimited(swrm->dev,
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  452  						"%s: SWR unknown interrupt value: %d\n",
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  453  						__func__, value);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  454  				ret = IRQ_NONE;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  455  				break;
ddea6cf7b619ec4 Srinivas Kandagatla 2021-03-30  456  			}
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  457  		}
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  458  		swrm->reg_write(swrm, SWRM_INTERRUPT_CLEAR, intr_sts);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  459  		swrm->reg_read(swrm, SWRM_INTERRUPT_STATUS, &intr_sts);
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  460  		intr_sts_masked = intr_sts & swrm->intr_mask;
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  461  	} while (intr_sts_masked);
02efb49aa805cee Srinivas Kandagatla 2020-01-13  462  
c7d49c76d1d5f5a Srinivas Kandagatla 2021-03-30  463  	return ret;
02efb49aa805cee Srinivas Kandagatla 2020-01-13  464  }
ddea6cf7b619ec4 Srinivas Kandagatla 2021-03-30  465  

---
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: 45245 bytes --]

             reply	other threads:[~2021-03-31  6:25 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-31  6:25 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-03-31  7:14 [vkoul-soundwire:next 33/36] drivers/soundwire/qcom.c:376 qcom_swrm_irq_handler() warn: impossible condition '(devnum < 0) => (0-255 < 0)' 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=202103311403.CW1Z7TK7-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.