153 lines · c
1/*2*3* mwavedd.h -- declarations for mwave device driver4*5*6* Written By: Mike Sullivan IBM Corporation7*8* Copyright (C) 1999 IBM Corporation9*10* This program is free software; you can redistribute it and/or modify11* it under the terms of the GNU General Public License as published by12* the Free Software Foundation; either version 2 of the License, or13* (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 of17* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the18* GNU General Public License for more details.19*20* NO WARRANTY21* THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR22* CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT23* LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,24* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is25* solely responsible for determining the appropriateness of using and26* distributing the Program and assumes all risks associated with its27* exercise of rights under this Agreement, including but not limited to28* 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 LIABILITY32* NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY33* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL34* DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND35* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR36* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE37* USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED38* HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES39*40* You should have received a copy of the GNU General Public License41* along with this program; if not, write to the Free Software42* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA43*44*45* 10/23/2000 - Alpha Release46* First release to the public47*/48 49#ifndef _LINUX_MWAVEDD_H50#define _LINUX_MWAVEDD_H51#include "3780i.h"52#include "tp3780i.h"53#include "smapi.h"54#include "mwavepub.h"55#include <linux/ioctl.h>56#include <linux/uaccess.h>57#include <linux/wait.h>58 59extern int mwave_debug;60extern int mwave_3780i_irq;61extern int mwave_3780i_io;62extern int mwave_uart_irq;63extern int mwave_uart_io;64 65#define PRINTK_ERROR printk66#define KERN_ERR_MWAVE KERN_ERR "mwave: "67 68#define TRACE_MWAVE 0x000169#define TRACE_SMAPI 0x000270#define TRACE_3780I 0x000471#define TRACE_TP3780I 0x000872 73#ifdef MW_TRACE74#define PRINTK_1(f,s) \75 if (f & (mwave_debug)) { \76 printk(s); \77 }78 79#define PRINTK_2(f,s,v1) \80 if (f & (mwave_debug)) { \81 printk(s,v1); \82 }83 84#define PRINTK_3(f,s,v1,v2) \85 if (f & (mwave_debug)) { \86 printk(s,v1,v2); \87 }88 89#define PRINTK_4(f,s,v1,v2,v3) \90 if (f & (mwave_debug)) { \91 printk(s,v1,v2,v3); \92 }93 94#define PRINTK_5(f,s,v1,v2,v3,v4) \95 if (f & (mwave_debug)) { \96 printk(s,v1,v2,v3,v4); \97 }98 99#define PRINTK_6(f,s,v1,v2,v3,v4,v5) \100 if (f & (mwave_debug)) { \101 printk(s,v1,v2,v3,v4,v5); \102 }103 104#define PRINTK_7(f,s,v1,v2,v3,v4,v5,v6) \105 if (f & (mwave_debug)) { \106 printk(s,v1,v2,v3,v4,v5,v6); \107 }108 109#define PRINTK_8(f,s,v1,v2,v3,v4,v5,v6,v7) \110 if (f & (mwave_debug)) { \111 printk(s,v1,v2,v3,v4,v5,v6,v7); \112 }113 114#else115#define PRINTK_1(f,s)116#define PRINTK_2(f,s,v1)117#define PRINTK_3(f,s,v1,v2)118#define PRINTK_4(f,s,v1,v2,v3)119#define PRINTK_5(f,s,v1,v2,v3,v4)120#define PRINTK_6(f,s,v1,v2,v3,v4,v5)121#define PRINTK_7(f,s,v1,v2,v3,v4,v5,v6)122#define PRINTK_8(f,s,v1,v2,v3,v4,v5,v6,v7)123#endif124 125 126typedef struct _MWAVE_IPC {127 unsigned short usIntCount; /* 0=none, 1=first, 2=greater than 1st */128 bool bIsEnabled;129 bool bIsHere;130 /* entry spin lock */131 wait_queue_head_t ipc_wait_queue;132} MWAVE_IPC;133 134typedef struct _MWAVE_DEVICE_DATA {135 THINKPAD_BD_DATA rBDData; /* board driver's data area */136 unsigned long ulIPCSource_ISR; /* IPC source bits for recently processed intr, set during ISR processing */137 unsigned long ulIPCSource_DPC; /* IPC source bits for recently processed intr, set during DPC processing */138 bool bBDInitialized;139 bool bResourcesClaimed;140 bool bDSPEnabled;141 bool bDSPReset;142 MWAVE_IPC IPCs[16];143 bool bMwaveDevRegistered;144 short sLine;145 int nr_registered_attrs;146 int device_registered;147 148} MWAVE_DEVICE_DATA, *pMWAVE_DEVICE_DATA;149 150extern MWAVE_DEVICE_DATA mwave_s_mdd;151 152#endif153