MFC: 260791

Add a command line argument to turn off blocking waiting for the user
to press Ctrl-C (-b).  This allows tests with tight loops of mcgrabs
that can stress the multicast tables.
MFC r260996:
Fix memory and references leak due to unfreed path in case we can't
allocate bus scan CCB.
MFC r261003:
Add new quirk.

PR:		usb/185968
MFC r261004, r261005 and r261033:
Adjust the DMA delay logic so that the DMA delay does not become too small.
MFC r261123:
Reduce dmesg verbosity.
MFC r261134:
Add more USB quirks.
MFC r261224:
Comply to the official LibUSB v1.0 API:
"It is legal to attempt to claim an already-claimed interface."
MFC r261228:
When detaching a [USB] keyboard, keys might still be pressed. Ensure
that all pressed keys are released before completing the USB keyboard
detach. This will prevent so-called "ghost-keys" from appearing after
that the USB device generating the key event(s) has been detached.
MFC r260315:
Implement two new libusb API functions.

PR:		usb/185454
MFC r260903:
Add support for GPS ports to UHSO driver.
Typo in the EXAMPLES section: this is regexp, not a shell wildcard expression.

This is a direct commit to stable/9.

Submitted by:	Ilya Noskov <phantom@phantom.su>
MFC r261260, r261262, r261315 and r261343:
Add support for trackpads found in Apple MacBook products. While at it
add some missing devd entries.
MFC: r233049 by rmh

Remove gratuitous DEBUG_FLAGS="-g" setting (this is already the default
option with GENERIC kernels).

PR:		179536
Submitted by:	Alexey Markov
MFC r261080:
The posix_fallocate(2) syscall should return error number on error,
without modifying errno.

MFC r261290:
The posix_madvise(3) and posix_fadvise(2) should return error on
failure, same as posix_fallocate(2).
MFC r260949:
Make comconsole options set before its activation to be remembered.
MFC: 261291

The timestamp bit is number 17, and not number 9, in the stat error
field of the receive descriptor.
MFC r261449:
Fix lock acquisition in case no request space available, missed in r260097.
MFC r244535, r245995, r261505 and r258961:
- Use a boundary of zero, hence a PAGE_SIZE boundary
is implied by all memory allocations.
- Fix an external compiler warning about write-only
assigned variable.
MFC r254882, r254883, r255571:

vga_pci: Add API to map the Video BIOS

Here are two new functions to map and unmap the Video BIOS:
    void * vga_pci_map_bios(device_t dev, size_t *size);
    void   vga_pci_unmap_bios(device_t dev, void *bios);

The BIOS is either taken from the shadow copy made by the System BIOS at
boot time if the given device was used for the default display (i386,
amd64 and ia64 only), or from the PCI expansion ROM.

Additionally, one can determine if a given device was the default
display at boot time using the following new function:
    int    vga_pci_is_boot_display(device_t dev);

Submitted by:	jhb@ (r255571)
MFC r259679:

vga_pci: Improve boot display detection

The previous code was checking the "VGA Enable" bit on the video card's
parent PCI-to-PCI bridge only. This didn't work for the case where the
video card is attached to the root PCI bus (ie. the card has no parent
PCI-to-PCI bridge).

Now, the new code:
    1. checks the "VGA Enable" bit on the parent bridge only if it's a
       PCI-to-PCI bridge;
    2. always checks the "I/O" and "Memory address space decoding" bits
       on the video card itself.

However, vendor-specific bits are not used.

This fixes the use of many integrated Radeon cards: without this patch,
we fail to detect them as the boot display and, when radeonkms looks for
the Video BIOS, it skips the shadow copy made by the System BIOS. It
then fails to fully initialize the card, because the shadow copy is the
only way to read the Video BIOS in these situations. A workaround was to
force the boot display selection using the "hw.pci.default_vgapci_unit"
tunable.

A previous version of this patch added a new function doing the checks.
Now, the vga_pci_is_boot_display() function is used to perform the
checks (only until the boot display is found) and return if the given
device is the boot display or not.

Furthermore, vga_pci_attach() logs "Boot video device" if the card being
attached it the Chosen One:
    vgapci0: <VGA-compatible display> [...]
    vgapci0: Boot video device

Reviewed by:	kib@, jhb@ (both a previous version)
Tested by:	lunatic_ (#freebsd-xorg, integrated Radeon card,
		xmj (#freebsd-xorg, i915+NVIDIA cards)