Oliver Neukum | 28 Jan 16:05 2016

regression with S3 and XHCI


with the latest kernels I tested devices connected to XHCI
are gone after resume. The ports are not resumed. An error is in dmesg:

[  614.639506] sd 5:0:0:0: [sdc] Starting disk
[  614.672568] xhci_hcd 0000:00:14.0: port 7 resume PLC timeout
[  614.695152] xhci_hcd 0000:00:14.0: port 6 resume PLC timeout
[  614.716345] xhci_hcd 0000:00:14.0: port 4 resume PLC timeout
[  614.906969] iwlwifi 0000:5c:00.0: L1 Enabled - LTR Disabled
[  614.913933] iwlwifi 0000:5c:00.0: L1 Enabled - LTR Disabled
[  614.914034] iwlwifi 0000:5c:00.0: Radio type=0x1-0x2-0x0
[  614.942266] usb 3-5: reset full-speed USB device number 3 using xhci_hcd
[  614.988670] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[  614.988706] ata6: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[  614.988719] ata4: SATA link down (SStatus 0 SControl 300)
[  614.988749] ata3: SATA link down (SStatus 0 SControl 300)
[  614.990735] ata6.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)
[  614.990830] ata6.00: supports DRM functions and may not be fully accessible
[  614.990920] ata6.00: failed to get NCQ Send/Recv Log Emask 0x1
[  614.991108] ata6.00: ACPI cmd 00/00:00:00:00:00:a0 (NOP) rejected by device (Stat=0x51 Err=0x04)
[  614.991126] ata6.00: supports DRM functions and may not be fully accessible
[  614.991159] ata6.00: failed to get NCQ Send/Recv Log Emask 0x1
[  614.991188] ata6.00: configured for UDMA/133
[  615.114778] ata2.00: configured for UDMA/100
[  615.182266] usb 3-8: reset high-speed USB device number 6 using xhci_hcd
[  615.422230] usb 3-7: reset high-speed USB device number 5 using xhci_hcd
[  616.070075] rtc_cmos 00:04: System wakeup disabled by ACPI

Bisecting this failed as I ran into a period the kernel crashes due to
(Continue reading)

Ravi Babu | 28 Jan 08:40 2016

[PATCH] dwc3: gadget: fix for no-resource condition in dwc3 device controller

The "no-resource" error occurs when the driver issues DEPSTRTXFER
command to start data transfer on specific endpoint, and dwc3
core throws error "no resource" available to process the request.

This condition is occurs in composite gadget scenario where there
are multiple interfaces selected by host and during simulateneous
data traffic on multiple endpoints on these interfaces, the issue
occur when software/driver issues DEPSTRTXFER command to specific
endpoint in same direction (in/out) and other endpoint in the same
direction (in/out) is busy or executed by dwc3 controller.

example: if dwc3 core is busy in transferring the request on ep1-in
during this scenario, if software/driver queues another request on
ep2-in and issue start transfer (DEPSTRTXFER command), then dwc3
throws error "no-resource". The same applicable to OUT transfer.

The issue is root caused that software issue DEPSTARTCFG
request received from host while selecting multiple interface.
In single configuration with two parallel interfaces, say the
interface-1 has two endpoints, ep1-in & ep1-out, and interface-2
has two endpoints ep2-in and ep2-out. The additional DEPSTARTCFG
will make the core too allocate the same resource, say for ep2-in
and ep2-out which were previously assigned to ep1-in and ep1-out.

Therefore during the simulataneous traffic on endpoints on same
direction leads to resource conflict and dwc3 core throws the
"no-resource" error when DEPSTARTCFG command while issuing the
start transfer request.

(Continue reading)

Peter Hung | 28 Jan 08:33 2016

[PATCH V8 1/1] usb:serial: Add Fintek F81532/534 driver

This driver is for Fintek F81532/F81534 USB to Serial Ports IC.

F81532 spec:

F81534 spec:

F81438 transceiver spec:

1. F81532 is 1-to-2 & F81534 is 1-to-4 serial ports IC
2. Support Baudrate from B50 to B1500000 (excluding B1000000).
3. The RTS signal can do auto-direction control by user-space tool.
4. The 4x3 output-only open-drain pins for F81532/534 is designed for
   control outer devices (with our EVB for examples, the 4 sets of pins
   are designed to control transceiver mode). It's also controlled by
   user-space tool.
5. User-space tool will save the configuration in internal storage and
   the IC will read it when power on or driver loaded.

   Please reference https://bitbucket.org/hpeter/fintek-general/src/
   with f81534/tools to get user-space tool to change F81532/534
   setting. Please use it carefully.

Signed-off-by: Peter Hung <hpeter+linux_kernel-Re5JQEeQqe8AvxtiuMwx3w <at> public.gmane.org>
(Continue reading)

Geyslan G. Bem | 27 Jan 23:51 2016

[PATCH] documentation: add kernel-dot.emacs.txt

This patch adds kernel-dot-emacs.txt (elisp) which deliver best
indentation, comments and white space highlighting functionalities.

