From: kbuild test robot <lkp@intel.com>
To: P SAI PRASANTH <saip2823@gmail.com>
Cc: kbuild-all@01.org, gregkh@linuxfoundation.org,
kim.jamie.bradley@gmail.com, devel@driverdev.osuosl.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] staging: rts5208: Fix checkpath warning
Date: Sat, 31 Aug 2019 06:03:53 +0800 [thread overview]
Message-ID: <201908310557.auxNAsna%lkp@intel.com> (raw)
In-Reply-To: <20190830121801.GA10295@dell-inspiron>
[-- Attachment #1: Type: text/plain, Size: 12445 bytes --]
Hi SAI,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[cannot apply to v5.3-rc6 next-20190830]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/P-SAI-PRASANTH/staging-rts5208-Fix-checkpath-warning/20190831-034841
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/staging//rts5208/rtsx_transport.c: In function 'rtsx_transfer_sglist_adma':
>> drivers/staging//rts5208/rtsx_transport.c:548:4: error: expected ';' before 'rtsx_add_sg_tbl'
rtsx_add_sg_tbl(chip, (u32)addr, (u32)len, option);
^~~~~~~~~~~~~~~
vim +548 drivers/staging//rts5208/rtsx_transport.c
fa590c222fbaa4 Micky Ching 2013-11-12 479
fa590c222fbaa4 Micky Ching 2013-11-12 480 static int rtsx_transfer_sglist_adma(struct rtsx_chip *chip, u8 card,
fa590c222fbaa4 Micky Ching 2013-11-12 481 struct scatterlist *sg, int num_sg,
d1303c1a9a68e5 Shaun Ren 2016-02-15 482 enum dma_data_direction dma_dir,
d1303c1a9a68e5 Shaun Ren 2016-02-15 483 int timeout)
fa590c222fbaa4 Micky Ching 2013-11-12 484 {
fa590c222fbaa4 Micky Ching 2013-11-12 485 struct rtsx_dev *rtsx = chip->rtsx;
fa590c222fbaa4 Micky Ching 2013-11-12 486 struct completion trans_done;
fa590c222fbaa4 Micky Ching 2013-11-12 487 u8 dir;
fa590c222fbaa4 Micky Ching 2013-11-12 488 int buf_cnt, i;
fa590c222fbaa4 Micky Ching 2013-11-12 489 int err = 0;
fa590c222fbaa4 Micky Ching 2013-11-12 490 long timeleft;
fa590c222fbaa4 Micky Ching 2013-11-12 491 struct scatterlist *sg_ptr;
fa590c222fbaa4 Micky Ching 2013-11-12 492
50dcad2a2c85d5 Shaun Ren 2016-02-15 493 if (!sg || (num_sg <= 0))
fa590c222fbaa4 Micky Ching 2013-11-12 494 return -EIO;
fa590c222fbaa4 Micky Ching 2013-11-12 495
fa590c222fbaa4 Micky Ching 2013-11-12 496 if (dma_dir == DMA_TO_DEVICE)
fa590c222fbaa4 Micky Ching 2013-11-12 497 dir = HOST_TO_DEVICE;
fa590c222fbaa4 Micky Ching 2013-11-12 498 else if (dma_dir == DMA_FROM_DEVICE)
fa590c222fbaa4 Micky Ching 2013-11-12 499 dir = DEVICE_TO_HOST;
fa590c222fbaa4 Micky Ching 2013-11-12 500 else
fa590c222fbaa4 Micky Ching 2013-11-12 501 return -ENXIO;
fa590c222fbaa4 Micky Ching 2013-11-12 502
fa590c222fbaa4 Micky Ching 2013-11-12 503 if (card == SD_CARD)
fa590c222fbaa4 Micky Ching 2013-11-12 504 rtsx->check_card_cd = SD_EXIST;
fa590c222fbaa4 Micky Ching 2013-11-12 505 else if (card == MS_CARD)
fa590c222fbaa4 Micky Ching 2013-11-12 506 rtsx->check_card_cd = MS_EXIST;
fa590c222fbaa4 Micky Ching 2013-11-12 507 else if (card == XD_CARD)
fa590c222fbaa4 Micky Ching 2013-11-12 508 rtsx->check_card_cd = XD_EXIST;
fa590c222fbaa4 Micky Ching 2013-11-12 509 else
fa590c222fbaa4 Micky Ching 2013-11-12 510 rtsx->check_card_cd = 0;
fa590c222fbaa4 Micky Ching 2013-11-12 511
fa590c222fbaa4 Micky Ching 2013-11-12 512 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 513
fa590c222fbaa4 Micky Ching 2013-11-12 514 /* set up data structures for the wakeup system */
fa590c222fbaa4 Micky Ching 2013-11-12 515 rtsx->done = &trans_done;
fa590c222fbaa4 Micky Ching 2013-11-12 516
fa590c222fbaa4 Micky Ching 2013-11-12 517 rtsx->trans_state = STATE_TRANS_SG;
fa590c222fbaa4 Micky Ching 2013-11-12 518 rtsx->trans_result = TRANS_NOT_READY;
fa590c222fbaa4 Micky Ching 2013-11-12 519
fa590c222fbaa4 Micky Ching 2013-11-12 520 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 521
69e3bc543c5610 Shaun Ren 2016-02-15 522 buf_cnt = dma_map_sg(&rtsx->pci->dev, sg, num_sg, dma_dir);
fa590c222fbaa4 Micky Ching 2013-11-12 523
fa590c222fbaa4 Micky Ching 2013-11-12 524 sg_ptr = sg;
fa590c222fbaa4 Micky Ching 2013-11-12 525
fa590c222fbaa4 Micky Ching 2013-11-12 526 for (i = 0; i <= buf_cnt / (HOST_SG_TBL_BUF_LEN / 8); i++) {
fa590c222fbaa4 Micky Ching 2013-11-12 527 u32 val = TRIG_DMA;
fa590c222fbaa4 Micky Ching 2013-11-12 528 int sg_cnt, j;
fa590c222fbaa4 Micky Ching 2013-11-12 529
fa590c222fbaa4 Micky Ching 2013-11-12 530 if (i == buf_cnt / (HOST_SG_TBL_BUF_LEN / 8))
fa590c222fbaa4 Micky Ching 2013-11-12 531 sg_cnt = buf_cnt % (HOST_SG_TBL_BUF_LEN / 8);
fa590c222fbaa4 Micky Ching 2013-11-12 532 else
9fd4af8ab48a14 Tina Johnson 2014-10-25 533 sg_cnt = HOST_SG_TBL_BUF_LEN / 8;
fa590c222fbaa4 Micky Ching 2013-11-12 534
fa590c222fbaa4 Micky Ching 2013-11-12 535 chip->sgi = 0;
fa590c222fbaa4 Micky Ching 2013-11-12 536 for (j = 0; j < sg_cnt; j++) {
fa590c222fbaa4 Micky Ching 2013-11-12 537 dma_addr_t addr = sg_dma_address(sg_ptr);
fa590c222fbaa4 Micky Ching 2013-11-12 538 unsigned int len = sg_dma_len(sg_ptr);
fa590c222fbaa4 Micky Ching 2013-11-12 539 u8 option;
fa590c222fbaa4 Micky Ching 2013-11-12 540
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 541 dev_dbg(rtsx_dev(chip), "DMA addr: 0x%x, Len: 0x%x\n",
fa590c222fbaa4 Micky Ching 2013-11-12 542 (unsigned int)addr, len);
fa590c222fbaa4 Micky Ching 2013-11-12 543
b5d013bc09e9e7 Arnd Bergmann 2018-03-01 544 option = RTSX_SG_VALID | RTSX_SG_TRANS_DATA;
da59abd45efc2a P SAI PRASANTH 2019-08-30 545 if (j == (sg_cnt - 1))
da59abd45efc2a P SAI PRASANTH 2019-08-30 546 option |= RTSX_SG_END
fa590c222fbaa4 Micky Ching 2013-11-12 547
fa590c222fbaa4 Micky Ching 2013-11-12 @548 rtsx_add_sg_tbl(chip, (u32)addr, (u32)len, option);
fa590c222fbaa4 Micky Ching 2013-11-12 549
fa590c222fbaa4 Micky Ching 2013-11-12 550 sg_ptr = sg_next(sg_ptr);
fa590c222fbaa4 Micky Ching 2013-11-12 551 }
fa590c222fbaa4 Micky Ching 2013-11-12 552
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 553 dev_dbg(rtsx_dev(chip), "SG table count = %d\n", chip->sgi);
fa590c222fbaa4 Micky Ching 2013-11-12 554
fa590c222fbaa4 Micky Ching 2013-11-12 555 val |= (u32)(dir & 0x01) << 29;
fa590c222fbaa4 Micky Ching 2013-11-12 556 val |= ADMA_MODE;
fa590c222fbaa4 Micky Ching 2013-11-12 557
fa590c222fbaa4 Micky Ching 2013-11-12 558 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 559
fa590c222fbaa4 Micky Ching 2013-11-12 560 init_completion(&trans_done);
fa590c222fbaa4 Micky Ching 2013-11-12 561
fa590c222fbaa4 Micky Ching 2013-11-12 562 rtsx_writel(chip, RTSX_HDBAR, chip->host_sg_tbl_addr);
fa590c222fbaa4 Micky Ching 2013-11-12 563 rtsx_writel(chip, RTSX_HDBCTLR, val);
fa590c222fbaa4 Micky Ching 2013-11-12 564
fa590c222fbaa4 Micky Ching 2013-11-12 565 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 566
fa590c222fbaa4 Micky Ching 2013-11-12 567 timeleft = wait_for_completion_interruptible_timeout(
9df56d9bdeeae1 Nicholas Mc Guire 2015-01-23 568 &trans_done, msecs_to_jiffies(timeout));
fa590c222fbaa4 Micky Ching 2013-11-12 569 if (timeleft <= 0) {
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 570 dev_dbg(rtsx_dev(chip), "Timeout (%s %d)\n",
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 571 __func__, __LINE__);
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 572 dev_dbg(rtsx_dev(chip), "chip->int_reg = 0x%x\n",
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 573 chip->int_reg);
fa590c222fbaa4 Micky Ching 2013-11-12 574 err = -ETIMEDOUT;
fa590c222fbaa4 Micky Ching 2013-11-12 575 goto out;
fa590c222fbaa4 Micky Ching 2013-11-12 576 }
fa590c222fbaa4 Micky Ching 2013-11-12 577
fa590c222fbaa4 Micky Ching 2013-11-12 578 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 579 if (rtsx->trans_result == TRANS_RESULT_FAIL) {
fa590c222fbaa4 Micky Ching 2013-11-12 580 err = -EIO;
fa590c222fbaa4 Micky Ching 2013-11-12 581 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 582 goto out;
fa590c222fbaa4 Micky Ching 2013-11-12 583 }
fa590c222fbaa4 Micky Ching 2013-11-12 584 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 585
fa590c222fbaa4 Micky Ching 2013-11-12 586 sg_ptr += sg_cnt;
fa590c222fbaa4 Micky Ching 2013-11-12 587 }
fa590c222fbaa4 Micky Ching 2013-11-12 588
fa590c222fbaa4 Micky Ching 2013-11-12 589 /* Wait for TRANS_OK_INT */
fa590c222fbaa4 Micky Ching 2013-11-12 590 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 591 if (rtsx->trans_result == TRANS_NOT_READY) {
fa590c222fbaa4 Micky Ching 2013-11-12 592 init_completion(&trans_done);
fa590c222fbaa4 Micky Ching 2013-11-12 593 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 594 timeleft = wait_for_completion_interruptible_timeout(
9df56d9bdeeae1 Nicholas Mc Guire 2015-01-23 595 &trans_done, msecs_to_jiffies(timeout));
fa590c222fbaa4 Micky Ching 2013-11-12 596 if (timeleft <= 0) {
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 597 dev_dbg(rtsx_dev(chip), "Timeout (%s %d)\n",
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 598 __func__, __LINE__);
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 599 dev_dbg(rtsx_dev(chip), "chip->int_reg = 0x%x\n",
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 600 chip->int_reg);
fa590c222fbaa4 Micky Ching 2013-11-12 601 err = -ETIMEDOUT;
fa590c222fbaa4 Micky Ching 2013-11-12 602 goto out;
fa590c222fbaa4 Micky Ching 2013-11-12 603 }
fa590c222fbaa4 Micky Ching 2013-11-12 604 } else {
fa590c222fbaa4 Micky Ching 2013-11-12 605 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 606 }
fa590c222fbaa4 Micky Ching 2013-11-12 607
fa590c222fbaa4 Micky Ching 2013-11-12 608 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 609 if (rtsx->trans_result == TRANS_RESULT_FAIL)
fa590c222fbaa4 Micky Ching 2013-11-12 610 err = -EIO;
fa590c222fbaa4 Micky Ching 2013-11-12 611 else if (rtsx->trans_result == TRANS_RESULT_OK)
fa590c222fbaa4 Micky Ching 2013-11-12 612 err = 0;
fa590c222fbaa4 Micky Ching 2013-11-12 613
fa590c222fbaa4 Micky Ching 2013-11-12 614 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 615
fa590c222fbaa4 Micky Ching 2013-11-12 616 out:
fa590c222fbaa4 Micky Ching 2013-11-12 617 rtsx->done = NULL;
fa590c222fbaa4 Micky Ching 2013-11-12 618 rtsx->trans_state = STATE_TRANS_NONE;
69e3bc543c5610 Shaun Ren 2016-02-15 619 dma_unmap_sg(&rtsx->pci->dev, sg, num_sg, dma_dir);
fa590c222fbaa4 Micky Ching 2013-11-12 620
fa590c222fbaa4 Micky Ching 2013-11-12 621 if (err < 0)
fa590c222fbaa4 Micky Ching 2013-11-12 622 rtsx_stop_cmd(chip, card);
fa590c222fbaa4 Micky Ching 2013-11-12 623
fa590c222fbaa4 Micky Ching 2013-11-12 624 return err;
fa590c222fbaa4 Micky Ching 2013-11-12 625 }
fa590c222fbaa4 Micky Ching 2013-11-12 626
:::::: The code at line 548 was first introduced by commit
:::::: fa590c222fbaa428edb2ce2194638906cea1400a staging: rts5208: add support for rts5208 and rts5288
:::::: TO: Micky Ching <micky_ching@realsil.com.cn>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 54578 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: P SAI PRASANTH <saip2823@gmail.com>
Cc: devel@driverdev.osuosl.org, gregkh@linuxfoundation.org,
kim.jamie.bradley@gmail.com, kbuild-all@01.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] staging: rts5208: Fix checkpath warning
Date: Sat, 31 Aug 2019 06:03:53 +0800 [thread overview]
Message-ID: <201908310557.auxNAsna%lkp@intel.com> (raw)
In-Reply-To: <20190830121801.GA10295@dell-inspiron>
[-- Attachment #1: Type: text/plain, Size: 12445 bytes --]
Hi SAI,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[cannot apply to v5.3-rc6 next-20190830]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/P-SAI-PRASANTH/staging-rts5208-Fix-checkpath-warning/20190831-034841
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/staging//rts5208/rtsx_transport.c: In function 'rtsx_transfer_sglist_adma':
>> drivers/staging//rts5208/rtsx_transport.c:548:4: error: expected ';' before 'rtsx_add_sg_tbl'
rtsx_add_sg_tbl(chip, (u32)addr, (u32)len, option);
^~~~~~~~~~~~~~~
vim +548 drivers/staging//rts5208/rtsx_transport.c
fa590c222fbaa4 Micky Ching 2013-11-12 479
fa590c222fbaa4 Micky Ching 2013-11-12 480 static int rtsx_transfer_sglist_adma(struct rtsx_chip *chip, u8 card,
fa590c222fbaa4 Micky Ching 2013-11-12 481 struct scatterlist *sg, int num_sg,
d1303c1a9a68e5 Shaun Ren 2016-02-15 482 enum dma_data_direction dma_dir,
d1303c1a9a68e5 Shaun Ren 2016-02-15 483 int timeout)
fa590c222fbaa4 Micky Ching 2013-11-12 484 {
fa590c222fbaa4 Micky Ching 2013-11-12 485 struct rtsx_dev *rtsx = chip->rtsx;
fa590c222fbaa4 Micky Ching 2013-11-12 486 struct completion trans_done;
fa590c222fbaa4 Micky Ching 2013-11-12 487 u8 dir;
fa590c222fbaa4 Micky Ching 2013-11-12 488 int buf_cnt, i;
fa590c222fbaa4 Micky Ching 2013-11-12 489 int err = 0;
fa590c222fbaa4 Micky Ching 2013-11-12 490 long timeleft;
fa590c222fbaa4 Micky Ching 2013-11-12 491 struct scatterlist *sg_ptr;
fa590c222fbaa4 Micky Ching 2013-11-12 492
50dcad2a2c85d5 Shaun Ren 2016-02-15 493 if (!sg || (num_sg <= 0))
fa590c222fbaa4 Micky Ching 2013-11-12 494 return -EIO;
fa590c222fbaa4 Micky Ching 2013-11-12 495
fa590c222fbaa4 Micky Ching 2013-11-12 496 if (dma_dir == DMA_TO_DEVICE)
fa590c222fbaa4 Micky Ching 2013-11-12 497 dir = HOST_TO_DEVICE;
fa590c222fbaa4 Micky Ching 2013-11-12 498 else if (dma_dir == DMA_FROM_DEVICE)
fa590c222fbaa4 Micky Ching 2013-11-12 499 dir = DEVICE_TO_HOST;
fa590c222fbaa4 Micky Ching 2013-11-12 500 else
fa590c222fbaa4 Micky Ching 2013-11-12 501 return -ENXIO;
fa590c222fbaa4 Micky Ching 2013-11-12 502
fa590c222fbaa4 Micky Ching 2013-11-12 503 if (card == SD_CARD)
fa590c222fbaa4 Micky Ching 2013-11-12 504 rtsx->check_card_cd = SD_EXIST;
fa590c222fbaa4 Micky Ching 2013-11-12 505 else if (card == MS_CARD)
fa590c222fbaa4 Micky Ching 2013-11-12 506 rtsx->check_card_cd = MS_EXIST;
fa590c222fbaa4 Micky Ching 2013-11-12 507 else if (card == XD_CARD)
fa590c222fbaa4 Micky Ching 2013-11-12 508 rtsx->check_card_cd = XD_EXIST;
fa590c222fbaa4 Micky Ching 2013-11-12 509 else
fa590c222fbaa4 Micky Ching 2013-11-12 510 rtsx->check_card_cd = 0;
fa590c222fbaa4 Micky Ching 2013-11-12 511
fa590c222fbaa4 Micky Ching 2013-11-12 512 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 513
fa590c222fbaa4 Micky Ching 2013-11-12 514 /* set up data structures for the wakeup system */
fa590c222fbaa4 Micky Ching 2013-11-12 515 rtsx->done = &trans_done;
fa590c222fbaa4 Micky Ching 2013-11-12 516
fa590c222fbaa4 Micky Ching 2013-11-12 517 rtsx->trans_state = STATE_TRANS_SG;
fa590c222fbaa4 Micky Ching 2013-11-12 518 rtsx->trans_result = TRANS_NOT_READY;
fa590c222fbaa4 Micky Ching 2013-11-12 519
fa590c222fbaa4 Micky Ching 2013-11-12 520 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 521
69e3bc543c5610 Shaun Ren 2016-02-15 522 buf_cnt = dma_map_sg(&rtsx->pci->dev, sg, num_sg, dma_dir);
fa590c222fbaa4 Micky Ching 2013-11-12 523
fa590c222fbaa4 Micky Ching 2013-11-12 524 sg_ptr = sg;
fa590c222fbaa4 Micky Ching 2013-11-12 525
fa590c222fbaa4 Micky Ching 2013-11-12 526 for (i = 0; i <= buf_cnt / (HOST_SG_TBL_BUF_LEN / 8); i++) {
fa590c222fbaa4 Micky Ching 2013-11-12 527 u32 val = TRIG_DMA;
fa590c222fbaa4 Micky Ching 2013-11-12 528 int sg_cnt, j;
fa590c222fbaa4 Micky Ching 2013-11-12 529
fa590c222fbaa4 Micky Ching 2013-11-12 530 if (i == buf_cnt / (HOST_SG_TBL_BUF_LEN / 8))
fa590c222fbaa4 Micky Ching 2013-11-12 531 sg_cnt = buf_cnt % (HOST_SG_TBL_BUF_LEN / 8);
fa590c222fbaa4 Micky Ching 2013-11-12 532 else
9fd4af8ab48a14 Tina Johnson 2014-10-25 533 sg_cnt = HOST_SG_TBL_BUF_LEN / 8;
fa590c222fbaa4 Micky Ching 2013-11-12 534
fa590c222fbaa4 Micky Ching 2013-11-12 535 chip->sgi = 0;
fa590c222fbaa4 Micky Ching 2013-11-12 536 for (j = 0; j < sg_cnt; j++) {
fa590c222fbaa4 Micky Ching 2013-11-12 537 dma_addr_t addr = sg_dma_address(sg_ptr);
fa590c222fbaa4 Micky Ching 2013-11-12 538 unsigned int len = sg_dma_len(sg_ptr);
fa590c222fbaa4 Micky Ching 2013-11-12 539 u8 option;
fa590c222fbaa4 Micky Ching 2013-11-12 540
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 541 dev_dbg(rtsx_dev(chip), "DMA addr: 0x%x, Len: 0x%x\n",
fa590c222fbaa4 Micky Ching 2013-11-12 542 (unsigned int)addr, len);
fa590c222fbaa4 Micky Ching 2013-11-12 543
b5d013bc09e9e7 Arnd Bergmann 2018-03-01 544 option = RTSX_SG_VALID | RTSX_SG_TRANS_DATA;
da59abd45efc2a P SAI PRASANTH 2019-08-30 545 if (j == (sg_cnt - 1))
da59abd45efc2a P SAI PRASANTH 2019-08-30 546 option |= RTSX_SG_END
fa590c222fbaa4 Micky Ching 2013-11-12 547
fa590c222fbaa4 Micky Ching 2013-11-12 @548 rtsx_add_sg_tbl(chip, (u32)addr, (u32)len, option);
fa590c222fbaa4 Micky Ching 2013-11-12 549
fa590c222fbaa4 Micky Ching 2013-11-12 550 sg_ptr = sg_next(sg_ptr);
fa590c222fbaa4 Micky Ching 2013-11-12 551 }
fa590c222fbaa4 Micky Ching 2013-11-12 552
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 553 dev_dbg(rtsx_dev(chip), "SG table count = %d\n", chip->sgi);
fa590c222fbaa4 Micky Ching 2013-11-12 554
fa590c222fbaa4 Micky Ching 2013-11-12 555 val |= (u32)(dir & 0x01) << 29;
fa590c222fbaa4 Micky Ching 2013-11-12 556 val |= ADMA_MODE;
fa590c222fbaa4 Micky Ching 2013-11-12 557
fa590c222fbaa4 Micky Ching 2013-11-12 558 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 559
fa590c222fbaa4 Micky Ching 2013-11-12 560 init_completion(&trans_done);
fa590c222fbaa4 Micky Ching 2013-11-12 561
fa590c222fbaa4 Micky Ching 2013-11-12 562 rtsx_writel(chip, RTSX_HDBAR, chip->host_sg_tbl_addr);
fa590c222fbaa4 Micky Ching 2013-11-12 563 rtsx_writel(chip, RTSX_HDBCTLR, val);
fa590c222fbaa4 Micky Ching 2013-11-12 564
fa590c222fbaa4 Micky Ching 2013-11-12 565 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 566
fa590c222fbaa4 Micky Ching 2013-11-12 567 timeleft = wait_for_completion_interruptible_timeout(
9df56d9bdeeae1 Nicholas Mc Guire 2015-01-23 568 &trans_done, msecs_to_jiffies(timeout));
fa590c222fbaa4 Micky Ching 2013-11-12 569 if (timeleft <= 0) {
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 570 dev_dbg(rtsx_dev(chip), "Timeout (%s %d)\n",
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 571 __func__, __LINE__);
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 572 dev_dbg(rtsx_dev(chip), "chip->int_reg = 0x%x\n",
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 573 chip->int_reg);
fa590c222fbaa4 Micky Ching 2013-11-12 574 err = -ETIMEDOUT;
fa590c222fbaa4 Micky Ching 2013-11-12 575 goto out;
fa590c222fbaa4 Micky Ching 2013-11-12 576 }
fa590c222fbaa4 Micky Ching 2013-11-12 577
fa590c222fbaa4 Micky Ching 2013-11-12 578 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 579 if (rtsx->trans_result == TRANS_RESULT_FAIL) {
fa590c222fbaa4 Micky Ching 2013-11-12 580 err = -EIO;
fa590c222fbaa4 Micky Ching 2013-11-12 581 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 582 goto out;
fa590c222fbaa4 Micky Ching 2013-11-12 583 }
fa590c222fbaa4 Micky Ching 2013-11-12 584 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 585
fa590c222fbaa4 Micky Ching 2013-11-12 586 sg_ptr += sg_cnt;
fa590c222fbaa4 Micky Ching 2013-11-12 587 }
fa590c222fbaa4 Micky Ching 2013-11-12 588
fa590c222fbaa4 Micky Ching 2013-11-12 589 /* Wait for TRANS_OK_INT */
fa590c222fbaa4 Micky Ching 2013-11-12 590 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 591 if (rtsx->trans_result == TRANS_NOT_READY) {
fa590c222fbaa4 Micky Ching 2013-11-12 592 init_completion(&trans_done);
fa590c222fbaa4 Micky Ching 2013-11-12 593 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 594 timeleft = wait_for_completion_interruptible_timeout(
9df56d9bdeeae1 Nicholas Mc Guire 2015-01-23 595 &trans_done, msecs_to_jiffies(timeout));
fa590c222fbaa4 Micky Ching 2013-11-12 596 if (timeleft <= 0) {
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 597 dev_dbg(rtsx_dev(chip), "Timeout (%s %d)\n",
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 598 __func__, __LINE__);
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 599 dev_dbg(rtsx_dev(chip), "chip->int_reg = 0x%x\n",
bf6c0d110e0b7a Fabio Falzoi 2014-07-30 600 chip->int_reg);
fa590c222fbaa4 Micky Ching 2013-11-12 601 err = -ETIMEDOUT;
fa590c222fbaa4 Micky Ching 2013-11-12 602 goto out;
fa590c222fbaa4 Micky Ching 2013-11-12 603 }
fa590c222fbaa4 Micky Ching 2013-11-12 604 } else {
fa590c222fbaa4 Micky Ching 2013-11-12 605 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 606 }
fa590c222fbaa4 Micky Ching 2013-11-12 607
fa590c222fbaa4 Micky Ching 2013-11-12 608 spin_lock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 609 if (rtsx->trans_result == TRANS_RESULT_FAIL)
fa590c222fbaa4 Micky Ching 2013-11-12 610 err = -EIO;
fa590c222fbaa4 Micky Ching 2013-11-12 611 else if (rtsx->trans_result == TRANS_RESULT_OK)
fa590c222fbaa4 Micky Ching 2013-11-12 612 err = 0;
fa590c222fbaa4 Micky Ching 2013-11-12 613
fa590c222fbaa4 Micky Ching 2013-11-12 614 spin_unlock_irq(&rtsx->reg_lock);
fa590c222fbaa4 Micky Ching 2013-11-12 615
fa590c222fbaa4 Micky Ching 2013-11-12 616 out:
fa590c222fbaa4 Micky Ching 2013-11-12 617 rtsx->done = NULL;
fa590c222fbaa4 Micky Ching 2013-11-12 618 rtsx->trans_state = STATE_TRANS_NONE;
69e3bc543c5610 Shaun Ren 2016-02-15 619 dma_unmap_sg(&rtsx->pci->dev, sg, num_sg, dma_dir);
fa590c222fbaa4 Micky Ching 2013-11-12 620
fa590c222fbaa4 Micky Ching 2013-11-12 621 if (err < 0)
fa590c222fbaa4 Micky Ching 2013-11-12 622 rtsx_stop_cmd(chip, card);
fa590c222fbaa4 Micky Ching 2013-11-12 623
fa590c222fbaa4 Micky Ching 2013-11-12 624 return err;
fa590c222fbaa4 Micky Ching 2013-11-12 625 }
fa590c222fbaa4 Micky Ching 2013-11-12 626
:::::: The code at line 548 was first introduced by commit
:::::: fa590c222fbaa428edb2ce2194638906cea1400a staging: rts5208: add support for rts5208 and rts5288
:::::: TO: Micky Ching <micky_ching@realsil.com.cn>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 54578 bytes --]
[-- Attachment #3: Type: text/plain, Size: 169 bytes --]
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
next prev parent reply other threads:[~2019-08-30 22:04 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-30 12:18 [PATCH v2] staging: rts5208: Fix checkpath warning P SAI PRASANTH
2019-08-30 22:03 ` kbuild test robot [this message]
2019-08-30 22:03 ` kbuild test robot
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=201908310557.auxNAsna%lkp@intel.com \
--to=lkp@intel.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=kbuild-all@01.org \
--cc=kim.jamie.bradley@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=saip2823@gmail.com \
/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.