From: kernel test robot <lkp@intel.com>
To: Guo Mengqi <guomengqi3@huawei.com>,
vkoul@kernel.org, dmaengine@vger.kernel.org, robh+dt@kernel.org,
krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org,
devicetree@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, guomengqi3@huawei.com,
xuqiang36@huawei.com
Subject: Re: [PATCH 1/2] dmaengine: Add HiSilicon Ascend SDMA engine support
Date: Fri, 11 Aug 2023 19:55:24 +0800 [thread overview]
Message-ID: <202308111941.5SysB2x2-lkp@intel.com> (raw)
In-Reply-To: <20230811034822.107229-2-guomengqi3@huawei.com>
Hi Guo,
kernel test robot noticed the following build errors:
[auto build test ERROR on vkoul-dmaengine/next]
[also build test ERROR on linus/master v6.5-rc5 next-20230809]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Guo-Mengqi/dmaengine-Add-HiSilicon-Ascend-SDMA-engine-support/20230811-115823
base: https://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git next
patch link: https://lore.kernel.org/r/20230811034822.107229-2-guomengqi3%40huawei.com
patch subject: [PATCH 1/2] dmaengine: Add HiSilicon Ascend SDMA engine support
config: csky-randconfig-r003-20230811 (https://download.01.org/0day-ci/archive/20230811/202308111941.5SysB2x2-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230811/202308111941.5SysB2x2-lkp@intel.com/reproduce)
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>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308111941.5SysB2x2-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/dma/ascend_sdma.c:191:6: warning: no previous prototype for 'set_sdma_channel_info' [-Wmissing-prototypes]
191 | void set_sdma_channel_info(struct dma_chan *c, int pasid)
| ^~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/kernel.h:30,
from drivers/dma/ascend_sdma.c:4:
drivers/dma/ascend_sdma.c: In function 'of_sdma_collect_info':
include/linux/kern_levels.h:5:25: warning: format '%llx' expects argument of type 'long long unsigned int', but argument 2 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
5 | #define KERN_SOH "\001" /* ASCII Start Of Header */
| ^~~~~~
include/linux/printk.h:427:25: note: in definition of macro 'printk_index_wrap'
427 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/printk.h:508:9: note: in expansion of macro 'printk'
508 | printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
include/linux/kern_levels.h:12:25: note: in expansion of macro 'KERN_SOH'
12 | #define KERN_WARNING KERN_SOH "4" /* warning conditions */
| ^~~~~~~~
include/linux/printk.h:508:16: note: in expansion of macro 'KERN_WARNING'
508 | printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~
drivers/dma/ascend_sdma.c:234:17: note: in expansion of macro 'pr_warn'
234 | pr_warn("reg size %#llx check failed, use %#x\n",
| ^~~~~~~
drivers/dma/ascend_sdma.c: At top level:
drivers/dma/ascend_sdma.c:490:33: warning: no previous prototype for 'sdma_prep_dma_memcpy' [-Wmissing-prototypes]
490 | struct dma_async_tx_descriptor *sdma_prep_dma_memcpy(
| ^~~~~~~~~~~~~~~~~~~~
drivers/dma/ascend_sdma.c:520:5: warning: no previous prototype for 'sdma_terminate_all' [-Wmissing-prototypes]
520 | int sdma_terminate_all(struct dma_chan *chan)
| ^~~~~~~~~~~~~~~~~~
drivers/dma/ascend_sdma.c:528:6: warning: no previous prototype for 'sdma_synchronize' [-Wmissing-prototypes]
528 | void sdma_synchronize(struct dma_chan *chan)
| ^~~~~~~~~~~~~~~~
drivers/dma/ascend_sdma.c:535:17: warning: no previous prototype for 'sdma_tx_status' [-Wmissing-prototypes]
535 | enum dma_status sdma_tx_status(struct dma_chan *chan,
| ^~~~~~~~~~~~~~
drivers/dma/ascend_sdma.c: In function 'sdma_tx_status':
>> drivers/dma/ascend_sdma.c:545:9: error: implicit declaration of function 'dsb' [-Werror=implicit-function-declaration]
545 | dsb(sy);
| ^~~
>> drivers/dma/ascend_sdma.c:545:13: error: 'sy' undeclared (first use in this function); did you mean 'sc'?
545 | dsb(sy);
| ^~
| sc
drivers/dma/ascend_sdma.c:545:13: note: each undeclared identifier is reported only once for each function it appears in
drivers/dma/ascend_sdma.c:540:22: warning: variable 'ch_ctrl_reg' set but not used [-Wunused-but-set-variable]
540 | u32 irq_reg, ch_ctrl_reg;
| ^~~~~~~~~~~
drivers/dma/ascend_sdma.c: In function 'sdma_start_transfer':
>> drivers/dma/ascend_sdma.c:633:9: error: implicit declaration of function 'dmb'; did you mean 'rmb'? [-Werror=implicit-function-declaration]
633 | dmb(sy);
| ^~~
| rmb
drivers/dma/ascend_sdma.c:633:13: error: 'sy' undeclared (first use in this function); did you mean 's8'?
633 | dmb(sy);
| ^~
| s8
drivers/dma/ascend_sdma.c: At top level:
drivers/dma/ascend_sdma.c:638:6: warning: no previous prototype for 'sdma_issue_pending' [-Wmissing-prototypes]
638 | void sdma_issue_pending(struct dma_chan *chan)
| ^~~~~~~~~~~~~~~~~~
drivers/dma/ascend_sdma.c:651:6: warning: no previous prototype for 'sdma_free_chan_resources' [-Wmissing-prototypes]
651 | void sdma_free_chan_resources(struct dma_chan *chan)
| ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/dsb +545 drivers/dma/ascend_sdma.c
527
> 528 void sdma_synchronize(struct dma_chan *chan)
529 {
530 struct sdma_chan *sc = to_sdma_chan(chan);
531
532 vchan_synchronize(&sc->vc);
533 }
534
> 535 enum dma_status sdma_tx_status(struct dma_chan *chan,
536 dma_cookie_t cookie,
537 struct dma_tx_state *txstate)
538 {
539 u32 cq_head, cq_tail, cq_count;
540 u32 irq_reg, ch_ctrl_reg;
541 struct sdma_cq_entry *cq_entry;
542 struct sdma_chan *sc = to_sdma_chan(chan);
543 enum dma_status ret = DMA_IN_PROGRESS;
544
> 545 dsb(sy);
546 irq_reg = readl(sc->io_base + SDMAM_IRQ_STATUS_REG);
547 ch_ctrl_reg = readl(sc->io_base + SDMAM_CH_CTRL_REG);
548
549 if (irq_reg & SDMAM_IRQ_IOC_MASK) {
550 writel(irq_reg, sc->io_base + SDMAM_IRQ_STATUS_REG);
551
552 cq_head = sc->cq_head;
553 cq_tail = sdma_channel_get_cq_tail(sc);
554 cq_count = sdma_queue_count(cq_head, cq_tail, SDMA_CQ_LENGTH);
555 if (!cq_count) {
556 pr_err("unexpected complete irq\n");
557 ret = DMA_ERROR;
558 goto out;
559 }
560
561 for (; cq_count; cq_count--) {
562 cq_entry = sc->cq_base + cq_head;
563 if (cq_entry->vld != sc->cq_vld || cq_entry->status) {
564 pr_err("cq_entry invalid, vld: %u, cq_vld: %u, status: %u\n",
565 cq_entry->vld, sc->cq_vld, cq_entry->status);
566 ret = DMA_ERROR;
567 }
568 if (++cq_head == SDMA_CQ_LENGTH) {
569 sc->cq_vld ^= 1;
570 cq_head = 0;
571 }
572 }
573
574 sc->cq_head = cq_head;
575 sdma_channel_set_cq_head(sc, cq_head);
576 sc->sq_head = sdma_channel_get_sq_head(sc);
577 sc->cq_tail = cq_tail;
578
579 if (ret != DMA_ERROR) {
580 ret = DMA_COMPLETE;
581 vchan_cookie_complete(&sc->desc->vd);
582 }
583 } else if (irq_reg & SDMAM_IRQ_IOE_MASK) {
584 writel(irq_reg, sc->io_base + SDMAM_IRQ_STATUS_REG);
585 pr_err("sdma ioe interrupt occur, status: %#x\n", irq_reg);
586 sdma_error_handle(sc);
587
588 ret = DMA_ERROR;
589 }
590
591 out:
592 return ret;
593 }
594
595 static void sdma_start_transfer(struct sdma_chan *pchan)
596 {
597 u16 sq_tail = pchan->sq_tail;
598 struct sdma_sq_entry *entry = pchan->sq_base + sq_tail;
599 struct sdma_desc *desc;
600 struct virt_dma_desc *vd;
601
602 vd = vchan_next_desc(&pchan->vc);
603 if (!vd) {
604 pchan->desc = NULL;
605 return;
606 }
607 list_del(&vd->node);
608 desc = to_sdma_desc(vd);
609 pchan->desc = desc;
610
611 memcpy(entry, &desc->entry, sizeof(struct sdma_sq_entry));
612
613 entry->src_streamid = pchan->sdev->streamid;
614 entry->dst_streamid = pchan->sdev->streamid;
615
616 entry->sns = 1;
617 entry->dns = 1;
618 entry->ie = 0;
619 entry->partid = 0;
620 entry->mpamns = 1;
621 if (pchan->pasid) {
622 entry->sssv = 1;
623 entry->dssv = 1;
624 entry->src_substreamid = pchan->pasid;
625 entry->dst_substreamid = pchan->pasid;
626 } else {
627 entry->sssv = 0;
628 entry->dssv = 0;
629 }
630 sq_tail = (sq_tail + 1) & (SDMA_SQ_LENGTH - 1);
631 entry->ie = 1;
632
> 633 dmb(sy);
634 sdma_channel_set_sq_tail(pchan, sq_tail);
635 pchan->sq_tail = sq_tail;
636 }
637
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2023-08-11 11:55 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-11 3:48 [PATCH 0/2] Add sdma driver for HiSilicon Ascend platform Guo Mengqi
2023-08-11 3:48 ` [PATCH 1/2] dmaengine: Add HiSilicon Ascend SDMA engine support Guo Mengqi
2023-08-11 9:50 ` kernel test robot
2023-08-11 11:55 ` kernel test robot [this message]
2023-08-14 8:54 ` Krzysztof Kozlowski
2023-08-18 10:20 ` guomengqi (A)
2023-08-11 3:48 ` [PATCH 2/2] dt-bindings: dma: hisi: Add bindings for Hisi Ascend sdma Guo Mengqi
2023-08-14 8:51 ` Krzysztof Kozlowski
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=202308111941.5SysB2x2-lkp@intel.com \
--to=lkp@intel.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=guomengqi3@huawei.com \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=robh+dt@kernel.org \
--cc=vkoul@kernel.org \
--cc=xuqiang36@huawei.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.