All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.