summaryrefslogtreecommitdiffstats
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* Further use of M_ZERO.dwmalone2000-11-185-13/+7
| | | | | | Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net> Approved by: msmith
* Fix a braino ..sos2000-11-181-1/+1
|
* do not blindly assume 8khz is supported on open(). try for 8khz but respectcg2000-11-181-3/+6
| | | | | | minspeed/maxspeed specified by the hw driver. Submitted by: Andrew Gordon <arg@arg1.demon.co.uk>
* Make sure we don't cross stripe boundaries when reviving striped plexes.des2000-11-171-4/+6
| | | | | | | | | This makes crash recovery work for stripe sizes that are not multiples of DEFAULT_REVIVE_BLOCKSIZE (currently 64 kB). While we're here, fix a few cosmetic nits. Reviewed by: grog Sponsored by: Enitel ASA (http://www.enitel.no/)
* Put the probe verboseness behind bootverbosesos2000-11-161-11/+15
|
* Set OPEN Flag on open.n_hibma2000-11-151-3/+11
| | | | Make set_config(1) print warning message if it fails.
* Add support for the Accton EN2242 MiniPCI adapter. This is just anwpaul2000-11-142-0/+4
| | | | | | ADMtek Centaur chip, so all we need is the PCI ID. Submitted by: Scott Lang <scottl@FreeBSD.org>
* Close PR# 21843 and PR# 21864. This adds support for WEP and updates somewpaul2000-11-133-12/+121
| | | | | | | | | | | | | | | of the data structures to include new members that weren't defined in the manual I have. I opted to use Doug Ambrisko's WEP patches since David Cornejo's patches did not include the necessary changes to ancontrol(8) to actually enable and use WEP. NOTE: I don't currently have access to an Aironet card, so I can't test any of this. Everything compiles and close scrutiny doesn't reveal any obvious problems, but Murphy's Law applies. This means I will probably leave these changes in -current for a bit longer than usual until I'm sure they work right.
* Classify all EISA cards with major firmware revions '2' as 742As.gibbs2000-11-133-3/+22
| | | | | | | | | | | | | | | This allows us to successfully attach early Storage Dimension cards. Allocate mailboxes for the 742A bellow the 16MB limit. Although these cards seem to be able to deal with all other types of data anywhere in a 32bit address space, 24bit addresses are required for mailboxes. bt_eisa.c: Add device IDs for all Storage Dimension products I could find from their web site. Thanks to Ted Mittelstaed for loaning me the equipment to diagnose and fix these problems.
* Don't attempt to reference a NULL scb_data area during teardown eventsgibbs2000-11-131-0/+2
| | | | | occurring early in initialization. This fixes attachments to the parity engines that FreeBSD doesn't support.
* Changes necessary to make this work.imp2000-11-125-108/+83
| | | | | | | | | | The prior version in the tree was repo-copied from Duncan Barclay's cvs tree. Also add $FreeBSD$ Submitted by: Duncan Barclay Committed-via: raylan link with two webgear cards.
* Only offset raid disks > 1 on the HPT, this should solve thesos2000-11-121-1/+2
| | | | | | | boot problems.. However this demands that dangerously dedicated disks use an offset of at least 10 from the start to not overwrite the raid config sector on the HPT...
* Better handling of immediate commands, mainly to solve timeoutssos2000-11-124-12/+37
| | | | in the atapi-tape code...
* Hopefully fix the probing problems that caused lost slaves etc..sos2000-11-121-53/+67
|
* aic7xxx.c:gibbs2000-11-123-4/+16
| | | | | | | | | | | | | | | | | | Shutdown the card when a catastrophic error occurs. This quenches any interrupts stemming from the card. aic7xxx_inline.h: Return instead of processing additional interrupt state after handling a catastrophic error. We now shutdown the chip in this case in the hopes that the system can live without this controller. The shutdown process invalidates any other interrupt state. aic7xxx.seq: Only attempt to clear SCSIBUSL on Ultra2 controllers. The clearing is workaround for a selection timeout bug on U2/U160 controllers and happens to be illegal on aic7770 (EISA/VL) controllers.
* Change MEXTADD usage to pass the two new arguments.bmilekic2000-11-112-2/+2
| | | | Reviewed by: jlemon
* Change check for existence of mbuf->m_ext.ext_free to check of new ext_typebmilekic2000-11-111-1/+1
| | | | | | | in order to determine whether the ext_buf is a cluster, or some other type of storage. Reviewed by: jlemon
* Sync Perforce IDs, add tranceiver state change support, and correctgibbs2000-11-1010-58/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | numerous error recovery buglets. Many thanks to Tor Egge for his assistance in diagnosing problems with the error recovery code. aic7xxx.c: Report missed bus free events using their own sequencer interrupt code to avoid confusion with other "bad phase" interrupts. Remove a delay used in debugging. This delay could only be hit in certain, very extreme, error recovery scenarios. Handle transceiver state changes correctly. You can now plug an SE device into a hot-plug LVD bus without hanging the controller. When stepping through a critical section, panic if we step more than a reasonable number of times. After a bus reset, disable bus reset interupts until we either our first attempt to (re)select another device, or another device attemps to select us. This removes the need to busy wait in kernel for the scsi reset line to fall yet still ensures we see any reset events that impact the state of either our initiator or target roles. Before this change, we had the potential of servicing a "storm" of reset interrupts if the reset line was held for a significant amount of time. Indicate the current sequencer address whenever we dump the card's state. aic7xxx.reg: Transceiver state change register definitions. Add the missed bussfree sequencer interrupt code. Re-enable the scsi reset interrupt if it has been disabled before every attempt to (re)select a device and when we have been selected as a target. When being (re)selected, check to see if the selection dissappeared just after we enabled our bus free interrupt. If the bus has gone free again, go back to the idle loop and wait for another selection. Note two locations where we should change our behavior if ATN is still raised. If ATN is raised during the presentation of a command complete or disconnect message, we should ignore the message and expect the target to put us in msgout phase. We don't currently do this as it requires some code re-arrangement so that critical sections can be properly placed around our handling of these two events. Otherwise, we cannot guarantee that the check of ATN is atomic relative to our acking of the message in byte (the kernel could assert ATN). Only set the IDENTIFY_SEEN flag after we have settled on the SCB for this transaction. The kernel looks at this flag before assuming that SCB_TAG is valid. This avoids confusion during certain types of error recovery. Add a critical section around findSCB. We cannot allow the kernel to remove an entry from the disconnected list while we are traversing it. Ditto for get_free_or_disc_scb. aic7xxx_freebsd.c: Only assume that SCB_TAG is accurate if IDENTIFY_SEEN is set in SEQ_FLAGS. Fix a typo that caused us to execute some code for the non-SCB paging case when paging SCBs. This only occurred during error recovery.
* Sync perforce IDs.gibbs2000-11-107-7/+7
|
* The fe driver does not support pnp devices.nyan2000-11-101-0/+4
|
* OpenFirmware/PowerPC loader, part 2.benno2000-11-102-9/+23
| | | | | | | | | | As of this patchset, the loader builds (under NetBSD/macppc), boots, interacts and talks to BOOTP/NFS servers. (main.c was moved from boot/ofw/libofw to boot/ofw/common but has no revision history) Reviewed by: obrien
* Add missing delay after card reset.pb2000-11-091-0/+1
| | | | | | | This fixes randoms lockups when probing the card at boot time, when more than 1 similar card is found in the machine. Reviewed by: semenu
* Farewell our code. We will switch acpica code from Intel.takawata2000-11-0927-9394/+0
| | | | | | | | | | | | | This code has help us comprehence ACPI spec . Contributors of this code is as follows(except for FreeBSD commiter): Yasuo Yokoyama, Munehiro Matsuda, and ALL acpi-jp@jp.freebsd.org people. Thanks. R.I.P.
* Rearrange the timeouts in the reset code a bit, some ATAPI devicessos2000-11-081-2/+2
| | | | are picky about this.
* Hopefully solve the lost slave problem.sos2000-11-081-6/+17
|
* restore the freebsd local type-cast fixes that I mistakenly removedkjc2000-11-081-14/+15
| | | | | | | in the previous commit while attempting to sync with netbsd. Pointed out by: bde (never thought of compiling i386's LINT with -64-bit-longs...)
* Fix for powering off a HP DJ950C during printing. As stated by Ian:n_hibma2000-11-071-0/+5
| | | | | | | | | | | When the printer is turned off the pipe write will cause and error, which causes lpd to close the device and reopen it to clear the error. After a short while the device will disappear from the bus but lpd will have opened the ulpt0 port by then. ulpt_status will check for status without checking the sc->dying flag and panic the kernel when the device finally disappears from the bus. Submitted by: Ian Dowse <iedowse@maths.tcd.ie>
* newbusify the en atm driver.kjc2000-11-071-144/+187
|
* newbusify the en atm driver.kjc2000-11-073-77/+90
| | | | | | | | also - sync with netbsd - fix a bug that miscalculates tx cell counts when the pointer size isn't 4 tested both ENI and Adaptec cards on both i386 and alpha.
* Update the vortex driver so that it no longer needs the PCI compatwpaul2000-11-074-180/+193
| | | | | | interface. In addition to using newbus, it also uses bus_space rather than inb/outb to make it MI. The grody static softc allocation stuff has been removed as well.
* adjust dma channels for vibra16x; recording should now work. full duplex doescg2000-11-071-18/+33
| | | | not work on vibra16x, so is disabled.
* slight mods to isa dma and channel flushing codecg2000-11-071-24/+32
|
* if a channel dies, rejuvenate it on close()cg2000-11-071-2/+2
|
* Remove unused PCI includes.msmith2000-11-061-3/+0
|
* add AFMT_8BIT for easier determination of formatscg2000-11-061-0/+1
|
* aic7xxx.c:gibbs2000-11-066-89/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When restarting the sequencer, ensure that the SCBCNT register is 0. A non-zero count will prevent the setting of the CCSCBDIR bit in any future dma operations. The only time CCSCBCNT would be non-zero is if we happened to halt the dma during a reset, but even that should never happen. Better safe than sorry. When a command completes before the target responds to an ATN for a recovery command, we now notify the kernel so that any recovery operation requeued in the qinfifo can be removed safely. In the past, we did this in ahc_done(), but ahc_done() may be called without the card paused. This also avoids a recursive call to ahc_search_qinifo() which could have occurred if ahc_search_qinififo() happened to be the routine to complete a recovery action. Fix 8bit math used for adjusting the qinfifo. The index must be wrapped properly within the 256 entry array. We rely on the fact that qinfifonext is a uint8_t in most cases to handle this wrap, but we missed a few spots where the resultant calculation was promoted to an int. Change the way that we deal with aborting the first or second entry from the qinfifo. We now swap the first entry in the qinfifo with the "next queued scb" to force the sequencer to see an abort collision if we ever touch the qinififo while the sequencer is mid SCB dma. aic7xxx.reg: Add new MKMSG_FAILED sequencer interrupt. This displaced the BOGUS_TAG interrupt used in some previous sequencer code debugging. aic7xxx.seq: Increment our position in the qinfifo only once the dma is complete and we have verified that the queue has not been changed during our DMA. This simplifies code in the kernel. Protect against "instruction creep" when issuing a pausing sequencer interrupt. On at least the 7890/91/96/97, the sequencer will coast after issuing the interrupt for up to two instructions. In the past we delt with this by using carefully placed nops. Now we call a routine to issue the interrupt followed by a nop and a ret. Tell the kernel should an SCB complete with the MK_MESSAGE flag still set. This means the target ignored our ATN request. Clear the channel twice as we exit the data phase. On the aic7890/91, the S/G preload logic may require the second clearing to get the last S/G out of the FIFO. aic7xxx_freebsd.c: Don't bother searching the qinfifo for a doubly queued recovery scb in ahc_done. This case is handled by the core driver now. Free the path used to issue async callbacks after the callback is complete. aic7xxx_inline.h: Split the SCB queue routine into a routine that swaps the SCB with the "next queued SCB" and a routine that calls the swapping routine and notifies the card of the new SCB. The swapping routine is now also used by ahc_search_qinfifo.
* fix paste-o in mixer code - actually set right channel volume instead ofcg2000-11-061-1/+2
| | | | doing the left channel twice.
* fix es1370 mixer by adding reinit function to it's mixer function list.cg2000-11-061-0/+1
|
* Always emply the NCO to attenuate jitter. The Receive clock recoveryphk2000-11-041-13/+12
| | | | | | | | | | | circuit generates too much jitter to be used directly as xmit clock. Don't miscount pending bytes in weird error conditions. Drop the rest of a packet if we run out of tx-md's. Trig the xmit-frame signal on rising edge, this fixed the one-bit-too-late position of the HDLC frames in E1 mode.
* Added used include of <machine/bus.h> -- don't depend on evil namespacebde2000-11-041-1/+2
| | | | | | | | pollution in <sys/mutex.h>. This was half fixed in rev.1.3 of midwayreg.h. The pollution exposed the bug that this driver was using toy versions of the bus space macros under FreeBSD. Disabling the toy versions made this driver compile but dependent on the pollution. There was still a toy version of bus_space_read_1() in unreachable code.
* Enabled the used include of <machine/bus.h> -- don't depend on evilbde2000-11-041-1/+1
| | | | | | | | namespace pollution in <sys/mutex.h>. This was half fixed in rev.1.3 of midwayreg.h. The pollution exposed the bug that this driver was using toy versions of the bus space macros under FreeBSD. Disabling the toy versions made this driver compile and maybe support PIO space, but dependent on the pollution.
* Fix breakage on some ATA chips that dont have busmastering set.sos2000-11-031-45/+30
| | | | Tidy up the probe a bit..
* If we can't get a command to back the bio we just took off the queue,msmith2000-11-031-1/+3
| | | | | put the bio back, otherwise we'll drop it when we bail. This was causing bio lossage under load, leading to eventual system lockup.
* Regen.n_hibma2000-11-032-4/+4
|
* Sone -> Sonyn_hibma2000-11-031-1/+1
| | | | Submitted by: Hiroyuki Aizu <aizu@jaist.ac.jp>
* Grrrr. Remember to bzero() the mediainfo structures after we allocatewpaul2000-11-031-0/+3
| | | | | | | them. If we leave garbage in them, the dc_apply_fixup() routine may try to follow bogus pointers when applying the reset fixup. Noticed by: Andrew Gallatin
* AcerScan 320U's are braindead. Sometimes they do not return stringsn_hibma2000-11-021-0/+2
| | | | descriptors and if they do the strings are nonsense.
* Fix a couple of cases where I tried to release the I/O space resource twicewpaul2000-11-021-1/+1
| | | | | (once as as an I/O space resource and once as an IRQ resource). There was a problem with this in if_rl too, which is how I found it.
* Make internal clock sourcing work right by tying the NCO to thephk2000-11-011-17/+38
| | | | | | | | | | | | | Xtal reference instead of the CLADI input. In unframed E1 mode, tie SIGFRZ low so that the mysycc doesn't get confused. Don't mask errors with OOF. Don't ignore OOF errors. Stop the channel before freeing mbufs in disconnect. I still have no T1 devices to test with, so the T1 code is non-existent.
* Close PR #21078: the aue driver was not correctly programming thewpaul2000-11-011-1/+1
| | | | | | | | multicast filter on the Pegasus chip. Since IPv6 depends a lot on multicasting, this caused several failures for people trying to use IPv6 with Pegasus USB ethernet devices. Submitted by: Jun Kuriyama <kuriyama@FreeBSD.org>
OpenPOWER on IntegriCloud