Also, add some 'const's to supress warnings. (Submitted back to NetBSD).
The original logs from NetBSD:
----------------------------
revision 1.90
date: 2001/12/03 01:47:12; author: augustss; lines: +4 -4
Handle vendor/product lookup with a common routine.
----------------------------
revision 1.89
date: 2001/12/02 23:25:25; author: augustss; lines: +18 -2
Add a subroutine to search for a vendor/product pair.
----------------------------
Original NetBSD log messages are:
----------------------------
revision 1.23
date: 2001/12/12 15:48:18; author: augustss; lines: +132 -114
Add a scanner quirk for keeping the pipes open between device opening.
Idea from Enami.
----------------------------
revision 1.22
date: 2001/12/03 01:47:13; author: augustss; lines: +8 -16
Handle vendor/product lookup with a common routine.
----------------------------
revision 1.21
date: 2001/12/01 09:42:39; author: enami; lines: +4 -4
Shorten wmesg so that they can be distinguished in ps/top output.
----------------------------
revision 1.12
date: 2001/01/23 14:04:14; author: augustss; lines: +7 -1
Make sure driver attach/detach events are generated in a
consistent manner.
----------------------------
PR:
Submitted by:
Reviewed by:
Approved by:
Obtained from:
MFC after:
From the NetBSD logs:
revision 1.45
date: 2001/11/29 11:07:12; author: augustss; state: Exp; lines: +12 -2
Plug a memory leak in an error case.
----------------------------
revision 1.43
date: 2001/10/19 15:30:25; author: nathanw; state: Exp; lines: +5 -3
Match printers that report their interface as IEEE 1284 in addition to
bidirectional.
o Call bus_generic_setup_intr and check its return value. Don't setup
func until we successfully get the interrupt from our parent.
o Add comments about some maybe questionable stuff so I can check later
to make sure that it really is that way.
o Don't allow INTR_TYPE_FAST. Since we are sharing the interrupt between
CSC and the functions, they can't be FAST because fast interrupts can't
be shared.
o Add the same workaround for resume that we have in OLDCARD.
o Also, return the error from bus_generic_resume rather than ignoring it.
of I/O in 1.5. It looks like I got it right only for some of the
cases. Instead, allow ISA addresses as a special case. Most PCI
bridges decode this range. I need to investigate PCI bridges better
to know if this is always true or not, but for now assume that it is
since that seems to be the most common case.
# We need to allocate addresses better for the pccard stuff...
Submitted by: phk, mitsunaga-san
to fix their code.
ata stuff:
Change name of ar_attach to not colide with existing ar_attach in if_ar.c.
usb stuff:
Create a dummy function to satisfy a call to it when in DEBUG mode.
check is complicated by the fact that the Adaptec 5400S cards claim to use
1.x firmware also. PERC2/QC 1.x firmware is not compatible with this driver
and will cause a system hang.
MFC after: 3 days
disable MWI on 2300
based on function code, set an 'isp_port' for the 2312- it's a
separate instance, but the NVRAM is shared, and the second port's
NVRAM is at offset 256.
+ Enable RIO operation for LVD SCSI cards. This makes a *big* difference
as even under reasonable load we get batched completions of about 30
commands at a time on, say, an ISP1080.
+ Do 'continuation' mailbox commands- this allows us to specify a work
area within the softc and 'continue' repeated mailbox commands. This is
more or less on an ad hoc basis and is currently only used for firmware
loading (which f/w now loads substantially faster becuase the calling
thread is only woken when all the f/w words are loaded- not for each
one of the 40000 f/w words that gets loaded).
+ If we're about to return from isp_intr with a 'bogus interrupt' indication,
and we're not a 23XX card, check to see whether the semaphore register is
currently *2* (not *1* as it should be) and whether there's an async completion
sitting in outgoing mailbox0. This seems to capture cases of lost fast posting
and RIO interrupts that the 12160 && 1080 have been known to pump out under
extreme load (extreme, as in > 250 active commands).
+ FC_SCRATCH_ACQUIRE/FC_SCRATCH_RELEASE macros.
+ Endian correct swizzle/unswizzle of an ATIO2 that has a WWPN in it.
MFC after: 1 week
Overhaul of the attach/detach code and structures, there were some nasty
bugs in the old implementation. This made it possible to collapse the
ATA/ATAPI device control structures into one generic structure.
A note here, the kernel is NOT ready for detach of active devices,
it fails all over in random places, but for inactive devices it works.
However for ATA RAID this works, since the RAID abstration layer
insulates the buggy^H^H^H^H^H^Hfragile device subsystem from the
physical disks.
Proberly detect the RAID's from the BIOS, and mark critical RAID1
arrays as such, but continue if there is enough of the mirror left
to do so.
Properly fail arrays on a live system. For RAID0 that means return EIO,
and for RAID1 it means continue on the still working part of the mirror
if possible, else return EIO.
If the state changes, log this to the console.
Allow for Promise & Highpoint controllers/arrays to coexist on the
same machine. It is not possible to distribute arrays over different
makes of controllers though.
If Promise SuperSwap enclosures are used, signal disk state on the
status LED on the front.
Misc fixes that I had lying around for various minor bugs.
Sponsored by: Advanis Inc.
to ExCA register sets. These registers exist in both ISA and PCI
devices in a couple different ways, and this will provide a common
base for future building. This code is a rehash of the pccbb 16-bit
code, which was a rehash of the pcic code, which was a rehash of the
netbsd i82365 code. More hashing to come.
apply to this file. The correct message is:
throw_rude_remark: Make sure we're holding the config lock before
proceeding. There's no reason to assume that this
has ever happened, but the alternative might be a
double fault.
uhub.c: revision 1.37
usb.4: revision 1.30
usb.c: revision 1.38
usb.h: revision 1.40
usb_port.h: revision 1.21
usb_subr.c: revision 1.65
usbdi.h: revision 1.40
Split the attach/detach events up into device, driver and controller
attach and detach events.
The commit message from NetBSD was:
date: 2000/02/02 07:34:00; author: augustss; state: Exp;
Change the USB event mechanism to include more information
about devices and drivers. Partly from FreeBSD.
Also rework usbd to take these new event types into account.
for success, non-zero otherwise. The maestro and maestro3 drivers were
returning the format code, which was being interpreted as a failure code.
Fixed. No one seems to have noticed that the maestro driver was broken,
but I'll fix it anyways.
MFC after: 2 weeks
* be more specific in verbose boot messages
* allow the feeder subsystem to veto pcm* attaching if there is an error
initialising the root feeder
* don't free/malloc a new tmpbuf when resizing a snd_dbuf to the same size as
it currently is
* store the feeder description in the feeder structure instead of mallocing
space for it
usb.c: revision 1.39
revision 1.39
date: 2000/02/22 11:30:56; author: augustss; lines: +7 -1
Prepare a little for having USB interrupt processing done
outside the hard interrupt level (in a thread or a softintr).
No real soft processing done yet.
usb.c: revision 1.41
revision 1.41
date: 2000/03/16 00:46:38; author: augustss; lines: +2 -2
Make the USB event queue longer. Mine overflows before the
(user-land) event handler has started. But then I have
about 25 devices connected. :)
ohci.c: revision 1.72 and 1.73
ohcivar.h: revision 1.19 and 1.20
uhci.c: revision 1.85
usbdi.h: a small part of revision 1.40
usbdivar.h: revision 1.47
Relevant commit messages from NetBSD are:
date: 2000/02/22 11:30:54; author: augustss; state: Exp;
Prepare a little for having USB interrupt processing done
outside the hard interrupt level (in a thread or a softintr).
No real soft processing done yet.
----------------------------
date: 2000/02/01 05:42:53; author: augustss; state: Exp;
Put some #ifdefs around power and shutdown hooks.
usb.c: -r1.35 - 1.37
usb_port.h: tiny bit of -r1.26 + an extra bit in the FreeBSD config section.
revision 1.37
date: 2000/01/24 18:35:51; author: thorpej; state: Exp; lines: +7 -1
Use config_pending.
----------------------------
revision 1.36
date: 1999/12/22 23:54:09; author: augustss; state: Exp; lines: +2 -2
Use the flags `locator' to govern if devices are detected early or
late during cold boot.
----------------------------
revision 1.35
date: 1999/12/20 02:12:23; author: augustss; state: Exp; lines: +8 -5
Make sure tsleep() is not called during cold boot.
stead of after
2) Honour NO_TEST_UNIT_READY quirk for atapi devices as well
3) Actually support FujiFilm FinePix 6800 camera's. Will very likely also
work for other FinePix models.
Based on a debug session about half a year ago with Nik Hibma.
MFC after: 2 weeks
extensively as none of my testboxes have speakers or an audio source at
present, but the chains built look correct and reading /dev/audio (ulaw,
translated from signed 16 bit little-endian) gives values within the
expected range for silence.
default format for the chosen subdevice cannot be obtained return an error
instead of returning success with an indeteterminate format selected.
note that this should never happen once the feederchain builder works for
recording.
ohci.c: -r1.69 to 1.71
ohcireg.h: -r1.14
Some of these deltas are based upon patches that we submitted back to
NetBSD. They got manifested slightly differently though, so I've brought
back those differences to bring our code bases closer together.
The logs from the NetBSD version of ohci.c:
revision 1.71
date: 2000/02/01 05:42:52; author: augustss; state: Exp; lines: +13 -2
Put some #ifdefs around power and shutdown hooks.
----------------------------
revision 1.70
date: 2000/01/31 22:35:13; author: augustss; state: Exp; lines: +7 -7
Rename TAILMASK to HEADMASK, since it really masks the head pointer.
From FreeBSD.
----------------------------
revision 1.69
date: 2000/01/31 22:09:13; author: augustss; state: Exp; lines: +18 -14
Change where the has table for physical-to-virtual address translation
is handled. Partly from FreeBSD.
ohci.c: -r1.68
ohcireg.h: -r1.13
date: 2000/01/31 20:17:25; author: augustss; state: Exp;
Fiddle with over-current protect when turning on port power to make
things work for some OHCI controllers.
uhci.c: -r1.82
uhcivar.h: -r1.22
date: 2000/01/26 10:04:39; author: augustss; state: Exp;
Try to avoid accessing the HC if it is dead. Suggested by mycroft.
revision 1.125
date: 2000/09/23 21:00:10; author: augustss; state: Exp; lines: +19 -3
Avoid "bandwidth reclamation" for control transfers. The kue device chokes
on it.
uhci.c: -r1.124
uhcireg.h: -r1.13
date: 2000/08/13 18:20:14; author: augustss; state: Exp;
Fix race condition when unlinking xfers. Thanks to IWAMOTO Toshihiro
<iwamoto@sat.t.u-tokyo.ac.jp> for analyzing the problem and suggesting a fix.
Fixes PR 10662.