xref: /freebsd/sys/dev/firewire/fwohcivar.h (revision 3c60ba66c4479fdf0045acf25f21c6806fd06c0f)
13c60ba66SKatsushi Kobayashi /*
23c60ba66SKatsushi Kobayashi  * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi SHimokawa
33c60ba66SKatsushi Kobayashi  * All rights reserved.
43c60ba66SKatsushi Kobayashi  *
53c60ba66SKatsushi Kobayashi  * Redistribution and use in source and binary forms, with or without
63c60ba66SKatsushi Kobayashi  * modification, are permitted provided that the following conditions
73c60ba66SKatsushi Kobayashi  * are met:
83c60ba66SKatsushi Kobayashi  * 1. Redistributions of source code must retain the above copyright
93c60ba66SKatsushi Kobayashi  *    notice, this list of conditions and the following disclaimer.
103c60ba66SKatsushi Kobayashi  * 2. Redistributions in binary form must reproduce the above copyright
113c60ba66SKatsushi Kobayashi  *    notice, this list of conditions and the following disclaimer in the
123c60ba66SKatsushi Kobayashi  *    documentation and/or other materials provided with the distribution.
133c60ba66SKatsushi Kobayashi  * 3. All advertising materials mentioning features or use of this software
143c60ba66SKatsushi Kobayashi  *    must display the acknowledgement as bellow:
153c60ba66SKatsushi Kobayashi  *
163c60ba66SKatsushi Kobayashi  *    This product includes software developed by K. Kobayashi and H. Shimokawa
173c60ba66SKatsushi Kobayashi  *
183c60ba66SKatsushi Kobayashi  * 4. The name of the author may not be used to endorse or promote products
193c60ba66SKatsushi Kobayashi  *    derived from this software without specific prior written permission.
203c60ba66SKatsushi Kobayashi  *
213c60ba66SKatsushi Kobayashi  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
223c60ba66SKatsushi Kobayashi  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
233c60ba66SKatsushi Kobayashi  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
243c60ba66SKatsushi Kobayashi  * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
253c60ba66SKatsushi Kobayashi  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
263c60ba66SKatsushi Kobayashi  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
273c60ba66SKatsushi Kobayashi  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
283c60ba66SKatsushi Kobayashi  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
293c60ba66SKatsushi Kobayashi  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
303c60ba66SKatsushi Kobayashi  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
313c60ba66SKatsushi Kobayashi  * POSSIBILITY OF SUCH DAMAGE.
323c60ba66SKatsushi Kobayashi  *
333c60ba66SKatsushi Kobayashi  * $FreeBSD$
343c60ba66SKatsushi Kobayashi  *
353c60ba66SKatsushi Kobayashi  */
363c60ba66SKatsushi Kobayashi typedef struct fwohci_softc {
373c60ba66SKatsushi Kobayashi 	struct firewire_comm fc;
383c60ba66SKatsushi Kobayashi 	bus_space_tag_t bst;
393c60ba66SKatsushi Kobayashi 	bus_space_handle_t bsh;
403c60ba66SKatsushi Kobayashi 	void *ih;
413c60ba66SKatsushi Kobayashi #if __FreeBSD_version < 500000
423c60ba66SKatsushi Kobayashi 	void *ih_cam;
433c60ba66SKatsushi Kobayashi #endif
443c60ba66SKatsushi Kobayashi 
453c60ba66SKatsushi Kobayashi 	struct resource *bsr;
463c60ba66SKatsushi Kobayashi 	struct resource *irq_res;
473c60ba66SKatsushi Kobayashi 	struct fwohci_dbch{
483c60ba66SKatsushi Kobayashi 		u_int ndb;
493c60ba66SKatsushi Kobayashi 		u_int ndesc;
503c60ba66SKatsushi Kobayashi 		caddr_t dummy;
513c60ba66SKatsushi Kobayashi 		STAILQ_HEAD(, fwohcidb_tr) db_trq;
523c60ba66SKatsushi Kobayashi 		struct fwohcidb_tr *top, *bottom, *pdb_tr;
533c60ba66SKatsushi Kobayashi 		struct fw_xferq xferq;
543c60ba66SKatsushi Kobayashi 		struct {
553c60ba66SKatsushi Kobayashi 			int len;
563c60ba66SKatsushi Kobayashi 			int hlen;
573c60ba66SKatsushi Kobayashi 			int plen;
583c60ba66SKatsushi Kobayashi 			caddr_t buf;
593c60ba66SKatsushi Kobayashi 		} frag;
603c60ba66SKatsushi Kobayashi 		int flags;
613c60ba66SKatsushi Kobayashi #define	FWOHCI_DBCH_FULL	(1<<1)
623c60ba66SKatsushi Kobayashi 		int buf_offset;
633c60ba66SKatsushi Kobayashi 	} arrq, arrs, atrq, atrs, it[OHCI_MAX_DMA_CH], ir[OHCI_MAX_DMA_CH];
643c60ba66SKatsushi Kobayashi 	u_int maxrec;
653c60ba66SKatsushi Kobayashi 	u_int32_t *cromptr;
663c60ba66SKatsushi Kobayashi 	u_int32_t intmask;
673c60ba66SKatsushi Kobayashi } fwohci_softc_t;
683c60ba66SKatsushi Kobayashi void fwohci_intr __P((void *arg));
693c60ba66SKatsushi Kobayashi int fwohci_init __P((struct fwohci_softc *, device_t));
703c60ba66SKatsushi Kobayashi int fwohci_shutdown __P((device_t dev));
71