dmaengine Archive on lore.kernel.org
 help / color / Atom feed
From: kernel test robot <lkp@intel.com>
To: Rajesh Gumasta <rgumasta@nvidia.com>,
	ldewangan@nvidia.com, jonathanh@nvidia.com, vkoul@kernel.org,
	dan.j.williams@intel.com, thierry.reding@gmail.com,
	p.zabel@pengutronix.de, dmaengine@vger.kernel.org,
	linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: kbuild-all@lists.01.org, kyarlagadda@nvidia.com
Subject: Re: [Patch v1 2/4] dma: tegra: Adding Tegra GPC DMA controller driver
Date: Mon, 20 Jul 2020 19:58:20 +0800
Message-ID: <202007201900.SRWPsxcW%lkp@intel.com> (raw)
In-Reply-To: <1595226856-19241-3-git-send-email-rgumasta@nvidia.com>


[-- Attachment #1: Type: text/plain, Size: 5800 bytes --]

Hi Rajesh,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on robh/for-next]
[also build test WARNING on arm64/for-next/core tegra/for-next linus/master v5.8-rc6 next-20200717]
[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]

url:    https://github.com/0day-ci/linux/commits/Rajesh-Gumasta/Add-Nvidia-Tegra-GPC-DMA-driver/20200720-143607
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0
reproduce (this is a W=1 build):
        # save the attached .config to linux build tree
        make W=1 ARCH=i386 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/dma/tegra-gpc-dma.c: In function 'tegra_dma_prep_dma_memset':
