Re: [RFC 7/7] mt76: mt7915: add Wireless Ethernet Dispatch support
by kernel test robot
Hi Felix,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on wireless-drivers-next/master]
[also build test ERROR on mac80211-next/master linus/master v5.14-rc1 next-20210713]
[cannot apply to wireless-drivers/master mac80211/master]
[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/Felix-Fietkau/Ethernet-WLAN-hard...
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-ne... master
config: powerpc-randconfig-r003-20210713 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d69635ed9ecf36fd0ca85906bfde17949671cbe)
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
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://github.com/0day-ci/linux/commit/16ac1606c5b18e61fb25775d621cd218f...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Felix-Fietkau/Ethernet-WLAN-hardware-flow-offloading-support-on-MT7622/20210714-001409
git checkout 16ac1606c5b18e61fb25775d621cd218f17bb913
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/net/wireless/mediatek/mt76/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/net/wireless/mediatek/mt76/dma.c:6:
In file included from include/linux/dma-mapping.h:7:
In file included from include/linux/device.h:15:
In file included from include/linux/dev_printk.h:16:
In file included from include/linux/ratelimit.h:6:
In file included from include/linux/sched.h:14:
In file included from include/linux/pid.h:5:
In file included from include/linux/rculist.h:10:
In file included from include/linux/list.h:9:
In file included from include/linux/kernel.h:12:
In file included from include/linux/bitops.h:32:
In file included from arch/powerpc/include/asm/bitops.h:62:
arch/powerpc/include/asm/barrier.h:49:9: warning: '__lwsync' macro redefined [-Wmacro-redefined]
#define __lwsync() __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
^
<built-in>:309:9: note: previous definition is here
#define __lwsync __builtin_ppc_lwsync
^
drivers/net/wireless/mediatek/mt76/dma.c:111:2: warning: unused variable '_offset' [-Wunused-variable]
Q_WRITE(dev, q, desc_base, q->desc_dma);
^
drivers/net/wireless/mediatek/mt76/dma.c:24:6: note: expanded from macro 'Q_WRITE'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
drivers/net/wireless/mediatek/mt76/dma.c:112:2: warning: unused variable '_offset' [-Wunused-variable]
Q_WRITE(dev, q, ring_size, q->ndesc);
^
drivers/net/wireless/mediatek/mt76/dma.c:24:6: note: expanded from macro 'Q_WRITE'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
drivers/net/wireless/mediatek/mt76/dma.c:113:12: warning: unused variable '_offset' [-Wunused-variable]
q->head = Q_READ(dev, q, dma_idx);
^
drivers/net/wireless/mediatek/mt76/dma.c:11:6: note: expanded from macro 'Q_READ'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
drivers/net/wireless/mediatek/mt76/dma.c:129:2: warning: unused variable '_offset' [-Wunused-variable]
Q_WRITE(dev, q, cpu_idx, 0);
^
drivers/net/wireless/mediatek/mt76/dma.c:24:6: note: expanded from macro 'Q_WRITE'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
drivers/net/wireless/mediatek/mt76/dma.c:130:2: warning: unused variable '_offset' [-Wunused-variable]
Q_WRITE(dev, q, dma_idx, 0);
^
drivers/net/wireless/mediatek/mt76/dma.c:24:6: note: expanded from macro 'Q_WRITE'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
>> drivers/net/wireless/mediatek/mt76/dma.c:154:23: error: no member named 'tx_ring' in 'struct mtk_wed_device'
q->wed_regs = wed->tx_ring[ring].reg_base;
~~~ ^
>> drivers/net/wireless/mediatek/mt76/dma.c:163:54: error: too few arguments provided to function-like macro invocation
ret = mtk_wed_device_txfree_ring_setup(wed, q->regs);
^
include/linux/soc/mediatek/mtk_wed.h:120:9: note: macro 'mtk_wed_device_txfree_ring_setup' defined here
#define mtk_wed_device_txfree_ring_setup(_dev, _ring, _regs) -ENODEV
^
>> drivers/net/wireless/mediatek/mt76/dma.c:163:9: error: use of undeclared identifier 'mtk_wed_device_txfree_ring_setup'
ret = mtk_wed_device_txfree_ring_setup(wed, q->regs);
^
>> drivers/net/wireless/mediatek/mt76/dma.c:165:23: error: no member named 'txfree_ring' in 'struct mtk_wed_device'
q->wed_regs = wed->txfree_ring.reg_base;
~~~ ^
drivers/net/wireless/mediatek/mt76/dma.c:298:2: warning: unused variable '_offset' [-Wunused-variable]
Q_WRITE(dev, q, cpu_idx, q->head);
^
drivers/net/wireless/mediatek/mt76/dma.c:24:6: note: expanded from macro 'Q_WRITE'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
drivers/net/wireless/mediatek/mt76/dma.c:314:10: warning: unused variable '_offset' [-Wunused-variable]
last = Q_READ(dev, q, dma_idx);
^
drivers/net/wireless/mediatek/mt76/dma.c:11:6: note: expanded from macro 'Q_READ'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
drivers/net/wireless/mediatek/mt76/dma.c:326:11: warning: unused variable '_offset' [-Wunused-variable]
last = Q_READ(dev, q, dma_idx);
^
drivers/net/wireless/mediatek/mt76/dma.c:11:6: note: expanded from macro 'Q_READ'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
drivers/net/wireless/mediatek/mt76/dma.c:634:13: warning: unused variable '_offset' [-Wunused-variable]
dma_idx = Q_READ(dev, q, dma_idx);
^
drivers/net/wireless/mediatek/mt76/dma.c:11:6: note: expanded from macro 'Q_READ'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
drivers/net/wireless/mediatek/mt76/dma.c:643:15: warning: unused variable '_offset' [-Wunused-variable]
dma_idx = Q_READ(dev, q, dma_idx);
^
drivers/net/wireless/mediatek/mt76/dma.c:11:6: note: expanded from macro 'Q_READ'
u32 _offset = offsetof(struct mt76_queue_regs, _field); \
^
11 warnings and 4 errors generated.
--
In file included from drivers/net/wireless/mediatek/mt76/tx.c:6:
In file included from drivers/net/wireless/mediatek/mt76/mt76.h:9:
In file included from include/linux/kernel.h:12:
In file included from include/linux/bitops.h:32:
In file included from arch/powerpc/include/asm/bitops.h:62:
arch/powerpc/include/asm/barrier.h:49:9: warning: '__lwsync' macro redefined [-Wmacro-redefined]
#define __lwsync() __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
^
<built-in>:309:9: note: previous definition is here
#define __lwsync __builtin_ppc_lwsync
^
>> drivers/net/wireless/mediatek/mt76/tx.c:700:20: error: no member named 'wlan' in 'struct mtk_wed_device'
token >= wed->wlan.token_start)
~~~ ^
drivers/net/wireless/mediatek/mt76/tx.c:725:21: error: no member named 'wlan' in 'struct mtk_wed_device'
token >= wed->wlan.token_start &&
~~~ ^
1 warning and 2 errors generated.
--
In file included from drivers/net/wireless/mediatek/mt76/mt7915/pci.c:7:
In file included from include/linux/kernel.h:12:
In file included from include/linux/bitops.h:32:
In file included from arch/powerpc/include/asm/bitops.h:62:
arch/powerpc/include/asm/barrier.h:49:9: warning: '__lwsync' macro redefined [-Wmacro-redefined]
#define __lwsync() __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
^
<built-in>:309:9: note: previous definition is here
#define __lwsync __builtin_ppc_lwsync
^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:100:25: warning: unused variable 'wed' [-Wunused-variable]
struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:165:25: warning: unused variable 'wed' [-Wunused-variable]
struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
^
>> drivers/net/wireless/mediatek/mt76/mt7915/pci.c:238:30: error: no member named 'wlan' in 'struct mtk_wed_device'
dev->mt76.token_size = wed->wlan.token_start;
~~~ ^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:322:7: error: no member named 'wlan' in 'struct mtk_wed_device'
wed->wlan.pci_dev = pdev;
~~~ ^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:323:7: error: no member named 'wlan' in 'struct mtk_wed_device'
wed->wlan.wpdma_phys = pci_resource_start(pdev, 0) +
~~~ ^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:325:7: error: no member named 'wlan' in 'struct mtk_wed_device'
wed->wlan.nbuf = 4096;
~~~ ^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:326:7: error: no member named 'wlan' in 'struct mtk_wed_device'
wed->wlan.token_start = MT7915_TOKEN_SIZE - wed->wlan.nbuf - 1;
~~~ ^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:326:51: error: no member named 'wlan' in 'struct mtk_wed_device'
wed->wlan.token_start = MT7915_TOKEN_SIZE - wed->wlan.nbuf - 1;
~~~ ^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:327:7: error: no member named 'wlan' in 'struct mtk_wed_device'
wed->wlan.init_buf = mt7915_wed_init_buf;
~~~ ^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:328:7: error: no member named 'wlan' in 'struct mtk_wed_device'
wed->wlan.offload_enable = mt7915_wed_offload_enable;
~~~ ^
drivers/net/wireless/mediatek/mt76/mt7915/pci.c:329:7: error: no member named 'wlan' in 'struct mtk_wed_device'
wed->wlan.offload_disable = mt7915_wed_offload_disable;
~~~ ^
>> drivers/net/wireless/mediatek/mt76/mt7915/pci.c:332:14: error: no member named 'irq' in 'struct mtk_wed_device'
irq = wed->irq;
~~~ ^
3 warnings and 10 errors generated.
--
In file included from drivers/net/wireless/mediatek/mt76/mt7915/main.c:4:
In file included from include/linux/etherdevice.h:20:
In file included from include/linux/if_ether.h:19:
In file included from include/linux/skbuff.h:13:
In file included from include/linux/kernel.h:12:
In file included from include/linux/bitops.h:32:
In file included from arch/powerpc/include/asm/bitops.h:62:
arch/powerpc/include/asm/barrier.h:49:9: warning: '__lwsync' macro redefined [-Wmacro-redefined]
#define __lwsync() __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
^
<built-in>:309:9: note: previous definition is here
#define __lwsync __builtin_ppc_lwsync
^
>> drivers/net/wireless/mediatek/mt76/mt7915/main.c:1056:33: error: no member named 'wdma_idx' in 'struct mtk_wed_device'
path->mtk_wdma.wdma_idx = wed->wdma_idx;
~~~ ^
1 warning and 1 error generated.
vim +154 drivers/net/wireless/mediatek/mt76/dma.c
22
23 #define Q_WRITE(_dev, _q, _field, _val) do { \
> 24 u32 _offset = offsetof(struct mt76_queue_regs, _field); \
25 if (IS_ENABLED(CONFIG_NET_MEDIATEK_SOC_WED) && \
26 (_q)->flags & MT_QFLAG_WED) \
27 mtk_wed_device_reg_write(&(_dev)->mmio.wed, \
28 ((_q)->wed_regs + _offset), \
29 _val); \
30 else \
31 writel(_val, &(_q)->regs->_field); \
32 } while (0)
33
34 static int mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q);
35
36 static struct mt76_txwi_cache *
37 mt76_alloc_txwi(struct mt76_dev *dev)
38 {
39 struct mt76_txwi_cache *t;
40 dma_addr_t addr;
41 u8 *txwi;
42 int size;
43
44 size = L1_CACHE_ALIGN(dev->drv->txwi_size + sizeof(*t));
45 txwi = devm_kzalloc(dev->dev, size, GFP_ATOMIC);
46 if (!txwi)
47 return NULL;
48
49 addr = dma_map_single(dev->dev, txwi, dev->drv->txwi_size,
50 DMA_TO_DEVICE);
51 t = (struct mt76_txwi_cache *)(txwi + dev->drv->txwi_size);
52 t->dma_addr = addr;
53
54 return t;
55 }
56
57 static struct mt76_txwi_cache *
58 __mt76_get_txwi(struct mt76_dev *dev)
59 {
60 struct mt76_txwi_cache *t = NULL;
61
62 spin_lock(&dev->lock);
63 if (!list_empty(&dev->txwi_cache)) {
64 t = list_first_entry(&dev->txwi_cache, struct mt76_txwi_cache,
65 list);
66 list_del(&t->list);
67 }
68 spin_unlock(&dev->lock);
69
70 return t;
71 }
72
73 static struct mt76_txwi_cache *
74 mt76_get_txwi(struct mt76_dev *dev)
75 {
76 struct mt76_txwi_cache *t = __mt76_get_txwi(dev);
77
78 if (t)
79 return t;
80
81 return mt76_alloc_txwi(dev);
82 }
83
84 void
85 mt76_put_txwi(struct mt76_dev *dev, struct mt76_txwi_cache *t)
86 {
87 if (!t)
88 return;
89
90 spin_lock(&dev->lock);
91 list_add(&t->list, &dev->txwi_cache);
92 spin_unlock(&dev->lock);
93 }
94 EXPORT_SYMBOL_GPL(mt76_put_txwi);
95
96 static void
97 mt76_free_pending_txwi(struct mt76_dev *dev)
98 {
99 struct mt76_txwi_cache *t;
100
101 local_bh_disable();
102 while ((t = __mt76_get_txwi(dev)) != NULL)
103 dma_unmap_single(dev->dev, t->dma_addr, dev->drv->txwi_size,
104 DMA_TO_DEVICE);
105 local_bh_enable();
106 }
107
108 static void
109 mt76_dma_sync_idx(struct mt76_dev *dev, struct mt76_queue *q)
110 {
111 Q_WRITE(dev, q, desc_base, q->desc_dma);
112 Q_WRITE(dev, q, ring_size, q->ndesc);
113 q->head = Q_READ(dev, q, dma_idx);
114 q->tail = q->head;
115 }
116
117 static void
118 mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
119 {
120 int i;
121
122 if (!q)
123 return;
124
125 /* clear descriptors */
126 for (i = 0; i < q->ndesc; i++)
127 q->desc[i].ctrl = cpu_to_le32(MT_DMA_CTL_DMA_DONE);
128
129 Q_WRITE(dev, q, cpu_idx, 0);
> 130 Q_WRITE(dev, q, dma_idx, 0);
131 mt76_dma_sync_idx(dev, q);
132 }
133
134 static int
135 mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
136 {
137 struct mtk_wed_device *wed = &dev->mmio.wed;
138 int ret, type, ring;
139 u8 flags = q->flags;
140
141 if (!mtk_wed_device_active(wed))
142 q->flags &= ~MT_QFLAG_WED;
143
144 if (!(q->flags & MT_QFLAG_WED))
145 return 0;
146
147 type = FIELD_GET(MT_QFLAG_WED_TYPE, q->flags);
148 ring = FIELD_GET(MT_QFLAG_WED_RING, q->flags);
149
150 switch (type) {
151 case MT76_WED_Q_TX:
152 ret = mtk_wed_device_tx_ring_setup(wed, ring, q->regs);
153 if (!ret)
> 154 q->wed_regs = wed->tx_ring[ring].reg_base;
155 break;
156 case MT76_WED_Q_TXFREE:
157 /* WED txfree queue needs ring to be initialized before setup */
158 q->flags = 0;
159 mt76_dma_queue_reset(dev, q);
160 mt76_dma_rx_fill(dev, q);
161 q->flags = flags;
162
> 163 ret = mtk_wed_device_txfree_ring_setup(wed, q->regs);
164 if (!ret)
> 165 q->wed_regs = wed->txfree_ring.reg_base;
166 break;
167 default:
168 ret = -EINVAL;
169 }
170
171 return ret;
172 }
173
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH] usb: hcd: Revert 306c54d0edb6ba94d39877524dddebaad7770cf2: Try MSI interrupts on PCI devices
by kernel test robot
Hi Laurence,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on usb/usb-testing]
[also build test WARNING on peter.chen-usb/for-usb-next balbi-usb/testing/next v5.14-rc1 next-20210713]
[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/Laurence-Oberman/usb-hcd-Revert-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: x86_64-randconfig-a002-20210713 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d69635ed9ecf36fd0ca85906bfde17949671cbe)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/3ea2a748176f21120e150f0645bc3c22e...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Laurence-Oberman/usb-hcd-Revert-306c54d0edb6ba94d39877524dddebaad7770cf2-Try-MSI-interrupts-on-PCI-devices/20210714-025312
git checkout 3ea2a748176f21120e150f0645bc3c22e1cea48f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/usb/core/hcd-pci.c:316:8: warning: variable 'hcd_driver_flags' set but not used [-Wunused-but-set-variable]
int hcd_driver_flags;
^
1 warning generated.
vim +/hcd_driver_flags +316 drivers/usb/core/hcd-pci.c
^1da177e4c3f4152 Linus Torvalds 2005-04-16 300
^1da177e4c3f4152 Linus Torvalds 2005-04-16 301 /**
^1da177e4c3f4152 Linus Torvalds 2005-04-16 302 * usb_hcd_pci_remove - shutdown processing for PCI-based HCDs
^1da177e4c3f4152 Linus Torvalds 2005-04-16 303 * @dev: USB Host Controller being removed
41631d3616c36305 Ahmed S. Darwish 2020-10-19 304 *
41631d3616c36305 Ahmed S. Darwish 2020-10-19 305 * Context: task context, might sleep
^1da177e4c3f4152 Linus Torvalds 2005-04-16 306 *
^1da177e4c3f4152 Linus Torvalds 2005-04-16 307 * Reverses the effect of usb_hcd_pci_probe(), first invoking
^1da177e4c3f4152 Linus Torvalds 2005-04-16 308 * the HCD's stop() method. It is always called from a thread
^1da177e4c3f4152 Linus Torvalds 2005-04-16 309 * context, normally "rmmod", "apmd", or something similar.
^1da177e4c3f4152 Linus Torvalds 2005-04-16 310 *
^1da177e4c3f4152 Linus Torvalds 2005-04-16 311 * Store this function in the HCD's struct pci_driver as remove().
^1da177e4c3f4152 Linus Torvalds 2005-04-16 312 */
^1da177e4c3f4152 Linus Torvalds 2005-04-16 313 void usb_hcd_pci_remove(struct pci_dev *dev)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 314 {
^1da177e4c3f4152 Linus Torvalds 2005-04-16 315 struct usb_hcd *hcd;
7b2816dd293031b9 Andy Shevchenko 2020-08-14 @316 int hcd_driver_flags;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 317
^1da177e4c3f4152 Linus Torvalds 2005-04-16 318 hcd = pci_get_drvdata(dev);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 319 if (!hcd)
^1da177e4c3f4152 Linus Torvalds 2005-04-16 320 return;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 321
7b2816dd293031b9 Andy Shevchenko 2020-08-14 322 hcd_driver_flags = hcd->driver->flags;
7b2816dd293031b9 Andy Shevchenko 2020-08-14 323
3da7cff4e79e4a71 Alan Stern 2010-06-25 324 if (pci_dev_run_wake(dev))
3da7cff4e79e4a71 Alan Stern 2010-06-25 325 pm_runtime_get_noresume(&dev->dev);
3da7cff4e79e4a71 Alan Stern 2010-06-25 326
c548795abe0d3520 Alan Stern 2010-06-09 327 /* Fake an interrupt request in order to give the driver a chance
c548795abe0d3520 Alan Stern 2010-06-09 328 * to test whether the controller hardware has been removed (e.g.,
c548795abe0d3520 Alan Stern 2010-06-09 329 * cardbus physical eject).
c548795abe0d3520 Alan Stern 2010-06-09 330 */
c548795abe0d3520 Alan Stern 2010-06-09 331 local_irq_disable();
c548795abe0d3520 Alan Stern 2010-06-09 332 usb_hcd_irq(0, hcd);
c548795abe0d3520 Alan Stern 2010-06-09 333 local_irq_enable();
c548795abe0d3520 Alan Stern 2010-06-09 334
05768918b9a122ce Alan Stern 2013-03-28 335 /* Note: dev_set_drvdata must be called while holding the rwsem */
05768918b9a122ce Alan Stern 2013-03-28 336 if (dev->class == CL_EHCI) {
05768918b9a122ce Alan Stern 2013-03-28 337 down_write(&companions_rwsem);
05768918b9a122ce Alan Stern 2013-03-28 338 for_each_companion(dev, hcd, ehci_remove);
05768918b9a122ce Alan Stern 2013-03-28 339 usb_remove_hcd(hcd);
05768918b9a122ce Alan Stern 2013-03-28 340 dev_set_drvdata(&dev->dev, NULL);
05768918b9a122ce Alan Stern 2013-03-28 341 up_write(&companions_rwsem);
05768918b9a122ce Alan Stern 2013-03-28 342 } else {
05768918b9a122ce Alan Stern 2013-03-28 343 /* Not EHCI; just clear the companion pointer */
05768918b9a122ce Alan Stern 2013-03-28 344 down_read(&companions_rwsem);
05768918b9a122ce Alan Stern 2013-03-28 345 hcd->self.hs_companion = NULL;
^1da177e4c3f4152 Linus Torvalds 2005-04-16 346 usb_remove_hcd(hcd);
05768918b9a122ce Alan Stern 2013-03-28 347 dev_set_drvdata(&dev->dev, NULL);
05768918b9a122ce Alan Stern 2013-03-28 348 up_read(&companions_rwsem);
05768918b9a122ce Alan Stern 2013-03-28 349 }
^1da177e4c3f4152 Linus Torvalds 2005-04-16 350 usb_put_hcd(hcd);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 351 pci_disable_device(dev);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 352 }
782e70c6fc2290a0 Greg Kroah-Hartman 2008-01-25 353 EXPORT_SYMBOL_GPL(usb_hcd_pci_remove);
^1da177e4c3f4152 Linus Torvalds 2005-04-16 354
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH v5 2/4] pwm: driver for qualcomm ipq6018 pwm block
by kernel test robot
Hi Baruch,
I love your patch! Yet something to improve:
[auto build test ERROR on pwm/for-next]
[also build test ERROR on robh/for-next v5.14-rc1 next-20210713]
[cannot apply to agross-msm/qcom/for-next]
[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/Baruch-Siach/arm64-dts-ipq6018-c...
base: https://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm.git for-next
config: riscv-randconfig-r032-20210713 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d69635ed9ecf36fd0ca85906bfde17949671cbe)
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
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/0day-ci/linux/commit/3215e41e0c2fbd26202f21458ea6f1993...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Baruch-Siach/arm64-dts-ipq6018-correct-TCSR-block-area/20210713-193616
git checkout 3215e41e0c2fbd26202f21458ea6f1993f90e126
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> drivers/pwm/pwm-ipq.c:96:8: error: implicit declaration of function 'FIELD_PREP' [-Werror,-Wimplicit-function-declaration]
val = FIELD_PREP(IPQ_PWM_REG0_HI_DURATION, hi_dur) |
^
>> drivers/pwm/pwm-ipq.c:182:12: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
pwm_div = FIELD_GET(IPQ_PWM_REG0_PWM_DIV, reg0);
^
2 errors generated.
vim +/FIELD_PREP +96 drivers/pwm/pwm-ipq.c
80
81 static void config_div_and_duty(struct pwm_device *pwm, unsigned int pre_div,
82 unsigned int pwm_div, u64 period_ns, u64 duty_ns,
83 bool enable)
84 {
85 unsigned long hi_dur;
86 unsigned long long quotient;
87 unsigned long val = 0;
88
89 /*
90 * high duration = pwm duty * (pwm div + 1)
91 * pwm duty = duty_ns / period_ns
92 */
93 quotient = (pwm_div + 1) * duty_ns;
94 hi_dur = div64_u64(quotient, period_ns);
95
> 96 val = FIELD_PREP(IPQ_PWM_REG0_HI_DURATION, hi_dur) |
97 FIELD_PREP(IPQ_PWM_REG0_PWM_DIV, pwm_div);
98 ipq_pwm_reg_write(pwm, IPQ_PWM_CFG_REG0, val);
99
100 val = FIELD_PREP(IPQ_PWM_REG1_PRE_DIV, pre_div);
101 ipq_pwm_reg_write(pwm, IPQ_PWM_CFG_REG1, val);
102
103 /* Enable needs a separate write to REG1 */
104 val |= IPQ_PWM_REG1_UPDATE;
105 if (enable)
106 val |= IPQ_PWM_REG1_ENABLE;
107 else
108 val &= ~IPQ_PWM_REG1_ENABLE;
109 ipq_pwm_reg_write(pwm, IPQ_PWM_CFG_REG1, val);
110 }
111
112 static int ipq_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
113 const struct pwm_state *state)
114 {
115 struct ipq_pwm_chip *ipq_chip = to_ipq_pwm_chip(chip);
116 unsigned long freq;
117 unsigned int pre_div, pwm_div, close_pre_div, close_pwm_div;
118 long long diff;
119 unsigned long rate = clk_get_rate(ipq_chip->clk);
120 unsigned long min_diff = rate;
121 uint64_t fin_ps;
122 u64 period_ns, duty_ns;
123
124 if (state->period < IPQ_PWM_MIN_PERIOD_NS)
125 return -ERANGE;
126
127 period_ns = min(state->period, IPQ_PWM_MAX_PERIOD_NS);
128 duty_ns = min(state->duty_cycle, period_ns);
129
130 /* freq in Hz for period in nano second */
131 freq = div64_u64(NSEC_PER_SEC, period_ns);
132 fin_ps = div64_u64(NSEC_PER_SEC * 1000ULL, rate);
133 close_pre_div = IPQ_PWM_MAX_DIV;
134 close_pwm_div = IPQ_PWM_MAX_DIV;
135
136 for (pre_div = 0; pre_div <= IPQ_PWM_MAX_DIV; pre_div++) {
137 pwm_div = DIV64_U64_ROUND_CLOSEST(period_ns * 1000,
138 fin_ps * (pre_div + 1));
139 pwm_div--;
140 if (pwm_div > IPQ_PWM_MAX_DIV)
141 continue;
142
143 diff = ((uint64_t)freq * (pre_div + 1) * (pwm_div + 1))
144 - (uint64_t)rate;
145
146 if (diff < 0) /* period larger than requested */
147 continue;
148 if (diff == 0) { /* bingo */
149 close_pre_div = pre_div;
150 close_pwm_div = pwm_div;
151 break;
152 }
153 if (diff < min_diff) {
154 min_diff = diff;
155 close_pre_div = pre_div;
156 close_pwm_div = pwm_div;
157 }
158 }
159
160 /* config divider values for the closest possible frequency */
161 config_div_and_duty(pwm, close_pre_div, close_pwm_div,
162 period_ns, duty_ns, state->enabled);
163
164 return 0;
165 }
166
167 static void ipq_pwm_get_state(struct pwm_chip *chip, struct pwm_device *pwm,
168 struct pwm_state *state)
169 {
170 struct ipq_pwm_chip *ipq_chip = to_ipq_pwm_chip(chip);
171 unsigned long rate = clk_get_rate(ipq_chip->clk);
172 unsigned int pre_div, pwm_div, hi_dur;
173 u64 effective_div, hi_div;
174 u32 reg0, reg1;
175
176 reg0 = ipq_pwm_reg_read(pwm, IPQ_PWM_CFG_REG0);
177 reg1 = ipq_pwm_reg_read(pwm, IPQ_PWM_CFG_REG1);
178
179 state->polarity = PWM_POLARITY_NORMAL;
180 state->enabled = reg1 & IPQ_PWM_REG1_ENABLE;
181
> 182 pwm_div = FIELD_GET(IPQ_PWM_REG0_PWM_DIV, reg0);
183 hi_dur = FIELD_GET(IPQ_PWM_REG0_HI_DURATION, reg0);
184 pre_div = FIELD_GET(IPQ_PWM_REG1_PRE_DIV, reg1);
185
186 effective_div = (pre_div + 1) * (pwm_div + 1);
187 state->period = div64_u64(effective_div * NSEC_PER_SEC, rate);
188
189 hi_div = hi_dur * (pre_div + 1);
190 state->duty_cycle = div64_u64(hi_div * NSEC_PER_SEC, rate);
191 }
192
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [RFC 1/7] mac80211: add support for .ndo_fill_forward_path
by kernel test robot
Hi Felix,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on wireless-drivers-next/master]
[also build test ERROR on wireless-drivers/master mac80211-next/master mac80211/master linus/master v5.14-rc1 next-20210713]
[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/Felix-Fietkau/Ethernet-WLAN-hard...
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-ne... master
config: sparc-randconfig-p002-20210713 (attached as .config)
compiler: sparc-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://github.com/0day-ci/linux/commit/c531997b320959473fb8b8e72d837aff5...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Felix-Fietkau/Ethernet-WLAN-hardware-flow-offloading-support-on-MT7622/20210714-001409
git checkout c531997b320959473fb8b8e72d837aff58970493
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross O=build_dir ARCH=sparc SHELL=/bin/bash net/mac80211/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> net/mac80211/iface.c:718:27: error: 'ieee80211_netdev_fill_forward_path' undeclared here (not in a function); did you mean 'drv_net_fill_forward_path'?
718 | .ndo_fill_forward_path = ieee80211_netdev_fill_forward_path,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| drv_net_fill_forward_path
net/mac80211/iface.c:761:12: warning: 'ieee80211_netdev_fill_forward_path' defined but not used [-Wunused-function]
761 | static int ieee80211_netdev_fill_forward_path(struct net_device_path_ctx *ctx,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +718 net/mac80211/iface.c
708
709 static const struct net_device_ops ieee80211_dataif_ops = {
710 .ndo_open = ieee80211_open,
711 .ndo_stop = ieee80211_stop,
712 .ndo_uninit = ieee80211_uninit,
713 .ndo_start_xmit = ieee80211_subif_start_xmit,
714 .ndo_set_rx_mode = ieee80211_set_multicast_list,
715 .ndo_set_mac_address = ieee80211_change_mac,
716 .ndo_select_queue = ieee80211_netdev_select_queue,
717 .ndo_get_stats64 = ieee80211_get_stats64,
> 718 .ndo_fill_forward_path = ieee80211_netdev_fill_forward_path,
719 };
720
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [RFC 1/7] mac80211: add support for .ndo_fill_forward_path
by kernel test robot
Hi Felix,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on wireless-drivers-next/master]
[also build test ERROR on wireless-drivers/master mac80211-next/master mac80211/master linus/master v5.14-rc1 next-20210713]
[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/Felix-Fietkau/Ethernet-WLAN-hard...
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-ne... master
config: powerpc-randconfig-r003-20210713 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d69635ed9ecf36fd0ca85906bfde17949671cbe)
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
# install powerpc cross compiling tool for clang build
# apt-get install binutils-powerpc-linux-gnu
# https://github.com/0day-ci/linux/commit/c531997b320959473fb8b8e72d837aff5...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Felix-Fietkau/Ethernet-WLAN-hardware-flow-offloading-support-on-MT7622/20210714-001409
git checkout c531997b320959473fb8b8e72d837aff58970493
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/net/wireless/mediatek/mt76/ net/mac80211/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from net/mac80211/iface.c:13:
In file included from include/linux/slab.h:15:
In file included from include/linux/gfp.h:5:
In file included from include/linux/mmdebug.h:5:
In file included from include/linux/bug.h:5:
In file included from arch/powerpc/include/asm/bug.h:109:
In file included from include/asm-generic/bug.h:20:
In file included from include/linux/kernel.h:12:
In file included from include/linux/bitops.h:32:
In file included from arch/powerpc/include/asm/bitops.h:62:
arch/powerpc/include/asm/barrier.h:49:9: warning: '__lwsync' macro redefined [-Wmacro-redefined]
#define __lwsync() __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
^
<built-in>:309:9: note: previous definition is here
#define __lwsync __builtin_ppc_lwsync
^
>> net/mac80211/iface.c:718:27: error: use of undeclared identifier 'ieee80211_netdev_fill_forward_path'
.ndo_fill_forward_path = ieee80211_netdev_fill_forward_path,
^
1 warning and 1 error generated.
vim +/ieee80211_netdev_fill_forward_path +718 net/mac80211/iface.c
708
709 static const struct net_device_ops ieee80211_dataif_ops = {
710 .ndo_open = ieee80211_open,
711 .ndo_stop = ieee80211_stop,
712 .ndo_uninit = ieee80211_uninit,
713 .ndo_start_xmit = ieee80211_subif_start_xmit,
714 .ndo_set_rx_mode = ieee80211_set_multicast_list,
715 .ndo_set_mac_address = ieee80211_change_mac,
716 .ndo_select_queue = ieee80211_netdev_select_queue,
717 .ndo_get_stats64 = ieee80211_get_stats64,
> 718 .ndo_fill_forward_path = ieee80211_netdev_fill_forward_path,
719 };
720
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
[android-common:android13-5.10 7/51] arch/arm64/kernel/machine_kexec.c:62:5: warning: no previous prototype for 'machine_kexec_post_load'
by kernel test robot
tree: https://android.googlesource.com/kernel/common android13-5.10
head: 663bbfa2a48a042ef172114830ccf6ad1a16677c
commit: bdc7abb880337dc68bd400d3a69df9d61275e402 [7/51] UPSTREAM: arm64: kexec: move relocation function setup
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-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
git remote add android-common https://android.googlesource.com/kernel/common
git fetch --no-tags android-common android13-5.10
git checkout bdc7abb880337dc68bd400d3a69df9d61275e402
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> arch/arm64/kernel/machine_kexec.c:62:5: warning: no previous prototype for 'machine_kexec_post_load' [-Wmissing-prototypes]
62 | int machine_kexec_post_load(struct kimage *kimage)
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kernel/machine_kexec.c:238:6: warning: no previous prototype for 'machine_crash_shutdown' [-Wmissing-prototypes]
238 | void machine_crash_shutdown(struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~~~~
vim +/machine_kexec_post_load +62 arch/arm64/kernel/machine_kexec.c
61
> 62 int machine_kexec_post_load(struct kimage *kimage)
63 {
64 void *reloc_code = page_to_virt(kimage->control_code_page);
65
66 memcpy(reloc_code, arm64_relocate_new_kernel,
67 arm64_relocate_new_kernel_size);
68 kimage->arch.kern_reloc = __pa(reloc_code);
69
70 /* Flush the reloc_code in preparation for its execution. */
71 __flush_dcache_area(reloc_code, arm64_relocate_new_kernel_size);
72 flush_icache_range((uintptr_t)reloc_code, (uintptr_t)reloc_code +
73 arm64_relocate_new_kernel_size);
74
75 return 0;
76 }
77
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH] usb: hcd: Revert 306c54d0edb6ba94d39877524dddebaad7770cf2: Try MSI interrupts on PCI devices
by kernel test robot
Hi Laurence,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on usb/usb-testing]
[also build test WARNING on peter.chen-usb/for-usb-next balbi-usb/testing/next v5.14-rc1 next-20210713]
[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/Laurence-Oberman/usb-hcd-Revert-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: arc-allyesconfig (attached as .config)
compiler: arceb-elf-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://github.com/0day-ci/linux/commit/3ea2a748176f21120e150f0645bc3c22e...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Laurence-Oberman/usb-hcd-Revert-306c54d0edb6ba94d39877524dddebaad7770cf2-Try-MSI-interrupts-on-PCI-devices/20210714-025312
git checkout 3ea2a748176f21120e150f0645bc3c22e1cea48f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/usb/core/hcd-pci.c: In function 'usb_hcd_pci_remove':
>> drivers/usb/core/hcd-pci.c:316:8: warning: variable 'hcd_driver_flags' set but not used [-Wunused-but-set-variable]
316 | int hcd_driver_flags;
| ^~~~~~~~~~~~~~~~
vim +/hcd_driver_flags +316 drivers/usb/core/hcd-pci.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 300
^1da177e4c3f41 Linus Torvalds 2005-04-16 301 /**
^1da177e4c3f41 Linus Torvalds 2005-04-16 302 * usb_hcd_pci_remove - shutdown processing for PCI-based HCDs
^1da177e4c3f41 Linus Torvalds 2005-04-16 303 * @dev: USB Host Controller being removed
41631d3616c363 Ahmed S. Darwish 2020-10-19 304 *
41631d3616c363 Ahmed S. Darwish 2020-10-19 305 * Context: task context, might sleep
^1da177e4c3f41 Linus Torvalds 2005-04-16 306 *
^1da177e4c3f41 Linus Torvalds 2005-04-16 307 * Reverses the effect of usb_hcd_pci_probe(), first invoking
^1da177e4c3f41 Linus Torvalds 2005-04-16 308 * the HCD's stop() method. It is always called from a thread
^1da177e4c3f41 Linus Torvalds 2005-04-16 309 * context, normally "rmmod", "apmd", or something similar.
^1da177e4c3f41 Linus Torvalds 2005-04-16 310 *
^1da177e4c3f41 Linus Torvalds 2005-04-16 311 * Store this function in the HCD's struct pci_driver as remove().
^1da177e4c3f41 Linus Torvalds 2005-04-16 312 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 313 void usb_hcd_pci_remove(struct pci_dev *dev)
^1da177e4c3f41 Linus Torvalds 2005-04-16 314 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 315 struct usb_hcd *hcd;
7b2816dd293031 Andy Shevchenko 2020-08-14 @316 int hcd_driver_flags;
^1da177e4c3f41 Linus Torvalds 2005-04-16 317
^1da177e4c3f41 Linus Torvalds 2005-04-16 318 hcd = pci_get_drvdata(dev);
^1da177e4c3f41 Linus Torvalds 2005-04-16 319 if (!hcd)
^1da177e4c3f41 Linus Torvalds 2005-04-16 320 return;
^1da177e4c3f41 Linus Torvalds 2005-04-16 321
7b2816dd293031 Andy Shevchenko 2020-08-14 322 hcd_driver_flags = hcd->driver->flags;
7b2816dd293031 Andy Shevchenko 2020-08-14 323
3da7cff4e79e4a Alan Stern 2010-06-25 324 if (pci_dev_run_wake(dev))
3da7cff4e79e4a Alan Stern 2010-06-25 325 pm_runtime_get_noresume(&dev->dev);
3da7cff4e79e4a Alan Stern 2010-06-25 326
c548795abe0d35 Alan Stern 2010-06-09 327 /* Fake an interrupt request in order to give the driver a chance
c548795abe0d35 Alan Stern 2010-06-09 328 * to test whether the controller hardware has been removed (e.g.,
c548795abe0d35 Alan Stern 2010-06-09 329 * cardbus physical eject).
c548795abe0d35 Alan Stern 2010-06-09 330 */
c548795abe0d35 Alan Stern 2010-06-09 331 local_irq_disable();
c548795abe0d35 Alan Stern 2010-06-09 332 usb_hcd_irq(0, hcd);
c548795abe0d35 Alan Stern 2010-06-09 333 local_irq_enable();
c548795abe0d35 Alan Stern 2010-06-09 334
05768918b9a122 Alan Stern 2013-03-28 335 /* Note: dev_set_drvdata must be called while holding the rwsem */
05768918b9a122 Alan Stern 2013-03-28 336 if (dev->class == CL_EHCI) {
05768918b9a122 Alan Stern 2013-03-28 337 down_write(&companions_rwsem);
05768918b9a122 Alan Stern 2013-03-28 338 for_each_companion(dev, hcd, ehci_remove);
05768918b9a122 Alan Stern 2013-03-28 339 usb_remove_hcd(hcd);
05768918b9a122 Alan Stern 2013-03-28 340 dev_set_drvdata(&dev->dev, NULL);
05768918b9a122 Alan Stern 2013-03-28 341 up_write(&companions_rwsem);
05768918b9a122 Alan Stern 2013-03-28 342 } else {
05768918b9a122 Alan Stern 2013-03-28 343 /* Not EHCI; just clear the companion pointer */
05768918b9a122 Alan Stern 2013-03-28 344 down_read(&companions_rwsem);
05768918b9a122 Alan Stern 2013-03-28 345 hcd->self.hs_companion = NULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 346 usb_remove_hcd(hcd);
05768918b9a122 Alan Stern 2013-03-28 347 dev_set_drvdata(&dev->dev, NULL);
05768918b9a122 Alan Stern 2013-03-28 348 up_read(&companions_rwsem);
05768918b9a122 Alan Stern 2013-03-28 349 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 350 usb_put_hcd(hcd);
^1da177e4c3f41 Linus Torvalds 2005-04-16 351 pci_disable_device(dev);
^1da177e4c3f41 Linus Torvalds 2005-04-16 352 }
782e70c6fc2290 Greg Kroah-Hartman 2008-01-25 353 EXPORT_SYMBOL_GPL(usb_hcd_pci_remove);
^1da177e4c3f41 Linus Torvalds 2005-04-16 354
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH v2 2/4] drm/amd/display: Add FPU event trace
by kernel test robot
Hi Rodrigo,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.14-rc1 next-20210713]
[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/Rodrigo-Siqueira/drm-amd-display...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7fef2edf7cc753b51f7ccc74993971b0a9c81eca
config: s390-allyesconfig (attached as .config)
compiler: s390-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://github.com/0day-ci/linux/commit/a35eeee5a7e5682f85e0d466a6160aaf4...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Rodrigo-Siqueira/drm-amd-display-Base-changes-for-isolating-FPU-operation-in-a-single-place/20210713-220840
git checkout a35eeee5a7e5682f85e0d466a6160aaf49b1dd5f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c:44:6: warning: no previous prototype for 'dc_fpu_begin' [-Wmissing-prototypes]
44 | void dc_fpu_begin(const char *function_name, const int line)
| ^~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c: In function 'dc_fpu_begin':
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c:47:2: error: too few arguments to function 'kernel_fpu_begin'
47 | kernel_fpu_begin();
| ^~~~~~~~~~~~~~~~
In file included from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c:29:
arch/s390/include/asm/fpu/api.h:96:20: note: declared here
96 | static inline void kernel_fpu_begin(struct kernel_fpu *state, u32 flags)
| ^~~~~~~~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c: At top level:
>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c:60:6: warning: no previous prototype for 'dc_fpu_end' [-Wmissing-prototypes]
60 | void dc_fpu_end(const char *function_name, const int line)
| ^~~~~~~~~~
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c: In function 'dc_fpu_end':
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c:63:2: error: too few arguments to function 'kernel_fpu_end'
63 | kernel_fpu_end();
| ^~~~~~~~~~~~~~
In file included from drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c:29:
arch/s390/include/asm/fpu/api.h:109:20: note: declared here
109 | static inline void kernel_fpu_end(struct kernel_fpu *state, u32 flags)
| ^~~~~~~~~~~~~~
vim +/dc_fpu_begin +44 drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c
30
31 /**
32 * dc_fpu_begin - Enables FPU protection
33 * @function_name: A string containing the function name for debug purposes
34 * (usually __func__)
35 *
36 * @line: A line number where DC_FP_START was invoked for debug purpose
37 * (usually __LINE__)
38 *
39 * This function is responsible for managing the use of kernel_fpu_begin() with
40 * the advantage of providing an event trace for debugging.
41 *
42 * Note: Do not call this function directly; always use DC_FP_START().
43 */
> 44 void dc_fpu_begin(const char *function_name, const int line)
45 {
46 TRACE_DCN_FPU(true, function_name, line);
> 47 kernel_fpu_begin();
48 }
49
50 /**
51 * dc_fpu_end - Disable FPU protection
52 * @function_name: A string containing the function name for debug purposes
53 * @line: A-line number where DC_FP_END was invoked for debug purpose
54 *
55 * This function is responsible for managing the use of kernel_fpu_end() with
56 * the advantage of providing an event trace for debugging.
57 *
58 * Note: Do not call this function directly; always use DC_FP_END().
59 */
> 60 void dc_fpu_end(const char *function_name, const int line)
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [RFC 7/7] mt76: mt7915: add Wireless Ethernet Dispatch support
by kernel test robot
Hi Felix,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on wireless-drivers-next/master]
[also build test WARNING on mac80211-next/master linus/master v5.14-rc1 next-20210713]
[cannot apply to wireless-drivers/master mac80211/master]
[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/Felix-Fietkau/Ethernet-WLAN-hard...
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-ne... master
config: xtensa-allyesconfig (attached as .config)
compiler: xtensa-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://github.com/0day-ci/linux/commit/16ac1606c5b18e61fb25775d621cd218f...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Felix-Fietkau/Ethernet-WLAN-hardware-flow-offloading-support-on-MT7622/20210714-001409
git checkout 16ac1606c5b18e61fb25775d621cd218f17bb913
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_sync_idx':
drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable]
24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:111:2: note: in expansion of macro 'Q_WRITE'
111 | Q_WRITE(dev, q, desc_base, q->desc_dma);
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable]
24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:112:2: note: in expansion of macro 'Q_WRITE'
112 | Q_WRITE(dev, q, ring_size, q->ndesc);
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable]
11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:113:12: note: in expansion of macro 'Q_READ'
113 | q->head = Q_READ(dev, q, dma_idx);
| ^~~~~~
drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_queue_reset':
drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable]
24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:129:2: note: in expansion of macro 'Q_WRITE'
129 | Q_WRITE(dev, q, cpu_idx, 0);
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable]
24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:130:2: note: in expansion of macro 'Q_WRITE'
130 | Q_WRITE(dev, q, dma_idx, 0);
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_wed_setup':
drivers/net/wireless/mediatek/mt76/dma.c:154:21: error: 'struct mtk_wed_device' has no member named 'tx_ring'
154 | q->wed_regs = wed->tx_ring[ring].reg_base;
| ^~
drivers/net/wireless/mediatek/mt76/dma.c:163:54: error: macro "mtk_wed_device_txfree_ring_setup" requires 3 arguments, but only 2 given
163 | ret = mtk_wed_device_txfree_ring_setup(wed, q->regs);
| ^
In file included from drivers/net/wireless/mediatek/mt76/mt76.h:16,
from drivers/net/wireless/mediatek/mt76/dma.c:7:
include/linux/soc/mediatek/mtk_wed.h:120: note: macro "mtk_wed_device_txfree_ring_setup" defined here
120 | #define mtk_wed_device_txfree_ring_setup(_dev, _ring, _regs) -ENODEV
|
drivers/net/wireless/mediatek/mt76/dma.c:163:9: error: 'mtk_wed_device_txfree_ring_setup' undeclared (first use in this function)
163 | ret = mtk_wed_device_txfree_ring_setup(wed, q->regs);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:163:9: note: each undeclared identifier is reported only once for each function it appears in
drivers/net/wireless/mediatek/mt76/dma.c:165:21: error: 'struct mtk_wed_device' has no member named 'txfree_ring'
165 | q->wed_regs = wed->txfree_ring.reg_base;
| ^~
>> drivers/net/wireless/mediatek/mt76/dma.c:138:17: warning: variable 'ring' set but not used [-Wunused-but-set-variable]
138 | int ret, type, ring;
| ^~~~
drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_kick_queue':
drivers/net/wireless/mediatek/mt76/dma.c:24:6: warning: unused variable '_offset' [-Wunused-variable]
24 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:298:2: note: in expansion of macro 'Q_WRITE'
298 | Q_WRITE(dev, q, cpu_idx, q->head);
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_tx_cleanup':
drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable]
11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:314:10: note: in expansion of macro 'Q_READ'
314 | last = Q_READ(dev, q, dma_idx);
| ^~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable]
11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:326:11: note: in expansion of macro 'Q_READ'
326 | last = Q_READ(dev, q, dma_idx);
| ^~~~~~
drivers/net/wireless/mediatek/mt76/dma.c: In function 'mt76_dma_rx_process':
drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable]
11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:634:13: note: in expansion of macro 'Q_READ'
634 | dma_idx = Q_READ(dev, q, dma_idx);
| ^~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:11:6: warning: unused variable '_offset' [-Wunused-variable]
11 | u32 _offset = offsetof(struct mt76_queue_regs, _field); \
| ^~~~~~~
drivers/net/wireless/mediatek/mt76/dma.c:643:15: note: in expansion of macro 'Q_READ'
643 | dma_idx = Q_READ(dev, q, dma_idx);
| ^~~~~~
vim +/ring +138 drivers/net/wireless/mediatek/mt76/dma.c
133
134 static int
135 mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q)
136 {
137 struct mtk_wed_device *wed = &dev->mmio.wed;
> 138 int ret, type, ring;
139 u8 flags = q->flags;
140
141 if (!mtk_wed_device_active(wed))
142 q->flags &= ~MT_QFLAG_WED;
143
144 if (!(q->flags & MT_QFLAG_WED))
145 return 0;
146
147 type = FIELD_GET(MT_QFLAG_WED_TYPE, q->flags);
148 ring = FIELD_GET(MT_QFLAG_WED_RING, q->flags);
149
150 switch (type) {
151 case MT76_WED_Q_TX:
152 ret = mtk_wed_device_tx_ring_setup(wed, ring, q->regs);
153 if (!ret)
154 q->wed_regs = wed->tx_ring[ring].reg_base;
155 break;
156 case MT76_WED_Q_TXFREE:
157 /* WED txfree queue needs ring to be initialized before setup */
158 q->flags = 0;
159 mt76_dma_queue_reset(dev, q);
160 mt76_dma_rx_fill(dev, q);
161 q->flags = flags;
162
163 ret = mtk_wed_device_txfree_ring_setup(wed, q->regs);
164 if (!ret)
165 q->wed_regs = wed->txfree_ring.reg_base;
166 break;
167 default:
168 ret = -EINVAL;
169 }
170
171 return ret;
172 }
173
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months
Re: [PATCH v2 4/4] drm/amd/display: Add DC_FP helper to check FPU state
by kernel test robot
Hi Rodrigo,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v5.14-rc1 next-20210713]
[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/Rodrigo-Siqueira/drm-amd-display...
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 7fef2edf7cc753b51f7ccc74993971b0a9c81eca
config: x86_64-randconfig-a014-20210713 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/86e864484b1781d5a294660fe92f5ba96...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Rodrigo-Siqueira/drm-amd-display-Base-changes-for-isolating-FPU-operation-in-a-single-place/20210713-220840
git checkout 86e864484b1781d5a294660fe92f5ba9664d7612
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c: In function 'dc_assert_fp_enabled':
>> drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c:57:7: warning: variable 'pcpu' set but not used [-Wunused-but-set-variable]
57 | int *pcpu, depth = 0;
| ^~~~
vim +/pcpu +57 drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/dc_fpu.c
43
44 /**
45 * dc_assert_fp_enabled - Check if FPU protection is enabled
46 *
47 * This function tells if the code is already under FPU protection or not. A
48 * function that works as an API for a set of FPU operations can use this
49 * function for checking if the caller invoked it after DC_FP_START(). For
50 * example, take a look at dcn2x.c file.
51 *
52 * Return:
53 * Return true if we already enabled FPU protection, otherwise return false.
54 */
55 inline bool dc_assert_fp_enabled(void)
56 {
> 57 int *pcpu, depth = 0;
58
59 pcpu = get_cpu_ptr(&fpu_recursion_depth);
60 depth = this_cpu_read(fpu_recursion_depth);
61 put_cpu_ptr(&fpu_recursion_depth);
62
63 return depth > 1;
64 }
65
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 2 months