fwohcivar.h revision 1.25 1 1.25 christos /* $NetBSD: fwohcivar.h,v 1.25 2005/12/11 12:22:02 christos Exp $ */
2 1.25 christos
3 1.1 matt /*-
4 1.24 kiyohara * Copyright (c) 2003 Hidetoshi SHimokawa
5 1.24 kiyohara * Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi SHimokawa
6 1.1 matt * All rights reserved.
7 1.1 matt *
8 1.1 matt * Redistribution and use in source and binary forms, with or without
9 1.1 matt * modification, are permitted provided that the following conditions
10 1.1 matt * are met:
11 1.1 matt * 1. Redistributions of source code must retain the above copyright
12 1.1 matt * notice, this list of conditions and the following disclaimer.
13 1.1 matt * 2. Redistributions in binary form must reproduce the above copyright
14 1.1 matt * notice, this list of conditions and the following disclaimer in the
15 1.1 matt * documentation and/or other materials provided with the distribution.
16 1.1 matt * 3. All advertising materials mentioning features or use of this software
17 1.24 kiyohara * must display the acknowledgement as bellow:
18 1.24 kiyohara *
19 1.24 kiyohara * This product includes software developed by K. Kobayashi and H. Shimokawa
20 1.1 matt *
21 1.24 kiyohara * 4. The name of the author may not be used to endorse or promote products
22 1.24 kiyohara * derived from this software without specific prior written permission.
23 1.24 kiyohara *
24 1.24 kiyohara * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
25 1.24 kiyohara * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26 1.24 kiyohara * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 1.24 kiyohara * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
28 1.24 kiyohara * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29 1.24 kiyohara * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 1.24 kiyohara * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 1.24 kiyohara * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
32 1.24 kiyohara * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 1.24 kiyohara * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 1.1 matt * POSSIBILITY OF SUCH DAMAGE.
35 1.24 kiyohara *
36 1.24 kiyohara * $FreeBSD: /repoman/r/ncvs/src/sys/dev/firewire/fwohcivar.h,v 1.14 2005/01/06 01:42:41 imp Exp $
37 1.24 kiyohara *
38 1.1 matt */
39 1.1 matt
40 1.24 kiyohara #if defined(__DragonFly__) || __FreeBSD_version < 500000 || defined(__NetBSD__)
41 1.24 kiyohara #define FWOHCI_TASKQUEUE 0
42 1.24 kiyohara #else
43 1.24 kiyohara #define FWOHCI_TASKQUEUE 1
44 1.19 haya #endif
45 1.24 kiyohara #if FWOHCI_TASKQUEUE
46 1.24 kiyohara #include <sys/taskqueue.h>
47 1.19 haya #endif
48 1.19 haya
49 1.24 kiyohara #if defined(__NetBSD__)
50 1.24 kiyohara MALLOC_DECLARE(M_FW);
51 1.19 haya #endif
52 1.1 matt
53 1.24 kiyohara typedef struct fwohci_softc {
54 1.24 kiyohara struct firewire_comm fc;
55 1.24 kiyohara bus_space_tag_t bst;
56 1.24 kiyohara bus_space_handle_t bsh;
57 1.24 kiyohara #if defined(__FreeBSD__)
58 1.24 kiyohara void *ih;
59 1.24 kiyohara #if defined(__DragonFly__) || __FreeBSD_version < 500000
60 1.24 kiyohara void *ih_cam;
61 1.24 kiyohara void *ih_bio;
62 1.3 matt #endif
63 1.24 kiyohara struct resource *bsr;
64 1.24 kiyohara struct resource *irq_res;
65 1.24 kiyohara #elif defined(__NetBSD__)
66 1.24 kiyohara bus_size_t bssize;
67 1.4 onoe void *sc_shutdownhook;
68 1.4 onoe void *sc_powerhook;
69 1.24 kiyohara #endif
70 1.24 kiyohara struct fwohci_dbch{
71 1.24 kiyohara u_int ndb;
72 1.24 kiyohara u_int ndesc;
73 1.24 kiyohara STAILQ_HEAD(, fwohcidb_tr) db_trq;
74 1.24 kiyohara struct fwohcidb_tr *top, *bottom, *pdb_tr;
75 1.24 kiyohara struct fw_xferq xferq;
76 1.24 kiyohara int flags;
77 1.24 kiyohara #define FWOHCI_DBCH_INIT (1<<0)
78 1.24 kiyohara #define FWOHCI_DBCH_FULL (1<<1)
79 1.24 kiyohara /* used only in receive context */
80 1.24 kiyohara int buf_offset; /* signed */
81 1.24 kiyohara #define FWOHCI_DBCH_MAX_PAGES 32
82 1.24 kiyohara /* Context programs buffer */
83 1.24 kiyohara struct fwdma_alloc_multi *am;
84 1.24 kiyohara fw_bus_dma_tag_t dmat;
85 1.24 kiyohara } arrq, arrs, atrq, atrs, it[OHCI_DMA_ITCH], ir[OHCI_DMA_IRCH];
86 1.24 kiyohara u_int maxrec;
87 1.24 kiyohara uint32_t *sid_buf;
88 1.24 kiyohara struct fwdma_alloc sid_dma;
89 1.24 kiyohara struct fwdma_alloc crom_dma;
90 1.24 kiyohara struct fwdma_alloc dummy_dma;
91 1.24 kiyohara uint32_t intmask, irstat, itstat;
92 1.24 kiyohara #if FWOHCI_TASKQUEUE
93 1.24 kiyohara uint32_t intstat;
94 1.24 kiyohara struct task fwohci_task_complete;
95 1.24 kiyohara #endif
96 1.24 kiyohara int cycle_lost;
97 1.24 kiyohara } fwohci_softc_t;
98 1.1 matt
99 1.24 kiyohara FW_INTR(fwohci);
100 1.24 kiyohara int fwohci_init (struct fwohci_softc *, device_t);
101 1.24 kiyohara void fwohci_poll (struct firewire_comm *, int, int);
102 1.24 kiyohara void fwohci_reset (struct fwohci_softc *, device_t);
103 1.24 kiyohara FWOHCI_DETACH();
104 1.24 kiyohara int fwohci_resume (struct fwohci_softc *, device_t);
105 1.24 kiyohara FWOHCI_STOP();
106