* [PATCH v2] staging: rts5208: Fix checkpath warning
@ 2019-08-30 12:18 P SAI PRASANTH
2019-08-30 22:03 ` kbuild test robot
0 siblings, 1 reply; 3+ messages in thread
From: P SAI PRASANTH @ 2019-08-30 12:18 UTC (permalink / raw)
To: gregkh, kim.jamie.bradley; +Cc: linux-kernel, devel
This patch fixes the following checkpath warning
in the file drivers/staging/rts5208/rtsx_transport.c:546
WARNING: line over 80 characters
+ option = RTSX_SG_VALID | RTSX_SG_END |
RTSX_SG_TRANS_DATA;
Signed-off-by: P SAI PRASANTH <saip2823@gmail.com>
---
Changes in v2:
-restructured code for better fixing the checkpath warning
-wrapped commit description
drivers/staging/rts5208/rtsx_transport.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/staging/rts5208/rtsx_transport.c b/drivers/staging/rts5208/rtsx_transport.c
index 8277d78..48c782f 100644
--- a/drivers/staging/rts5208/rtsx_transport.c
+++ b/drivers/staging/rts5208/rtsx_transport.c
@@ -540,11 +540,10 @@ static int rtsx_transfer_sglist_adma(struct rtsx_chip *chip, u8 card,
dev_dbg(rtsx_dev(chip), "DMA addr: 0x%x, Len: 0x%x\n",
(unsigned int)addr, len);
-
+
+ option = RTSX_SG_VALID | RTSX_SG_TRANS_DATA;
if (j == (sg_cnt - 1))
- option = RTSX_SG_VALID | RTSX_SG_END | RTSX_SG_TRANS_DATA;
- else
- option = RTSX_SG_VALID | RTSX_SG_TRANS_DATA;
+ option |= RTSX_SG_END
rtsx_add_sg_tbl(chip, (u32)addr, (u32)len, option);
--
2.7.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2] staging: rts5208: Fix checkpath warning
2019-08-30 12:18 [PATCH v2] staging: rts5208: Fix checkpath warning P SAI PRASANTH
@ 2019-08-30 22:03 ` kbuild test robot
0 siblings, 0 replies; 3+ messages in thread
From: kbuild test robot @ 2019-08-30 22:03 UTC (permalink / raw)
To: P SAI PRASANTH; +Cc: kbuild-all, gregkh, kim.jamie.bradley, devel, linux-kernel
[-- 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 --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] staging: rts5208: Fix checkpath warning
@ 2019-08-30 22:03 ` kbuild test robot
0 siblings, 0 replies; 3+ messages in thread
From: kbuild test robot @ 2019-08-30 22:03 UTC (permalink / raw)
To: P SAI PRASANTH; +Cc: devel, gregkh, kim.jamie.bradley, kbuild-all, linux-kernel
[-- 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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-08-30 22:04 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-30 12:18 [PATCH v2] staging: rts5208: Fix checkpath warning P SAI PRASANTH
2019-08-30 22:03 ` kbuild test robot
2019-08-30 22:03 ` kbuild test robot
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.