>> drivers/dma/tegra-gpc-dma.c:870:41: warning: right shift count >= width of type [-Wshift-count-overflow]
     870 |  sg_req->ch_regs.high_addr_ptr = ((dest >> 32) &
         |                                         ^~
   drivers/dma/tegra-gpc-dma.c: In function 'tegra_dma_prep_dma_memcpy':
   drivers/dma/tegra-gpc-dma.c:964:39: warning: right shift count >= width of type [-Wshift-count-overflow]
     964 |  sg_req->ch_regs.high_addr_ptr = (src >> 32) &
         |                                       ^~
   drivers/dma/tegra-gpc-dma.c:966:42: warning: right shift count >= width of type [-Wshift-count-overflow]
     966 |  sg_req->ch_regs.high_addr_ptr |= ((dest >> 32) &
         |                                          ^~
   drivers/dma/tegra-gpc-dma.c: In function 'tegra_dma_prep_slave_sg':
   drivers/dma/tegra-gpc-dma.c:1095:41: warning: right shift count >= width of type [-Wshift-count-overflow]
    1095 |    sg_req->ch_regs.high_addr_ptr = (mem >> 32) &
         |                                         ^~
   drivers/dma/tegra-gpc-dma.c:1100:42: warning: right shift count >= width of type [-Wshift-count-overflow]
    1100 |    sg_req->ch_regs.high_addr_ptr = ((mem >> 32) &
         |                                          ^~

vim +870 drivers/dma/tegra-gpc-dma.c

   804	
   805	static struct dma_async_tx_descriptor *tegra_dma_prep_dma_memset(
   806		struct dma_chan *dc, dma_addr_t dest, int value, size_t len,
   807		unsigned long flags)
   808	{
   809		struct tegra_dma_channel *tdc = to_tegra_dma_chan(dc);
   810		struct tegra_dma_desc *dma_desc;
   811		struct list_head req_list;
   812		struct tegra_dma_sg_req *sg_req = NULL;
   813		unsigned long csr, mc_seq;
   814	
   815		INIT_LIST_HEAD(&req_list);
   816		/* Set dma mode to fixed pattern */
   817		csr = TEGRA_GPCDMA_CSR_DMA_FIXED_PAT;
   818		/* Enable once or continuous mode */
   819		csr |= TEGRA_GPCDMA_CSR_ONCE;
   820		/* Enable IRQ mask */
   821		csr |= TEGRA_GPCDMA_CSR_IRQ_MASK;
   822		/* Enable the dma interrupt */
   823		if (flags & DMA_PREP_INTERRUPT)
   824			csr |= TEGRA_GPCDMA_CSR_IE_EOC;
   825		/* Configure default priority weight for the channel */
   826		csr |= (1 << TEGRA_GPCDMA_CSR_WEIGHT_SHIFT);
   827	
   828		mc_seq =  tdc_read(tdc, TEGRA_GPCDMA_CHAN_MCSEQ);
   829		/* retain stream-id and clean rest */
   830		mc_seq &= (TEGRA_GPCDMA_MCSEQ_STREAM_ID_MASK <<
   831				TEGRA_GPCDMA_MCSEQ_STREAM_ID0_SHIFT);
   832	
   833		/* Set the address wrapping */
   834		mc_seq |= TEGRA_GPCDMA_MCSEQ_WRAP_NONE <<
   835				TEGRA_GPCDMA_MCSEQ_WRAP0_SHIFT;
   836		mc_seq |= TEGRA_GPCDMA_MCSEQ_WRAP_NONE <<
   837				TEGRA_GPCDMA_MCSEQ_WRAP1_SHIFT;
   838	
   839		/* Program outstanding MC requests */
   840		mc_seq |= (1 << TEGRA_GPCDMA_MCSEQ_REQ_COUNT_SHIFT);
   841		/* Set burst size */
   842		mc_seq |= TEGRA_GPCDMA_MCSEQ_BURST_16;
   843	
   844		dma_desc = kzalloc(sizeof(struct tegra_dma_desc), GFP_NOWAIT);
   845		if (!dma_desc) {
   846			dev_err(tdc2dev(tdc), "Dma descriptors not available\n");
   847			return NULL;
   848		}
   849		dma_desc->bytes_requested = 0;
   850		dma_desc->bytes_transferred = 0;
   851	
   852		if ((len & 3) || (dest & 3) ||
   853			(len > tdc->tdma->chip_data->max_dma_count)) {
   854			dev_err(tdc2dev(tdc),
   855				"Dma length/memory address is not supported\n");
   856			kfree(dma_desc);
   857			return NULL;
   858		}
   859	
   860		sg_req = kzalloc(sizeof(struct tegra_dma_sg_req), GFP_NOWAIT);
   861		if (!sg_req) {
   862			dev_err(tdc2dev(tdc), "Dma sg-req not available\n");
   863			kfree(dma_desc);
   864			return NULL;
   865		}
   866	
   867		dma_desc->bytes_requested += len;
   868		sg_req->ch_regs.src_ptr = 0;
   869		sg_req->ch_regs.dst_ptr = dest;
 > 870		sg_req->ch_regs.high_addr_ptr = ((dest >> 32) &
   871				TEGRA_GPCDMA_HIGH_ADDR_DST_PTR_MASK) <<
   872				TEGRA_GPCDMA_HIGH_ADDR_DST_PTR_SHIFT;
   873		sg_req->ch_regs.fixed_pattern = value;
   874		/* Word count reg takes value as (N +1) words */
   875		sg_req->ch_regs.wcount = ((len - 4) >> 2);
   876		sg_req->ch_regs.csr = csr;
   877		sg_req->ch_regs.mmio_seq = 0;
   878		sg_req->ch_regs.mc_seq = mc_seq;
   879		sg_req->configured = false;
   880		sg_req->skipped = false;
   881		sg_req->last_sg = false;
   882		sg_req->dma_desc = dma_desc;
   883		sg_req->req_len = len;
   884		sg_req->last_sg = true;
   885	
   886		list_add_tail(&sg_req->node, &tdc->pending_sg_req);
   887	
   888		if (!tdc->isr_handler)
   889			tdc->isr_handler = handle_once_dma_done;
   890	
   891		tdc->pending_dma_desc = NULL;
   892	
   893		return vchan_tx_prep(&tdc->vc, &dma_desc->vd, flags);
   894	}
   895	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 74099 bytes --]

  parent reply index

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-20  6:34 [Patch v1 0/4] Add Nvidia Tegra GPC-DMA driver Rajesh Gumasta
2020-07-20  6:34 ` [Patch v1 1/4] dt-bindings: dma: Add DT binding document Rajesh Gumasta
2020-07-20  6:34 ` [Patch v1 2/4] dma: tegra: Adding Tegra GPC DMA controller driver Rajesh Gumasta
2020-07-20  9:37   ` Philipp Zabel
2020-07-20 11:58   ` kernel test robot [this message]
2020-07-20 15:12   ` Dmitry Osipenko
2020-07-20 15:42   ` Randy Dunlap
2020-07-27  9:07   ` Vinod Koul
2020-07-20  6:34 ` [Patch v1 3/4] arm64: configs: enable tegra gpc dma Rajesh Gumasta
2020-07-20  6:34 ` [Patch v1 4/4] arm64: tegra: Add GPCDMA node in dt Rajesh Gumasta
2020-07-20  9:25 ` [Patch v1 0/4] Add Nvidia Tegra GPC-DMA driver Thierry Reding
2020-07-20 10:00   ` Rajesh Gumasta

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=202007201900.SRWPsxcW%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=dan.j.williams@intel.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=jonathanh@nvidia.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kyarlagadda@nvidia.com \
    --cc=ldewangan@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=p.zabel@pengutronix.de \
    --cc=rgumasta@nvidia.com \
    --cc=thierry.reding@gmail.com \
    --cc=vkoul@kernel.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

dmaengine Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dmaengine/0 dmaengine/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dmaengine dmaengine/ https://lore.kernel.org/dmaengine \
		dmaengine@vger.kernel.org
	public-inbox-index dmaengine

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.dmaengine


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git