summaryrefslogtreecommitdiffstats
path: root/sys/dev/ppbus/vpo.c
Commit message (Collapse)AuthorAgeFilesLines
* Apparently there's a good reason why M_WAITOK malloc() is done beforeru2004-01-181-2/+2
| | | | xpt_create_path().
* Fixed a memory leak.ru2004-01-181-1/+2
| | | | Submitted by: Stanford Metacompilation research group
* Use __FBSDID().obrien2003-08-241-1/+3
| | | | Also some minor style cleanups.
* Fix a printf warning from the recent CAM changes.jhb2003-05-011-2/+2
|
* Centralize the devstat handling for all GEOM disk device driversphk2003-03-081-2/+0
| | | | | | | | in geom_disk.c. As a side effect this makes a lot of #include <sys/devicestat.h> lines not needed and some biofinish() calls can be reduced to biodone() again.
* Back out M_* changes, per decision of the TRB.imp2003-02-191-1/+1
| | | | Approved by: trb
* Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0.alfred2003-01-211-1/+1
| | | | Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
* This makes ppbus childs like lpt and ppi succesfully connect to moreticso2002-04-071-1/+1
| | | | | | | | than just the first ppbus. The child drivers always tried to attach unit 0. Reviewed by: gallatin Approved by: gallatin
* Convert more malloc+bzero to malloc+M_ZERO.dwmalone2000-12-081-3/+1
| | | | | Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net>
* Remove unneeded #include <machine/clock.h>phk2000-10-151-1/+0
|
* Add automatic rescan on connect. This happens already if the drive isn_hibma2000-04-041-9/+37
| | | | | | | connected during boot and the vpo module is in the kernel/loaded. In the case where the module is loaded at some later stage with kldload, the CAM bus is now rescanned as well.
* Some newbus-inspired tidy-ups. Use device_identify() rather than scanningpeter2000-01-231-25/+23
| | | | | | | | | | | | the resource table to locate children. The 'at ppbus?' can go again. Remove a few #if Nxxx > 0' type things, config arranges this for us. Move the newbus method glue next to the DRIVER_MODULE() stuff so we don't need extra prototypes. Don't set device descriptions until after the possibility of the probe returning an error. Remove all cdevsw_add() calls, all the drivers that did this also use make_dev() correctly, so it's not required. A couple of other minor nits.
* Port of ppbus standalone framework to the newbus system.nsouch2000-01-141-62/+55
| | | | | | | | | | | | | | | | | | | | | Note1: the correct interrupt level is invoked correctly for each driver. For this purpose, drivers request the bus before being able to call BUS_SETUP_INTR and BUS_TEARDOWN_INTR call is forced by the ppbus core when drivers release it. Thus, when BUS_SETUP_INTR is called at ppbus driver level, ppbus checks that the caller owns the bus and stores the interrupt handler cookie (in order to unregister it later). Printing is impossible while plip link is up is still TRUE. vpo (ZIP driver) and lpt are make in such a way that using the ZIP and printing concurrently is permitted is also TRUE. Note2: specific chipset detection is not done by default. PPC_PROBE_CHIPSET is now needed to force chipset detection. If set, the flags 0x40 still avoid detection at boot. Port of the pcf(4) driver to the newbus system (was previously directly connected to the rootbus and attached by a bogus pcf_isa_probe function).
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"peter1999-12-291-6/+6
| | | | | | is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
* Print more verbose debugging outputn_hibma1999-10-051-7/+10
| | | | Clean up computation of parameters.
* $Id$ -> $FreeBSD$peter1999-08-281-1/+1
|
* Remove unused variable and computation, possibly leading to an_hibma1999-06-261-4/+1
| | | | | | | | | | divide by zero fault. Possible fix for PR12041 PR: 12041 Submitted-By: J.Hudson@massey.ac.nz Reviewed-By: nsouch
* The base transfer speed for the parallel port bus is 93K/sec, not 3.3MB/sec.ken1999-05-061-2/+2
| | | | Submitted by: Nick Hibma <hibma@skylink.it>
* Take out calls to cam_sim_set_basexfer_speed(), the base transfer speed isken1999-05-061-2/+1
| | | | | | now returned in the path inquiry CCB. Submitted by: Nick Hibma <hibma@skylink.it>
* Add a number of interrelated CAM feature enhancements and bug fixes.ken1999-05-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NOTE: These changes will require recompilation of any userland applications, like cdrecord, xmcd, etc., that use the CAM passthrough interface. A make world is recommended. camcontrol.[c8]: - We now support two new commands, "tags" and "negotiate". - The tags commands allows users to view the number of tagged openings for a device as well as a number of other related parameters, and it allows users to set tagged openings for a device. - The negotiate command allows users to enable and disable disconnection and tagged queueing, set sync rates, offsets and bus width. Note that not all of those features are available for all controllers. Only the adv, ahc, and ncr drivers fully support all of the features at this point. Some cards do not allow the setting of sync rates, offsets and the like, and some of the drivers don't have any facilities to do so. Some drivers, like the adw driver, only support enabling or disabling sync negotiation, but do not support setting sync rates. - new description in the camcontrol man page of how to format a disk - cleanup of the camcontrol inquiry command - add support in the 'devlist' command for skipping unconfigured devices if -v was not specified on the command line. - make use of the new base_transfer_speed in the path inquiry CCB. - fix CCB bzero cases cam_xpt.c, cam_sim.[ch], cam_ccb.h: - new flags on many CCB function codes to designate whether they're non-immediate, use a user-supplied CCB, and can only be passed from userland programs via the xpt device. Use these flags in the transport layer and pass driver to categorize CCBs. - new flag in the transport layer device matching code for device nodes that indicates whether a device is unconfigured - bump the CAM version from 0x10 to 0x11 - Change the CAM ioctls to use the version as their group code, so we can force users to recompile code even when the CCB size doesn't change. - add + fill in a new value in the path inquiry CCB, base_transfer_speed. Remove a corresponding field from the cam_sim structure, and add code to every SIM to set this field to the proper value. - Fix the set transfer settings code in the transport layer. scsi_cd.c: - make some variables volatile instead of just casting them in various places - fix a race condition in the changer code - attach unless we get a "logical unit not supported" error. This should fix all of the cases where people have devices that return weird errors when they don't have media in the drive. scsi_da.c: - attach unless we get a "logical unit not supported" error scsi_pass.c: - for immediate CCBs, just malloc a CCB to send the user request in. This gets rid of the 'held' count problem in camcontrol tags. scsi_pass.h: - change the CAM ioctls to use the CAM version as their group code. adv driver: - Allow changing the sync rate and offset separately. adw driver - Allow changing the sync rate and offset separately. aha driver: - Don't return CAM_REQ_CMP for SET_TRAN_SETTINGS CCBs. ahc driver: - Allow setting offset and sync rate separately bt driver: - Don't return CAM_REQ_CMP for SET_TRAN_SETTINGS CCBs. NCR driver: - Fix the ultra/ultra 2 negotiation bug - allow setting both the sync rate and offset separately Other HBA drivers: - Put code in to set the base_transfer_speed field for XPT_GET_TRAN_SETTINGS CCBs. Reviewed by: gibbs, mjacob (isp), imp (aha)
* Major ppbus commit with:nsouch1999-01-101-1/+3
| | | | | | | | | | | | | | | | | | | + ECP parallel port chipset FIFO detection + DMA+FIFO parallel I/O handled as chipset specific + nlpt updated in order to use the above enhanced parallel I/O. Use 'lptcontrol -e' to use enhanced I/O + Various options documented in LINT + Full IEEE1284 NIBBLE and BYTE modes support. See ppbus(4) for an overview of the IEEE1284 standard + Detection of PnP parallel devices at boot + Read capability added to nlpt driver to get IEEE1284 compliant printer status with a simple 'cat /dev/lpt0' + IEEE1284 peripheral emulation added to BYTE mode. Two computers may dialog according to IEEE1284 signaling method. See PERIPH_1284 option and /sys/dev/ppbus/ppi.c All this code is supposed to provide basic functions for IEEE1284 programming. ppi.c and nlpt.c may act as examples.
* Fix the disappearing da0 problem.nsouch1999-01-091-1/+5
| | | | Submited by: Doug Rabson <dfr@nlsystems.com>
* The "easy" fixes for compiling the kernel -Wunused: remove unreferenced staticarchie1998-12-071-4/+5
| | | | and local variables, goto labels, and functions declared but not defined.
* - port of vpo code to CAMnsouch1998-09-201-144/+214
| | | | | | | | - ppbus was released before checking if still in disk_mode by vpoio and immio: the microseq (in_disk_mode) was never executed. Fixed. - nlptintr() renamed to nlpt_intr(). spltty() inserted in nlptintr() before nlpt_intr() call
* ppbus enhanced to support ZIP+ : 1284 code added, microseq improved +nsouch1998-09-131-15/+44
| | | | some bugs corrected in vpoio.
* Major ppbus updates from the author.msmith1998-08-031-575/+51
| | | | | | | | | | | | | | | | | - ppbus now supports PLIP via the if_plip driver - ieee1284 infrastructure added, including parallel-port PnP - port microsequencer added, for scripting the sort of port I/O that is common with parallel devices without endless calls up and down through the driver structure. - improved bus ownership behaviour among the ppbus-using drivers. - improved I/O chipset feature detection The vpo driver is now implemented using the microsequencer, leading to some performance improvements as well as providing an extensive example of its use. Reviewed by: msmith Submitted by: Nicolas Souchu <Nicolas.Souchu@prism.uvsq.fr>
* Support compiling with `gcc -ansi'.bde1998-04-151-8/+8
|
* Removed unused #includes. The !KERNEL case may be more broken than before.bde1997-09-011-7/+1
|
* Remove bogus i386/* includes.msmith1997-08-281-2/+1
|
* Sync with ppbus-970815 from the author :msmith1997-08-161-56/+68
| | | | | | | | | - interrupt-driven printing now works (nlpt) - Rearrangement of bus-related functions into ppb_base/ppbconf - Addition of ieee1284 interface functions, preliminary parallel-port PnP support Submitted by: Nicolas Souchu <Nicolas.Souchu@prism.uvsq.fr>
* New directory and drivers for Parallel Port Bus devices.msmith1997-08-141-0/+860
Submitted by: Nicolas Souchu <Nicolas.Souchu@prism.uvsq.fr>
OpenPOWER on IntegriCloud