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 --]
next 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.