1 /* 2 * 3 * mwavedd.h -- declarations for mwave device driver 4 * 5 * 6 * Written By: Mike Sullivan IBM Corporation 7 * 8 * Copyright (C) 1999 IBM Corporation 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License as published by 12 * the Free Software Foundation; either version 2 of the License, or 13 * (at your option) any later version. 14 * 15 * This program is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU General Public License for more details. 19 * 20 * NO WARRANTY 21 * THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR 22 * CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT 23 * LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, 24 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is 25 * solely responsible for determining the appropriateness of using and 26 * distributing the Program and assumes all risks associated with its 27 * exercise of rights under this Agreement, including but not limited to 28 * the risks and costs of program errors, damage to or loss of data, 29 * programs or equipment, and unavailability or interruption of operations. 30 * 31 * DISCLAIMER OF LIABILITY 32 * NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY 33 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 34 * DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND 35 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 36 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 37 * USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED 38 * HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 39 * 40 * You should have received a copy of the GNU General Public License 41 * along with this program; if not, write to the Free Software 42 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 43 * 44 * 45 * 10/23/2000 - Alpha Release 46 * First release to the public 47 */ 48 49 #ifndef _LINUX_MWAVEDD_H 50 #define _LINUX_MWAVEDD_H 51 #include "3780i.h" 52 #include "tp3780i.h" 53 #include "mwavepub.h" 54 #include <linux/ioctl.h> 55 #include <asm/uaccess.h> 56 57 extern int mwave_debug; 58 extern int mwave_3780i_irq; 59 extern int mwave_3780i_io; 60 extern int mwave_uart_irq; 61 extern int mwave_uart_io; 62 63 #define PRINTK_ERROR printk 64 #define KERN_ERR_MWAVE KERN_ERR "mwave: " 65 66 #define TRACE_MWAVE 0x0001 67 #define TRACE_SMAPI 0x0002 68 #define TRACE_3780I 0x0004 69 #define TRACE_TP3780I 0x0008 70 71 #ifdef MW_TRACE 72 #define PRINTK_1(f,s) \ 73 if (f & (mwave_debug)) { \ 74 printk(s); \ 75 } 76 77 #define PRINTK_2(f,s,v1) \ 78 if (f & (mwave_debug)) { \ 79 printk(s,v1); \ 80 } 81 82 #define PRINTK_3(f,s,v1,v2) \ 83 if (f & (mwave_debug)) { \ 84 printk(s,v1,v2); \ 85 } 86 87 #define PRINTK_4(f,s,v1,v2,v3) \ 88 if (f & (mwave_debug)) { \ 89 printk(s,v1,v2,v3); \ 90 } 91 92 #define PRINTK_5(f,s,v1,v2,v3,v4) \ 93 if (f & (mwave_debug)) { \ 94 printk(s,v1,v2,v3,v4); \ 95 } 96 97 #define PRINTK_6(f,s,v1,v2,v3,v4,v5) \ 98 if (f & (mwave_debug)) { \ 99 printk(s,v1,v2,v3,v4,v5); \ 100 } 101 102 #define PRINTK_7(f,s,v1,v2,v3,v4,v5,v6) \ 103 if (f & (mwave_debug)) { \ 104 printk(s,v1,v2,v3,v4,v5,v6); \ 105 } 106 107 #define PRINTK_8(f,s,v1,v2,v3,v4,v5,v6,v7) \ 108 if (f & (mwave_debug)) { \ 109 printk(s,v1,v2,v3,v4,v5,v6,v7); \ 110 } 111 112 #else 113 #define PRINTK_1(f,s) 114 #define PRINTK_2(f,s,v1) 115 #define PRINTK_3(f,s,v1,v2) 116 #define PRINTK_4(f,s,v1,v2,v3) 117 #define PRINTK_5(f,s,v1,v2,v3,v4) 118 #define PRINTK_6(f,s,v1,v2,v3,v4,v5) 119 #define PRINTK_7(f,s,v1,v2,v3,v4,v5,v6) 120 #define PRINTK_8(f,s,v1,v2,v3,v4,v5,v6,v7) 121 #endif 122 123 124 typedef struct _MWAVE_IPC { 125 unsigned short usIntCount; /* 0=none, 1=first, 2=greater than 1st */ 126 BOOLEAN bIsEnabled; 127 BOOLEAN bIsHere; 128 /* entry spin lock */ 129 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0) 130 wait_queue_head_t ipc_wait_queue; 131 #else 132 struct wait_queue *ipc_wait_queue; 133 #endif 134 } MWAVE_IPC; 135 136 typedef struct _MWAVE_DEVICE_DATA { 137 THINKPAD_BD_DATA rBDData; /* board driver's data area */ 138 unsigned long ulIPCSource_ISR; /* IPC source bits for recently processed intr, set during ISR processing */ 139 unsigned long ulIPCSource_DPC; /* IPC source bits for recently processed intr, set during DPC processing */ 140 BOOLEAN bBDInitialized; 141 BOOLEAN bResourcesClaimed; 142 BOOLEAN bDSPEnabled; 143 BOOLEAN bDSPReset; 144 MWAVE_IPC IPCs[16]; 145 BOOLEAN bMwaveDevRegistered; 146 BOOLEAN bProcEntryCreated; 147 short sLine; 148 149 } MWAVE_DEVICE_DATA, *pMWAVE_DEVICE_DATA; 150 151 #endif 152