This also changes the CodingStyle and 00-INDEX files by referencing
the new kernel-dot-emacs.

Signed-off-by: Geyslan G. Bem <geyslan@...>

    This patch was done by suggestion of Jonathan Corbet:

 Documentation/00-INDEX             |   2 +
 Documentation/CodingStyle          |  38 +----
 Documentation/kernel-dot-emacs.txt | 285 +++++++++++++++++++++++++++++++++++++
 3 files changed, 291 insertions(+), 34 deletions(-)
 create mode 100644 Documentation/kernel-dot-emacs.txt

diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index cd077ca..d4c48f5 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
 <at>  <at>  -259,6 +259,8  <at>  <at>  kernel-doc-nano-HOWTO.txt
 	- mini HowTo on generation and location of kernel documentation files.
 	- listing of various WWW + books that document kernel internals.
+	- emacs dot file for kernel coding style.
(Continue reading)

Stefan Agner | 28 Jan 01:55 2016

[PATCH] usb: chipidea: imx: avoid EPROBE_DEFER printed as error

Avoid printing an error if adding the device failes with return
value EPROBE_DEFFER. This may happen e.g. due to missing GPIO for
the vbus-supply regulator.

Signed-off-by: Stefan Agner <stefan@...>
 drivers/usb/chipidea/ci_hdrc_imx.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/chipidea/ci_hdrc_imx.c b/drivers/usb/chipidea/ci_hdrc_imx.c
