linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* drivers/usb/musb/musbhsdma.c:324:8: warning: variable 'devctl' set but not used
@ 2020-10-27 11:19 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2020-10-27 11:19 UTC (permalink / raw)
  To: Paul Cercueil; +Cc: kbuild-all, linux-kernel, Greg Kroah-Hartman, Bin Liu

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

Hi Paul,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   4525c8781ec0701ce824e8bd379ae1b129e26568
commit: 57aadb46bd634c7889403220dcd110c7ff2c4868 usb: musb: jz4740: Add support for DMA
date:   7 months ago
config: mips-randconfig-r022-20201027 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=57aadb46bd634c7889403220dcd110c7ff2c4868
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 57aadb46bd634c7889403220dcd110c7ff2c4868
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

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/usb/musb/musbhsdma.c: In function 'dma_controller_irq':
>> drivers/usb/musb/musbhsdma.c:324:8: warning: variable 'devctl' set but not used [-Wunused-but-set-variable]
     324 |     u8 devctl;
         |        ^~~~~~

vim +/devctl +324 drivers/usb/musb/musbhsdma.c

550a7375fe72092 Felipe Balbi    2008-07-24  265  
edce61776c7e212 Min Guo         2020-01-15  266  irqreturn_t dma_controller_irq(int irq, void *private_data)
550a7375fe72092 Felipe Balbi    2008-07-24  267  {
458e6a511f9dc91 Felipe Balbi    2008-09-11  268  	struct musb_dma_controller *controller = private_data;
458e6a511f9dc91 Felipe Balbi    2008-09-11  269  	struct musb *musb = controller->private_data;
458e6a511f9dc91 Felipe Balbi    2008-09-11  270  	struct musb_dma_channel *musb_channel;
458e6a511f9dc91 Felipe Balbi    2008-09-11  271  	struct dma_channel *channel;
458e6a511f9dc91 Felipe Balbi    2008-09-11  272  
458e6a511f9dc91 Felipe Balbi    2008-09-11  273  	void __iomem *mbase = controller->base;
458e6a511f9dc91 Felipe Balbi    2008-09-11  274  
550a7375fe72092 Felipe Balbi    2008-07-24  275  	irqreturn_t retval = IRQ_NONE;
458e6a511f9dc91 Felipe Balbi    2008-09-11  276  
550a7375fe72092 Felipe Balbi    2008-07-24  277  	unsigned long flags;
550a7375fe72092 Felipe Balbi    2008-07-24  278  
458e6a511f9dc91 Felipe Balbi    2008-09-11  279  	u8 bchannel;
458e6a511f9dc91 Felipe Balbi    2008-09-11  280  	u8 int_hsdma;
458e6a511f9dc91 Felipe Balbi    2008-09-11  281  
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  282  	u32 addr, count;
458e6a511f9dc91 Felipe Balbi    2008-09-11  283  	u16 csr;
458e6a511f9dc91 Felipe Balbi    2008-09-11  284  
550a7375fe72092 Felipe Balbi    2008-07-24  285  	spin_lock_irqsave(&musb->lock, flags);
550a7375fe72092 Felipe Balbi    2008-07-24  286  
9c93d7fd464e7aa Min Guo         2020-01-15  287  	int_hsdma = musb_clearb(mbase, MUSB_HSDMA_INTR);
550a7375fe72092 Felipe Balbi    2008-07-24  288  
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  289  	if (!int_hsdma) {
b99d3659b309b35 Bin Liu         2016-06-30  290  		musb_dbg(musb, "spurious DMA irq");
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  291  
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  292  		for (bchannel = 0; bchannel < MUSB_HSDMA_CHANNELS; bchannel++) {
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  293  			musb_channel = (struct musb_dma_channel *)
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  294  					&(controller->channel[bchannel]);
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  295  			channel = &musb_channel->channel;
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  296  			if (channel->status == MUSB_DMA_STATUS_BUSY) {
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  297  				count = musb_read_hsdma_count(mbase, bchannel);
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  298  
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  299  				if (count == 0)
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  300  					int_hsdma |= (1 << bchannel);
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  301  			}
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  302  		}
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  303  
b99d3659b309b35 Bin Liu         2016-06-30  304  		musb_dbg(musb, "int_hsdma = 0x%x", int_hsdma);
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  305  
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  306  		if (!int_hsdma)
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  307  			goto done;
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  308  	}
f933a0c0fe0ea5f Anand Gadiyar   2009-12-28  309  
458e6a511f9dc91 Felipe Balbi    2008-09-11  310  	for (bchannel = 0; bchannel < MUSB_HSDMA_CHANNELS; bchannel++) {
458e6a511f9dc91 Felipe Balbi    2008-09-11  311  		if (int_hsdma & (1 << bchannel)) {
458e6a511f9dc91 Felipe Balbi    2008-09-11  312  			musb_channel = (struct musb_dma_channel *)
458e6a511f9dc91 Felipe Balbi    2008-09-11  313  					&(controller->channel[bchannel]);
458e6a511f9dc91 Felipe Balbi    2008-09-11  314  			channel = &musb_channel->channel;
550a7375fe72092 Felipe Balbi    2008-07-24  315  
550a7375fe72092 Felipe Balbi    2008-07-24  316  			csr = musb_readw(mbase,
458e6a511f9dc91 Felipe Balbi    2008-09-11  317  					MUSB_HSDMA_CHANNEL_OFFSET(bchannel,
550a7375fe72092 Felipe Balbi    2008-07-24  318  							MUSB_HSDMA_CONTROL));
550a7375fe72092 Felipe Balbi    2008-07-24  319  
458e6a511f9dc91 Felipe Balbi    2008-09-11  320  			if (csr & (1 << MUSB_HSDMA_BUSERROR_SHIFT)) {
458e6a511f9dc91 Felipe Balbi    2008-09-11  321  				musb_channel->channel.status =
550a7375fe72092 Felipe Balbi    2008-07-24  322  					MUSB_DMA_STATUS_BUS_ABORT;
458e6a511f9dc91 Felipe Balbi    2008-09-11  323  			} else {
550a7375fe72092 Felipe Balbi    2008-07-24 @324  				u8 devctl;
550a7375fe72092 Felipe Balbi    2008-07-24  325  
6995eb68aab70e7 Bryan Wu        2008-12-02  326  				addr = musb_read_hsdma_addr(mbase,
6995eb68aab70e7 Bryan Wu        2008-12-02  327  						bchannel);
458e6a511f9dc91 Felipe Balbi    2008-09-11  328  				channel->actual_len = addr
458e6a511f9dc91 Felipe Balbi    2008-09-11  329  					- musb_channel->start_addr;
550a7375fe72092 Felipe Balbi    2008-07-24  330  
b99d3659b309b35 Bin Liu         2016-06-30  331  				musb_dbg(musb, "ch %p, 0x%x -> 0x%x (%zu / %d) %s",
458e6a511f9dc91 Felipe Balbi    2008-09-11  332  					channel, musb_channel->start_addr,
458e6a511f9dc91 Felipe Balbi    2008-09-11  333  					addr, channel->actual_len,
458e6a511f9dc91 Felipe Balbi    2008-09-11  334  					musb_channel->len,
458e6a511f9dc91 Felipe Balbi    2008-09-11  335  					(channel->actual_len
458e6a511f9dc91 Felipe Balbi    2008-09-11  336  						< musb_channel->len) ?
550a7375fe72092 Felipe Balbi    2008-07-24  337  					"=> reconfig 0" : "=> complete");
550a7375fe72092 Felipe Balbi    2008-07-24  338  
550a7375fe72092 Felipe Balbi    2008-07-24  339  				devctl = musb_readb(mbase, MUSB_DEVCTL);
550a7375fe72092 Felipe Balbi    2008-07-24  340  
458e6a511f9dc91 Felipe Balbi    2008-09-11  341  				channel->status = MUSB_DMA_STATUS_FREE;
550a7375fe72092 Felipe Balbi    2008-07-24  342  
550a7375fe72092 Felipe Balbi    2008-07-24  343  				/* completed */
c418fd6c01fbc55 Paul Elder      2019-01-30  344  				if (musb_channel->transmit &&
c418fd6c01fbc55 Paul Elder      2019-01-30  345  					(!channel->desired_mode ||
c418fd6c01fbc55 Paul Elder      2019-01-30  346  					(channel->actual_len %
c418fd6c01fbc55 Paul Elder      2019-01-30  347  					    musb_channel->max_packet_sz))) {
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  348  					u8  epnum  = musb_channel->epnum;
d026e9c76aac363 Tony Lindgren   2014-11-24  349  					int offset = musb->io.ep_offset(epnum,
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  350  								    MUSB_TXCSR);
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  351  					u16 txcsr;
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  352  
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  353  					/*
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  354  					 * The programming guide says that we
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  355  					 * must clear DMAENAB before DMAMODE.
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  356  					 */
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  357  					musb_ep_select(mbase, epnum);
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  358  					txcsr = musb_readw(mbase, offset);
c418fd6c01fbc55 Paul Elder      2019-01-30  359  					if (channel->desired_mode == 1) {
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  360  						txcsr &= ~(MUSB_TXCSR_DMAENAB
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  361  							| MUSB_TXCSR_AUTOSET);
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  362  						musb_writew(mbase, offset, txcsr);
550a7375fe72092 Felipe Balbi    2008-07-24  363  						/* Send out the packet */
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  364  						txcsr &= ~MUSB_TXCSR_DMAMODE;
c418fd6c01fbc55 Paul Elder      2019-01-30  365  						txcsr |= MUSB_TXCSR_DMAENAB;
c418fd6c01fbc55 Paul Elder      2019-01-30  366  					}
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  367  					txcsr |=  MUSB_TXCSR_TXPKTRDY;
b6e434a5404b9ce Sergei Shtylyov 2009-03-26  368  					musb_writew(mbase, offset, txcsr);
458e6a511f9dc91 Felipe Balbi    2008-09-11  369  				}
c7bbc056a92476b Sergei Shtylyov 2009-03-26  370  				musb_dma_completion(musb, musb_channel->epnum,
c7bbc056a92476b Sergei Shtylyov 2009-03-26  371  						    musb_channel->transmit);
550a7375fe72092 Felipe Balbi    2008-07-24  372  			}
550a7375fe72092 Felipe Balbi    2008-07-24  373  		}
550a7375fe72092 Felipe Balbi    2008-07-24  374  	}
6995eb68aab70e7 Bryan Wu        2008-12-02  375  
550a7375fe72092 Felipe Balbi    2008-07-24  376  	retval = IRQ_HANDLED;
550a7375fe72092 Felipe Balbi    2008-07-24  377  done:
550a7375fe72092 Felipe Balbi    2008-07-24  378  	spin_unlock_irqrestore(&musb->lock, flags);
550a7375fe72092 Felipe Balbi    2008-07-24  379  	return retval;
550a7375fe72092 Felipe Balbi    2008-07-24  380  }
edce61776c7e212 Min Guo         2020-01-15  381  EXPORT_SYMBOL_GPL(dma_controller_irq);
550a7375fe72092 Felipe Balbi    2008-07-24  382  

