Linux Audio

Check our new training course

Loading...
v5.9
  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 "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 printk
 66#define KERN_ERR_MWAVE KERN_ERR "mwave: "
 67
 68#define TRACE_MWAVE     0x0001
 69#define TRACE_SMAPI     0x0002
 70#define TRACE_3780I     0x0004
 71#define TRACE_TP3780I   0x0008
 72
 73#ifdef MW_TRACE
 74#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#else
115#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#endif
124
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#endif
v6.8
  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 "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 printk
 66#define KERN_ERR_MWAVE KERN_ERR "mwave: "
 67
 68#define TRACE_MWAVE     0x0001
 69#define TRACE_SMAPI     0x0002
 70#define TRACE_3780I     0x0004
 71#define TRACE_TP3780I   0x0008
 72
 73#ifdef MW_TRACE
 74#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#else
115#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#endif
124
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#endif