summaryrefslogtreecommitdiffstats
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* This is an MFC candidate.gibbs2001-03-193-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | aic7xxx.c: Correct code that traverses the phase table. A much too quick push to staticize this structure resulted in non-functional lookup code. This corrects the printing of the phase where a timeout occurred. aic7xxx.reg: Use FIFOQWDEMP as the name for bit 5 of DFSTATUS just like the Adaptec data books. aic7xxx.seq: Refine the 2.1 PCI retry bug workaround for certain, non-ULTRA2, controllers. When the DMA of an SCB completes, it can take some time for HDONE to come true after MREQPEN (PCI memory request pending) falls. If HDONE never comes true, we are in the hung state and must manually drain the FIFO. We used to test HDONE for 3 clock cycles to detect this condition. This works on all of the hardware I can personally test. Some controllers were reported to take 4 clock cycles, so the last version of this code waited 4 clock cycles. This still didn't work for everyone. To fix this, I've adjusted the work around so that even if the hardware hasn't hung, but we run the work-around code, the result is a long winded way to complete the transfer, rather than a hang.
* pcm driver for S3 Sonicvibes chipset.orion2001-03-193-0/+1135
| | | | Reviewed by: Cameron Grant
* Use a module name of 'if_lnc' in both the PCI and ISA sections ofiedowse2001-03-182-2/+2
| | | | | | | | | | | | the driver. Doing this breaks the ability to unload the unneeded parts of the driver (e.g unload the PCI section when using an ISA card), but currently ifconfig(8) expects an interface `XXX' to have a driver name of `if_XXX'. PR: kern/25582 Submitted by: Alexander N. Kabaev <kabaev@mail.ru>, imp (apparently Warner suggested a similar fix some time ago). Reviewed by: paul (who would prefer to see ifconfig changed instead)
* destroy child devices on detach to prevent ever-increasing numbers ofcg2001-03-171-7/+10
| | | | | pcm/midi devices trying to attach if the module is repeatedly loaded and unloaded.
* Really fix NWAY negotiation for the 82553 PHY. Locking down thejlemon2001-03-171-2/+12
| | | | | | | media interface selection should not imply disabling NWAY negotiaton as well. Problem pointed out by: peter
* This is an MFC candidate.gibbs2001-03-173-2/+6
| | | | | | | | | | | | Add the AAC_DEBUG option to enable debugging in the aac driver. Correct a race condition in the interrupt handler where the controller may queue a fib to a response queue after the driver has serviced the queue but before the interrupt is cleared. This could leave a completed fib stranded in the response queue unless another I/O completed and generated another interrupt. Reviewed by: msmith
* Fix a few things in the aic(4) driver:ken2001-03-164-7/+47
| | | | | | | | | | - enable 10MHz (fast SCSI) operation on boards that support it. (only aic6360 boards with fast SCSI enabled can do it) - bounds check sync periods and offsets passed in from the transport layer - tell the user which resource allocation failed (for the ISA probe) if we weren't able to allocate an IRQ, DRQ or I/O port.
* Fix a typo which would cause containers between 1GB and 2GB to have the wrongmsmith2001-03-161-1/+1
| | | | | | geometry reported. Submitted by: mark tinguely <tinguely@web.cs.ndsu.NoDak.edu>
* fix a typo preventing the second dma channel being releasedcg2001-03-161-1/+3
| | | | use isa_dma_release when releasing dma channels
* don't leak memory allocated for feeders at module unloadcg2001-03-163-1/+22
| | | | kill the fake channel when unregistering
* Enable some undocumented bits in the DP83840 PHY, which is neededjlemon2001-03-161-5/+8
| | | | | | | when using it with the Intel fxp driver. Tested by: peter, Ollivier Robert <roberto@eurocontrol.fr>, Peter Schultz <pete@jocose.org>
* Commit port of cnw driver from Hiroyuki Aizu-san. This driverimp2001-03-163-0/+2006
| | | | | | | | | | | | supports Xircom netwave series of cards. I have one of these cards (but am trying to find one or two to test with), but it compiles and aizu-san says it works. I don't know if this supports 802.11 or not. I've seen conflicting information on this. Submitted by: Hiroyuki Aizu <aizu@jaist.ac.jp> Obtained from: NetBSD
* Provide the interface to atacontrol and associated logic.sos2001-03-1510-455/+503
| | | | | | | | | see atacontrol(8) for more. Also the ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC and ATA_ENABLE_TAGS options are gone, use the tuneables listed in ata.4 instead from the loader (this makes it possible to switch off DMA before the driver has to touch the devices on broken hardware).
* The serverworks OSB4 pci->isa bridge has the same mapping register atpeter2001-03-151-3/+3
| | | | offset 0x90 for the SMBus device as the PIIX4.
* Add some performance features to the fxp driver. If the chip is notjlemon2001-03-143-28/+74
| | | | | | | | | a 82557 (e.g.: a newer chip) then: + enable MWI, if the PCI configuration indicates the system supports it + enable usage of extended TxCB, for better performance + enable hardware flow control. FC frames will be passed up to the host only if promiscuous mode is enabled.
* Minor cleanup to the previous commit:sos2001-03-144-15/+20
| | | | | | Print what devices went away and which arrived. Avoid timeout loop on missing status.
* Add support for the IOMEGA Clik!sos2001-03-141-0/+16
| | | | | | IOMEGA deserves a medal for making the most nonstandard ATAPI devices, if they are ignorant or just not smart enough I don't know, but somebody should help them out of their misery...
* Refine the detach/attach code.sos2001-03-1412-198/+349
| | | | | | | | | | Proberly fail outstanding bio requests on devices that are detached. This makes it possible to change between disk/cdrom/dvd/whathaveyou in a notebook, just by suspending it, changing the device in the bay (or what you model calls it), unsuspend and the ATA driver will figure out what disappeared and properly fail those, and attach any new devices found.
* - Do not touch the Giant.tanimura2001-03-147-189/+2
| | | | | | | | Requested by: jhb - Initialize a mutex prior to locking it. Spotted by: dcs
* Clean up usage- ct_reserved is really ct_syshandle now.mjacob2001-03-141-13/+13
|
* First cut of target mode swizzling for non-little endian machines.mjacob2001-03-141-116/+150
| | | | It's probably wrong but it's a start.
* Mote that how the pad bytes can be divided in half and used by eithermjacob2001-03-141-4/+8
| | | | | | | the target mode code or outer layers. Increase cd_tagval to be 32 bits since it will have to now carry 16 bits of parallel SCSI ATIO handle as well as a normal tag (if any).
* In order to save ourselves grief with the SUNPRO compiler undermjacob2001-03-143-176/+80
| | | | | | Solaris (which, for reasons unknown to me, chokes on u_int16_t as a typedef of unsigned short if used in a transitional (mixed K&R and ANSI) way), we'll go the extra mile and fully ANSIfy things.
* fix a panic triggerable by anyone with read/write access to the audiocg2001-03-133-1/+11
| | | | | | | | | | | devices. opening /dev/{dsp,dspW,audio}0 and then opening a different device from that list and closing it resulted in a panic when any operation is performed on the first fd. we prevent this happening by denying the second open unless it uses the same minor device as the first. PR: kern/25519
* Multiply empty lines pasted as single line, fix itache2001-03-131-2/+2
|
* Fix a race condition in the transmit path caused by the controllerphk2001-03-131-54/+94
| | | | | | caching a bit more than we were told initially. More statistics gathering as well.
* By convention, the moduledata is static unless there is a reason for itpeter2001-03-131-1/+1
| | | | to not be.
* Fix a whitespace bogon.jlemon2001-03-121-1/+1
| | | | Pointed out by: ps
* Convert the fxp driver to miibus, which involves ripping out the PHYjlemon2001-03-123-757/+589
| | | | | | | logic and media bits. Support for Intel PHYs can now be found in dev/mii/inphy.c. Clean up the driver, and add various 82558 and 82559 specific bits.
* change the default mode from adhoc to bss (infrastructure)assar2001-03-121-1/+1
| | | | Reviewed by: Brooks Davis <brooks@one-eyed-alien.net>
* change default from adhoc mode to BSS (infrastructure)assar2001-03-121-1/+1
|
* Add drivers for Intel 82553 and 82555 PHYs.jlemon2001-03-122-0/+340
|
* Regenerate.jlemon2001-03-121-1/+8
|
* Add some definitions for Intel 82553 PHYsjlemon2001-03-121-0/+5
|
* Don't require that mouse cursor must be visible before mouse paste.ache2001-03-122-15/+7
| | | | | | Paste always happens to current _text_ cursor position independently of mouse cursor position in any case and old variant force user to press mouse paste button _two_ times if mouse cursor is invisible.
* Update default keyboard (PREV, PASTE)ache2001-03-121-2/+2
|
* Implement keyboard pasteache2001-03-113-5/+17
| | | | | PR: 25499 Submitted by: Gaspar Chilingarov <nm@web.am>
* This is an MFC candidate.gibbs2001-03-1114-397/+529
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ahc_eisa.c: Change aic7770_map_int to take an additional irq parameter. Although we can get the irq from the eisa dev under FreeBSD, we can't do this under linux, so the OSM interface must supply this. ahc_pci.c: Move ahc_power_state_change() to the OSM. This allows us to use a platform supplied function that does the same thing. -current will move to the FreeBSD native API in the near future. aic7770.c: Sync up with core changes to support Linux EISA. We now store a 2 bit primary channel number rather than a bit flag that only allows b to be the primary channel. Adjust for this change. aic7xxx.c: Namespace and staticization cleanup. All exported symbols use an "ahc_" prefix to avoid collisions with other modules. Correct a logic bug that prevented us from dropping ATN during some exceptional conditions during message processing. Take advantage of a new flag managed by the sequencer that indicates if an SCB fetch is in progress. If so, the currently selected SCB needs to be returned to the free list to prevent an SCB leak. This leak is a rarity and would only occur if a bus reset or timeout resulting in a bus reset occurred in the middle of an SCB fetch. Don't attempt to perform ULTRA transfers on ultra capable adapters missing the external precision resistor required for ultra speeds. I've never encountered an adapter configured this way, but better safe than sorry. Handle the case of 5MHz user sync rate set as "0" instead of 0x1c in scratch ram. If we lookup a period of 0 in our table (async), clear the scsi offset. aic7xxx.h: Adjust for the primary channel being represented as a 2 bit integer in the flags member of the ahc softc. Cleanup the flags definitions so that comment blocks are not cramped. Update seeprom definitions to correctly reflect the fact that the primary channel is represented as a 2 bit integer. Add AHC_ULTRA_DIASABLED softc flag to denote controllers missing the external precision resistor. aic7xxx.reg: Add DFCACHETH to the definition of DFSTATUS for completness sake. Add SEQ_FLAGS2 which currently only contains the SCB_DMA (SCB DMA in progress) flag. aic7xxx.seq: Correct a problem when one lun has a disconnected untagged transaction and another lun has disconnected tagged transactions. Just because an entry is found in the untagged table doesn't mean that it will match. If the match on the lun fails, cleanup the SCB (return it to the disconnected list or free it), and snoop for a tag message. Before this change, we reported an unsolicited reselection. This bug was introduced about a month ago during an overly aggressive optimization pass on the reselection code. When cleaning up an SCB, we can't just blindly free the SCB. In the paging case, if the SCB came off of the disconnected list, its state may never have been updated in host memory. So, check the disconnected bit in SCB_CONTROL and return the SCB to the disconnected list if appropriate. Manage the SCB_DMA flag of SEQ_FLAGS2. More carefully shutdown the S/G dma engine in all cases by using a subroutine. Supposedly not doing this can cause an arbiter hang on some ULTRA2 chips. Formatting cleanup. On some chips, at least the aic7856, the transition from MREQPEND to HDONE can take a full 4 clock cycles. Test HDONE one more time to avoid this race. We only want our FIFO hung recovery code to execute when the engine is really hung. aic7xxx_93cx6.c: Sync perforce ids. aic7xxx_freebsd.c: Adjust for the primary channel being a 2 bit integer rather than a flag for 'B' channel being the primary. Namespace cleanup. Unpause the sequencer in one error recovery path that neglected to do so. This could have caused us to perform a bus reset when a recovery message might have otherwise been successful. aic7xxx_freebsd.h: Use AHC_PCI_CONFIG for controlling compilation of PCI support consistently throughout the driver. Move ahc_power_state_change() to OSM. aic7xxx_inline.h Namespace cleanup. Adjust our interrupt handler so it will work in the edge interrupt case. We must process all interrupt sources when the interrupt fires or risk not ever getting an interrupt again. This involves marking the fact that we are relying on an edge interrupt in ahc->flags and checking for this condition in addition to the AHC_ALL_INTERRUPTS flag. This fixes hangs on the 284X and any other aic7770 installation where level interrupts are not available. aic7xxx_pci.c: Move the powerstate manipulation code into the OSM. Several OSes now provide this functionality natively. Take another shot at using the data stored in scratch ram if the SCB2 signature is correct and no SEEPROM data is available. In the past this failed if external SCB ram was configured because the memory port was locked. We now release the memory port prior to testing the values in SCB2 and re-acquire it prior to doing termination control. Adjust for new 2 bit primary channel setting. Trust the STPWLEVEL setting on v 3.X BIOSes too. Configure any 785X ID in the same fashion and assume that any device with a rev id of 1 or higher has the PCI 2.1 retry bug.
* Very large makeover of the /dev/random driver.markm2001-03-107-459/+505
| | | | | | | | | | | | | | | | | | | | | | | | o Separate the kernel stuff from the Yarrow algorithm. Yarrow is now well contained in one source file and one header. o Replace the Blowfish-based crypto routines with Rijndael-based ones. (Rijndael is the new AES algorithm). The huge improvement in Rijndael's key-agility over Blowfish means that this is an extremely dramatic improvement in speed, and makes a heck of a difference in its (lack of) CPU load. o Clean up the sysctl's. At BDE's prompting, I have gone back to static sysctls. o Bug fixes. The streamlining of the crypto stuff enabled me to find and fix some bugs. DES also found a bug in the reseed routine which is fixed. o Change the way reseeds clear "used" entropy. Previously, only the source(s) that caused a reseed were cleared. Now all sources in the relevant pool(s) are cleared. o Code tidy-up. Mostly to make it (nearly) 80-column compliant.
* Fix a botch where we wrote the year register with > 2 digits (andmjacob2001-03-091-9/+6
| | | | | | then knocked the extra digits off). Blegh. Update the comment and adjustment method reading the chip clock year register to note that anything less than 70 means we're past the year 2000.
* Remove vn(4) driver.phk2001-03-091-794/+0
|
* Use a more BIOS friendly geometry.phk2001-03-091-1/+1
| | | | Submitted by: joe
* Remember to actually program the MAC address into the unicast filterwpaul2001-03-071-0/+7
| | | | | | | | | in vr_init(). The VIA Rhine chip happens to be able to automatically read its station address from the EEPROM automatically when reset, so you don't need to program the filter if you want to keep using the factory default address, but if you want to change it with "ifconfig vr0 ether xx:xx:xx:xx:xx:xx" then we need to manually set it in the init routine.
* Bring our local hack for wakeup back fromiwasaki2001-03-071-0/+88
| | | | | | | | sys/contrib/dev/acpica/Subsystem/Hardware/Attic/hwxface.c to the proper location after AcpiEnterSleepState(). - Wait for the WAK_STS bit - Evaluate the _WAK method and check result code
* Add GVC1601 - Rockwell V.34 Plug & Play Modemsanpei2001-03-071-0/+1
| | | | | PR: kern/25204 Submitted by: Victor Ivanov <v0rbiz@icon.bg>
* Add IOD0081 - I-O DATA DEVICE,INC. IFML-560sanpei2001-03-071-0/+1
| | | | | PR: kern/25173 Submitted by: Yohsuke Fujikawa <yohsuke@mx2.nisiq.net>
* Set si_iosize_max to 64K, even though the adapter seems to be able to do more.scottl2001-03-071-11/+4
| | | | | | | This puts us safely in line with Adaptec documentation and shouldn't really affect anything. MFC candidate for 4.3
* - Lock the process while sending it a signal.jhb2001-03-071-2/+13
| | | | | - Attempt to define empty PROC_LOCK/UNLOCK when needed to help keep this driver portable.
* Grab the process lock while calling psignal and before calling psignal.jhb2001-03-074-2/+15
|
* Split out the ata probes in seperate files for each bus type.sos2001-03-066-824/+922
|
OpenPOWER on IntegriCloud