public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Vladimir Moravcevic <vmoravcevic@axiado.com>,
	Krutik Shah <krutikshah@axiado.com>,
	Prasad Bolisetty <pbolisetty@axiado.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>
Cc: oe-kbuild-all@lists.linux.dev, linux-usb@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, openbmc@lists.ozlabs.org,
	Vladimir Moravcevic <vmoravcevic@axiado.com>
Subject: Re: [PATCH 2/3] usb: gadget: udc: Add UDC driver for Axiado Device controller IP Corigine
Date: Tue, 3 Feb 2026 01:37:05 +0800	[thread overview]
Message-ID: <202602030131.VCTzZ4me-lkp@intel.com> (raw)
In-Reply-To: <20260202-axiado-ax3000-usb-device-controller-v1-2-45ce0a8b014f@axiado.com>

Hi Vladimir,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 63804fed149a6750ffd28610c5c1c98cce6bd377]

url:    https://github.com/intel-lab-lkp/linux/commits/Vladimir-Moravcevic/dt-bindings-usb-axiado-ax3000-udc-Add-Axiado-UDC/20260202-211951
base:   63804fed149a6750ffd28610c5c1c98cce6bd377
patch link:    https://lore.kernel.org/r/20260202-axiado-ax3000-usb-device-controller-v1-2-45ce0a8b014f%40axiado.com
patch subject: [PATCH 2/3] usb: gadget: udc: Add UDC driver for Axiado Device controller IP Corigine
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20260203/202602030131.VCTzZ4me-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260203/202602030131.VCTzZ4me-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/202602030131.VCTzZ4me-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/usb/gadget/udc/crg_udc.c: In function 'crg_udc_queue_trbs':
>> drivers/usb/gadget/udc/crg_udc.c:881:13: warning: variable 'num_sgs' set but not used [-Wunused-but-set-variable]
     881 |         u32 num_sgs = 0;
         |             ^~~~~~~
   drivers/usb/gadget/udc/crg_udc.c: In function 'crg_udc_ep_enable':
>> drivers/usb/gadget/udc/crg_udc.c:1812:26: warning: variable 'uccr' set but not used [-Wunused-but-set-variable]
    1812 |         struct crg_uccr *uccr;
         |                          ^~~~
>> drivers/usb/gadget/udc/crg_udc.c:1811:25: warning: variable 'epcx' set but not used [-Wunused-but-set-variable]
    1811 |         struct ep_cx_s *epcx;
         |                         ^~~~
   drivers/usb/gadget/udc/crg_udc.c: In function 'crg_udc_common_irq':
>> drivers/usb/gadget/udc/crg_udc.c:4250:13: warning: variable 'retval' set but not used [-Wunused-but-set-variable]
    4250 |         int retval = 0;
         |             ^~~~~~
   drivers/usb/gadget/udc/crg_udc.c: At top level:
>> drivers/usb/gadget/udc/crg_udc.c:126:19: warning: 'driver_name' defined but not used [-Wunused-const-variable=]
     126 | static const char driver_name[] = "crg_udc";
         |                   ^~~~~~~~~~~
--
>> Warning: drivers/usb/gadget/udc/crg_udc.c:4325 cannot understand function prototype: 'const struct of_device_id of_crg_udc_match[] ='