:::::: The code at line 324 was first introduced by commit
:::::: 550a7375fe720924241f0eb76e4a5c1a3eb8c32f USB: Add MUSB and TUSB support

:::::: TO: Felipe Balbi <felipe.balbi@nokia.com>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>

---
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: 23376 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* drivers/usb/musb/musbhsdma.c:324:8: warning: variable 'devctl' set but not used
@ 2020-11-14 23:02 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2020-11-14 23:02 UTC (permalink / raw)
  To: Min Guo
  Cc: kbuild-all, linux-kernel, Greg Kroah-Hartman, Yonglong Wu, Bin Liu

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f01c30de86f1047e9bae1b1b1417b0ce8dcd15b1
commit: 0990366bab3c6afb93b276106e1e24d4bc69db7b usb: musb: Add support for MediaTek musb controller
date:   10 months ago
config: microblaze-randconfig-r001-20201115 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0990366bab3c6afb93b276106e1e24d4bc69db7b
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 0990366bab3c6afb93b276106e1e24d4bc69db7b
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=microblaze 

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/usb/musb/musbhsdma.c: In function 'dma_controller_irq':
>> drivers/usb/musb/musbhsdma.c:324:8: warning: variable 'devctl' set but not used [-Wunused-but-set-variable]
     324 |     u8 devctl;
         |        ^~~~~~