index f14f4ab..0d66f1f 100644
--- a/drivers/usb/chipidea/ci_hdrc_imx.c
+++ b/drivers/usb/chipidea/ci_hdrc_imx.c
 <at>  <at>  -302,9 +302,9  <at>  <at>  static int ci_hdrc_imx_probe(struct platform_device *pdev)
 	if (IS_ERR(data->ci_pdev)) {
 		ret = PTR_ERR(data->ci_pdev);
-		dev_err(&pdev->dev,
-			"Can't register ci_hdrc platform device, err=%d\n",
-			ret);
+		if (ret != -EPROBE_DEFER)
+			dev_err(&pdev->dev,
+				"ci_hdrc_add_device failed, err=%d\n", ret);
 		goto err_clk;



(Continue reading)

Dave Penkler | 27 Jan 18:57 2016

[PATCH v7 0/5] usb: usbtmc: Add support for missing functions in USBTMC-USB488 spec

Implement support for the USB488 defined READ_STATUS_BYTE ioctl (1/5)
and SRQ notifications with fasync (2/5) and poll/select (3/5) in order
to be able to synchronize with variable duration instrument

Add convenience ioctl to return all device capabilities (4/5)

Add ioctls for other USB488 requests: REN_CONTROL, GOTO_LOCAL and

 PATCH Changelog:
    v7 - Correct command direction and add data structure for
       - Cast arg to (void __user *) earlier in ioctl call chain
       - Correct type to __u8 for ioctl args to match unsigned char
         in userspace, 3 places: usb488_caps, stb and val
    v6 - Remove more excess newlines
         Rearrange declaration blocks aesthetically
	 Remove __func__ parameter from dev_xxx calls
	 Simplify tests for interrupt-in notifications
	 Propagate return code from usb_submit_urb()
    v5 - Remove excess newlines and parens
       - Move dev variable initialisations to declaration
       - Add comment on interrupt btag wrap
       - simplify test in usbtmc_free_int()

    v4 - Remove excess newlines and parens
       - simplify some expressions
(Continue reading)

Muni Sekhar | 27 Jan 07:03 2016

EHCI vs OHCI ports

[ Please keep me in CC as I'm not subscribed to the list]


My test system is having two USB1.1 (OHCI) controllers and one USB2
(EHCI) controller.

I am assuming When a High-Speed device is connected to the port, the
EHCI takes care of it. If the device is Full-Speed or Low-Speed, the
EHCI is disconnected from the port and the UHCI/OHCI is connected
instead. But I noticed a different behaviour i.e. when I connect
Full-Speed device(CSR’s Bluetooth device using btusb.ko driver) it is
ending up at an EHCI controller instead of OHCI controller, any

$ lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/2p, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/2p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/4p, 480M
    |__ Port 1: Dev 82, If 0, Class=hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 83, If 0, Class=hub, Driver=hub/3p, 480M
            |__ Port 1: Dev 87, If 0, Class=vend., Driver=babel, 12M
            |__ Port 2: Dev 88, If 0, Class=vend., Driver=ftdi_sio, 480M
            |__ Port 2: Dev 88, If 1, Class=vend., Driver=ftdi_sio, 480M
        |__ Port 2: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
            |__ Port 1: Dev 4, If 0, Class=vend., Driver=babel, 12M
            |__ Port 2: Dev 5, If 0, Class=vend., Driver=ftdi_sio, 480M
            |__ Port 2: Dev 5, If 1, Class=vend., Driver=ftdi_sio, 480M
            |__ Port 3: Dev 30, If 0, Class='bInterfaceClass 0xe0 not
yet handled', Driver=btusb, 12M
(Continue reading)

Andrew Gillis | 26 Jan 19:29 2016

C-Media CM6632 USB chip not showing up

I attached a USB DAC based on the C-Media CM6632 USB chip to my Fedora
22 Linux box and the DAC doesn't even show up under lsusb

It works fin on an older 3.12 kernel box.

Kernel is version 4.1.1

This is the error from dmesg

[ 1162.620652] usb usb1-port1: over-current condition
[ 1162.826592] usb 1-1: new high-speed USB device number 6 using ci_hdrc
[ 1163.042656] usb 1-1: new high-speed USB device number 7 using ci_hdrc
[ 1163.258488] usb 1-1: new high-speed USB device number 8 using ci_hdrc
[ 1163.668393] usb 1-1: device not accepting address 8, error -71
[ 1163.770416] usb 1-1: new high-speed USB device number 9 using ci_hdrc
[ 1164.180285] usb 1-1: device not accepting address 9, error -71
[ 1164.180405] usb usb1-port1: unable to enumerate USB device

Any idea what the problem is?

To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@...
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Mathias Nyman | 26 Jan 16:50 2016

[PATCH 0/9] xhci fixes for usb-linus 4.5-rc2

Hi Greg

These patches for usb-linus fixes mostly vendor specific issues.
The xhci-mtk fixes are for the Mediatek host support added in 4.5,
so no need for those two to go to stable.

One revert as it turns out most hw vendors don't work according to specs,
and one fix for possible list corruption/use after free at xhci removal.

Other fixes are mostly Intel xhci quirk fixes.

Chunfeng Yun (2):
  usb: xhci-mtk: fix bpkts value of LS/HS periodic eps not behind TT
  usb: xhci-mtk: fix AHB bus hang up caused by roothubs polling

Gregory CLEMENT (1):
  usb: host: xhci-plat: fix NULL pointer in probe for device tree case

Lu Baolu (4):
  usb: xhci: handle both SSIC ports in PME stuck quirk
  usb: xhci: add a quirk bit for ssic port unused
  usb: xhci: set SSIC port unused only if xhci_suspend succeeds
  usb: xhci: apply XHCI_PME_STUCK_QUIRK to Intel Broxton-M platforms

Mathias Nyman (2):
  Revert "xhci: don't finish a TD if we get a short-transfer event mid
  xhci: Fix list corruption in urb dequeue at host removal

 drivers/usb/host/xhci-mtk-sch.c | 16 +++++++++---
(Continue reading)

Li Jun | 26 Jan 08:18 2016

[PATCH v6 00/10] add HNP polling support for usb otg fsm

HNP polling is a mechanism which allows the OTG device currently acting
as host to determine when the other attached OTG device wishes to take
the host role. When an OTG host, which supports HNP, is connected to an
OTG peripheral which also supports HNP it shall poll the peripheral
regularly to determine whether it requires a role-swap and grant this at
the earliest opportunity.
This patchset adds OTG HNP polling support, and enable for chipidea usb
otg fsm driver, more patches for pass OTG certification will come later.

changes for v6:
- Remove patch of disable irq while stop host role.
- Split B_AIDL_BDIS timer patch to be 2 patches(9/10 and 10/10).
- Add Peter's ack for patch 3, 7, 8/10.

changes for v5:
- Instead of use stack memory, use kmalloc to allocate memory for host
  request flag one byte buffer(DMA read), and add host_req_flag pointer
  in struct otg_fsm for reference to that flag buffer.
- Add one patch to disable irq while stop host role(7/10).
- Add one patch to fix B_AIDL_BDIS timing issue(10/10).

changes for v4:
- Add OTG HNP capable check for connected device before sending HNP polling
  in patch 3/8.
- Add comment to explain HNP test update in chipidea.txt in patch 8/8.
- Fix some typo.
- Add Peter's Ack in patch 1,2,4,5,6,7/8 of the series.

Li Jun (10):
  usb: gadget: add hnp_polling_support and host_request_flag in
(Continue reading)

Geyslan G. Bem | 26 Jan 02:44 2016

[PATCH 00/36] usb: host: ehci: cleanup and refactoring

This patchset is the compendium of three series and an isolated patch.

[PATCH resend 0/9] usb: host: ehci.h cleanup
[PATCH v3 00/16] usb: host: ehci-dbg: cleanup and refactoring
[PATCH] usb: ehci: remove old stub_debug_files definition
[PATCH v3 00/10] usb: host: ehci-sched: cleanup

  This cleanup was done with the help of checkpatch and coccinelle tools.

  This patchset removes all errors reported by checkpatch in addition to
  some refactoring.

   - changes:
     * usb: host: ehci-dbg: fix up function definitions
   - adds:
     * usb: host: ehci-dbg: use scnprintf() in qh_lines()
   - removes:
     * usb: host: ehci-dbg: fix unsigned comparison
     * usb: host: ehci-dbg: remove unnecessary space after cast

   - fixes:
     * usb: host: ehci-dbg: add function output_buf_tds_dir()

  Cleanup done with the help of coccinelle, checkpatch and cppcheck tools.

(Continue reading)