Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Álvaro Fernández Rojas (2):
dt-bindings: usb: generic-ehci: document ignore-oc flag
usb: host: ehci-platform: add ignore-oc DT support
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 5 +++++
drivers/usb/host/ehci-platform.c | 3 +++
2 files changed, 8 insertions(+)
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 5 +++++
1 file changed, 5 insertions(+)
@@ -117,6 +117,11 @@ properties:Set this flag if EHCI has a Transaction Translator built intothe root hub.+ignore-oc:+$ref:/schemas/types.yaml#/definitions/flag+description:+Set this flag for HCDs without over-current reporting support.+needs-reset-on-resume:$ref:/schemas/types.yaml#/definitions/flagdescription:
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
drivers/usb/host/ehci-platform.c | 3 +++
1 file changed, 3 insertions(+)
From: Alan Stern <stern@rowland.harvard.edu> Date: 2021-02-23 15:56:01
On Tue, Feb 23, 2021 at 04:50:04PM +0100, Álvaro Fernández Rojas wrote:
quoted hunk
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 5 +++++
1 file changed, 5 insertions(+)
@@ -117,6 +117,11 @@ properties:Set this flag if EHCI has a Transaction Translator built intothe root hub.+ignore-oc:+$ref:/schemas/types.yaml#/definitions/flag+description:+Set this flag for HCDs without over-current reporting support.
This is not a good description of a device property. DT entries are
supposed to described the hardware, not talk about how to use it.
When you say that the bcm63xx doesn't support over-current reporting,
what exactly do you mean? Do you mean that sometimes the hardware turns
on the over-current bit when an over-current isn't actually present? Or
do you mean something else?
Alan Stern
El 23 feb 2021, a las 16:54, Alan Stern [off-list ref] escribió:
On Tue, Feb 23, 2021 at 04:50:04PM +0100, Álvaro Fernández Rojas wrote:
quoted
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 5 +++++
1 file changed, 5 insertions(+)
@@ -117,6 +117,11 @@ properties:Set this flag if EHCI has a Transaction Translator built intothe root hub.+ignore-oc:+$ref:/schemas/types.yaml#/definitions/flag+description:+Set this flag for HCDs without over-current reporting support.
This is not a good description of a device property. DT entries are
supposed to described the hardware, not talk about how to use it.
Any suggestions on a proper description?
When you say that the bcm63xx doesn't support over-current reporting,
what exactly do you mean? Do you mean that sometimes the hardware turns
on the over-current bit when an over-current isn't actually present? Or
do you mean something else?
Yes, the hardware turns on the over-current bit with no over-current present.
From: Alan Stern <stern@rowland.harvard.edu> Date: 2021-02-23 16:10:36
On Tue, Feb 23, 2021 at 05:04:57PM +0100, Álvaro Fernández Rojas wrote:
Hi Alan,
quoted
El 23 feb 2021, a las 16:54, Alan Stern [off-list ref] escribió:
On Tue, Feb 23, 2021 at 04:50:04PM +0100, Álvaro Fernández Rojas wrote:
quoted
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 5 +++++
1 file changed, 5 insertions(+)
@@ -117,6 +117,11 @@ properties:Set this flag if EHCI has a Transaction Translator built intothe root hub.+ignore-oc:+$ref:/schemas/types.yaml#/definitions/flag+description:+Set this flag for HCDs without over-current reporting support.
This is not a good description of a device property. DT entries are
supposed to described the hardware, not talk about how to use it.
Any suggestions on a proper description?
quoted
When you say that the bcm63xx doesn't support over-current reporting,
what exactly do you mean? Do you mean that sometimes the hardware turns
on the over-current bit when an over-current isn't actually present? Or
do you mean something else?
Yes, the hardware turns on the over-current bit with no over-current present.
Okay, in that case the property should be named something like
"spurious_oc", and the description should say something like:
Set this flag to indicate that the hardware sometimes turns on
the OC bit when an over-current isn't actually present.
Alan Stern
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Álvaro Fernández Rojas (2):
dt-bindings: usb: generic-ehci: document ignore-oc flag
usb: host: ehci-platform: add ignore_oc DT support
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 6 ++++++
drivers/usb/host/ehci-platform.c | 3 +++
2 files changed, 9 insertions(+)
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
v2: change flag name and improve documentation as suggested by Alan Stern.
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 6 ++++++
1 file changed, 6 insertions(+)
@@ -122,6 +122,12 @@ properties:description:Set this flag to force EHCI reset after resume.+spurious-oc:+$ref:/schemas/types.yaml#/definitions/flag+description:+Set this flag to indicate that the hardware sometimes turns on+the OC bit when an over-current isn't actually present.+companion:$ref:/schemas/types.yaml#/definitions/phandledescription:
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
v2: change flag name and improve documentation as suggested by Alan Stern.
drivers/usb/host/ehci-platform.c | 3 +++
1 file changed, 3 insertions(+)
From: Alan Stern <stern@rowland.harvard.edu> Date: 2021-02-23 16:56:46
On Tue, Feb 23, 2021 at 05:16:44PM +0100, Álvaro Fernández Rojas wrote:
quoted hunk
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
v2: change flag name and improve documentation as suggested by Alan Stern.
drivers/usb/host/ehci-platform.c | 3 +++
1 file changed, 3 insertions(+)
From: kernel test robot <hidden> Date: 2021-02-23 17:38:57
Hi "Álvaro,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on usb/usb-testing]
[also build test ERROR on v5.11 next-20210223]
[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/lvaro-Fern-ndez-Rojas/usb-host-ehci-platform-add-ignore-oc-DT-support/20210223-235717
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
config: m68k-randconfig-s031-20210223 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-229-g60c1f270-dirty
# https://github.com/0day-ci/linux/commit/cb5cc55cab35476258f04e40cac0a9dd02271475
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review lvaro-Fern-ndez-Rojas/usb-host-ehci-platform-add-ignore-oc-DT-support/20210223-235717
git checkout cb5cc55cab35476258f04e40cac0a9dd02271475
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <redacted>
All errors (new ones prefixed by >>):
In file included from include/linux/build_bug.h:5,
from include/linux/bits.h:22,
from include/linux/ioport.h:13,
from include/linux/acpi.h:12,
from drivers/usb/host/ehci-platform.c:21:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_no.h:33:50: warning: ordered comparison of pointer with null pointer [-Wextra]
33 | #define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:137:2: note: in expansion of macro 'BUG_ON'
137 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:137:10: note: in expansion of macro 'virt_addr_valid'
137 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/usb/host/ehci-platform.c: In function 'ehci_platform_probe':
quoted
drivers/usb/host/ehci-platform.c:290:8: error: 'struct ehci_hcd' has no member named 'ignore_oc'
290 | ehci->ignore_oc = 1;
| ^~
vim +290 drivers/usb/host/ehci-platform.c
238
239 static int ehci_platform_probe(struct platform_device *dev)
240 {
241 struct usb_hcd *hcd;
242 struct resource *res_mem;
243 struct usb_ehci_pdata *pdata = dev_get_platdata(&dev->dev);
244 struct ehci_platform_priv *priv;
245 struct ehci_hcd *ehci;
246 int err, irq, clk = 0;
247
248 if (usb_disabled())
249 return -ENODEV;
250
251 /*
252 * Use reasonable defaults so platforms don't have to provide these
253 * with DT probing on ARM.
254 */
255 if (!pdata)
256 pdata = &ehci_platform_defaults;
257
258 err = dma_coerce_mask_and_coherent(&dev->dev,
259 pdata->dma_mask_64 ? DMA_BIT_MASK(64) : DMA_BIT_MASK(32));
260 if (err) {
261 dev_err(&dev->dev, "Error: DMA mask configuration failed\n");
262 return err;
263 }
264
265 irq = platform_get_irq(dev, 0);
266 if (irq < 0)
267 return irq;
268
269 hcd = usb_create_hcd(&ehci_platform_hc_driver, &dev->dev,
270 dev_name(&dev->dev));
271 if (!hcd)
272 return -ENOMEM;
273
274 platform_set_drvdata(dev, hcd);
275 dev->dev.platform_data = pdata;
276 priv = hcd_to_ehci_priv(hcd);
277 ehci = hcd_to_ehci(hcd);
278
279 if (pdata == &ehci_platform_defaults && dev->dev.of_node) {
280 if (of_property_read_bool(dev->dev.of_node, "big-endian-regs"))
281 ehci->big_endian_mmio = 1;
282
283 if (of_property_read_bool(dev->dev.of_node, "big-endian-desc"))
284 ehci->big_endian_desc = 1;
285
286 if (of_property_read_bool(dev->dev.of_node, "big-endian"))
287 ehci->big_endian_mmio = ehci->big_endian_desc = 1;
288
289 if (of_property_read_bool(dev->dev.of_node, "ignore-oc"))
> 290 ehci->ignore_oc = 1;
291
292 if (of_property_read_bool(dev->dev.of_node,
293 "needs-reset-on-resume"))
294 priv->reset_on_resume = true;
295
296 if (of_property_read_bool(dev->dev.of_node,
297 "has-transaction-translator"))
298 hcd->has_tt = 1;
299
300 if (soc_device_match(quirk_poll_match))
301 priv->quirk_poll = true;
302
303 for (clk = 0; clk < EHCI_MAX_CLKS; clk++) {
304 priv->clks[clk] = of_clk_get(dev->dev.of_node, clk);
305 if (IS_ERR(priv->clks[clk])) {
306 err = PTR_ERR(priv->clks[clk]);
307 if (err == -EPROBE_DEFER)
308 goto err_put_clks;
309 priv->clks[clk] = NULL;
310 break;
311 }
312 }
313 }
314
315 priv->rsts = devm_reset_control_array_get_optional_shared(&dev->dev);
316 if (IS_ERR(priv->rsts)) {
317 err = PTR_ERR(priv->rsts);
318 goto err_put_clks;
319 }
320
321 err = reset_control_deassert(priv->rsts);
322 if (err)
323 goto err_put_clks;
324
325 if (pdata->big_endian_desc)
326 ehci->big_endian_desc = 1;
327 if (pdata->big_endian_mmio)
328 ehci->big_endian_mmio = 1;
329 if (pdata->has_tt)
330 hcd->has_tt = 1;
331 if (pdata->reset_on_resume)
332 priv->reset_on_resume = true;
333
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
From: Florian Fainelli <florian@openwrt.org>
This patch adds an ignore_oc flag which can be set by EHCI controller
not supporting or wanting to disable overcurrent checking. The EHCI
platform data in include/linux/usb/ehci_pdriver.h is also augmented to
take advantage of this new flag.
Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
drivers/usb/host/ehci-hcd.c | 2 +-
drivers/usb/host/ehci-hub.c | 4 ++--
drivers/usb/host/ehci-platform.c | 2 ++
drivers/usb/host/ehci.h | 1 +
include/linux/usb/ehci_pdriver.h | 1 +
5 files changed, 7 insertions(+), 3 deletions(-)
@@ -50,6 +50,7 @@ struct usb_ehci_pdata {unsignedno_io_watchdog:1;unsignedreset_on_resume:1;unsigneddma_mask_64:1;+unsignedspurious_oc:1;/* Turn on all power and clocks */int(*power_on)(structplatform_device*pdev);
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
v3: no changes.
v2: change flag name and improve documentation as suggested by Alan Stern.
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 6 ++++++
1 file changed, 6 insertions(+)
@@ -122,6 +122,12 @@ properties:description:Set this flag to force EHCI reset after resume.+spurious-oc:+$ref:/schemas/types.yaml#/definitions/flag+description:+Set this flag to indicate that the hardware sometimes turns on+the OC bit when an over-current isn't actually present.+companion:$ref:/schemas/types.yaml#/definitions/phandledescription:
--
2.20.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
v3: no changes.
drivers/usb/host/ehci-platform.c | 3 +++
1 file changed, 3 insertions(+)
I didn’t change this, but I missed Alan’s Acked-by, so:
Acked-by: Alan Stern <stern@rowland.harvard.edu>
quoted hunk
El 23 feb 2021, a las 18:44, Álvaro Fernández Rojas [off-list ref] escribió:
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
v3: no changes.
v2: change flag name and improve documentation as suggested by Alan Stern.
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 6 ++++++
1 file changed, 6 insertions(+)
@@ -122,6 +122,12 @@ properties:description:Set this flag to force EHCI reset after resume.+spurious-oc:+$ref:/schemas/types.yaml#/definitions/flag+description:+Set this flag to indicate that the hardware sometimes turns on+the OC bit when an over-current isn't actually present.+companion:$ref:/schemas/types.yaml#/definitions/phandledescription:
From: Rob Herring <robh@kernel.org> Date: 2021-03-06 20:03:39
On Tue, 23 Feb 2021 18:44:54 +0100, Álvaro Fernández Rojas wrote:
Over-current reporting isn't supported on some platforms such as bcm63xx.
These devices will incorrectly report over-current if this flag isn't properly
activated.
Signed-off-by: Álvaro Fernández Rojas <redacted>
---
v3: no changes.
v2: change flag name and improve documentation as suggested by Alan Stern.
Documentation/devicetree/bindings/usb/generic-ehci.yaml | 6 ++++++
1 file changed, 6 insertions(+)