vim +/devctl +324 drivers/usb/musb/musbhsdma.c

550a7375fe7209 Felipe Balbi    2008-07-24  265  
edce61776c7e21 Min Guo         2020-01-15  266  irqreturn_t dma_controller_irq(int irq, void *private_data)
550a7375fe7209 Felipe Balbi    2008-07-24  267  {
458e6a511f9dc9 Felipe Balbi    2008-09-11  268  	struct musb_dma_controller *controller = private_data;
458e6a511f9dc9 Felipe Balbi    2008-09-11  269  	struct musb *musb = controller->private_data;
458e6a511f9dc9 Felipe Balbi    2008-09-11  270  	struct musb_dma_channel *musb_channel;
458e6a511f9dc9 Felipe Balbi    2008-09-11  271  	struct dma_channel *channel;
458e6a511f9dc9 Felipe Balbi    2008-09-11  272  
458e6a511f9dc9 Felipe Balbi    2008-09-11  273  	void __iomem *mbase = controller->base;
458e6a511f9dc9 Felipe Balbi    2008-09-11  274  
550a7375fe7209 Felipe Balbi    2008-07-24  275  	irqreturn_t retval = IRQ_NONE;
458e6a511f9dc9 Felipe Balbi    2008-09-11  276  
550a7375fe7209 Felipe Balbi    2008-07-24  277  	unsigned long flags;
550a7375fe7209 Felipe Balbi    2008-07-24  278  
458e6a511f9dc9 Felipe Balbi    2008-09-11  279  	u8 bchannel;
458e6a511f9dc9 Felipe Balbi    2008-09-11  280  	u8 int_hsdma;
458e6a511f9dc9 Felipe Balbi    2008-09-11  281  
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  282  	u32 addr, count;
458e6a511f9dc9 Felipe Balbi    2008-09-11  283  	u16 csr;
458e6a511f9dc9 Felipe Balbi    2008-09-11  284  
550a7375fe7209 Felipe Balbi    2008-07-24  285  	spin_lock_irqsave(&musb->lock, flags);
550a7375fe7209 Felipe Balbi    2008-07-24  286  
9c93d7fd464e7a Min Guo         2020-01-15  287  	int_hsdma = musb_clearb(mbase, MUSB_HSDMA_INTR);
550a7375fe7209 Felipe Balbi    2008-07-24  288  
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  289  	if (!int_hsdma) {
b99d3659b309b3 Bin Liu         2016-06-30  290  		musb_dbg(musb, "spurious DMA irq");
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  291  
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  292  		for (bchannel = 0; bchannel < MUSB_HSDMA_CHANNELS; bchannel++) {
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  293  			musb_channel = (struct musb_dma_channel *)
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  294  					&(controller->channel[bchannel]);
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  295  			channel = &musb_channel->channel;
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  296  			if (channel->status == MUSB_DMA_STATUS_BUSY) {
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  297  				count = musb_read_hsdma_count(mbase, bchannel);
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  298  
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  299  				if (count == 0)
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  300  					int_hsdma |= (1 << bchannel);
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  301  			}
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  302  		}
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  303  
b99d3659b309b3 Bin Liu         2016-06-30  304  		musb_dbg(musb, "int_hsdma = 0x%x", int_hsdma);
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  305  
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  306  		if (!int_hsdma)
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  307  			goto done;
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  308  	}
f933a0c0fe0ea5 Anand Gadiyar   2009-12-28  309  
458e6a511f9dc9 Felipe Balbi    2008-09-11  310  	for (bchannel = 0; bchannel < MUSB_HSDMA_CHANNELS; bchannel++) {
458e6a511f9dc9 Felipe Balbi    2008-09-11  311  		if (int_hsdma & (1 << bchannel)) {
458e6a511f9dc9 Felipe Balbi    2008-09-11  312  			musb_channel = (struct musb_dma_channel *)
458e6a511f9dc9 Felipe Balbi    2008-09-11  313  					&(controller->channel[bchannel]);
458e6a511f9dc9 Felipe Balbi    2008-09-11  314  			channel = &musb_channel->channel;
550a7375fe7209 Felipe Balbi    2008-07-24  315  
550a7375fe7209 Felipe Balbi    2008-07-24  316  			csr = musb_readw(mbase,
458e6a511f9dc9 Felipe Balbi    2008-09-11  317  					MUSB_HSDMA_CHANNEL_OFFSET(bchannel,
550a7375fe7209 Felipe Balbi    2008-07-24  318  							MUSB_HSDMA_CONTROL));
550a7375fe7209 Felipe Balbi    2008-07-24  319  
458e6a511f9dc9 Felipe Balbi    2008-09-11  320  			if (csr & (1 << MUSB_HSDMA_BUSERROR_SHIFT)) {
458e6a511f9dc9 Felipe Balbi    2008-09-11  321  				musb_channel->channel.status =
550a7375fe7209 Felipe Balbi    2008-07-24  322  					MUSB_DMA_STATUS_BUS_ABORT;
458e6a511f9dc9 Felipe Balbi    2008-09-11  323  			} else {
550a7375fe7209 Felipe Balbi    2008-07-24 @324  				u8 devctl;
550a7375fe7209 Felipe Balbi    2008-07-24  325  
6995eb68aab70e Bryan Wu        2008-12-02  326  				addr = musb_read_hsdma_addr(mbase,
6995eb68aab70e Bryan Wu        2008-12-02  327  						bchannel);
458e6a511f9dc9 Felipe Balbi    2008-09-11  328  				channel->actual_len = addr
458e6a511f9dc9 Felipe Balbi    2008-09-11  329  					- musb_channel->start_addr;
550a7375fe7209 Felipe Balbi    2008-07-24  330  
b99d3659b309b3 Bin Liu         2016-06-30  331  				musb_dbg(musb, "ch %p, 0x%x -> 0x%x (%zu / %d) %s",
458e6a511f9dc9 Felipe Balbi    2008-09-11  332  					channel, musb_channel->start_addr,
458e6a511f9dc9 Felipe Balbi    2008-09-11  333  					addr, channel->actual_len,
458e6a511f9dc9 Felipe Balbi    2008-09-11  334  					musb_channel->len,
458e6a511f9dc9 Felipe Balbi    2008-09-11  335  					(channel->actual_len
458e6a511f9dc9 Felipe Balbi    2008-09-11  336  						< musb_channel->len) ?
550a7375fe7209 Felipe Balbi    2008-07-24  337  					"=> reconfig 0" : "=> complete");
550a7375fe7209 Felipe Balbi    2008-07-24  338  
550a7375fe7209 Felipe Balbi    2008-07-24  339  				devctl = musb_readb(mbase, MUSB_DEVCTL);
550a7375fe7209 Felipe Balbi    2008-07-24  340  
458e6a511f9dc9 Felipe Balbi    2008-09-11  341  				channel->status = MUSB_DMA_STATUS_FREE;
550a7375fe7209 Felipe Balbi    2008-07-24  342  
550a7375fe7209 Felipe Balbi    2008-07-24  343  				/* completed */
c418fd6c01fbc5 Paul Elder      2019-01-30  344  				if (musb_channel->transmit &&
c418fd6c01fbc5 Paul Elder      2019-01-30  345  					(!channel->desired_mode ||
c418fd6c01fbc5 Paul Elder      2019-01-30  346  					(channel->actual_len %
c418fd6c01fbc5 Paul Elder      2019-01-30  347  					    musb_channel->max_packet_sz))) {
b6e434a5404b9c Sergei Shtylyov 2009-03-26  348  					u8  epnum  = musb_channel->epnum;
d026e9c76aac36 Tony Lindgren   2014-11-24  349  					int offset = musb->io.ep_offset(epnum,
b6e434a5404b9c Sergei Shtylyov 2009-03-26  350  								    MUSB_TXCSR);
b6e434a5404b9c Sergei Shtylyov 2009-03-26  351  					u16 txcsr;
b6e434a5404b9c Sergei Shtylyov 2009-03-26  352  
b6e434a5404b9c Sergei Shtylyov 2009-03-26  353  					/*
b6e434a5404b9c Sergei Shtylyov 2009-03-26  354  					 * The programming guide says that we
b6e434a5404b9c Sergei Shtylyov 2009-03-26  355  					 * must clear DMAENAB before DMAMODE.
b6e434a5404b9c Sergei Shtylyov 2009-03-26  356  					 */
b6e434a5404b9c Sergei Shtylyov 2009-03-26  357  					musb_ep_select(mbase, epnum);
b6e434a5404b9c Sergei Shtylyov 2009-03-26  358  					txcsr = musb_readw(mbase, offset);
c418fd6c01fbc5 Paul Elder      2019-01-30  359  					if (channel->desired_mode == 1) {
b6e434a5404b9c Sergei Shtylyov 2009-03-26  360  						txcsr &= ~(MUSB_TXCSR_DMAENAB
b6e434a5404b9c Sergei Shtylyov 2009-03-26  361  							| MUSB_TXCSR_AUTOSET);
b6e434a5404b9c Sergei Shtylyov 2009-03-26  362  						musb_writew(mbase, offset, txcsr);
550a7375fe7209 Felipe Balbi    2008-07-24  363  						/* Send out the packet */
b6e434a5404b9c Sergei Shtylyov 2009-03-26  364  						txcsr &= ~MUSB_TXCSR_DMAMODE;
c418fd6c01fbc5 Paul Elder      2019-01-30  365  						txcsr |= MUSB_TXCSR_DMAENAB;
c418fd6c01fbc5 Paul Elder      2019-01-30  366  					}
b6e434a5404b9c Sergei Shtylyov 2009-03-26  367  					txcsr |=  MUSB_TXCSR_TXPKTRDY;
b6e434a5404b9c Sergei Shtylyov 2009-03-26  368  					musb_writew(mbase, offset, txcsr);
458e6a511f9dc9 Felipe Balbi    2008-09-11  369  				}
c7bbc056a92476 Sergei Shtylyov 2009-03-26  370  				musb_dma_completion(musb, musb_channel->epnum,
c7bbc056a92476 Sergei Shtylyov 2009-03-26  371  						    musb_channel->transmit);
550a7375fe7209 Felipe Balbi    2008-07-24  372  			}
550a7375fe7209 Felipe Balbi    2008-07-24  373  		}
550a7375fe7209 Felipe Balbi    2008-07-24  374  	}
6995eb68aab70e Bryan Wu        2008-12-02  375  
550a7375fe7209 Felipe Balbi    2008-07-24  376  	retval = IRQ_HANDLED;
550a7375fe7209 Felipe Balbi    2008-07-24  377  done:
550a7375fe7209 Felipe Balbi    2008-07-24  378  	spin_unlock_irqrestore(&musb->lock, flags);
550a7375fe7209 Felipe Balbi    2008-07-24  379  	return retval;
550a7375fe7209 Felipe Balbi    2008-07-24  380  }
edce61776c7e21 Min Guo         2020-01-15  381  EXPORT_SYMBOL_GPL(dma_controller_irq);
550a7375fe7209 Felipe Balbi    2008-07-24  382  

:::::: The code at line 324 was first introduced by commit
:::::: 550a7375fe720924241f0eb76e4a5c1a3eb8c32f USB: Add MUSB and TUSB support

:::::: TO: Felipe Balbi <felipe.balbi@nokia.com>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>

---
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: 26237 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-11-14 23:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-27 11:19 drivers/usb/musb/musbhsdma.c:324:8: warning: variable 'devctl' set but not used kernel test robot
2020-11-14 23:02 kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).