vim +/num_sgs +881 drivers/usb/gadget/udc/crg_udc.c

   858	
   859	static int crg_udc_queue_trbs(struct crg_udc_ep *udc_ep_ptr,
   860			struct crg_udc_request *udc_req_ptr,  bool b_isoc,
   861			u32 xfer_ring_size,
   862			u32 num_trbs_needed, u64 buffer_length)
   863	{
   864		struct crg_gadget_dev *crg_udc = udc_ep_ptr->crg_udc;
   865		struct transfer_trb_s *p_xfer_ring = udc_ep_ptr->first_trb;
   866		u32 num_trbs_ava = 0;
   867		struct usb_request *usb_req = &udc_req_ptr->usb_req;
   868		u64 buff_len_temp = 0;
   869		u32 i, j = 1;
   870		struct transfer_trb_s *enq_pt = udc_ep_ptr->enq_pt;
   871		u8 td_size;
   872		u8 chain_bit = 1;
   873		u8 short_pkt = 0;
   874		u8 intr_on_compl = 0;
   875		u32 count;
   876		bool full_td = true;
   877		u32 intr_rate;
   878		dma_addr_t trb_buf_addr;
   879		bool need_zlp = false;
   880		struct scatterlist *sg = NULL;
 > 881		u32 num_sgs = 0;
   882		u64 sg_addr = 0;
   883	
   884		dev_dbg(crg_udc->dev, "%s %s\n", __func__, udc_ep_ptr->usb_ep.name);
   885		if (udc_req_ptr->usb_req.num_sgs) {
   886			num_sgs = udc_req_ptr->usb_req.num_sgs;
   887			sg = udc_req_ptr->usb_req.sg;
   888			sg_addr = (u64) sg_dma_address(sg);
   889			buffer_length = sg_dma_len(sg);
   890	
   891			dev_dbg(crg_udc->dev, "num_sgs = %d, num_mapped_sgs = %d\n",
   892				udc_req_ptr->usb_req.num_sgs,
   893				udc_req_ptr->usb_req.num_mapped_sgs);
   894			dev_dbg(crg_udc->dev,
   895				"sg_addr = %p, buffer_length = %llu, num_trbs = %d\n",
   896				(void *)sg_addr, buffer_length, num_trbs_needed);
   897		}
   898	
   899		if (!b_isoc) {
   900			if (udc_req_ptr->usb_req.zero == 1 &&
   901				udc_req_ptr->usb_req.length != 0 &&
   902				((udc_req_ptr->usb_req.length %
   903				  udc_ep_ptr->usb_ep.maxpacket) == 0)) {
   904				need_zlp = true;
   905			}
   906		}
   907	
   908		td_size = num_trbs_needed;
   909	
   910		num_trbs_ava = room_on_ring(crg_udc, xfer_ring_size,
   911			p_xfer_ring, udc_ep_ptr->enq_pt, udc_ep_ptr->deq_pt);
   912	
   913		/* trb_buf_addr points to the addr of the buffer that we write in
   914		 * each TRB. If this function is called to complete the pending TRB
   915		 * transfers of a previous request, point it to the buffer that is
   916		 * not transferred, or else point it to the starting address of the
   917		 * buffer received in usb_request
   918		 */
   919		if (udc_req_ptr->trbs_needed) {
   920			/* Here udc_req_ptr->trbs_needed is used to indicate if we
   921			 * are completing a previous req
   922			 */
   923			trb_buf_addr = usb_req->dma +
   924				(usb_req->length - udc_req_ptr->buff_len_left);
   925		} else {
   926			if (sg_addr)
   927				trb_buf_addr = sg_addr;
   928			else
   929				trb_buf_addr = usb_req->dma;
   930		}
   931	
   932		if (num_trbs_ava >= num_trbs_needed) {
   933			count = num_trbs_needed;
   934		} else {
   935			if (b_isoc) {
   936				struct crg_udc_request *udc_req_ptr_temp;
   937				u8 temp = 0;
   938	
   939				list_for_each_entry(udc_req_ptr_temp,
   940						&udc_ep_ptr->queue, queue) {
   941					temp++;
   942				}
   943	
   944				if (temp >= 2) {
   945					dev_err(crg_udc->dev, "%s don't do isoc discard\n", __func__);
   946					/*  we already scheduled two mfi in advance. */
   947					return 0;
   948				}
   949			}
   950	
   951			/* always keep one trb for zlp. */
   952			count = num_trbs_ava;
   953			full_td = false;
   954			dev_dbg(crg_udc->dev, "TRB Ring Full. Avail: 0x%x Req: 0x%x\n",
   955					num_trbs_ava, num_trbs_needed);
   956			udc_ep_ptr->tran_ring_full = true;
   957	
   958			/*if there is still some trb not queued,
   959			 *it means last queued
   960			 *trb is not the last trb of TD, so no need zlp
   961			 */
   962			need_zlp = false;
   963		}
   964	
   965		for (i = 0; i < count; i++) {
   966			if ((udc_req_ptr->usb_req.num_sgs) && (buffer_length == 0)) {
   967				sg = sg_next(sg);
   968				if (sg) {
   969					trb_buf_addr = (u64) sg_dma_address(sg);
   970					buffer_length = sg_dma_len(sg);
   971					dev_dbg(crg_udc->dev,
   972						"trb_buf_addr = %p, num_trbs = %d\n",
   973						(void *)trb_buf_addr, num_trbs_needed);
   974					dev_dbg(crg_udc->dev, "buffer_length = %llu\n",
   975						buffer_length);
   976				} else {
   977					dev_err(crg_udc->dev,
   978						"scatterlist ended unexpectedly (i=%d, count=%d)\n",
   979						i, count);
   980					return -EINVAL;
   981				}
   982			}
   983	
   984			if (buffer_length > TRB_MAX_BUFFER_SIZE)
   985				buff_len_temp = TRB_MAX_BUFFER_SIZE;
   986			else
   987				buff_len_temp = buffer_length;
   988	
   989			buffer_length -= buff_len_temp;
   990	
   991			if (usb_endpoint_dir_out(udc_ep_ptr->desc))
   992				short_pkt = 1;
   993	
   994			if ((buffer_length == 0) && (i == (count - 1))) {
   995				chain_bit = 0;
   996				intr_on_compl = 1;
   997				udc_req_ptr->all_trbs_queued = 1;
   998			}
   999	
  1000	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2026-02-02 17:37 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-02 13:16 [PATCH 0/3] Axiado AX3000 USB Device Controller Vladimir Moravcevic
2026-02-02 13:16 ` [PATCH 1/3] dt-bindings: usb: axiado,ax3000-udc: Add Axiado UDC Vladimir Moravcevic
2026-02-05  7:42   ` Krzysztof Kozlowski
2026-02-02 13:16 ` [PATCH 2/3] usb: gadget: udc: Add UDC driver for Axiado Device controller IP Corigine Vladimir Moravcevic
2026-02-02 17:37   ` kernel test robot [this message]
2026-02-02 18:20   ` kernel test robot
2026-02-05  7:46   ` Krzysztof Kozlowski
2026-02-05  7:57   ` Greg Kroah-Hartman
2026-02-02 13:16 ` [PATCH 3/3] MAINTAINERS: Add entries for the Axiado USB UDC Vladimir Moravcevic
2026-02-05  7:37   ` Krzysztof Kozlowski
2026-02-05  7:43   ` Greg Kroah-Hartman

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=202602030131.VCTzZ4me-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=krutikshah@axiado.com \
    --cc=krzk@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=openbmc@lists.ozlabs.org \
    --cc=pbolisetty@axiado.com \
    --cc=robh@kernel.org \
    --cc=vmoravcevic@axiado.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox