[dahdi-commits] sruffell: branch linux/sruffell/dahdi-linux-vpmdebug r8921 - in /linux/team/s...
SVN commits to the DAHDI project
dahdi-commits at lists.digium.com
Tue Jul 13 17:22:36 CDT 2010
Author: sruffell
Date: Tue Jul 13 17:22:27 2010
New Revision: 8921
URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=8921
Log:
Update gpakApi.h for 1.22
Removed:
linux/team/sruffell/dahdi-linux-vpmdebug/.version
Modified:
linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c
linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h
linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h
linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c
linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h
Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.c Tue Jul 13 17:22:27 2010
@@ -16,6 +16,7 @@
*
* This program has been released under the terms of the GPL version 2 by
* permission of Adaptive Digital Technologies, Inc.
+ *
*/
/*
@@ -31,14 +32,11 @@
* this program for more details.
*/
-#include <dahdi/kernel.h>
-
+#include <linux/module.h>
#include "GpakHpi.h"
#include "vpmadt032.h"
#include "GpakApi.h"
#include "gpakenum.h"
-
-#ifdef VPM_SUPPORT
/* DSP to Host interface block offsets. */
#define REPLY_MSG_PNTR_OFFSET 0 /* I/F blk offset to Reply Msg Pointer */
@@ -127,11 +125,6 @@
DSP_WORD DspStatus; /* DSP Status */
DSP_WORD DspChannels; /* number of DSP channels */
DSP_WORD Temp[2];
-#if 0
- DSP_WORD DspConfs; /* number of DSP conferences */
- DSP_ADDRESS PktBufrMem; /* address of Packet Buffer */
- unsigned short int i; /* loop index / counter */
-#endif
/* Read the pointer to the Interface Block. */
gpakReadDspMemory(DspId, DSP_IFBLK_ADDRESS, 2, Temp);
@@ -164,38 +157,6 @@
MaxChannels[DspId] = MAX_CHANNELS;
else
MaxChannels[DspId] = (unsigned short int) DspChannels;
-#if 0
- /* read the number of configured DSP conferences */
- gpakReadDspMemory(DspId, IfBlockPntr + NUM_CONFERENCES_OFFSET, 1,
- &DspConfs);
- if (DspConfs > MAX_CONFS)
- MaxConfs[DspId] = MAX_CONFS;
- else
- MaxConfs[DspId] = (unsigned short int) DspConfs;
-
-
- /* read the number of configured DSP packet channels */
- gpakReadDspMemory(DspId, IfBlockPntr + NUM_PKT_CHANNELS_OFFSET, 1,
- &DspChannels);
- if (DspChannels > MAX_PKT_CHANNELS)
- MaxPktChannels[DspId] = MAX_PKT_CHANNELS;
- else
- MaxPktChannels[DspId] = (unsigned short int) DspChannels;
-
-
- /* read the pointer to the circular buffer infor struct table */
- gpakReadDspMemory(DspId, IfBlockPntr + PKT_BUFR_MEM_OFFSET, 2, Temp);
- RECONSTRUCT_LONGWORD(PktBufrMem, Temp);
-
-
- /* Determine the addresses of each channel's Packet buffers. */
- for (i = 0; i < MaxPktChannels[DspId]; i++)
- {
- pPktInBufr[DspId][i] = PktBufrMem;
- pPktOutBufr[DspId][i] = PktBufrMem + CIRC_BUFFER_INFO_STRUCT_SIZE;
- PktBufrMem += (CIRC_BUFFER_INFO_STRUCT_SIZE*2);
- }
-#endif
/* read the pointer to the event fifo info struct */
gpakReadDspMemory(DspId, IfBlockPntr + EVENT_MSG_PNTR_OFFSET, 2, Temp);
@@ -509,7 +470,7 @@
*/
gpakConfigPortStatus_t gpakConfigurePorts(
unsigned short int DspId, /* DSP Id (0 to MaxDSPCores-1) */
- GpakPortConfig_t *pPortConfig, /* pointer to Port Config info */
+ const GpakPortConfig_t *pPortConfig, /* pointer to Port Config info */
GPAK_PortConfigStat_t *pStatus /* pointer to Port Config Status */
)
{
@@ -560,7 +521,7 @@
((pPortConfig->RxFrameSyncPolarity2 << 4) & 0x0010) |
((pPortConfig->TxFrameSyncPolarity2 << 3) & 0x0008) |
((pPortConfig->CompandingMode2 << 1) & 0x0006) |
- (pPortConfig->SerialWordSize1 & 0x0001));
+ (pPortConfig->SerialWordSize2 & 0x0001));
MsgBuffer[12] = (DSP_WORD)
(((pPortConfig->DxDelay3 << 11) & 0x0800) |
@@ -672,7 +633,7 @@
((pChanConfig->SoftwareCompand & 3) << 2) |
(pChanConfig->EcanEnableB << 1) |
(pChanConfig->EcanEnableA & 1)
- );
+ );
MsgBuffer[7] = (DSP_WORD)
pChanConfig->EcanParametersA.EcanTapLength;
@@ -733,9 +694,134 @@
MsgBuffer[34] = (DSP_WORD)
pChanConfig->EcanParametersB.EcanFirSegmentLen;
- MsgLength = 70; // byte number == 35*2
+ MsgBuffer[35] = (DSP_WORD)
+ (
+ ((pChanConfig->EcanParametersB.EcanReconvergenceCheckEnable <<5) & 0x20) |
+ ((pChanConfig->EcanParametersA.EcanReconvergenceCheckEnable <<4) & 0x10) |
+ ((pChanConfig->EcanParametersB.EcanTandemOperationEnable <<3) & 0x8) |
+ ((pChanConfig->EcanParametersA.EcanTandemOperationEnable <<2) & 0x4) |
+ ((pChanConfig->EcanParametersB.EcanMixedFourWireMode << 1) & 0x2) |
+ (pChanConfig->EcanParametersA.EcanMixedFourWireMode & 1)
+ );
+ MsgBuffer[36] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanMaxDoubleTalkThres;
+
+ MsgBuffer[37] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanMaxDoubleTalkThres;
+
+ MsgLength = 76; // byte number == 38*2
break;
+ /* PCM to Packet channel type. */
+ case tdmToTdmDebug:
+
+ MsgBuffer[2] = (DSP_WORD)
+ ((pChanConfig->PcmInPortA << 8) |
+ (pChanConfig->PcmInSlotA & 0xFF));
+ MsgBuffer[3] = (DSP_WORD)
+ ((pChanConfig->PcmOutPortA << 8) |
+ (pChanConfig->PcmOutSlotA & 0xFF));
+
+ MsgBuffer[4] = (DSP_WORD)
+ ((pChanConfig->PcmInPortB << 8) |
+ (pChanConfig->PcmInSlotB & 0xFF));
+ MsgBuffer[5] = (DSP_WORD)
+ ((pChanConfig->PcmOutPortB << 8) |
+ (pChanConfig->PcmOutSlotB & 0xFF));
+
+ MsgBuffer[6] = (DSP_WORD)
+ (
+ ((pChanConfig->FaxCngDetB <<11) & 0x0800) |
+ ((pChanConfig->FaxCngDetA <<10) & 0x0400) |
+ ((pChanConfig->MuteToneB << 9) & 0x0200) |
+ ((pChanConfig->MuteToneA << 8) & 0x0100) |
+ ((pChanConfig->FrameRate << 6) & 0x00C0) |
+ ((pChanConfig->ToneTypesB << 5) & 0x0020) |
+ ((pChanConfig->ToneTypesA << 4) & 0x0010) |
+ ((pChanConfig->SoftwareCompand & 3) << 2) |
+ (pChanConfig->EcanEnableB << 1) |
+ (pChanConfig->EcanEnableA & 1)
+ );
+
+ MsgBuffer[7] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanTapLength;
+ MsgBuffer[8] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpType;
+ MsgBuffer[9] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanAdaptEnable;
+ MsgBuffer[10] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanG165DetEnable;
+ MsgBuffer[11] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanDblTalkThresh;
+ MsgBuffer[12] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpThreshold;
+ MsgBuffer[13] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpConv;
+ MsgBuffer[14] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpUnConv;
+ MsgBuffer[15] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNlpMaxSuppress;
+
+ MsgBuffer[16] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanCngThreshold;
+ MsgBuffer[17] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanAdaptLimit;
+ MsgBuffer[18] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanCrossCorrLimit;
+ MsgBuffer[19] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanNumFirSegments;
+ MsgBuffer[20] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanFirSegmentLen;
+
+ MsgBuffer[21] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanTapLength;
+ MsgBuffer[22] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpType;
+ MsgBuffer[23] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanAdaptEnable;
+ MsgBuffer[24] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanG165DetEnable;
+ MsgBuffer[25] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanDblTalkThresh;
+ MsgBuffer[26] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpThreshold;
+ MsgBuffer[27] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpConv;
+ MsgBuffer[28] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpUnConv;
+ MsgBuffer[29] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNlpMaxSuppress;
+ MsgBuffer[30] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanCngThreshold;
+ MsgBuffer[31] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanAdaptLimit;
+ MsgBuffer[32] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanCrossCorrLimit;
+ MsgBuffer[33] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanNumFirSegments;
+ MsgBuffer[34] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanFirSegmentLen;
+
+ MsgBuffer[35] = (DSP_WORD)
+ (
+ ((pChanConfig->EcanParametersB.EcanReconvergenceCheckEnable <<5) & 0x20) |
+ ((pChanConfig->EcanParametersA.EcanReconvergenceCheckEnable <<4) & 0x10) |
+ ((pChanConfig->EcanParametersB.EcanTandemOperationEnable <<3) & 0x8) |
+ ((pChanConfig->EcanParametersA.EcanTandemOperationEnable <<2) & 0x4) |
+ ((pChanConfig->EcanParametersB.EcanMixedFourWireMode << 1) & 0x2) |
+ (pChanConfig->EcanParametersA.EcanMixedFourWireMode & 1)
+ );
+ MsgBuffer[36] = (DSP_WORD)
+ pChanConfig->EcanParametersA.EcanMaxDoubleTalkThres;
+
+ MsgBuffer[37] = (DSP_WORD)
+ pChanConfig->EcanParametersB.EcanMaxDoubleTalkThres;
+
+ MsgBuffer[38] = (DSP_WORD)
+ pChanConfig->ChannelId_tobe_Debug;
+
+ MsgLength = 78; // byte number == 39*2
+ break;
/* Unknown (invalid) channel type. */
default:
@@ -889,9 +975,6 @@
DSP_WORD TakeIndex; /* event fifo take index */
DSP_WORD WordsReady; /* number words ready for read out of event fifo */
DSP_WORD EventError; /* flag indicating error with event fifo msg */
-#if 0
- DSP_WORD *pDebugData; /* debug data buffer pointer in event data struct */
-#endif
/* Make sure the DSP Id is valid. */
if (DspId >= MAX_DSP_CORES)
@@ -911,7 +994,7 @@
EventInfoAddress = pEventFifoAddress[DspId];
gpakReadDspMemory(DspId, EventInfoAddress, CIRC_BUFFER_INFO_STRUCT_SIZE,
WordBuffer);
- RECONSTRUCT_LONGWORD(BufrBaseAddress, ((DSP_WORD *)&WordBuffer[CB_BUFR_BASE]));
+ RECONSTRUCT_LONGWORD(BufrBaseAddress, ((DSP_WORD *)&WordBuffer[CB_BUFR_BASE]));
BufrSize = WordBuffer[CB_BUFR_SIZE];
PutIndex = WordBuffer[CB_BUFR_PUT_INDEX];
TakeIndex = WordBuffer[CB_BUFR_TAKE_INDEX];
@@ -1249,7 +1332,7 @@
*pFramingError3Count = ReadBuffer[2];
*pDmaStopErrorCount = ReadBuffer[3];
- if(pDmaSlipStatsBuffer != NULL)
+ if(pDmaSlipStatsBuffer != 0)
// If users want to get the DMA slips count
{
pDmaSlipStatsBuffer[0] = ReadBuffer[4];
@@ -1612,4 +1695,3 @@
/* Return with an indication that System Parameters info was obtained. */
return (RspSuccess);
}
-#endif
Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/GpakApi.h Tue Jul 13 17:22:27 2010
@@ -14,29 +14,12 @@
* Revision History:
* 06/15/05 - Initial release.
* 11/15/2006 - 24 TDM-TDM Channels EC release
- *
- * This program has been released under the terms of the GPL version 2 by
- * permission of Adaptive Digital Technologies, Inc.
- *
- */
-
-/*
- * See http://www.asterisk.org for more information about
- * the Asterisk project. Please do not directly contact
- * any of the maintainers of this project for assistance;
- * the project provides a web site, mailing lists and IRC
- * channels for your use.
- *
- * This program is free software, distributed under the terms of
- * the GNU General Public License Version 2 as published by the
- * Free Software Foundation. See the LICENSE file included with
- * this program for more details.
*/
#ifndef _GPAKAPI_H /* prevent multiple inclusion */
#define _GPAKAPI_H
+#include "gpakenum.h"
#include "GpakErrs.h"
-#include "gpakenum.h"
// Bit masks to select which algorithm's parameters to update: Or-together the
// desired masks into the UpdateBits function parameter.
@@ -60,13 +43,14 @@
} GpakAsyncEventData_t;
/* Definition of an Echo Canceller Parameters information structure. */
-typedef struct
+typedef struct GpakEcanParms
{
short int EcanTapLength; // Echo Can Num Taps (tail length)
short int EcanNlpType; // Echo Can NLP Type
short int EcanAdaptEnable; // Echo Can Adapt Enable flag
short int EcanG165DetEnable; // Echo Can G165 Detect Enable flag
short int EcanDblTalkThresh; // Echo Can Double Talk threshold
+ short int EcanMaxDoubleTalkThres; // Maximum double-talk threshold
short int EcanNlpThreshold; // Echo Can NLP threshold
short int EcanNlpConv; // Dynamic NLP control, NLP limit when EC about to converged
short int EcanNlpUnConv;// Dynamic NLP control, NLP limit when EC not converged yet
@@ -76,10 +60,13 @@
short int EcanCrossCorrLimit; // Echo Can Cross Correlation limit
short int EcanNumFirSegments; // Echo Can Num FIR Segments
short int EcanFirSegmentLen; // Echo Can FIR Segment Length
+ short int EcanTandemOperationEnable; //Enable tandem operation
+ short int EcanMixedFourWireMode; // Handle possible 4-wire (echo-free) lines
+ short int EcanReconvergenceCheckEnable; // Handle possible 4-wire (echo-free) lines
} GpakEcanParms_t;
/* Definition of a Channel Configuration information structure. */
-typedef struct
+typedef struct GpakChannelConfig
{
GpakSerialPort_t PcmInPortA; // A side PCM Input Serial Port Id
unsigned short int PcmInSlotA; // A side PCM Input Time Slot
@@ -101,12 +88,14 @@
GpakActivation MuteToneB; // B side mute DTMF Enabled
GpakActivation FaxCngDetA; // A side FaxCng Tone Detector Enabled
GpakActivation FaxCngDetB; // B side FaxCng Tone Detector Enabled
+ unsigned short int ChannelId_tobe_Debug; // Channel Id of the channel that we'd like to debug
+ // (0 to MaxChannels-1), only used for tdmToTdmDebug
} GpakChannelConfig_t;
/* Definition of a Serial Port Configuration Structure */
-typedef struct
+typedef struct GpakPortConfig
{
GpakSlotCfg_t SlotsSelect1; // port 1 Slot selection
unsigned short int FirstBlockNum1; // port 1 first group Block Number
@@ -302,7 +291,7 @@
*/
extern gpakConfigPortStatus_t gpakConfigurePorts(
unsigned short int DspId, // DSP identifier
- GpakPortConfig_t *pPortConfig, // pointer to Port Config info
+ const GpakPortConfig_t *pPortConfig, // pointer to Port Config info
GPAK_PortConfigStat_t *pStatus // pointer to Port Config Status
);
Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/gpakenum.h Tue Jul 13 17:22:27 2010
@@ -98,7 +98,8 @@
typedef enum
{
inactive=0, // channel inactive
- tdmToTdm=1 // tdmToTdm
+ tdmToTdm=1, // tdmToTdm
+ tdmToTdmDebug=2 // tdmToTdm
} GpakChanType;
/* G.PAK Algorithm control commands */
Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.c Tue Jul 13 17:22:27 2010
@@ -882,7 +882,7 @@
pingstatus = gpakPingDsp(vpm150m->dspid, &vpm150m->version);
if (!pingstatus) {
- debug_printk(1, "Version of DSP is %x\n", vpm150m->version);
+ module_printk("Version of DSP is %x\n", vpm150m->version);
} else {
module_printk("Unable to ping the DSP (%d)!\n", pingstatus);
goto failed_exit;
@@ -1136,6 +1136,7 @@
GpakChannelConfig_t chanconfig;
GPAK_ChannelConfigStat_t cstatus;
GPAK_AlgControlStat_t algstatus;
+ GpakEcanParms_t *p;
int res, i;
@@ -1262,22 +1263,34 @@
chanconfig.EcanParametersA.EcanCrossCorrLimit = 15;
chanconfig.EcanParametersA.EcanNumFirSegments = 3;
chanconfig.EcanParametersA.EcanFirSegmentLen = 64;
+
+ p = &chanconfig.EcanParametersA;
+
+#define DEFAULT_NLPTYPE 6
+#define DEFAULT_NLPTHRESH 22
+#define DEFAULT_NLPMAXSUPP 10
- chanconfig.EcanParametersB.EcanTapLength = 1024;
- chanconfig.EcanParametersB.EcanNlpType = vpmnlptype;
- chanconfig.EcanParametersB.EcanAdaptEnable = 1;
- chanconfig.EcanParametersB.EcanG165DetEnable = 1;
- chanconfig.EcanParametersB.EcanDblTalkThresh = 6;
- chanconfig.EcanParametersB.EcanNlpThreshold = vpmnlpthresh;
- chanconfig.EcanParametersB.EcanNlpConv = 0;
- chanconfig.EcanParametersB.EcanNlpUnConv = 0;
- chanconfig.EcanParametersB.EcanNlpMaxSuppress = vpmnlpmaxsupp;
- chanconfig.EcanParametersB.EcanCngThreshold = 43;
- chanconfig.EcanParametersB.EcanAdaptLimit = 50;
- chanconfig.EcanParametersB.EcanCrossCorrLimit = 15;
- chanconfig.EcanParametersB.EcanNumFirSegments = 3;
- chanconfig.EcanParametersB.EcanFirSegmentLen = 64;
-
+ p->EcanTapLength = 1024;
+ p->EcanNlpType = DEFAULT_NLPTYPE;
+ p->EcanAdaptEnable = 1;
+ p->EcanG165DetEnable = 1;
+ p->EcanDblTalkThresh = 6;
+ p->EcanMaxDoubleTalkThres = 40;
+ p->EcanNlpThreshold = DEFAULT_NLPTHRESH;
+ p->EcanNlpConv = 18;
+ p->EcanNlpUnConv = 12;
+ p->EcanNlpMaxSuppress = DEFAULT_NLPMAXSUPP;
+ p->EcanCngThreshold = 43;
+ p->EcanAdaptLimit = 50;
+ p->EcanCrossCorrLimit = 15;
+ p->EcanNumFirSegments = 3;
+ p->EcanFirSegmentLen = 48;
+ p->EcanReconvergenceCheckEnable = 2;
+ p->EcanTandemOperationEnable = 0;
+ p->EcanMixedFourWireMode = 0;
+
+ memcpy(&chanconfig.EcanParametersB, p, sizeof(*p));
+
if ((res = gpakConfigureChannel(vpm150m->dspid, i, tdmToTdm, &chanconfig, &cstatus))) {
module_printk("Unable to configure channel (%d)\n", res);
if (res == 1) {
Modified: linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h
URL: http://svnview.digium.com/svn/dahdi/linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h?view=diff&rev=8921&r1=8920&r2=8921
==============================================================================
--- linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h (original)
+++ linux/team/sruffell/dahdi-linux-vpmdebug/drivers/dahdi/wcte12xp/vpmadt032.h Tue Jul 13 17:22:27 2010
@@ -29,6 +29,8 @@
#ifndef _VPM150M_H
#define _VPM150M_H
+
+#include "dahdi/kernel.h"
#include "wcte12xp.h"
#include "adt_lec.h"
More information about the dahdi-commits
mailing list