the EZ-USB chip. After downloading the firmware the device detaches
and then reattaches as a composite device (audio + HID).
XXX For now there is no firmware committed since the vendor (Silicon
XXX Portals) has not yet agreed that we can redistribute their firmware.
at tcds in files.alpha for now, and add a new `xasc at tcds' to files.pmax.
after pmax has moved fully to MI scsi (and `asc' is MI scsi), we should move
the device asc, etc., lines to files.tc.
It's probably not really a compiler bug- somebody pointed out
that it was the kernel making strings readonly. But I do think it's
a bug. The actual code was really more like:
char *revname;
...
revname = "2X00";
...
revname[1] = '2'; <<<<<<<<< BOOOM
The variable revname is not a const. If I had said
const char *revname = "2X00"
...
revname[1] = '2';
that would indeed be breaking const rules.
char *foo = "XXXX";
...
foo[1] = 'Y';
blow up (in the kernel) with the 2nd assignment. Work around it here-
it's probably just as well- I was spending more in cpu instructions doing
the assignment than I was saving in string space (it would have been
cheap on a pdp11 or a 68k- but the address loads and assignments on something
like sparc or alpha way outweigh the savings in space. Tsk.).
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".
This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.
Tested on alpha and i386; welcome to 1.5Q
change I didn't take is the %llu format- I can't have a common
across multiple platform module assume a %ll argument capability-
which really pointed out that I shouldn't be trying to *print*
something which could long long.
UQ_AU_NO_FRAC for audio devices that cannot handle adjustment for fractional
sample size.
UQ_AU_INP_ASYNC for input devices that claim to be adaptive, but are in fact
asynchronous (an easy mistake to make unless you read the specs carefully :)