summaryrefslogtreecommitdiffstats
path: root/sys/dev/sio/sio.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Recognize two cheap PCI 16550 devices :murray2001-09-161-2/+4
| | | | | | | CyberSerial (1-port) 16550 Oxford Semiconductor Dual Port 16550 Sort the list of PCI devices while I'm here.
* KSE Milestone 2julian2001-09-121-10/+10
| | | | | | | | | | | | | | Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
* Add a missing newline to an error message.dd2001-09-091-1/+1
| | | | | PR: 30436 Submitted by: Joerg Lehners <Lehners@Informatik.Uni-Oldenburg.DE>
* Add ID for the Best Data Smart One 56SPS Voice modem.murray2001-08-311-0/+1
| | | | | PR: kern/24851 Submitted by: Daniel Rudy <dcrudy@aol.com>
* Add OMRON ME5614ISA PnP modem.murray2001-08-311-0/+1
| | | | | PR: kern/22801 Submitted by: Ryuzo Okada <R.Okada@mm.neweb.ne.jp>
* Add PCI device IDs for Kuotech dual port serial cards.murray2001-08-311-0/+2
| | | | | | | Also give example of the flags needed to use these cards. PR: kern/21242 Submitted by: Shigeki Moride <moride@portside.net>
* Add ACPI attachments.msmith2001-08-301-0/+1
|
* Fix the so-called "half-baked-probe" code that I wrote a long time agoimp2001-08-161-0/+2
| | | | | | | | | | | | | | to properly clear the interrupt register on the no error case. Also, set the mcr register to zero when we find we can't support the chip. This fixes the hang on sio driver attach problem in the new pci pccard code that some people have reported. At least on my machine. I'd like to get this into 4.4. Submitted by: bde PR: kern/29742 MFC after: 1 day
* The serial console break-to-debugger support only functioned whileiedowse2001-06-201-1/+21
| | | | | | | | | | | | | | the console device was open. At other times, the interrupts that are used to detect the break signal or ~^B sequence were disabled, so these events would not be noticed until the next open (e.g. the next kernel printf). This was mainly a problem while there was no getty running on the console, such as during bootup or shutdown. For serial consoles with break-to-debugger support, we now enable the generation of interrupts at attach time, and we leave them enabled while the device is closed. Reviewed by: bde (I've since made chages as per his suggestions)
* Close the line displine on detach. Lots of folks have submittd this, andimp2001-06-051-1/+4
| | | | | | | I think bde even reviewed it once. Also, change the name of ActionTEC pat to more generic Lucent Kermit chip. Add stub for Xircom card. Add cardbus attachment too.
* Move out the files from src/sys/isa/ic/ to src/sys/dev/ic/, so theyjoerg2001-06-041-2/+2
| | | | | | | | | | can be made userland-visible as <dev/ic/...>. Also, those files are not supposed to contain any bus-specific details at all, so placing them under .../isa/ has been a misnomer from the beginning. The files in src/sys/dev/ic/ have been repo-copied from their old location (this commit is a forced null commit there to record this message).
* add Dualmode Zoom/FaxModem 56K (internal) Model 2919sanpei2001-05-261-0/+1
| | | | | PR: kern/27476 Submitted by: Eric Beyer <lnxfrk@earthlink.net>
* Add SmartLink 5634PCV SurfRidersanpei2001-05-201-0/+1
| | | | | PR: kern/26952 Submitted by: Simon Dick <simond@irrelevant.org>
* Remove unneeded includes of sys/ipl.h and machine/ipl.h.jhb2001-05-151-1/+0
|
* Undo part of the tangle of having sys/lock.h and sys/mutex.h included inmarkm2001-05-011-8/+10
| | | | | | | | | | | other "system" header files. Also help the deprecation of lockmgr.h by making it a sub-include of sys/lock.h and removing sys/lockmgr.h form kernel .c files. Sort sys/*.h includes where possible in affected files. OK'ed by: bde (with reservations)
* Send the remains (such as I have located) of "block major numbers" tophk2001-03-261-1/+0
| | | | the bit-bucket.
* 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>
* Extend kqueue down to the device layer.jlemon2001-02-151-2/+3
| | | | Backwards compatible approach suggested by: peter
* RIP <machine/lock.h>.markm2001-02-111-4/+0
| | | | | | | Some things needed bits of <i386/include/lock.h> - cy.c now has its own (only) copy of the COM_(UN)LOCK() macros, and IMASK_(UN)LOCK() has been moved to <i386/include/apic.h> (AKA <machine/apic.h>). Reviewed by: jhb
* - Catch up to the new swi API changes:jhb2001-02-091-12/+12
| | | | | | | - Use swi_* function names. - Use void * to hold cookies to handlers instead of struct intrhand *. - In sio.c, use 'driver_name' instead of "sio" as the name of the driver lock to minimize diffs with cy(4).
* Change and clean the mutex lock interface.bmilekic2001-02-091-43/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mtx_enter(lock, type) becomes: mtx_lock(lock) for sleep locks (MTX_DEF-initialized locks) mtx_lock_spin(lock) for spin locks (MTX_SPIN-initialized) similarily, for releasing a lock, we now have: mtx_unlock(lock) for MTX_DEF and mtx_unlock_spin(lock) for MTX_SPIN. We change the caller interface for the two different types of locks because the semantics are entirely different for each case, and this makes it explicitly clear and, at the same time, it rids us of the extra `type' argument. The enter->lock and exit->unlock change has been made with the idea that we're "locking data" and not "entering locked code" in mind. Further, remove all additional "flags" previously passed to the lock acquire/release routines with the exception of two: MTX_QUIET and MTX_NOSWITCH The functionality of these flags is preserved and they can be passed to the lock/unlock routines by calling the corresponding wrappers: mtx_{lock, unlock}_flags(lock, flag(s)) and mtx_{lock, unlock}_spin_flags(lock, flag(s)) for MTX_DEF and MTX_SPIN locks, respectively. Re-inline some lock acq/rel code; in the sleep lock case, we only inline the _obtain_lock()s in order to ensure that the inlined code fits into a cache line. In the spin lock case, we inline recursion and actually only perform a function call if we need to spin. This change has been made with the idea that we generally tend to avoid spin locks and that also the spin locks that we do have and are heavily used (i.e. sched_lock) do recurse, and therefore in an effort to reduce function call overhead for some architectures (such as alpha), we inline recursion for this case. Create a new malloc type for the witness code and retire from using the M_DEV type. The new type is called M_WITNESS and is only declared if WITNESS is enabled. Begin cleaning up some machdep/mutex.h code - specifically updated the "optimized" inlined code in alpha/mutex.h and wrote MTX_LOCK_SPIN and MTX_UNLOCK_SPIN asm macros for the i386/mutex.h as we presently need those. Finally, caught up to the interface changes in all sys code. Contributors: jake, jhb, jasone (in no particular order)
* Remove count for NSIO. The only places it was used it were incorrect.peter2001-01-311-1/+0
| | | | (alpha-gdbstub.c got sync'ed up a bit with the i386 version)
* Add OZO8008 - Zoom (33.6k Modem).tanimura2000-12-261-0/+1
| | | | | PR: kern/23336 Submitted by: Paulo Menezes <root@samurai.dee.uc.pt>
* Convert the sio driver to use a spin mutex instead of a s_lock. This isjhb2000-12-181-123/+58
| | | | | | going to hurt sio(4) performance for the time being. As we get closer to release and have more of the kernel unlocked we can come back to doing arcane optimizations to workaround the limitations of the sio hardware.
* - Overhaul the software interrupt code to use interrupt threads for eachjhb2000-10-251-11/+15
| | | | | | | | | | | | | | | | | | | type of software interrupt. Roughly, what used to be a bit in spending now maps to a swi thread. Each thread can have multiple handlers, just like a hardware interrupt thread. - Instead of using a bitmask of pending interrupts, we schedule the specific software interrupt thread to run, so spending, NSWI, and the shandlers array are no longer needed. We can now have an arbitrary number of software interrupt threads. When you register a software interrupt thread via sinthand_add(), you get back a struct intrhand that you pass to sched_swi() when you wish to schedule your swi thread to run. - Convert the name of 'struct intrec' to 'struct intrhand' as it is a bit more intuitive. Also, prefix all the members of struct intrhand with 'ih_'. - Make swi_net() a MI function since there is now no point in it being MD. Submitted by: cp
* Add MAE0021 - Jetstream Int V.90 56k Voice Series 2.tanimura2000-10-101-0/+1
| | | | | PR: i386/19920 Submitted by: Peter Ortner <port@iname.com>
* Use schedsofttty() again so that siopoll() gets scheduled as designedbde2000-10-081-5/+0
| | | | (SMPng casualty in rev.1.308 with wrong fix in rev.1.310).
* - Heavyweight interrupt threads on the alpha for device I/O interrupts.jhb2000-10-051-1/+1
| | | | | | | | | | | - Make softinterrupts (SWI's) almost completely MI, and divorce them completely from the x86 hardware interrupt code. - The ihandlers array is now gone. Instead, there is a MI shandlers array that just contains SWI handlers. - Most of the former machine/ipl.h files have moved to a new sys/ipl.h. - Stub out all the spl*() functions on all architectures. Submitted by: dfr
* - Wrap functions and variables that aren't used in the alpha console probejhb2000-09-221-7/+26
| | | | | | with #ifndef __alpha__/#endif - Add function prototypes for functions used during the alpha console probe and gdb port setup inside of #ifdef __alpha__/#endif.
* - Remove the inthand2_t type and use the equivalent driver_intr_t type fromjhb2000-09-131-0/+1
| | | | | | | | | | | | | newbus for referencing device interrupt handlers. - Move the 'struct intrec' type which describes interrupt sources into sys/interrupt.h instead of making it just be a x86 structure. - Don't create 'ithd' and 'intrec' typedefs, instead, just use 'struct ithd' and 'struct intrec' - Move the code to translate new-bus interrupt flags into an interrupt thread priority out of the x86 nexus code and into a MI ithread_priority() function in sys/kern/kern_intr.c. - Remove now-uneeded x86-specific headers from sys/dev/ata/ata-all.c and sys/pci/pci_compat.c.
* Add a nasty hack to get remote kernel gdb working from ddb. ddb wouldjhb2000-09-111-0/+9
| | | | | | | complain before that a suitable gdb port had not been setup because gdbdev was NULL. This abuses the fact that the gdb port is hard-coded to the address normally assigned to sio1 and thus hard-codes in sio1 as the gdb port. Yuck.
* Back out my previous commit as well as some SMPng changes to revert thejhb2000-09-081-17/+28
| | | | | | | siosetwater() function to its previous behavior of always disabling interrupts and obtaining the com_lock before returning. Requested by: bde (in principle)
* siointr1: Schedule soft interrupt when needed. This fixes the "nogrog2000-09-081-0/+2
| | | | | | | interrupt" problem people had seen with SMPng. Approved by: jasone Tested by: bp
* Fix a problem where we would recursively try to get the com lock withinjhb2000-09-081-6/+9
| | | | | | comparam when calling siosetwater(). Noticed by: bp
* Major update to the way synchronization is done in the kernel. Highlightsjasone2000-09-071-40/+115
| | | | | | | | | | | | | | | include: * Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The alpha port is still in transition and currently uses both.) * Per-CPU idle processes. * Interrupts are run in their own separate kernel threads and can be preempted (i386 only). Partially contributed by: BSDi (BSD/OS) Submissions by (at least): cp, dfr, dillon, grog, jake, jhb, sheldonh
* Add ZTIA001 - Zoom Internal V90 Faxmodem.sheldonh2000-09-051-0/+1
| | | | | PR: 21028 Submitted by: Glenn Johnson <glennpj@charter.net>
* Add Boca K56Flex PnP modem.sheldonh2000-09-041-0/+1
| | | | | PR: 21000 Submitted by: Andrew Sparrow <spadger@best.com>
* Call destroy_dev() when sio devices go away.phk2000-08-271-6/+12
|
* Add another USR modem.peter2000-08-151-0/+1
| | | | | PR: 20621 Submitted by: Masanori Taira <mtaira@logicaleffect.com>
* Previous commit changing SYSCTL_HANDLER_ARGS violated KNF.phk2000-07-041-1/+1
| | | | Pointed out by: bde
* Style police catches up with rev 1.26 of src/sys/sys/sysctl.h:phk2000-07-031-1/+1
| | | | | | | | Sanitize SYSCTL_HANDLER_ARGS so that simplistic tools can grog our sources: -sysctl_vm_zone SYSCTL_HANDLER_ARGS +sysctl_vm_zone (SYSCTL_HANDLER_ARGS)
* Add option ALT_BREAK_TO_DEBUGGER.ps2000-06-141-0/+29
| | | | | | | | Implement the Solaris way to break into DDB over a serial console instead of sending a break. Sending the character sequence CR ~ ^b will break the kernel into DDB (if DDB is enabled). Reviewed by: peter
* Add SUP1670 - Supra 336i V+ Intl. Since we update the PnP IDstanimura2000-05-261-0/+1
| | | | | | | | | more frequently than the core part of the sio driver, it might be good to move the PnP IDs to sio_isapnp.h or something like that. PR: i386/18828 Submitted by: J.P. King <jpk28@cam.ac.uk>
* Add RSS0262 - 5614Jx3[G] V90+K56Flex Modem.tanimura2000-05-191-0/+1
| | | | | PR: kern/18168 Submitted by: Tony Voet <voet@engineer.com>
* Add ACH2012 - 5634BTS 56K Video Ready Modem.tanimura2000-05-191-0/+1
| | | | | PR: kern/17351 Submitted by: Eric D. Futch <efutch@nyct.net>
* Add a couple of new PnP IDs.tanimura2000-05-181-0/+2
| | | | | | | | | | o OZO800f - Zoom 2812 (56k Modem) PR: kern/18603 Submitted by: Matt Loschert <loschert@servint.com> o DAV0336 - DAVICOM 336PNP MODEM PR: kern/18608 Submitted by: Martijn Plak <martijn@be3.com>
* Use bus_space stuff except where it needs high performance.nyan2000-05-121-79/+82
| | | | Reviewed by: bde
* Add the logical ID of FUJITSU Modem 33600 PNP/I2.tanimura2000-05-021-0/+1
| | | | | PR: kern/18257 Submitted by: Takanori Watanabe <takawata@shidahara1.planet.sci.kobe-u.ac.jp>
* Add support for pci modems. ONLY CONTROLLER BASED MODEMS. Thisimp2000-04-011-14/+122
| | | | | | | | | | | | doesn't support winmodems, softmodems, hcf or any other modem that relies on the host to do any sort of soft control for any aspect of the modem's function. There are two modems known to work: 3COM FaxModem PCI. ActionTec 56k VoiceMessaging PCI Modem and the following modem might work Multitech PCI FaxModem (not sure about this) and the serial pci cards might work too. I have neither these hardware items so I can't add support for them.
OpenPOWER on IntegriCloud