The current code tries to allocate memory with GFP_KERNEL at
interrupt context, it would show below warning during the enumeration
when I test it with chipidea hardware, change GFP flag as GFP_ATOMIC
can fix this issue.
[ 40.438237] zero gadget: high-speed config #2: loopback
[ 40.444924]
"printk" is not suitable for dbc debugging especially when console
is in usage. This patch adds a debug buffer in dbc driver and puts
the debug messages in this local buffer. The debug buffer could be
dumped whenever the console is not in use. This part of code will
not be visible unless DBC_DEBUG
Add Documentation/usb/xhci-dbc.txt. This document includes
development status and user guide for USB3 debug port.
Signed-off-by: Lu Baolu
---
Documentation/usb/xhci-dbc.txt | 325 +
MAINTAINERS| 1 +
drivers/usb/early/xhci-dbc.c |
On Intel platform, if the debug target is connected with debug
host, enabling DCE bit in command register leads to a hung bus
state. In the hung state, the host system will not see a port
connected status bit set. Hence debug target fails to be probed.
The state could be resolved by performing a p
Add support for early printk by writing debug messages to the USB3
debug port. Users can use this type of early printk by specifying
kernel parameter of "earlyprintk=xdbc". This gives users a chance
of providing debug output.
Signed-off-by: Lu Baolu
---
Documentation/kernel-parameters.txt | 1 +
This patch series adds support for early printk through USB3 debug port.
USB3 debug port is described in xHCI specification as an optional extended
capability.
The first patch adds a file in sysfs, through which users can check
whether the debug capability is supported by a specific host controlle
This patch adds interfaces for bulk out and bulk in ops. These
interfaces could be used to implement early printk bootconsole
or hook to various system debuggers.
Signed-off-by: Lu Baolu
---
drivers/usb/early/xhci-dbc.c | 373 +++
include/linux/usb/xhci-db
After DbC setup, debug target needs to wait until tty driver and
application (e.g. mincom) on debug taget start. Otherwise, out
messages might be ignored.
This patch adds a ping/pong mechanism between debug target and
host. Debug target will be waiting there until user presses 'Y'
or 'y' in the t
In case of endpoint stall, software is able to detect the situation
by reading DCCTRL.HIT or DCCTRL.HOT bits. DbC follows the normal USB
framework to handle endpoint stall. When software detects endpoint
stall situation, it should wait until endpoint is recovered before
read or write oprations.
Si
xHCI compatible USB3 host controller may provide debug capability
which enables low-level system debug over USB. In order to probing
this debug capability, Linux kernel needs to map and access the
mmio of the host controller during early boot.
This patch adds permenent fixmap pages in fixed_addres
DbC might exit configured state in some cases (refer to 7.6.4.4 in
xHCI spec 1.1). Software needs detect and clear this situation by
clearing DCCTRL.DCR and wait until the DbC configured before read
or write oprations.
Signed-off-by: Lu Baolu
---
drivers/usb/early/xhci-dbc.c | 28 +++
This patch adds a sysfs file for users to check 1) whether the debug
capability is implemented by hardware; 2) if supported, which state
does it stay at.
With a host that supports debug port, a file named "debug_port_state"
will be created under the device sysfs directory. Reading this file
will s
This patch add dbc debug device support in usb_debug driver.
Signed-off-by: Lu Baolu
---
drivers/usb/serial/usb_debug.c | 28 +---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/serial/usb_debug.c b/drivers/usb/serial/usb_debug.c
index ca2fa5b.
xHCI debug capability (DbC) is an optional functionality provided
by an xHCI host controller. Software learns this capability by
walking through the extended capability list in mmio of the host.
This patch introduces the code to probe and initialize the debug
capability hardware during early boot.
On Thu, Oct 29, 2015 at 08:52:23AM -0500, Nathan Sullivan wrote:
> The USB OTG support currently depends on power management
> (CONFIG_PM) being enabled, but does not actually need it enabled.
> Remove this dependency.
>
> Tested on Bay Trail hardware with dwc3 USB.
>
> Signed-off-by: Nathan Sull
Since this configuration option has deleted, cleans up all
its references.
Signed-off-by: Peter Chen
Reported-by: Valentin Rothberg
---
Documentation/usb/chipidea.txt | 4 ++--
drivers/usb/chipidea/core.c| 1 -
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/Documentation/usb
On Mon, 2015-11-02 at 21:27 +0100, Sven Brauch wrote:
> On 02/11/15 12:32, Oliver Neukum wrote:
> > given this test I will submit the patch.
> Mind you, I don't know if the improvement is due to your patch or other
> things. I didn't test the new kernel without your patch; should I?
If you find th
On 10/28/15 at 04:00pm, Lu Baolu wrote:
> This patch series adds support for early printk through USB3 debug port.
> USB3 debug port is described in xHCI specification as an optional extended
> capability.
>
> The first patch adds a file in debugfs, through which users can check
> whether the debu
On Tue, Nov 3, 2015 at 5:51 AM, Peter Hung wrote:
> This driver is for Fintek F81532/F81534 USB to Serial Ports IC.
>
> Features:
> 1. F81534 is 1-to-4 & F81532 is 1-to-2 serial ports IC
> 2. Support Baudrate from B50 to B150 (excluding B100).
> 3. The RTS signal can be transformed their b
On Tue, 2015-11-03 at 11:51 +0800, Peter Hung wrote:
> This driver is for Fintek F81532/F81534 USB to Serial Ports IC.
>
> Features:
> 1. F81534 is 1-to-4 & F81532 is 1-to-2 serial ports IC
> 2. Support Baudrate from B50 to B150 (excluding B100).
> 3. The RTS signal can be transformed thei
On 03/11/15 09:58, Oliver Neukum wrote:
> Basically
> your device is special by doing implied flow control
> when the host stops requesting data.
Hmm, ok, interesting. But isn't that what always happens for USB bulk
transfers, which is always the transport layer for the driver in question?
Regards
On Tue, 2015-11-03 at 11:13 +0100, Sven Brauch wrote:
> On 03/11/15 09:58, Oliver Neukum wrote:
> > Basically
> > your device is special by doing implied flow control
> > when the host stops requesting data.
> Hmm, ok, interesting. But isn't that what always happens for USB bulk
> transfers, which
It seems like this device has same vendor and product IDs as G2K
devices, but it has different number of interfaces(4 vs 5) and also
different interface layout which makes it currently unusable:
usbcore: registered new interface driver qcserial
usbserial: USB Serial support registe
It just doesn't work with uas.
Blacklist it.
Signed-off-by: Oliver Neukum
---
drivers/usb/storage/unusual_uas.h | 7 +++
1 file changed, 7 insertions(+)
diff --git a/drivers/usb/storage/unusual_uas.h
b/drivers/usb/storage/unusual_uas.h
index c85ea53..8aefb36 100644
--- a/drivers/usb/storag
Hi,
On 03-11-15 11:48, Oliver Neukum wrote:
It just doesn't work with uas.
Blacklist it.
Signed-off-by: Oliver Neukum
---
drivers/usb/storage/unusual_uas.h | 7 +++
1 file changed, 7 insertions(+)
diff --git a/drivers/usb/storage/unusual_uas.h
b/drivers/usb/storage/unusual_uas.h
index
Petr Štetiar writes:
> It seems like this device has same vendor and product IDs as G2K
> devices, but it has different number of interfaces(4 vs 5) and also
> different interface layout which makes it currently unusable:
>
> usbcore: registered new interface driver qcserial
> usbseri
Hi Felipe,
Here is my new patch series doing some changes in composite framework
and modifying USB Function API. Some of concepts changed significantly,
for example bind process is done automatically inside composite framework
after collecting descriptors from all Functions. Hence bind() operation
As now we store current altsetting number for each interface, we can
handle USB_REQ_GET_INTERFACE automatically.
Signed-off-by: Robert Baldyga
---
drivers/usb/gadget/composite.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/gadget/composite.c b/drivers/us
Generate descriptors in new format and attach them to USB function in
prep_descs(). Implement prep_vendor_descs() to supply class specific
descriptors. Change set_alt() implementation and implement clear_alt()
operation. Get rid of get_alt() which now is handled automatically.
Remove boilerplate co
Generate descriptors in new format and attach them to USB function in
prep_descs(). Change set_alt() implementation and implement clear_alt()
operation. Remove unnecessary boilerplate code.
Call usb_config_do_bind() in legacy gadget zero, because it uses
usb_add_config_only() instead of usb_add_co
Generate descriptors in new format and attach them to USB function in
prep_descs(). Implement prep_vendor_descs() to supply class specific
descriptors. Change set_alt() implementation and implement clear_alt()
operation. Remove boilerplate code. Change USB request lifetime
management - now it's all
Handle functions using new API properly.
Signed-off-by: Robert Baldyga
---
drivers/usb/gadget/configfs.c | 22 ++
1 file changed, 22 insertions(+)
diff --git a/drivers/usb/gadget/configfs.c b/drivers/usb/gadget/configfs.c
index d2101d8..fa5334f 100644
--- a/drivers/usb/gadge
Generate descriptors in new format and attach them to USB function in
prep_descs(). Change set_alt() implementation and implement clear_alt()
operation. Get rid of get_alt() callback, as now USB_REQ_GET_INTERFACE
is handled automatically by composite framwework. Remove unnecessary
boilerplate code.
Enable adding USB functions which use new API. Check if all necessary
function ops are supplied and call prep_descs() to allow function register
it's entity descriptors. Notice that bind() function is not called for
USB functions using new API, as now bind procedure is handled for them
in composite
Introduce function returning endpoint of given index in active altsetting
of specified interface. It's intended to be used in set_alt() callback
to obtain endpoints of currently selected altsetting.
Signed-off-by: Robert Baldyga
---
drivers/usb/gadget/composite.c | 33 +++
Introduce function returning id of interface at given index in function.
The id value is equal bInterfaceNumber field in interface descriptor.
This value can be useful during preparation of class or vendor specific
descriptors in prep_vendor_descs() callback. It can be also necessary
to handle some
Introduce clear_alt() callback, which is called when prevoiusly set
altsetting is cleared. This can take place in two situations:
- when another altsetting is selected,
- during function disable.
Thanks to symetry to set_alt(), clear_alt() simplifies managing of
resources allocated in set_alt(). I
As now USB function supplies entity descriptors to composite in
prep_descs() callback, we can perform bind inside composite framework
without involving bind() callback (which now is unused and will be
removed after converting all functions in kernel to new API).
For now we bind each configuration
Changes meaning of disable() operation for functions using new API.
Before calling disable() callback composite automatically disables
endpoints of active altsettings of given USB function. This reduces
amount of boilerplate code in USB functions.
Signed-off-by: Robert Baldyga
---
drivers/usb/ga
Introduce two new USB function operations:
1. prep_descs() prepares and assigns entity (interface and endpoint)
descriptors to USB function. It's mandatory, in the new function API,
as each USB function should have at least minimalistic set of entity
descriptors. The minimum is single inferface wi
Change set_alt() behavior for functions using new API. Before we call
set_alt() callback, we disable endpoints of previously selected altsetting,
and enable endpoints of currently selected altsetting, which reduces
amount of boilerplate code in USB functions.
We also calculate index of interface i
USB requests in SourceSink function are allocated in sourcesink_get_alt()
function, so we prefer to free them rather in sourcesink_disable() than
in source_sink_complete() when request is completed with error. It provides
better symetry in resource management and improves code readability.
Signed-
For now we generate descriptor arrays for each speed as it is done by old
API functions, to allow use mixed new and old API based functions in single
configurations.
This will be removed after complete switch to new API.
Signed-off-by: Robert Baldyga
---
drivers/usb/gadget/composite.c | 175 +++
Introduce functions and macros allowing to create and assign descriptors
to function easily. Macros build structure hierarchy using pointers to
USB descriptors, while functions assigning them to gadget make a deep
copy. It allows for easy conversion of USB functions to make them using
new descripto
After binding all configurations in gadget, call prep_vendor_descs()
for each function which uses new API and implements this callback.
Signed-off-by: Robert Baldyga
---
drivers/usb/gadget/composite.c | 31 +++
include/linux/usb/composite.h | 2 ++
2 files changed,
USB requests in Loopback function are allocated in loopback_get_alt()
function, so we prefer to free them rather in loopback_disable() than
in loopback_complete() when request is completed with error. It provides
better symetry in resource management and improves code readability.
Signed-off-by: R
So far it was decided during the bind process whether is iso altsetting
included to f_sourcesink function or not. This decision was based on
availability of isochronous endpoints.
Since we can assemble gadget driver using composite framework and configfs
from many different functions, availability
Compute request size once before the loop instead of computing it in each
loop iteration.
Signed-off-by: Robert Baldyga
---
drivers/usb/gadget/function/f_sourcesink.c | 45 +++---
1 file changed, 22 insertions(+), 23 deletions(-)
diff --git a/drivers/usb/gadget/function/
Introduce new structures designed to contain information about
descriptors. It splits descriptors in two categories:
1. Entity descs - interface and endpoint descriptors
2. Vendor descs - all other vendor and class specific descriptors
Entity descriptors are embedded in hierarchy of structures whi
As usb_gstrings_attach() fail can happen when some USB functions are
are already added to some configurations (in prevoius loop iterations),
we should always call purge_configs_funcs() to be sure that failure is
be handled properly.
Signed-off-by: Robert Baldyga
---
drivers/usb/gadget/configfs.c
[...]
Hi Johan,
I'd like to add tx_empty() and replace cp210x_get/set_config with
simpler functions, as we discussed before. While the tx_empty patch
could be made against the current kernel, the latter would have to be
made against my previous patch set. How should this be done?
Thanks,
Konstan
On Tue, Nov 03, 2015 at 07:26:00AM -0600, Konstantin Shkolnyy wrote:
> [...]
>
> Hi Johan,
>
> I'd like to add tx_empty() and replace cp210x_get/set_config with
> simpler functions, as we discussed before. While the tx_empty patch
> could be made against the current kernel, the latter would have
Bjørn Mork [2015-11-03 13:37:56]:
> > + case 4:
> > + /* Don't claim the QMI/net interface */
> > + altsetting = -1;
> > + break;
> > + }
>
> I guess this means that we need to add an interface count quirk to the
> qmi_wwan driver as well? I assume there are de
Hello.
On 11/3/2015 3:53 PM, Robert Baldyga wrote:
As usb_gstrings_attach() fail can happen when some USB functions are
Failure?
are already added to some configurations (in prevoius loop iterations),
Previous?
we should always call purge_configs_funcs() to be sure that failure is
Hi,
Nathan Sullivan writes:
> The USB OTG support currently depends on power management
> (CONFIG_PM) being enabled, but does not actually need it enabled.
> Remove this dependency.
>
> Tested on Bay Trail hardware with dwc3 USB.
>
> Signed-off-by: Nathan Sullivan
> ---
> drivers/usb/core/Kcon
On Tue, Nov 03, 2015 at 04:14:11PM +0800, Lu Baolu wrote:
> This patch add dbc debug device support in usb_debug driver.
>
> Signed-off-by: Lu Baolu
Acked-by: Johan Hovold
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.o
On Tue, Nov 03, 2015 at 07:56:55AM -0600, Felipe Balbi wrote:
>
> Hi,
>
> Nathan Sullivan writes:
> > The USB OTG support currently depends on power management
> > (CONFIG_PM) being enabled, but does not actually need it enabled.
> > Remove this dependency.
> >
> > Tested on Bay Trail hardware w
Hi,
Nathan Sullivan writes:
> On Tue, Nov 03, 2015 at 07:56:55AM -0600, Felipe Balbi wrote:
>>
>> Hi,
>>
>> Nathan Sullivan writes:
>> > The USB OTG support currently depends on power management
>> > (CONFIG_PM) being enabled, but does not actually need it enabled.
>> > Remove this dependency
On Tue, 3 Nov 2015, Peter Chen wrote:
> On Mon, Nov 02, 2015 at 11:24:54AM -0500, Alan Stern wrote:
> > On Mon, 2 Nov 2015, Peter Chen wrote:
> >
> > > Hi Alan,
> > >
> > > After a discussion with IC engineer, a brief idea like below:
> > >
> > > - Delete the QH from the asynclist directly, Iss
This function must be called with a spinlock held.
Memory can be allocated only with GFP_ATOMIC. Passing
a gfp_t argument is a waste.
Signed-off-by: Oliver Neukum
---
drivers/usb/storage/uas.c | 24
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/
Some USB phy drivers have different handling for the controller in each
dr_mode. But the phy driver does not have visibility to the dr_mode of
the controller.
This adds an api to return the dr_mode of the controller which
associates the given phy node.
Signed-off-by: Bin Liu
---
v5: - to simplif
I was a bit sad to see you guys blocked ATA pass though but I guess
nothing can be done about VIA not supporting them.
So this basically works.
Nov 3 14:14:36 localhost kernel: [44188.236491] usb 9-1: new SuperSpeed
USB device number 4 using xhci_hcd
Nov 3 14:14:36 localhost kernel: [44188.2550
John,
On Fri, Oct 30, 2015 at 1:38 PM, John Youn wrote:
> On 10/16/2015 3:10 PM, Douglas Anderson wrote:
>> If you've got your interrupt signals bouncing a bit as you insert your
>> USB device, you might end up in a state when the device is connected but
>> the driver doesn't know it.
>>
>> Speci
If you've got your interrupt signals bouncing a bit as you insert your
USB device, you might end up in a state when the device is connected but
the driver doesn't know it.
Specifically, the observed order is:
1. hardware sees connect
2. hardware sees disconnect
3. hardware sees connect
4. dwc2
In general it is wise to clear interrupts before processing them. If
you don't do that, you can get:
1. Interrupt happens
2. You look at system state and process interrupt
3. A new interrupt happens
4. You clear interrupt without processing it.
This patch was actually a first attempt to fix m
--- For more details View below attachment --
Urgent Response Needed.pdf
Description: Adobe PDF document
This is just no notify about the bug as stated by Greg Kroah-Hartman.
I have found the bug because it has also affected me with another router.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http
On 11/03/2015 05:42 PM, Dave Young wrote:
On 10/28/15 at 04:00pm, Lu Baolu wrote:
This patch series adds support for early printk through USB3 debug port.
USB3 debug port is described in xHCI specification as an optional extended
capability.
The first patch adds a file in debugfs, through whi
On 10/29/2015 01:41 AM, Uwe Kleine-König wrote:
> Hello Stephen,
>
> On Wed, Oct 28, 2015 at 09:55:05PM -0600, Stephen Warren wrote:
>> On 10/27/2015 12:18 PM, Uwe Kleine-König wrote:
>>> Hello,
>>>
>>> On Tue, Oct 27, 2015 at 09:08:27AM -0600, Stephen Warren wrote:
On 10/27/2015 01:41 AM, Uw
On Tue, Nov 03, 2015 at 07:56:55AM -0600, Felipe Balbi wrote:
>
> Hi,
>
> Nathan Sullivan writes:
> > The USB OTG support currently depends on power management
> > (CONFIG_PM) being enabled, but does not actually need it enabled.
> > Remove this dependency.
> >
> > Tested on Bay Trail hardware w
Hi,
Peter Chen writes:
> On Tue, Nov 03, 2015 at 07:56:55AM -0600, Felipe Balbi wrote:
>>
>> Hi,
>>
>> Nathan Sullivan writes:
>> > The USB OTG support currently depends on power management
>> > (CONFIG_PM) being enabled, but does not actually need it enabled.
>> > Remove this dependency.
>>
71 matches
Mail list logo