summaryrefslogtreecommitdiffstats
path: root/sys/dev
Commit message (Collapse)AuthorAgeFilesLines
* Fix DMA on machines with more than 128MB.scottl2001-05-251-1/+1
| | | | | Obtained from: cg MFC after: 5 days
* Don't lie to diskerr() now that it listens to us.phk2001-05-251-5/+0
|
* Change #if VINUMDEBUG to #ifdef VINUMDEBUG. This is a flag, not a variable.grog2001-05-238-31/+27
|
* Regeneratewpaul2001-05-231-1/+6
|
* Tweak the xmphy driver a little bit based on something I learned aboutwpaul2001-05-233-8/+23
| | | | | | | | | | | | | | | | | | | | | | | the built-in 1000baseX interface in the Level 1 LXT1001 chip. The Level 1 PHY comes up with the isolate bit in the control register set by default, but it also has the autonegotiate bit set. When you tell the xmphy driver to select IFM_AUTO mode, it sees that the autoneg bit is already on, and thus doesn't bother updating the control register. However this means that the isolate bit is never turned off (unless you manually select 1000baseSX full or half duplex mode, which does result in the control register being modified and the ISO bit being turned off). This subtle and unusual behavioral difference stopped me from being able to receive packets on the SMC9462TX card for several days, since isolating the PHY disconnects it from the MAC's data interface. The fix is to omit the 'is the autoneg big set?' test, since it doesn't really provide much of an optimization anyway. This commit also updates the xmphy driver to support the Jato/Level 1 internal PHY. (I'm not sure how Jato Technologies is related to Level 1: all I know is the OUI from the PHY ID registers maps to Jato in the OUI database.) This will be used once I add the if_lge driver to support the LXT10010 chip.
* Vlan tags are 12 bits, mask off anything above since the chip doesn'tphk2001-05-231-2/+2
| | | | | | | | seem to do so for us. PR: 27567 Submitted by: Koji HINO hino@ccm.cl.nec.co.jp MFC after: 1 week
* Use '+' not '|' to add PCATCH to tsleep.phk2001-05-231-2/+2
|
* Remove the empty uscannerioctl() and use noioctl() instead.phk2001-05-231-8/+1
|
* Move objflags from vinumvar.h to vinumobj.h in preparation forgrog2001-05-231-45/+1
| | | | | | | requiring fewer header files for userland programs. Remove the gross debug device/non-debug device hack used to recognize whether the kernel module was in sync with the userland module.
* Move objflags from vinumvar.h to vinumobj.h in preparation forgrog2001-05-231-2/+37
| | | | requiring fewer header files for userland programs.
* Move external declaration to vinumhdr.h.grog2001-05-231-1/+2
|
* Set flag VF_HASDEBUG in vinum_conf to indicate that the module wasgrog2001-05-231-10/+6
| | | | | | | | | | | | compiled with debug support. This can be used by userland programs to recognize which ioctls the module supports. As a result, remove the gross debug device/non-debug device hack used to recognize whether the kernel module was in sync with the userland module. Replace explicit references to major/minor numbers of vinum superdevice with the VINUM_SUPERDEV macro written for that purpose.
* New header file.grog2001-05-221-0/+54
| | | | | | Missed by: Szilveszter Adam <sziszi@petra.hos.u-szeged.hu> David Wolfskill <david@catwhisker.org> Pointy hat to: grog
* Convert this driver to (ab?)use line disciplines to get the input itdd2001-05-221-17/+84
| | | | | | | needs instead of relying on idiosyncratic hacks in the tty subsystem. Also add module code since this can now be compiled as a module. Silence by: -hackers, -audit
* MALLOC -> malloc, FREE -> freebrian2001-05-221-5/+5
|
* Remove Malloc definitions (now in vinumext.h)grog2001-05-221-21/+2
|
* Add a field 'version' to vinum_conf. This field is a constant whichgrog2001-05-221-191/+30
| | | | | | | | | | | | | gets incremented every time the kernel-userland interface changes. This enables vinum(8) to check for the correct kernel version and to produce a useful message if it doesn't match. Requested by: Too many to count. Move the definitions of struct drive, sd, plex and volume to vinumobj.h. Add a new debug flag, DEBUG_LOCKREQS, which logs only lock requests.
* vinumstart: If a write request is for a RAID-[45] plex or a volumegrog2001-05-221-13/+23
| | | | | | | | | | | | | | | | | with more than one plex, the data will be accessed multiple times. During this time, userland code could potentially modify the buffer, thus causing data corruption. In the case of a multi-plexed volume this might be cosmetic, but in the case of a RAID-[45] plex it can cause severe data corruption which only becomes evident after a drive failure. Avoid this situation by making a copy of the data buffer before using it. Note that this solution does not guarantee any particular content of the buffer, just that it remains unchanged for the duration of the request. Suggested by: alfred
* tokenize: Take third parameter specifying the maximum number ofgrog2001-05-221-6/+8
| | | | | parameters to return. This code is used both in userland and in the kernel.
* Cosmetics: wrap long lines to be < 80 characters.grog2001-05-221-2/+4
|
* Add a new debug flag, DEBUG_LOCKREQS, which logs only lock requests.grog2001-05-221-12/+25
| | | | | | | | | | | | | | | | | | | | | | | | | Use this instead of DEBUG_LASTREQS to decide whether to log lock requests. MFS: vinumlock: Catch a potential race condition where one process is waiting for a lock, and between the time it is woken and it retries the lock, another process gets it and places it in the first entry in the table. This problem has not been observed, but it's possible, and it's easy enough to fix. Submitted by: tegge vinumunlock: Catch a real bug capable of hanging a system. When releasing a lock, vinumunlock() called wakeup_one. This caused wakeups to sometimes get lost. After due consideration, we think that this is due to the fact that you can't guarantee that some other process is also waiting on the same address. This makes wakeup_one a very dangerous function to use.
* Change ioctls to use the expurgated userland version of the Vinumgrog2001-05-223-20/+22
| | | | structures.
* format_config: Replace long format lines.grog2001-05-221-18/+28
| | | | | | | | | | | | | | Requested by: bde Add retryerrors keyword. vinum_scandisk: Print a different message if an inadvertent start command did not find any additional drives. The previous message "no drives found" confused and worried many people. MFS: vinum_open: Recognize Mylex devices as storage devices.
* complete_rqe:grog2001-05-221-7/+41
| | | | | | | | | | | | In case of error, check the VF_RETRYERRORS flag in the subdisk and don't take the subdisk down if it's set, just retry the I/O. Requested by: peter If the buffer has been copied (XFR_COPYBUF), release the copied buffer when the I/O completes. Suggested by: alfred
* Remove unnecessary declarations of userland functions.grog2001-05-221-13/+25
| | | | | | | | | Desired by: bde This commit is the first of a general cleanup of the header files.. It won't be enough to make bde happy. Move debug definitions from vinumhdr.h.
* config_sd: Add code to recognize "retryerrors" keyword.grog2001-05-221-29/+48
| | | | | | | | | config_plex: Don't create the device until we're finished. parse_config: check for corrupted configuration, thus avoiding a potential panic. remove_sd_entry: Restore structure.
* free_vinum: Change some explicit struct member references to the SD,grog2001-05-221-13/+23
| | | | PLEX and VOL.
* Add xferinfo flag bit for copied buffers.grog2001-05-221-2/+16
| | | | | | | Create a new struct rangelockinfo. In revision 1.21 of vinumlock.c, the plex info was removed from struct rangelock, since it wasn't needed there. It *is* needed for trace information, however, so use struct rangelockinfo for that.
* New file containing definitions for separate views of objects forgrog2001-05-221-0/+275
| | | | userland and kernel.
* Sort includes.jhb2001-05-211-1/+1
|
* Add description for 82801BA controller.kuriyama2001-05-211-0/+16
| | | | MFC after: 1 week
* Add SmartLink 5634PCV SurfRidersanpei2001-05-201-0/+1
| | | | | PR: kern/26952 Submitted by: Simon Dick <simond@irrelevant.org>
* #include <digi/*.h> -> #include <dev/digi/*.h>brian2001-05-193-9/+9
| | | | Suggested by: bde
* Fairwell digiio.h (moved to src/sys/sys)brian2001-05-191-61/+0
|
* digiio.h has moved to /usr/include/sysbrian2001-05-193-7/+7
|
* Introduce a global lock for the vm subsystem (vm_mtx).alfred2001-05-198-0/+8
| | | | | | | | | | | | | | | | | | | vm_mtx does not recurse and is required for most low level vm operations. faults can not be taken without holding Giant. Memory subsystems can now call the base page allocators safely. Almost all atomic ops were removed as they are covered under the vm mutex. Alpha and ia64 now need to catch up to i386's trap handlers. FFS and NFS have been tested, other filesystems will need minor changes (grabbing the vm lock when twiddling page properties). Reviewed (partially) by: jake, jhb
* Add a new ioctl to syscons, CONS_SCRSHOT. Given a userland buffer, itnik2001-05-181-0/+18
| | | | | | | | | | | copies out the current contents of the video buffer for a syscons terminal, providing a snapshot of the text and attributes. Based heavily on work originally submitted by Joel Holveck <joelh@gnu.org> for 2.2.x almost 30 months ago, which I cleaned up a little, and forward ported to -current. See also the usr.bin/scrshot utility.
* Add workaround for embedded NICs, in particular, the 815E boards.jlemon2001-05-172-17/+44
| | | | | There appears to be a bug where the chip will lock up when running in 10Mb/s mode.
* Primary purpose of this commit is to enable support for the Aviatordmlb2001-05-174-300/+715
| | | | | | | | | | | | | | | | | | | | | | Pro and Raylink cards with version 5 firmware. Only infra-structure mode has been tested. Specific changes for this feature are: o Add RFC1042 encapsulation of IP datagrams o Add authentication and association o Decode of the beacon (although not used) Other changes have been made: o Pass command completion status to *_done (in place for adding proper error recovery) o Move a couple of state variables into the current network parameters structure. This is in prep. for dealing with roaming. MFC after: 1 week
* Disable the wi driver locking for now. The driver tries to tsleep with thejhb2001-05-171-2/+2
| | | | driver lock held on detach which can lead to annoying and useless panics.
* Update to use the changed ioctl interface.sos2001-05-171-45/+42
|
* digiModel_t -> enum digi_modelbrian2001-05-173-10/+5
| | | | Remove a forgotton and unused structure.
* Remove unneeded includes of sys/ipl.h and machine/ipl.h.jhb2001-05-154-5/+0
|
* Fix instance of (struct ti_softc *) that should have beenwpaul2001-05-151-1/+1
| | | | | | (struct nge_softc *), which the compiler never complained about. I guess it doesn't matter, a pointer is a pointer, but looked weird to me.
* Adjust the descriptor structures a little by making the software partswpaul2001-05-151-4/+12
| | | | | | | | | | be unions with enough padding to make sure they always end up being a multiple of 8 bytes in size, since the 83820/83821 chips require descriptors to be aligned on 64-bit boundaries. I happened to get it right for the 32-bit descriptor/x86 case, but botched everything else. Things should work properle on 32-bit/64-bit platforms now. Note that the 64-bit descriptor format isn't being used currently.
* Remove a bogus comment which I forgot to get rid of after testinggreid2001-05-151-1/+1
|
* ahc_eisa.c:gibbs2001-05-1514-323/+506
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ahc_pci.c: Prepare for making ahc a module by adding module dependency and version info. aic7770.c: Remove linux header ifdefs. The headers are handled differently in Linux where local includes (those using "'s instead of <>'s) are allowed. Don't map our interrupt until after we are fully setup to handle interrupts. Our interrupt line may be shared so an interrupt could occur at any time. aic7xxx.c: Remove linux header ifdefs. current->curr to avoid Linux's use of current as a #define for the current task on some architectures. Add a helper function, ahc_assert_atn(), for use in message phases we handle manually. This hides the fact that U160 chips with the expected phase matching disabled need to have SCSISIGO updated differently. if (ahc_check_residual(scb) != 0) ahc_calc_residual(scb); else ahc_set_residual(scb, 0); becomes: ahc_update_residual(scb); Modify scsi parity error (or CRC error) handling to reflect expected phase being disabled on U160 chips. Move SELTO handling above BUSFREE handling so we can use the new busfree interrupt behavior on U160 chips. In ahc_build_transfer_msg() filter the period and ppr_options prior to deciding whether a PPR message is required. ppr_options may be forced to zero which will effect our decision. Correct a long standing but latent bug in ahc_find_syncrate(). We could choose a DT only rate even though DT transfers were disabled. In the CAM environment this was unlikely as CAM filters our rate to a non-DT value if the device does not support such rates. When displaing controller characteristics, include the speed of the chip. This way we can modify the transfer speed based on optional features that are enabled/disabled in a particular application. Add support for switching from fully blown tagged queing to just using simple queue tags should the device reject an ordered tag. Remove per-target "current" disconnect and tag queuing enable flags. These should be per-device and are not referenced internally be the driver, so we let the OSM track this state if it needs to. Use SCSI-3 message terminology. aic7xxx.h: The real 7850 does not support Ultra modes, but there are several cards that use the generic 7850 PCI ID even though they are using an Ultra capable chip (7859/7860). We start out with the AHC_ULTRA feature set and then check the DEVSTATUS register to determine if the capability is really present. current -> curr ahc_calc_residual() is no longer static allowing it to be called from ahc_update_residual() in aic7xxx_inline.h. Update some serial eeprom definitions for the latest BIOS versions. aic7xxx.reg: Add a combined DATA_PHASE mask to the SCSIPHASE register definition to simplify some sequencer code. aic7xxx.seq: Take advantage of some performance features available only on the U160 chips. The auto-ack feature allows us to ack data-in phases up to the data-fifo size while the sequencer is still setting up the DMA engine. This greatly reduces read transfer latency and simplifies testing for transfer complete (check SCSIEN only). We also disable the expected phase feature, and enable the new bus free interrupt behavior, to avoid a few instructions. Re-arrange the Ultra2+ data phase handling to allow us to do more work in parallel with the data fifo flushing on a read. On an SDTR, ack the message immediately so the target can prepare the next phase or message byte in parallel with our work to honor the message. aic7xxx_93cx6.c: Remove linux header ifdefs. aic7xxx_freebsd.c: current -> curr Add a module event handler. Handle tag downgrades in our ahc_send_async() handler. We won't be able to downgrade to "basic queuing" until CAM is made aware of this queuing type. aic7xxx_freebsd.h: Include cleanups. Define offsetof if required. Correct a few comments. Update prototype of ahc_send_async(). aic7xxx_inline.h: Implement ahc_update_residual(). aic7xxx_pci.c: Remove linux header ifdefs. Correct a few product strings. Enable several U160 performance enhancing features. Modify Ultra capability determination so we will enable Ultra speeds on devices with a 7850 PCI id that happen to really be a 7859 or 7860. Don't map our interrupt until after we are fully setup to handle interrupts. Our interrupt line may be shared so an interrupt could occur at any time.
* Use " |= " to enable special media handling for fxp with no MII, insteadjlemon2001-05-152-2/+2
| | | | | | | of " &= ". Also change the MII PHY device mask to check the correct bits. Cookie to: Andre Albsmeier <andre.albsmeier@mchp.siemens.de> Pointy hat to: me
* Implement a few more floppy ioctl commands and IO options, namely:joerg2001-05-141-23/+40
| | | | | | | | | | | | | | | | | | | | | . FD_CLRERR clears the error counter, thus re-enables kernel error printf()s, . FD_GSTAT obtains the last FDC operation state, if any, . FDOPT_NOERRLOG (temporarily) turns off kernel printf() floppy error logging, . FDOPT_NOERROR makes the kernel ignore an FDC error, thus can enable the transfer of an erroneous sector to the user application All options are being cleared on (last) close. Prime consumer of the last features will be fdread(1), to be committed shortly. (FD_CLRERR should be wired into fdcontrol(8), but then fdcontrol(8) needs a major rewrite anyway.)
* Close PR 22208: bring chip out of suspend mode, because Windows mightwpaul2001-05-142-0/+15
| | | | | have put the chip to sleep at shutdown. This is really only for the VT6102, but it doesn't hurt the older chips.
OpenPOWER on IntegriCloud