| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
xhci_start_controller() to xhci_init(). These values don't change at run-
time so there's no point of acquiring them on every USB_HW_POWER_RESUME
instead of only once during initialization. In r276717, reading the first
couple of registers in question already had been moved as a prerequisite
for the changes in that revision.
- Identify ASMedia ASM1042A controllers.
- Use NULL instead of 0 for pointers.
MFC after: 3 days
|
|
|
|
|
| |
Requested by: Gary Jennejohn <gljennjohn@gmail.com>
MFC after: 3 days
|
|
|
|
|
|
|
| |
when re-enumerating a FULL speed device. Else the wrong max packet
setting might be used when trying to re-enumerate a FULL speed device.
MFC after: 3 days
|
|
|
|
| |
MFC after: 3 days
|
|
|
|
|
|
|
|
|
| |
that we should use a normal-TRB if there are more TRBs extending the
data-stage TRB. Add a dedicated state bit to the internal USB transfer
flags to handle this case.
Reported by: Kohji Okuno <okuno.kohji@jp.panasonic.com>
MFC after: 1 week
|
|
|
|
|
|
|
| |
- Fix some comments and whitespace while at it.
MFC after: 1 month
Submitted by: marius@
|
|
|
|
|
|
|
|
| |
is called from "xhci_configure_reset_endpoint()". Ensure the 3-strikes
error feature is always enabled except for ISOCHRONOUS transfers.
MFC after: 1 week
Suggested by: marius@
|
|
|
|
| |
MFC after: 3 days
|
|
|
|
| |
MFC after: 3 days
|
|
|
|
|
|
|
| |
adding it again.
MFC after: 3 days
Submitted by: Kohji Okuno <okuno.kohji@jp.panasonic.com>
|
|
|
|
|
|
|
| |
end up allocating contiguous busdma buffers above PAGE_SIZE bytes.
MFC after: 1 week
Tested by: Ruslan Bukin <br@bsdpad.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These changes prevent sysctl(8) from returning proper output,
such as:
1) no output from sysctl(8)
2) erroneously returning ENOMEM with tools like truss(1)
or uname(1)
truss: can not get etype: Cannot allocate memory
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
there is an environment variable which shall initialize the SYSCTL
during early boot. This works for all SYSCTL types both statically and
dynamically created ones, except for the SYSCTL NODE type and SYSCTLs
which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added to
be used in the case a tunable sysctl has a custom initialisation
function allowing the sysctl to still be marked as a tunable. The
kernel SYSCTL API is mostly the same, with a few exceptions for some
special operations like iterating childrens of a static/extern SYSCTL
node. This operation should probably be made into a factored out
common macro, hence some device drivers use this. The reason for
changing the SYSCTL API was the need for a SYSCTL parent OID pointer
and not only the SYSCTL parent OID list pointer in order to quickly
generate the sysctl path. The motivation behind this patch is to avoid
parameter loading cludges inside the OFED driver subsystem. Instead of
adding special code to the OFED driver subsystem to post-load tunables
into dynamically created sysctls, we generalize this in the kernel.
Other changes:
- Corrected a possibly incorrect sysctl name from "hw.cbb.intr_mask"
to "hw.pcic.intr_mask".
- Removed redundant TUNABLE statements throughout the kernel.
- Some minor code rewrites in connection to removing not needed
TUNABLE statements.
- Added a missing SYSCTL_DECL().
- Wrapped two very long lines.
- Avoid malloc()/free() inside sysctl string handling, in case it is
called to initialize a sysctl from a tunable, hence malloc()/free() is
not ready when sysctls from the sysctl dataset are registered.
- Bumped FreeBSD version to indicate SYSCTL API change.
MFC after: 2 weeks
Sponsored by: Mellanox Technologies
|
|
|
|
|
|
|
|
|
|
| |
direction isochronous transfers.
- Remove setting of fields which does not belong to the respective
TRBs. These fields are currently set as zero and this is more a
cosmetic change.
MFC after: 3 days
Submitted by: Horse Ma <HMa@wyse.com>
|
|
|
|
|
|
|
| |
LynxPoint USB 3.0 controllers found in MacBookPro 2013's.
MFC after: 2 days
Tested by: Huang Wen Hui <huanghwh@gmail.com>
|
|
|
|
| |
MFC after: 2 days
|
|
|
|
|
|
|
| |
direction value.
MFC after: 2 days
Reported by: Horse Ma <HMa@wyse.com>
|
|
|
|
|
|
|
| |
status register has no effect. Can happen when the interrupt vector is
shared.
MFC after: 1 week
|
|
|
|
|
|
|
|
| |
controller found in the MBP2013 has been observed to not work properly
unless this operation is performed.
MFC after: 1 week
Tested by: Huang Wen Hui <huanghwh@gmail.com>
|
|
|
|
|
|
|
|
|
| |
value. The "Intel Lynx Point" XHCI controller found in the MBP2013 has
been observed to not always set the event interrupt bit while there
are events to consume in the event ring.
MFC after: 1 week
Tested by: Huang Wen Hui <huanghwh@gmail.com>
|
|
|
|
|
| |
MFC after: 1 week
Found by: Horse Ma <HMa@wyse.com>
|
|
|
|
|
|
|
|
| |
Some Intel XHCI controlles timeout processing so-called "TRBs" when
the final LINK TRB of a so-called "TD" has the CHAIN-BIT set.
MFC after: 1 week
Tested by: glebius @
|
|
|
|
|
|
|
|
| |
receiving Zero Length Packets, ZLPs. See comment in code for more
information.
MFC after: 1 week
Reported by: Kohji Okuno <okuno.kohji@jp.panasonic.com>
|
|
|
|
|
| |
constant and does not need to be modified. This also saves a small
amount of RAM.
|
|
|
|
| |
MFC after: 1 week
|
|
|
|
|
|
| |
always be zero.
MFC after: 1 week
|
|
|
|
|
|
|
| |
should be aborted else the command queue can stop. Refer to section
"4.6.1.2" of the XHCI specification.
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
| |
routing if we get certain errors. Poll for command completion upon
command timeouts. The XHCI error events might not generate interrupts.
MFC after: 1 week
Reported by: Daniel Gerzo <danger@rulez.sk>, Antonis Anastasiadis <anastasiadis@datalive.gr>
PR: usb/181159
Approved by: re (gjb)
|
|
|
|
|
|
|
|
| |
IMAN register to clear the pending interrupt status bits. This patch
tries to solve problems seen on the MacBook Air, as reported by
Johannes Lundberg <johannes@brilliantservice.co.jp>
MFC after: 1 week
|
|
|
|
| |
implement it to avoid undefined behaviour.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Block Event Interrupts, BEI, feature does not
work like expected with the Renesas XHCI chipsets.
Revert feature.
While at it correct the TD SIZE computation in
case of Zero Length Packet, ZLP, in the end of a
multi frame USB transfer.
MFC after: 1 week
PR: usb/180726
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Only multi-TD isochronous transfers should use NORMAL
type after specific type as per XHCI specification.
2) BEI bit is only available in NORMAL and ISOCHRONOUS
TRB types. Don't use this bit for other types to avoid
hardware asserts. Reserved bits should be don't care
though ...
MFC after: 1 week
PR: usb/179342
|
|
|
|
|
|
|
|
|
|
| |
the regular interrupt handler is not working properly or
in case of MSI interrupts which are not yet supported.
Remove interrupt setup code for FreeBSD versions older
than 700031.
MFC after: 1 week
PR: usb/179342
|
|
|
|
|
|
|
| |
remaining after the current TRB has been executed. Refer to section 4.11.2.4
of the XHCI specification for USB.
MFC after: 1 week
|
|
|
|
|
|
|
| |
Only the first TRB should be markes as special. Subsequent ones should be
marked as NORMAL. Optimise away TD first variable.
MFC after: 1 week
|
|
|
|
|
|
|
| |
Typically this feature is used for isochronous transfers.
This reduces the amount of XHCI interrupting.
MFC after: 1 week
|
|
|
|
| |
MFC after: 1 week
|
|
|
|
|
|
|
| |
The existing streams mode support is not working and has not been tested
due to lack of hardware which supports the given feature.
MFC after: 1 week
|
| |
|
| |
|
|
|
|
| |
USB stack. This is useful for non-kernel purposes, like the loader.
|
|
|
|
|
|
| |
splitting it makes it hard to grep.
Submitted by: Christoph Mallon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
into the FreeBSD boot loader, typically for non-USB aware BIOSes, EFI systems
or embedded platforms. This is also useful for out of the system compilation
of the FreeBSD USB stack for various purposes. The USB kernel files can
now optionally include a global header file which should include all needed
definitions required to compile the FreeBSD USB stack. When the global USB
header file is included, no other USB header files will be included by
default.
Add new file containing the USB stack configuration for the
FreeBSD loader build.
Replace some __FBSDID()'s by /* $FreeBSD$ */ comments. Now all
USB files follow the same style.
Use cases:
- console in loader via USB
- loading kernel via USB
Discussed with: Hiroki Sato, hrs @ EuroBSDCon
|
|
|
|
|
| |
Reported by: Lars Engels
MFC after: 1 week
|
|
|
|
|
|
|
|
| |
microseconds of PCI access time.
Tested by: sos @
Submitted by: sos @
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
| |
This patch will save CPU time when the XHCI interrupt is
shared with other devices.
Only check event rings when interrupt bits are set.
Otherwise would indicate hiding possible hardware fault(s).
Tested by: sos @
Submitted by: sos @
MFC after: 1 week
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This brand of controllers expects that the number of
contexts specified in the input slot context points
to an active endpoint context, else it refuses to
operate.
- Ring the correct doorbell when streams mode is used.
- Wrap one or two long lines.
Tested by: Markus Pfeiffer (DragonFlyBSD)
MFC after: 1 week
|
|
|
|
|
|
|
|
| |
Rearrange the tunables and belonging sysctl declarations, so
that they are next to eachother.
Submitted by: n_hibma @
MFC after: 1 week
|
|
|
|
|
|
|
| |
Only RootHUB ports can be dual mode. Disallow OTG ports on external HUBs.
This simplifies some checks in the USB controller drivers.
MFC after: 1 week
|