[asterisk-scf-commits] team/sruffell/dahdi-linux.git branch "octapi2" created.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Wed Feb 2 15:02:40 CST 2011


branch "octapi2" has been created
        at  0794c96627efb3a74f1be0c3e8416204204a222f (commit)

- Log -----------------------------------------------------------------
commit 0794c96627efb3a74f1be0c3e8416204204a222f
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 17:55:01 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/vpm450m.c b/drivers/dahdi/wct4xxp/vpm450m.c
index f4126a0..7703af4 100644
--- a/drivers/dahdi/wct4xxp/vpm450m.c
+++ b/drivers/dahdi/wct4xxp/vpm450m.c
@@ -515,8 +515,10 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 			trace_printk("HERE:%d %d\n", __LINE__, x);
 			ulResult = Oct6100ChannelOpen(vpm450m->pApiInstance, ChannelOpen);
 			trace_printk("HERE:%d\n", __LINE__);
-			if (ulResult != GENERIC_OK)
+			if (ulResult != GENERIC_OK) {
 				printk(KERN_NOTICE "Failed to open channel %d!\n", x);
+				continue;
+			}
 
 			trace_printk("HERE:%d\n", __LINE__);
 			for (y = 0; y < ARRAY_SIZE(tones); y++) {

commit 59d7436a446d20b718a5b793ddda2019fc85b4a8
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 17:10:52 2011 -0600

    wiP

diff --git a/drivers/dahdi/wct4xxp/vpm450m.c b/drivers/dahdi/wct4xxp/vpm450m.c
index 23df906..f4126a0 100644
--- a/drivers/dahdi/wct4xxp/vpm450m.c
+++ b/drivers/dahdi/wct4xxp/vpm450m.c
@@ -523,8 +523,10 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 				struct oct6100_tone_detection_enable enable;
 				Oct6100ToneDetectionEnableDef(&enable);
 				enable.ulToneNumber = tones[y];
-				if (Oct6100ToneDetectionEnable(vpm450m->pApiInstance, &enable) != GENERIC_OK) 
+				if (Oct6100ToneDetectionEnable(vpm450m->pApiInstance, &enable) != GENERIC_OK)  {
 					printk(KERN_NOTICE "Failed to enable tone detection on channel %d for tone %d!\n", x, y);
+						break;
+				}
 			}
 			trace_printk("HERE:%d\n", __LINE__);
 		}

commit 191a8b36392e1d73d475f1ffff48324a278ef7a1
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 17:10:37 2011 -0600

    wiP

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index c9b5ef7..45bb68b 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -19855,8 +19855,10 @@ u32 Oct6100ToneDetectionEnable(
 											&ulToneEventNumber,
 
 											&ulExtToneChanIndex);
-	if (ulResult != cOCT6100_ERR_OK)
+	if (ulResult != cOCT6100_ERR_OK) {
+		trace_printk("HERE:%d %d\n", __LINE__, ulResult);
 		return ulResult;
+	}
 
 	trace_printk("HERE:%d\n", __LINE__);
 	/* Write to  all resources needed to enable tone detection. */

commit 7f653ad1613f05041e43d6c6068b180de81e43df
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 17:06:53 2011 -0600

    dbg

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 287d633..c9b5ef7 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -3487,26 +3487,6 @@ struct llm_alloc {
 	u32 allocated_items;	/* Allocated items in linked list.*/
 };
 
-/*	This section contains memory structures and functions used
-	to maintain a variable number of lists (FIFOs) that each
-	have a variable amount of items. A total amount of items
-	can be assigned through-out all the lists. Each item in
-	each list contains a u32 specified by the software using
-	the lists. Each used item in the list is accessible through
-	it's position in the list. */
-
-struct llm_list_head {
-	u32 list_length;	/* Current number of items in the list.*/
-						/* 0xFFFFFFFF means that the list is not used.*/
-	u32 head_pointer;	/* Number of the item in the item pool that is the first of this list.*/
-						/* 0xFFFFFFFF indicates end-of-list link.*/
-	u32 tail_pointer;	/* Number of the item in the item pool that is the last of this list.*/
-
-	/* Item cache (pointer within the list of the last accessed item):*/
-	u32 cache_item_number;	/* Number of the last accessed item in the list. 0xFFFFFFFF indicates invalid cache.*/
-	u32 cache_item_pointer;	/* Number of the last accessed item in the item pool.*/
-};
-
 static u32 Oct6100ConfBridgeCloseDef(
 			 struct oct6100_conf_bridge_close *f_pConfBridgeClose);
 static u32 Oct6100ConfBridgeClose(
@@ -19866,6 +19846,7 @@ u32 Oct6100ToneDetectionEnable(
 
 	u32	ulResult;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	/* Check the user's configuration of the tone detection for errors. */
 	ulResult = Oct6100ApiCheckToneEnableParams(
 											instance,
@@ -19877,6 +19858,7 @@ u32 Oct6100ToneDetectionEnable(
 	if (ulResult != cOCT6100_ERR_OK)
 		return ulResult;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	/* Write to  all resources needed to enable tone detection. */
 	ulResult = Oct6100ApiWriteToneDetectEvent(
 											instance,
@@ -19886,6 +19868,7 @@ u32 Oct6100ToneDetectionEnable(
 											ulExtToneChanIndex);
 	if (ulResult != cOCT6100_ERR_OK)
 		return ulResult;
+	trace_printk("HERE:%d\n", __LINE__);
 
 	/* Update the channel entry to indicate that a new tone has been activated. */
 	ulResult = Oct6100ApiUpdateChanToneDetectEntry(
@@ -19893,9 +19876,11 @@ u32 Oct6100ToneDetectionEnable(
 											ulChanIndex,
 											ulToneEventNumber,
 											ulExtToneChanIndex);
+	trace_printk("HERE:%d\n", __LINE__);
 	if (ulResult != cOCT6100_ERR_OK)
 		return ulResult;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	return cOCT6100_ERR_OK;
 }
 

commit 42a4017995cbf776fe3a3152dace9062bbc8c703
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 17:02:55 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 1a0cfc0..287d633 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -3507,22 +3507,6 @@ struct llm_list_head {
 	u32 cache_item_pointer;	/* Number of the last accessed item in the item pool.*/
 };
 
-struct llm_list_item {
-	u32 forward_link;	/* Number of the item in the item pool that is next in this list.*/
-						/* 0xFFFFFFFF indicates end-of-list link.*/
-
-	/* User item info (variable size)*/
-	u32 user_info[1];
-};
-
-struct llm_list {
-	/* Table of all the possible list heads:*/
-	struct llm_list_head *lh;
-
-	/* Table of the list items:*/
-	struct llm_list_item *li;
-};
-
 static u32 Oct6100ConfBridgeCloseDef(
 			 struct oct6100_conf_bridge_close *f_pConfBridgeClose);
 static u32 Oct6100ConfBridgeClose(

commit 331131fa124db4d82a6fbf2c59076c7ca37ba514
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 17:02:06 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 228eccf..1a0cfc0 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -3516,26 +3516,11 @@ struct llm_list_item {
 };
 
 struct llm_list {
-	u32 user_info_bytes;	/* In bytes, size of the user info in a single item.*/
-	u32 user_info_size;	/* In bytes, size of the user info in a single item.*/
-	u32 item_size;
-
-	u32 head_alloc_size;
-	u32 total_items;
-	u32 assigned_items;
-
-	u32 total_lists;
-	u32 assigned_lists;
-
-	u32 next_empty_item;	/* Contains a pointer to the next empty item in the*/
-							/* item pool.*/
-
 	/* Table of all the possible list heads:*/
-	struct llm_list_head * lh;
-	void *list_head_alloc;	/* struct llm_alloc structure used for list head allocation!*/
+	struct llm_list_head *lh;
 
 	/* Table of the list items:*/
-	struct llm_list_item * li;
+	struct llm_list_item *li;
 };
 
 static u32 Oct6100ConfBridgeCloseDef(

commit 5d85c83e0c04bc3a08f2f737f03c0dcc521b14ac
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 17:00:01 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index f1d118a..228eccf 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -3487,26 +3487,6 @@ struct llm_alloc {
 	u32 allocated_items;	/* Allocated items in linked list.*/
 };
 
-struct tllm_alloc_node {
-	u32 value;		/* Each item is either used (0xFFFFFFFE)*/
-						/* or unused (pointer to next unused item, 0xFFFFFFFF means last item reached).*/
-	u32 timeout[2];	/* Timeout value that must be exceeded for the node to be considered free again.*/
-};
-
-struct tllm_alloc {
-	struct tllm_alloc_node *linked_list;	/* List of nodes used by the link list.*/
-
-	u32 next_avail_num;	/* Points to the next available item in linked list. (0xFFFFFFFF means none available)*/
-	u32 number_of_items;	/* Total number of items in linked list.*/
-	u32 allocated_items;	/* Allocated items in linked list.*/
-
-	u32 number_of_timeout;	/* Number of block currently in timeout.*/
-	u32 next_timeout_num;	/* Points to the next block currently in timeout.*/
-	u32 last_timeout_num;	/* Last node of the timeout list.*/
-
-	u32 last_known_time[2];	/* last known time.*/
-};
-
 /*	This section contains memory structures and functions used
 	to maintain a variable number of lists (FIFOs) that each
 	have a variable amount of items. A total amount of items

commit 8018e886cd8debc7c1a55d7332dd8f518df6b477
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:59:16 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 7a595de..f1d118a 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -823,9 +823,6 @@ $Octasic_Revision: 42 $
 #define cOCT6100_MAX_ECHO_CHANNELS				672
 #define cOCT6100_MAX_TSI_CNCTS					1530
 #define cOCT6100_MAX_CALLER_ID_PLAYOUT_BUFFERS	(3328 + 6)
-#define cOCT6100_MAX_PLAYOUT_BUFFERS			(1344 + cOCT6100_MAX_CALLER_ID_PLAYOUT_BUFFERS)
-#define cOCT6100_MAX_CONF_BRIDGE				672
-#define cOCT6100_MAX_FLEX_CONF_PARTICIPANTS		cOCT6100_MAX_ECHO_CHANNELS
 #define cOCT6100_MAX_PHASING_TSST				16
 #define cOCT6100_MAX_ADPCM_CHANNELS				672
 
@@ -3640,9 +3637,6 @@ static u32 Oct6100ApiCheckProcessorState(
 				 struct oct6100_interrupt_flags *f_pIntFlags);
 
 
-static u32 Oct6100ApiMixerSwInit(
-				  struct oct6100_instance_api *instance);
-
 static u32 Oct6100ApiMixerEventAdd(
 				  struct oct6100_instance_api *instance,
 				 u16							f_usEventIndex,
@@ -3700,9 +3694,6 @@ static u32 Oct6100ApiGetConfBridgeSwSizes(
 				  struct oct6100_chip_open *f_pOpenChip,
 				 struct oct6100_api_instance_sizes *f_pInstSizes);
 
-static u32 Oct6100ApiConfBridgeSwInit(
-				  struct oct6100_instance_api *f_pApiInst);
-
 static u32 Oct6100ApiAssertBridgeParams(
 				  struct oct6100_instance_api *f_pApiInst,
 				 struct oct6100_conf_bridge_close *f_pConfBridgeClose,
@@ -4628,9 +4619,6 @@ static u32 Oct6100ApiGetTsiCnctSwSizes(
 				 struct oct6100_chip_open *f_pOpenChip,
 				 struct oct6100_api_instance_sizes *f_pInstSizes);
 
-static u32 Oct6100ApiTsiCnctSwInit(
-				  struct oct6100_instance_api *instance);
-
 /* TSI allocation pointer macros. */
 #define mOCT6100_GET_TSI_MEMORY_ALLOC_PNT(pSharedInfo, pAlloc) \
 			pAlloc = (void*)((u8*)pSharedInfo + pSharedInfo->ulTsiMemoryAllocOfst);
@@ -4674,13 +4662,6 @@ static u32 Oct6100ApiReleaseConversionMemEntry(
 #define mOCT6100_GET_BUFFER_ALLOC_PNT(pSharedInfo, pAlloc) \
 			pAlloc = (void*)((u8*)pSharedInfo + pSharedInfo->ulPlayoutBufAllocOfst);
 
-static u32 Oct6100ApiGetPlayoutBufferSwSizes(
-				 struct oct6100_chip_open *f_pOpenChip,
-				 struct oct6100_api_instance_sizes *f_pInstSizes);
-
-static u32 Oct6100ApiPlayoutBufferSwInit(
-				  struct oct6100_instance_api *instance);
-
 static u32 Oct6100ApiAssertPlayoutStopParams(
 				  struct oct6100_instance_api *instance,
 				 struct oct6100_buffer_playout_stop *f_pBufferPlayoutStop,
@@ -7265,114 +7246,6 @@ static u32 Oct6100BufferPlayoutStopDef(
 
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
-Function:		Oct6100ApiGetPlayoutBufferSwSizes
-
-Description:    Gets the sizes of all portions of the API instance pertinent
-				to the management of playout buffers.
-
--------------------------------------------------------------------------------
-|	Argument		|	Description
--------------------------------------------------------------------------------
-f_pOpenChip				Pointer to chip configuration struct.
-f_pInstSizes			Pointer to struct containing instance sizes.
-
-\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-
-static u32 Oct6100ApiGetPlayoutBufferSwSizes(
-				 struct oct6100_chip_open *f_pOpenChip,
-				 struct oct6100_api_instance_sizes *f_pInstSizes)
-{
-	u32	ulTempVar;
-	u32	ulResult;
-
-	/* Calculate memory needed for playout buffer list. */
-	f_pInstSizes->ulPlayoutBufList = f_pOpenChip->ulMaxPlayoutBuffers * sizeof(struct oct6100_api_buffer);
-
-	f_pInstSizes->ulPlayoutBufMemoryNodeList = 0;
-
-	/* Calculate memory needed for playout buffer allocation software. */
-	if (f_pOpenChip->ulMaxPlayoutBuffers > 0)
-	{
-		ulResult = OctapiLlmAllocGetSize(f_pOpenChip->ulMaxPlayoutBuffers, &f_pInstSizes->ulPlayoutBufAlloc);
-		if (ulResult != cOCT6100_ERR_OK)
-			return cOCT6100_ERR_FATAL_3C;
-
-		f_pInstSizes->ulPlayoutBufMemoryNodeList = 2 * f_pOpenChip->ulMaxPlayoutBuffers * sizeof(struct oct6100_api_buffer_playout_malloc_node);
-	}
-	else
-	{
-		f_pInstSizes->ulPlayoutBufAlloc  = 0;
-	}
-
-	/* Calculate memory needed for list and allocation software serialization. */
-	mOCT6100_ROUND_MEMORY_SIZE(f_pInstSizes->ulPlayoutBufList, ulTempVar)
-	mOCT6100_ROUND_MEMORY_SIZE(f_pInstSizes->ulPlayoutBufAlloc, ulTempVar)
-	mOCT6100_ROUND_MEMORY_SIZE(f_pInstSizes->ulPlayoutBufMemoryNodeList, ulTempVar)
-
-	return cOCT6100_ERR_OK;
-}
-
-/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
-
-Function:		Oct6100ApiPlayoutBufferSwInit
-
-Description:    Initializes all elements of the instance structure associated
-				to playout buffers.
-
--------------------------------------------------------------------------------
-|	Argument		|	Description
--------------------------------------------------------------------------------
-instance			Pointer to API instance. This memory is used to keep
-						the present state of the chip and all its resources.
-
-\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-
-static u32 Oct6100ApiPlayoutBufferSwInit(
-				  struct oct6100_instance_api *instance)
-{
-	struct oct6100_shared_info *pSharedInfo;
-	struct oct6100_api_buffer *pBufferList;
-	void*	pBufferPlayoutAlloc;
-	u32	ulMaxBufferPlayout;
-	u32	ulResult, i;
-
-	/* Get local pointer to shared portion of instance. */
-	pSharedInfo = instance->pSharedInfo;
-
-	/* Get the maximum number of buffer playout. */
-	ulMaxBufferPlayout = pSharedInfo->ChipConfig.usMaxPlayoutBuffers;
-
-	/* Set all entries in the buffer playout list to unused. */
-	mOCT6100_GET_BUFFER_LIST_PNT(pSharedInfo, pBufferList)
-
-	for (i = 0; i < ulMaxBufferPlayout; i++)
-	{
-		pBufferList[i].fReserved = false;
-		pBufferList[i].ulBufferSize = 0;
-		pBufferList[i].ulBufferBase = cOCT6100_INVALID_VALUE;
-		pBufferList[i].usDependencyCnt = 0;
-		pBufferList[i].byBufferPcmLaw = cOCT6100_PCM_U_LAW;
-
-	}
-
-	/* Initialize the buffer playout allocation software to "all free". */
-	if (ulMaxBufferPlayout > 0)
-	{
-		mOCT6100_GET_BUFFER_ALLOC_PNT(pSharedInfo, pBufferPlayoutAlloc)
-
-		ulResult = OctapiLlmAllocInit(&pBufferPlayoutAlloc, ulMaxBufferPlayout);
-		if (ulResult != cOCT6100_ERR_OK)
-			return cOCT6100_ERR_FATAL_3D;
-	}
-
-	/* Initialize the amount of free memory used by playout. */
-	instance->pSharedInfo->ChipStats.ulPlayoutMemUsed = 0;
-
-	return cOCT6100_ERR_OK;
-}
-
-/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
-
 Function:		Oct6100BufferPlayoutStop
 
 Description:    Stops buffer playout on a channel.
@@ -17294,93 +17167,6 @@ static u32 Oct6100ApiGetConfBridgeSwSizes(
 
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
-Function:		Oct6100ApiConfBridgeSwInit
-
-Description:    Initializes all elements of the instance structure associated
-				to conference bridges.
-
--------------------------------------------------------------------------------
-|	Argument		|	Description
--------------------------------------------------------------------------------
-instance			Pointer to API instance. This memory is used to keep
-						the present state of the chip and all its resources.
-
-\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-
-static u32 Oct6100ApiConfBridgeSwInit(
-				  struct oct6100_instance_api *instance)
-{
-	struct oct6100_shared_info *pSharedInfo;
-	struct oct6100_api_conf_bridge *pConfBridgeList;
-	struct oct6100_api_flex_conf_participant *pFlexConfParticipantList;
-	void*	pFlexConfPartipantsAlloc;
-	u32	ulMaxFlexConfParicipants;
-	void*	pConfBridgeAlloc;
-	u32	ulMaxConfBridges;
-	u32	ulResult;
-
-	/* Get local pointer to shared portion of instance. */
-	pSharedInfo = instance->pSharedInfo;
-
-	/* Get the maximum number of conference bridges. */
-	ulMaxConfBridges = pSharedInfo->ChipConfig.usMaxConfBridges;
-
-	/*===================================================================*/
-	/* Set all entries in the conference bridge list to unused. */
-
-	mOCT6100_GET_CONF_BRIDGE_LIST_PNT(pSharedInfo, pConfBridgeList);
-
-	/* Initialize the conference bridge allocation software to "all free". */
-	if (ulMaxConfBridges > 0)
-	{
-		/* Clear the bridge memory */
-		memset(pConfBridgeList, 0x00, ulMaxConfBridges * sizeof(struct oct6100_api_conf_bridge));
-
-		mOCT6100_GET_CONF_BRIDGE_ALLOC_PNT(pSharedInfo, pConfBridgeAlloc)
-
-		ulResult = OctapiLlmAllocInit(&pConfBridgeAlloc, ulMaxConfBridges);
-		if (ulResult != cOCT6100_ERR_OK)
-			return cOCT6100_ERR_FATAL_1E;
-	}
-	/*===================================================================*/
-
-	/*===================================================================*/
-	/* Set all entries in the flexible conferencing participant list to unused. */
-
-	/* Get the maximum number of flexible conferencing participants. */
-	ulMaxFlexConfParicipants = pSharedInfo->ChipConfig.usMaxFlexibleConfParticipants;
-
-	mOCT6100_GET_FLEX_CONF_PARTICIPANT_LIST_PNT(pSharedInfo, pFlexConfParticipantList);
-
-	/* Initialize the flexible conferencing allocation software. */
-	if (ulMaxFlexConfParicipants > 0)
-	{
-		u32 i, ulEventIndex;
-
-		/* Clear the participants memory */
-		memset(pFlexConfParticipantList, 0x00, ulMaxFlexConfParicipants * sizeof(struct oct6100_api_flex_conf_participant));
-
-		mOCT6100_GET_FLEX_CONF_PARTICIPANT_ALLOC_PNT(pSharedInfo, pFlexConfPartipantsAlloc)
-
-		ulResult = OctapiLlmAllocInit(&pFlexConfPartipantsAlloc, ulMaxFlexConfParicipants);
-		if (ulResult != cOCT6100_ERR_OK)
-			return cOCT6100_ERR_FATAL_1E;
-
-		/* Initialize the conferencing indexes. */
-		for (i = 0; i < ulMaxFlexConfParicipants; i ++)
-		{
-			for (ulEventIndex = 0; ulEventIndex < cOCT6100_MAX_FLEX_CONF_PARTICIPANTS_PER_BRIDGE; ulEventIndex ++)
-				pFlexConfParticipantList[i].ausLoadOrAccumulateEventIndex[ulEventIndex] = cOCT6100_INVALID_INDEX;
-		}
-	}
-
-	/*===================================================================*/
-
-	return cOCT6100_ERR_OK;
-}
-
-/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
-
 Function:		Oct6100ConfBridgeCloseSer
 
 Description:    Closes a conference bridge. Note that no client must be present
@@ -20952,125 +20738,6 @@ static u32 Oct6100ApiIs2100Tone(
 
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
-Function:		Oct6100ApiMixerSwInit
-
-Description:    Initializes all elements of the instance structure associated
-				to the mixer events.
-
--------------------------------------------------------------------------------
-|	Argument		|	Description
--------------------------------------------------------------------------------
-instance			Pointer to API instance. This mixer is used to keep
-						the present state of the chip and all its resources.
-
-\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-
-static u32 Oct6100ApiMixerSwInit(
-				  struct oct6100_instance_api *instance)
-{
-	struct oct6100_shared_info *pSharedInfo;
-	struct oct6100_api_mixer_event *pMixerEventList;
-	void*	pMixerEventAlloc;
-	void*	pCopyEventAlloc;
-	u32	ulTempVar;
-	u32	ulResult;
-
-	/* Get local pointer(s). */
-	pSharedInfo = instance->pSharedInfo;
-
-	/*===================================================================*/
-	/* Initialize the mixer event list. */
-	mOCT6100_GET_MIXER_EVENT_LIST_PNT(pSharedInfo, pMixerEventList);
-
-	/* Initialize the mixer event allocation software to "all free". */
-	memset(pMixerEventList, 0x00, cOCT6100_MAX_MIXER_EVENTS * sizeof(struct oct6100_api_mixer_event));
-
-	mOCT6100_GET_MIXER_EVENT_ALLOC_PNT(pSharedInfo, pMixerEventAlloc)
-
-	ulResult = OctapiLlmAllocInit(&pMixerEventAlloc, cOCT6100_MAX_MIXER_EVENTS);
-	if (ulResult != cOCT6100_ERR_OK)
-		return cOCT6100_ERR_FATAL_1F;
-
-	/* Now reserve the first entry as the first node. */
-	ulResult = OctapiLlmAllocAlloc(pMixerEventAlloc, &ulTempVar);
-	if (ulResult != cOCT6100_ERR_OK)
-	{
-		return cOCT6100_ERR_FATAL_20;
-	}
-
-	/* Check that we obtain the first event. */
-	if (ulTempVar != 0)
-		return cOCT6100_ERR_FATAL_21;
-
-	/* Now reserve the tail entry. */
-	ulResult = OctapiLlmAllocAlloc(pMixerEventAlloc, &ulTempVar);
-	if (ulResult != cOCT6100_ERR_OK)
-	{
-		return cOCT6100_ERR_FATAL_AA;
-	}
-	/* Check that we obtain the first event. */
-	if (ulTempVar != 1)
-		return cOCT6100_ERR_FATAL_AB;
-
-	/* Program the head node. */
-	pMixerEventList[cOCT6100_MIXER_HEAD_NODE].fReserved = true;
-	pMixerEventList[cOCT6100_MIXER_HEAD_NODE].usNextEventPtr = cOCT6100_MIXER_TAIL_NODE;
-	pMixerEventList[cOCT6100_MIXER_HEAD_NODE].usEventType = cOCT6100_MIXER_CONTROL_MEM_NO_OP;
-
-	/* Program the tail node. */
-	pMixerEventList[cOCT6100_MIXER_TAIL_NODE].fReserved = true;
-	pMixerEventList[cOCT6100_MIXER_TAIL_NODE].usNextEventPtr = cOCT6100_INVALID_INDEX;
-	pMixerEventList[cOCT6100_MIXER_TAIL_NODE].usEventType = cOCT6100_MIXER_CONTROL_MEM_NO_OP;
-
-	/* Now reserve the entry used for channel recording if the feature is enabled. */
-	if (pSharedInfo->ChipConfig.fEnableChannelRecording == true)
-	{
-		u32 ulAllocIndex;
-
-		/* Reserve an entry to copy the desire SOUT signal to the SIN signal of the recording channel. */
-		ulResult = OctapiLlmAllocAlloc(pMixerEventAlloc, &ulAllocIndex);
-		if (ulResult != cOCT6100_ERR_OK)
-		{
-			return cOCT6100_ERR_FATAL_90;
-		}
-
-		pSharedInfo->MixerInfo.usRecordCopyEventIndex = (u16)(ulAllocIndex & 0xFFFF);
-
-		/* Reserve an entry to copy the saved SIN signal of the debugged channel into it's original location. */
-		ulResult = OctapiLlmAllocAlloc(pMixerEventAlloc, &ulAllocIndex);
-		if (ulResult != cOCT6100_ERR_OK)
-		{
-			return cOCT6100_ERR_FATAL_90;
-		}
-
-		pSharedInfo->MixerInfo.usRecordSinEventIndex = (u16)(ulAllocIndex & 0xFFFF);
-
-		/* Configure the SIN event. */
-		pMixerEventList[pSharedInfo->MixerInfo.usRecordSinEventIndex].fReserved = true;
-		pMixerEventList[pSharedInfo->MixerInfo.usRecordSinEventIndex].usNextEventPtr = cOCT6100_MIXER_TAIL_NODE;
-		pMixerEventList[pSharedInfo->MixerInfo.usRecordSinEventIndex].usEventType = cOCT6100_MIXER_CONTROL_MEM_NO_OP;
-
-		/* Configure the SOUT copy event. */
-		pMixerEventList[pSharedInfo->MixerInfo.usRecordCopyEventIndex].fReserved = true;
-		pMixerEventList[pSharedInfo->MixerInfo.usRecordCopyEventIndex].usNextEventPtr = pSharedInfo->MixerInfo.usRecordSinEventIndex;
-		pMixerEventList[pSharedInfo->MixerInfo.usRecordCopyEventIndex].usEventType = cOCT6100_MIXER_CONTROL_MEM_NO_OP;
-
-		/* Program the head node. */
-		pMixerEventList[cOCT6100_MIXER_HEAD_NODE].usNextEventPtr = pSharedInfo->MixerInfo.usRecordCopyEventIndex;
-	}
-
-	/* Initialize the copy event list. */
-	mOCT6100_GET_COPY_EVENT_ALLOC_PNT(pSharedInfo, pCopyEventAlloc)
-
-	ulResult = OctapiLlmAllocInit(&pCopyEventAlloc, cOCT6100_MAX_MIXER_EVENTS);
-	if (ulResult != cOCT6100_ERR_OK)
-		return cOCT6100_ERR_FATAL_B4;
-
-	return cOCT6100_ERR_OK;
-}
-
-/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
-
 Function:		Oct6100ApiMixerEventAdd
 
 Description:    This function adds a mixer event event to the list of events
@@ -24163,53 +23830,6 @@ static u32 Oct6100ApiGetTsiCnctSwSizes(
 
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
-Function:		Oct6100ApiTsiCnctSwInit
-
-Description:    Initializes all elements of the instance structure associated
-				to the TSI memory.
-
--------------------------------------------------------------------------------
-|	Argument		|	Description
--------------------------------------------------------------------------------
-instance			Pointer to API instance. This memory is used to keep
-						the present state of the chip and all its resources.
-
-\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
-
-static u32 Oct6100ApiTsiCnctSwInit(struct oct6100_instance_api *instance)
-{
-	struct oct6100_api_tsi_cnct *pChannelsTsiList;
-	struct oct6100_shared_info *pSharedInfo;
-	u32	ulMaxTsiChannels;
-	void*	pTsiChannelsAlloc;
-	u32	ulResult;
-
-	/* Get local pointer to shared portion of instance. */
-	pSharedInfo = instance->pSharedInfo;
-
-	/* Initialize the TSI connections API list. */
-	ulMaxTsiChannels = pSharedInfo->ChipConfig.usMaxTsiCncts;
-
-	mOCT6100_GET_TSI_CNCT_LIST_PNT(pSharedInfo, pChannelsTsiList)
-
-	/* Clear the memory. */
-	memset(pChannelsTsiList, 0x00, sizeof(*pChannelsTsiList) * ulMaxTsiChannels);
-
-	/* Set all entries in the TSI connections list to unused. */
-	if (ulMaxTsiChannels > 0)
-	{
-		mOCT6100_GET_TSI_CNCT_ALLOC_PNT(pSharedInfo, pTsiChannelsAlloc)
-
-		ulResult = OctapiLlmAllocInit(&pTsiChannelsAlloc, ulMaxTsiChannels);
-		if (ulResult != cOCT6100_ERR_OK)
-			return cOCT6100_ERR_FATAL_49;
-	}
-
-	return cOCT6100_ERR_OK;
-}
-
-/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
-
 Function:		Oct6100EventGetTone
 
 Description:    Retreives an array of tone events.
@@ -25832,7 +25452,6 @@ u32 Oct6100ChipOpenDef(struct oct6100_chip_open *f_pChipOpen)
 	f_pChipOpen->ulMaxBiDirChannels = 0;
 	f_pChipOpen->ulMaxConfBridges = 0;
 	f_pChipOpen->ulMaxFlexibleConfParticipants = 0;
-	f_pChipOpen->ulMaxPlayoutBuffers = 0;
 
 	f_pChipOpen->ulMaxPhasingTssts	= 0;
 	f_pChipOpen->ulMaxAdpcmChannels = 0;
@@ -26521,15 +26140,6 @@ static u32 Oct6100ApiCheckChipConfiguration(
 	if (f_pChipOpen->ulMaxBiDirChannels > (f_pChipOpen->ulMaxChannels / 2))
 		return cOCT6100_ERR_OPEN_MAX_BIDIR_CHANNELS;
 
-	if (f_pChipOpen->ulMaxConfBridges > cOCT6100_MAX_CONF_BRIDGE)
-		return cOCT6100_ERR_OPEN_MAX_CONF_BRIDGES;
-
-	if (f_pChipOpen->ulMaxFlexibleConfParticipants > cOCT6100_MAX_FLEX_CONF_PARTICIPANTS)
-		return cOCT6100_ERR_OPEN_MAX_FLEXIBLE_CONF_PARTICIPANTS;
-
-	if (f_pChipOpen->ulMaxPlayoutBuffers > cOCT6100_MAX_PLAYOUT_BUFFERS)
-		return cOCT6100_ERR_OPEN_MAX_PLAYOUT_BUFFERS;
-
 	if (f_pChipOpen->ulMaxPhasingTssts > cOCT6100_MAX_PHASING_TSST)
 		return cOCT6100_ERR_OPEN_MAX_PHASING_TSSTS;
 
@@ -26570,7 +26180,6 @@ static u32 Oct6100ApiCheckChipConfiguration(
 		f_pChipOpen->fEnableChannelRecording = false;
 		f_pChipOpen->ulMaxBiDirChannels = 0;
 		f_pChipOpen->ulMaxConfBridges = 0;
-		f_pChipOpen->ulMaxPlayoutBuffers = 0;
 		f_pChipOpen->ulSoftBufferPlayoutEventsBufSize = cOCT6100_INVALID_VALUE;
 		f_pChipOpen->ulMaxPhasingTssts = 0;
 		f_pChipOpen->ulMaxAdpcmChannels = 0;
@@ -26632,8 +26241,6 @@ static u32 Oct6100ApiCopyChipConfiguration(
 	pSharedInfo->ChipConfig.usMaxTsiCncts = (u16)(f_pChipOpen->ulMaxTsiCncts & 0xFFFF);
 	pSharedInfo->ChipConfig.usMaxBiDirChannels = (u16)(f_pChipOpen->ulMaxBiDirChannels & 0xFFFF);
 	pSharedInfo->ChipConfig.usMaxConfBridges = (u16)(f_pChipOpen->ulMaxConfBridges & 0xFFFF);
-	pSharedInfo->ChipConfig.usMaxFlexibleConfParticipants = (u16)(f_pChipOpen->ulMaxFlexibleConfParticipants & 0xFFFF);
-	pSharedInfo->ChipConfig.usMaxPlayoutBuffers = (u16)(f_pChipOpen->ulMaxPlayoutBuffers & 0xFFFF);
 
 	pSharedInfo->ChipConfig.usMaxPhasingTssts = (u16)(f_pChipOpen->ulMaxPhasingTssts & 0xFFFF);
 	pSharedInfo->ChipConfig.usMaxAdpcmChannels = (u16)(f_pChipOpen->ulMaxAdpcmChannels & 0xFFFF);
@@ -26897,12 +26504,6 @@ static u32 Oct6100ApiCalculateInstanceSizes(
 		return ulResult;
 
 	/*-----------------------------------------------------------------------------*/
-	/* Memory needed by the buffer playout structures. */
-	ulResult = Oct6100ApiGetPlayoutBufferSwSizes(f_pChipOpen, f_pInstSizes);
-	if (ulResult != cOCT6100_ERR_OK)
-		return ulResult;
-
-	/*-----------------------------------------------------------------------------*/
 	/* Memory needed by soft Rx Event buffers. */
 	ulResult = Oct6100ApiGetEventsSwSizes(f_pChipOpen, f_pInstSizes);
 	if (ulResult != cOCT6100_ERR_OK)
@@ -27127,22 +26728,6 @@ static u32 Oct6100ApiInitializeInstanceMemory(
 	ulResult = Oct6100ApiChannelsEchoSwInit(instance);
 	if (ulResult != cOCT6100_ERR_OK)
 		return ulResult;
-	/*-----------------------------------------------------------------------------*/
-	/* Initialize the API TSI connection structures. */
-	ulResult = Oct6100ApiTsiCnctSwInit(instance);
-	if (ulResult != cOCT6100_ERR_OK)
-		return ulResult;
-	/*-----------------------------------------------------------------------------*/
-	/* Initialize the API conference bridges. */
-	ulResult = Oct6100ApiConfBridgeSwInit(instance);
-	if (ulResult != cOCT6100_ERR_OK)
-		return ulResult;
-
-	/*-----------------------------------------------------------------------------*/
-	/* Initialize the API buffer playout structures. */
-	ulResult = Oct6100ApiPlayoutBufferSwInit(instance);
-	if (ulResult != cOCT6100_ERR_OK)
-		return ulResult;
 
 	/*-----------------------------------------------------------------------------*/
 	/* Initialize the API phasing tssts. */
@@ -27168,12 +26753,6 @@ static u32 Oct6100ApiInitializeInstanceMemory(
 		return ulResult;
 
 	/*-----------------------------------------------------------------------------*/
-	/* Initialize the mixer management stuctures. */
-	ulResult = Oct6100ApiMixerSwInit(instance);
-	if (ulResult != cOCT6100_ERR_OK)
-		return ulResult;
-
-	/*-----------------------------------------------------------------------------*/
 	/* Configure the interrupt registers. */
 	ulResult = Oct6100ApiIsrSwInit(instance);
 	if (ulResult != cOCT6100_ERR_OK)
diff --git a/drivers/dahdi/wct4xxp/octapi.h b/drivers/dahdi/wct4xxp/octapi.h
index 88982bf..e4f6aba 100644
--- a/drivers/dahdi/wct4xxp/octapi.h
+++ b/drivers/dahdi/wct4xxp/octapi.h
@@ -269,7 +269,6 @@ struct oct6100_chip_open {
 	u32	ulMaxBiDirChannels;
 	u32	ulMaxConfBridges;
 	u32	ulMaxFlexibleConfParticipants;
-	u32	ulMaxPlayoutBuffers;
 
 	u32	ulMaxPhasingTssts;
 	u32	ulMaxAdpcmChannels;

commit 425fa042f50d39fcadd64d00df6fd09a96c11315
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:46:02 2011 -0600

    wip: Don't optimize

diff --git a/drivers/dahdi/wct4xxp/Kbuild b/drivers/dahdi/wct4xxp/Kbuild
index a8d1e47..b0d6818 100644
--- a/drivers/dahdi/wct4xxp/Kbuild
+++ b/drivers/dahdi/wct4xxp/Kbuild
@@ -2,7 +2,7 @@ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCT4XXP) += wct4xxp.o
 
 FIRM_DIR	:= ../firmware
 
-EXTRA_CFLAGS += -I$(src)/.. -Wno-undef
+EXTRA_CFLAGS += -I$(src)/.. -Wno-undef -O0
 
 ifeq ($(HOTPLUG_FIRMWARE),yes)
   EXTRA_CFLAGS+=-DHOTPLUG_FIRMWARE

commit a699dd3b2567c2bd934f02aaf7a665f05b0257b2
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:35:40 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index e0086bf..7a595de 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -8722,6 +8722,7 @@ static u32 Oct6100ApiReserveChannelResources(
 		/* Reserve an entry for the RIN/ROUT tsi chariot memory. */
 		ulResult = Oct6100ApiReserveTsiMemEntry(instance,
 												 &f_pChanIndexConf->usRinRoutTsiMemIndex);
+			trace_printk("HERE:%d\n", __LINE__);
 		if (ulResult == cOCT6100_ERR_OK)
 		{
 			fRinRoutTsiMemEntry = true;
@@ -8834,6 +8835,7 @@ static u32 Oct6100ApiReserveChannelResources(
 	}
 
 	/* Now reserve the TSST entries if required.*/
+	trace_printk("HERE:%d\n", __LINE__);
 
 	/* Reserve the Rin TSST entry */
 	if ((ulResult == cOCT6100_ERR_OK) &&
@@ -8855,6 +8857,7 @@ static u32 Oct6100ApiReserveChannelResources(
 		f_pChanIndexConf->usRinTsstIndex = cOCT6100_INVALID_INDEX;
 	}
 
+	trace_printk("HERE:%d\n", __LINE__);
 	if ((ulResult == cOCT6100_ERR_OK) &&
 		 (pTdmConfig->ulSinTimeslot != cOCT6100_UNASSIGNED &&
 		  pTdmConfig->ulSinStream != cOCT6100_UNASSIGNED))
@@ -8875,6 +8878,7 @@ static u32 Oct6100ApiReserveChannelResources(
 		f_pChanIndexConf->usSinTsstIndex = cOCT6100_INVALID_INDEX;
 	}
 
+	trace_printk("HERE:%d\n", __LINE__);
 	if ((ulResult == cOCT6100_ERR_OK) &&
 		 (pTdmConfig->ulRoutTimeslot != cOCT6100_UNASSIGNED &&
 		  pTdmConfig->ulRoutStream != cOCT6100_UNASSIGNED))
@@ -8895,6 +8899,7 @@ static u32 Oct6100ApiReserveChannelResources(
 		f_pChanIndexConf->usRoutTsstIndex = cOCT6100_INVALID_INDEX;
 	}
 
+	trace_printk("HERE:%d\n", __LINE__);
 	if ((ulResult == cOCT6100_ERR_OK) &&
 		 (pTdmConfig->ulSoutTimeslot != cOCT6100_UNASSIGNED &&
 		  pTdmConfig->ulSoutStream != cOCT6100_UNASSIGNED))
@@ -8915,6 +8920,7 @@ static u32 Oct6100ApiReserveChannelResources(
 		f_pChanIndexConf->usSoutTsstIndex = cOCT6100_INVALID_INDEX;
 	}
 
+	trace_printk("HERE:%d\n", __LINE__);
 	/*===============================================================================*/
 
 	/*===============================================================================*/
@@ -8947,9 +8953,8 @@ static u32 Oct6100ApiReserveChannelResources(
 		}
 	}
 
-	/*===============================================================================*/
+	trace_printk("HERE:%d\n", __LINE__);
 
-	/*===============================================================================*/
 	/* Release the resources if something went wrong */
 	if (ulResult != cOCT6100_ERR_OK)
 	{
@@ -9083,6 +9088,7 @@ static u32 Oct6100ApiReserveChannelResources(
 		return ulResult;
 	}
 
+	trace_printk("HERE:%d\n", __LINE__);
 	return cOCT6100_ERR_OK;
 }
 

commit 1e6a1fb0aa79f94e3990d1dbdfbfe1bb3e46f782
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:30:20 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/vpm450m.c b/drivers/dahdi/wct4xxp/vpm450m.c
index 53e9674..23df906 100644
--- a/drivers/dahdi/wct4xxp/vpm450m.c
+++ b/drivers/dahdi/wct4xxp/vpm450m.c
@@ -387,9 +387,7 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 	u32 ulResult;
 	struct vpm450m *vpm450m;
 	int x,y,law;
-#ifdef CONFIG_4KSTACKS
 	unsigned long flags;
-#endif
 	
 	vpm450m = kzalloc(sizeof(*vpm450m), GFP_KERNEL);
 	if (!vpm450m)

commit 2568bb28940c23cc539bfb099b353e0d256d0823
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:29:50 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/vpm450m.c b/drivers/dahdi/wct4xxp/vpm450m.c
index 635b816..53e9674 100644
--- a/drivers/dahdi/wct4xxp/vpm450m.c
+++ b/drivers/dahdi/wct4xxp/vpm450m.c
@@ -465,16 +465,12 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 	 * stack unfriendly.  Stupid, stupid, stupid.  So we disable IRQs so we
 	 * don't run the risk of overflowing the stack while we initialize the
 	 * octasic. */
-#ifdef CONFIG_4KSTACKS
 	local_irq_save(flags);
-#endif
 	trace_printk("HERE:%d\n", __LINE__);
 	ulResult = Oct6100ChipOpen(vpm450m->pApiInstance, ChipOpen);
 	if (ulResult != cOCT6100_ERR_OK) {
 		printk(KERN_NOTICE "Failed to open chip, code %08x!\n", ulResult);
-#ifdef CONFIG_4KSTACKS
 		local_irq_restore(flags);
-#endif
 		vfree(vpm450m->pApiInstance);
 		kfree(vpm450m);
 		kfree(ChipOpen);
@@ -537,9 +533,7 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 	}
 
 	trace_printk("HERE:%d\n", __LINE__);
-#ifdef CONFIG_4KSTACKS
 	local_irq_restore(flags);
-#endif
 	kfree(ChipOpen);
 	kfree(ChannelOpen);
 	return vpm450m;

commit 379cb6786542c0f37e0c16ab6fc1a7592f38ea84
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:25:35 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 8473cb3..e0086bf 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -8481,26 +8481,31 @@ u32 Oct6100ChannelOpen(
 	if (!ChannelIndexConf)
 		return cOCT6100_ERR_FATAL_0;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	/* Check the user's configuration of the echo cancellation channel for errors. */
 	ulResult = Oct6100ApiCheckChannelParams(instance, f_pChannelOpen, ChannelIndexConf);
 	if (ulResult != cOCT6100_ERR_OK)
 		goto out;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	/* Reserve all resources needed by the echo cancellation channel. */
 	ulResult = Oct6100ApiReserveChannelResources(instance, f_pChannelOpen, ChannelIndexConf);
 	if (ulResult != cOCT6100_ERR_OK)
 		goto out;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	/* Write all necessary structures to activate the echo cancellation channel. */
 	ulResult = Oct6100ApiWriteChannelStructs(instance, f_pChannelOpen, ChannelIndexConf);
 	if (ulResult != cOCT6100_ERR_OK)
 		goto out;
+	trace_printk("HERE:%d\n", __LINE__);
 
 	/* Update the new echo cancellation channels's entry in the ECHO channel list. */
 	ulResult = Oct6100ApiUpdateChannelEntry(instance, f_pChannelOpen, ChannelIndexConf);
 	if (ulResult != cOCT6100_ERR_OK)
 		goto out;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	kfree(ChannelIndexConf);
 	return cOCT6100_ERR_OK;
 

commit c7296ae5ff62fd092bd9ee21d156617c875afb3b
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:22:38 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/vpm450m.c b/drivers/dahdi/wct4xxp/vpm450m.c
index 59b5e7b..635b816 100644
--- a/drivers/dahdi/wct4xxp/vpm450m.c
+++ b/drivers/dahdi/wct4xxp/vpm450m.c
@@ -458,7 +458,7 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 		return NULL;
 	}
 
-    memset(vpm450m->pApiInstance, 0, InstanceSize, ulApiInstanceSize);
+    memset(vpm450m->pApiInstance, 0, InstanceSize.ulApiInstanceSize);
 
 	/* I don't know what to curse more in this comment, the problems caused by
 	 * the 4K kernel stack limit change or the octasic API for being so darn

commit ee03b05b3ae6af01b19d6479f40da99e2dd63cc6
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:21:50 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/vpm450m.c b/drivers/dahdi/wct4xxp/vpm450m.c
index ea2f77a..59b5e7b 100644
--- a/drivers/dahdi/wct4xxp/vpm450m.c
+++ b/drivers/dahdi/wct4xxp/vpm450m.c
@@ -458,6 +458,8 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 		return NULL;
 	}
 
+    memset(vpm450m->pApiInstance, 0, InstanceSize, ulApiInstanceSize);
+
 	/* I don't know what to curse more in this comment, the problems caused by
 	 * the 4K kernel stack limit change or the octasic API for being so darn
 	 * stack unfriendly.  Stupid, stupid, stupid.  So we disable IRQs so we

commit 89c80abb2357996f4574942da3a51b2aebb9efd6
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:19:13 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 9f6fdc7..8473cb3 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -5027,14 +5027,14 @@ static u32 OctapiLlmAllocAlloc(void *l, u32 *blocknum)
 |
 \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
-static u32 OctapiLlmAllocDealloc(void * l,u32 blocknum)
+static u32 OctapiLlmAllocDealloc(void *l, u32 blocknum)
 {
-	struct llm_alloc* ls;
-	u32* node;
+	struct llm_alloc *ls;
+	u32 *node;
 
 	/* Build the structure before starting.*/
 	ls = (struct llm_alloc *)l;
-	ls->linked_list = (u32 *)((u8 *)ls + sizeof(struct llm_alloc));
+	ls->linked_list = (u32 *)((u8 *)ls + sizeof(*ls));
 
 	/* Check for null item pointer.*/
 	if (blocknum == 0xFFFFFFFF) return(GENERIC_OK);
@@ -5059,12 +5059,6 @@ static u32 OctapiLlmAllocDealloc(void * l,u32 blocknum)
 	return(GENERIC_OK);
 }
 
-/**************************************** llm_list section **********************************************/
-
-/**************************************** llm2 function section *****************************************/
-
-/****************************  PRIVATE FUNCTIONS  ****************************/
-
 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
 
 Function:		Oct6100ApiGetMemorySwSizes

commit 863fa6dcc256ceb1a7bb18aca2fedc3bf8e27d04
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:11:00 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 67b18d4..9f6fdc7 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -4943,11 +4943,11 @@ static u32 OctapiLlmAllocInit(void ** l,u32 number_of_items)
 
 static u32 OctapiLlmAllocInfo(void * l,u32 * allocated_items,u32 * available_items)
 {
-	struct llm_alloc* ls;
+	struct llm_alloc *ls;
 
 	/* Build the structure before starting.*/
 	ls = (struct llm_alloc *)l;
-	ls->linked_list = (u32 *)((u8 *)ls + sizeof(struct llm_alloc));
+	ls->linked_list = (u32 *)((u8 *)ls + sizeof(*ls));
 
 	*allocated_items = ls->allocated_items;
 	*available_items = ls->number_of_items - ls->allocated_items;

commit 8673619d346334f8e888367fad8f87d24c970110
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 16:00:56 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index ded3d41..67b18d4 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -4694,9 +4694,6 @@ static u32 Oct6100ApiInvalidateChanPlayoutStructs(
 				 u16									f_usEchoMemIndex
 				);
 
-struct llm_list_item *OctApiLlmListGetItemPointer(struct llm_list * ls, u32 item_number);
-void * OctApiLlmMemCpy(void *f_pvDestination, const void * f_pvSource, u32 f_ulSize);
-
 static u32 Oct6100BufferPlayoutStopDef(
 				 struct oct6100_buffer_playout_stop *f_pBufferPlayoutStop);
 static u32 Oct6100BufferPlayoutStop(
@@ -4705,15 +4702,6 @@ static u32 Oct6100BufferPlayoutStop(
 
 #define octapi_lm_add(a, alen, b, blen, z,  zlen)					OctApiLmAdd((u32*) a, (unsigned short) alen, (u32*) b, (unsigned short) blen, (u32*) z, (unsigned short) zlen)
 #define octapi_lm_subtract(a, alen, bneg, blen, z,  zlen, neg)	OctApiLmSubtract((u32*) a, (unsigned short) alen, (u32*) bneg, (unsigned short) blen, (u32*) z, (unsigned short) zlen, (unsigned short*) neg)
-#define octapi_lm_compare(a, alen, bneg, blen, neg)				OctApiLmCompare((u32*) a, (unsigned short) alen, (u32*) bneg, (unsigned short) blen, (unsigned short*) neg)
-#define octapi_lm_multiply(a, b, ablen, z)						OctApiLmMultiply((u32*) a, (u32*) b, (unsigned short) ablen, (u32*) z)
-#define octapi_lm_divide(n, d, q, r, ndqrlen)						OctApiLmDivide((u32*) n, (u32*) d, (u32*) q, (u32*) r, (unsigned short) ndqrlen)
-#define octapi_lm_shiftright1(a, alen)							OctApiLmShiftRight1((u32*) a, (unsigned short) alen)
-#define octapi_lm_shiftn(a, alen, shiftleft, shiftn)				OctApiLmShiftn((u32*) a, (unsigned short) alen, (unsigned short) shiftleft, (unsigned short) shiftn)
-#define octapi_lm_getmsb(a, alen, msb_pos)						OctApiLmGetMsb((u32*) a, (unsigned short) alen, (unsigned short*) msb_pos)
-
-static u32 OctApiLmAdd(u32* a, unsigned short alen, u32* b, unsigned short blen, u32* z, unsigned short zlen);
-static u32 OctApiLmSubtract(u32* a, unsigned short alen, u32* bneg, unsigned short blen, u32* z, unsigned short zlen, u16* neg);
 
 /* Alloc man. */
 static u32 OctapiLlmAllocGetSize(u32 number_of_items,u32* l_size);

commit 4681520f8176566bddfc64a4a8687411dfc6c977
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 15:58:04 2011 -0600

    wip: Remove llm2

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index df26fef..ded3d41 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -3470,30 +3470,7 @@ struct oct6100_api_adpcm_chan {
 #define OCTAPI_LLM_INTERNAL_ERROR1				0xFFFFFFF6
 #define OCTAPI_LLM_INVALID_PARAMETER			0xFFFFFFF5
 
-#define OCTAPI_LLM2_MEMORY_NOT_ALLOCATED		0xFEFFFFFF
-#define OCTAPI_LLM2_NO_STRUCTURES_LEFT			0xFEFFFFFE
-#define OCTAPI_LLM2_BLOCKNUM_OUT_OF_RANGE		0xFEFFFFFD
-#define OCTAPI_LLM2_ELEMENT_ALREADY_ASSIGNED	0xFEFFFFFC
-#define OCTAPI_LLM2_ELEMENT_NOT_FOUND			0xFEFFFFFB
-#define OCTAPI_LLM2_LIST_EMPTY					0xFEFFFFFA
-#define OCTAPI_LLM2_INVALID_LIST_HANDLE			0xFEFFFFF9
-#define OCTAPI_LLM2_TREE_NODE_ABSENT			0xFEFFFFF8
-#define OCTAPI_LLM2_INTERNAL_ERROR0				0xFEFFFFF7
-#define OCTAPI_LLM2_INTERNAL_ERROR1				0xFEFFFFF6
-#define OCTAPI_LLM2_INVALID_PARAMETER			0xFEFFFFF5
-
-/* Other defines. */
 #define OCTAPI_LLM_LIST_APPEND					0xFFFFFFFF
-#define OCTAPI_LLM2_INSERT_ERROR				0xFFFFFFFF
-#define OCTAPI_LLM2_INSERT_FIRST_NODE			0xFFFF0000
-#define OCTAPI_LLM2_INSERT_LIST_NODE			0xFFFF0001
-#define OCTAPI_LLM2_INSERT_LAST_NODE			0xFFFF0002
-#define OCTAPI_LLM2_INSERT_BEFORE_LAST_NODE		0xFFFF0003
-#define OCTAPI_LLM2_REMOVE_ERROR				0xFFFFFFFF
-#define OCTAPI_LLM2_REMOVE_FIRST_NODE			0xFFFF0004
-#define OCTAPI_LLM2_REMOVE_LIST_NODE			0xFFFF0005
-#define OCTAPI_LLM2_REMOVE_LAST_NODE			0xFFFF0006
-#define OCTAPI_LLM2_REMOVE_BEFORE_LAST_NODE		0xFFFF0007
 
 /**************************************** llm_alloc section **********************************************/
 
@@ -3584,48 +3561,6 @@ struct llm_list {
 	struct llm_list_item * li;
 };
 
-/**********************************************************************************/
-/* These structures are are used by the Llm2 functions to creates lists of ordered
-   items based on a key given by the user when a new node is inserted in a list. */
-struct llm2_list_head {
-	u32 list_length;	/* Current number of items in the list.*/
-						/* 0xFFFFFFFF means that the list is not used.*/
-	u32 head_pointer;	/* Number of the item in the item pool that is the first of this list.*/
-						/* 0xFFFFFFFF indicates end-of-list link.*/
-	u32 tail_pointer;	/* Number of the item in the item pool that is the last of this list.*/
-};
-
-struct llm2_list_item {
-	u32 forward_link;	/* Number of the item in the item pool that is next in this list.*/
-						/* 0xFFFFFFFF indicates end-of-list link.*/
-	u32 key;			/* Key used to order the entries.*/
-
-	/* User item info (variable size)*/
-	u32 user_info[1];
-};
-
-struct llm2_list {
-	u32 user_info_bytes;	/* In bytes, size of the user info in a single item.*/
-	u32 user_info_size;	/* In bytes, size of the user info in a single item.*/
-	u32 item_size;
-
-	u32 head_alloc_size;
-	u32 total_items;
-	u32 assigned_items;
-	u32 total_lists;
-	u32 assigned_lists;
-
-	u32 next_empty_item;	/* Contains a pointer to the next empty item in the*/
-							/* item pool.*/
-
-	/* Table of all the possible list heads:*/
-	struct llm2_list_head * lh;
-	void * list_head_alloc;	/* struct llm_alloc structure used for list head allocation!*/
-
-	/* Table of the list items:*/
-	struct llm2_list_item * li;
-};
-
 static u32 Oct6100ConfBridgeCloseDef(
 			 struct oct6100_conf_bridge_close *f_pConfBridgeClose);
 static u32 Oct6100ConfBridgeClose(
@@ -4760,7 +4695,6 @@ static u32 Oct6100ApiInvalidateChanPlayoutStructs(
 				);
 
 struct llm_list_item *OctApiLlmListGetItemPointer(struct llm_list * ls, u32 item_number);
-struct llm2_list_item *OctApiLlm2ListGetItemPointer(struct llm2_list * ls, u32 item_number);
 void * OctApiLlmMemCpy(void *f_pvDestination, const void * f_pvSource, u32 f_ulSize);
 
 static u32 Oct6100BufferPlayoutStopDef(

commit aacabf4ebb6f292205608a482f65ee107d5f73ca
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 15:54:14 2011 -0600

    wip: minor reformatting

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index e1d1f0c..df26fef 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -5049,7 +5049,7 @@ static u32 OctapiLlmAllocInfo(void * l,u32 * allocated_items,u32 * available_ite
 |
 \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
-static u32 OctapiLlmAllocAlloc(void * l,u32 * blocknum)
+static u32 OctapiLlmAllocAlloc(void *l, u32 *blocknum)
 {
 	struct llm_alloc* ls;
 	u32 allocated_block;
@@ -5342,12 +5342,11 @@ f_pusTsiMemIndex		Resulting index reserved in the TSI chariot memory.
 
 \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
 
-static u32 Oct6100ApiReserveTsiMemEntry(
-				  struct oct6100_instance_api *instance,
-				 u16*						f_pusTsiMemIndex)
+static u32 Oct6100ApiReserveTsiMemEntry(struct oct6100_instance_api *instance,
+										u16 *f_pusTsiMemIndex)
 {
 	struct oct6100_shared_info *pSharedInfo;
-	void*	pTsiMemAlloc;
+	void *pTsiMemAlloc;
 	u32	ulResult;
 	u32	ulIndex;
 	u32	ulNumTsiB4Timestamp;
@@ -5604,7 +5603,8 @@ static u32 Oct6100ApiIsrSwInit(
 	pSharedInfo = instance->pSharedInfo;
 
 	/* Set the state of each interrupt group to disabled.  The state will */
-	/* be updated to the true configuration once the configure interrupts function is called. */
+	/* be updated to the true configuration once the configure interrupts
+	 * function is called. */
 	pSharedInfo->IntrptManage.byFatalGeneralState = cOCT6100_INTRPT_DISABLED;
 	pSharedInfo->IntrptManage.byFatalMemoryState = cOCT6100_INTRPT_DISABLED;
 	pSharedInfo->IntrptManage.byErrorMemoryState = cOCT6100_INTRPT_DISABLED;
diff --git a/drivers/dahdi/wct4xxp/octapi.h b/drivers/dahdi/wct4xxp/octapi.h
index b269a3b..88982bf 100644
--- a/drivers/dahdi/wct4xxp/octapi.h
+++ b/drivers/dahdi/wct4xxp/octapi.h
@@ -225,25 +225,20 @@ struct oct6100_interrupt_configure {
 };
 
 struct oct6100_interrupt_flags {
-	bool	fFatalGeneral;
 	u32	ulFatalGeneralFlags;
 
-	bool	fFatalReadTimeout;
-
-	bool	fErrorRefreshTooLate;
-	bool	fErrorPllJitter;
-
-	bool	fErrorOverflowToneEvents;
-
-	bool	fErrorH100OutOfSync;
-	bool	fErrorH100ClkA;
-	bool	fErrorH100ClkB;
-	bool	fErrorH100FrameA;
-
-	bool	fToneEventsPending;
-	bool	fBufferPlayoutEventsPending;
-
-	bool	fApiSynch;
+	bool	fFatalReadTimeout:1;
+	bool	fFatalGeneral:1;
+	bool	fErrorRefreshTooLate:1;
+	bool	fErrorPllJitter:1;
+	bool	fErrorOverflowToneEvents:1;
+	bool	fErrorH100OutOfSync:1;
+	bool	fErrorH100ClkA:1;
+	bool	fErrorH100ClkB:1;
+	bool	fErrorH100FrameA:1;
+	bool	fToneEventsPending:1;
+	bool	fBufferPlayoutEventsPending:1;
+	bool	fApiSynch:1;
 };
 
 struct oct6100_chip_open {

commit e756c497f6b6fb4b4824f247db612bb75fbccc03
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 15:26:11 2011 -0600

    dbg

diff --git a/drivers/dahdi/wct4xxp/vpm450m.c b/drivers/dahdi/wct4xxp/vpm450m.c
index 5dd6cf4..ea2f77a 100644
--- a/drivers/dahdi/wct4xxp/vpm450m.c
+++ b/drivers/dahdi/wct4xxp/vpm450m.c
@@ -494,7 +494,7 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 				law = cOCT6100_PCM_U_LAW;
 
 			Oct6100ChannelOpenDef(ChannelOpen);
-	trace_printk("HERE:%d\n", __LINE__);
+			trace_printk("HERE:%d\n", __LINE__);
 			ChannelOpen->pulChannelHndl = &vpm450m->aulEchoChanHndl[x];
 			ChannelOpen->ulUserChanId = x;
 			ChannelOpen->TdmConfig.ulRinPcmLaw = law;
@@ -516,24 +516,21 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 			ChannelOpen->fEnableToneDisabler = true;
 			ChannelOpen->ulEchoOperationMode = cOCT6100_ECHO_OP_MODE_DIGITAL;
 			
-	trace_printk("HERE:%d\n", __LINE__);
+			trace_printk("HERE:%d %d\n", __LINE__, x);
 			ulResult = Oct6100ChannelOpen(vpm450m->pApiInstance, ChannelOpen);
-	trace_printk("HERE:%d\n", __LINE__);
+			trace_printk("HERE:%d\n", __LINE__);
 			if (ulResult != GENERIC_OK)
 				printk(KERN_NOTICE "Failed to open channel %d!\n", x);
 
+			trace_printk("HERE:%d\n", __LINE__);
 			for (y = 0; y < ARRAY_SIZE(tones); y++) {
 				struct oct6100_tone_detection_enable enable;
-	trace_printk("HERE:%d\n", __LINE__);
 				Oct6100ToneDetectionEnableDef(&enable);
-	trace_printk("HERE:%d\n", __LINE__);
-				enable.ulChannelHndl = vpm450m->aulEchoChanHndl[x];
 				enable.ulToneNumber = tones[y];
-	trace_printk("HERE:%d\n", __LINE__);
 				if (Oct6100ToneDetectionEnable(vpm450m->pApiInstance, &enable) != GENERIC_OK) 
 					printk(KERN_NOTICE "Failed to enable tone detection on channel %d for tone %d!\n", x, y);
-	trace_printk("HERE:%d\n", __LINE__);
 			}
+			trace_printk("HERE:%d\n", __LINE__);
 		}
 	}
 

commit 55d9e34bc4c88a772be8e3201d781d4dad18ea8a
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 15:15:40 2011 -0600

    dbg

diff --git a/drivers/dahdi/wct4xxp/vpm450m.c b/drivers/dahdi/wct4xxp/vpm450m.c
index 2857d86..5dd6cf4 100644
--- a/drivers/dahdi/wct4xxp/vpm450m.c
+++ b/drivers/dahdi/wct4xxp/vpm450m.c
@@ -466,6 +466,7 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 #ifdef CONFIG_4KSTACKS
 	local_irq_save(flags);
 #endif
+	trace_printk("HERE:%d\n", __LINE__);
 	ulResult = Oct6100ChipOpen(vpm450m->pApiInstance, ChipOpen);
 	if (ulResult != cOCT6100_ERR_OK) {
 		printk(KERN_NOTICE "Failed to open chip, code %08x!\n", ulResult);
@@ -478,6 +479,7 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 		kfree(ChannelOpen);
 		return NULL;
 	}
+	trace_printk("HERE:%d\n", __LINE__);
 	for (x = 0; x < ARRAY_SIZE(vpm450m->aulEchoChanHndl); x++) {
 		/* execute this loop always on 4 span cards but
 		*  on 2 span cards only execute for the channels related to our spans */
@@ -492,6 +494,7 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 				law = cOCT6100_PCM_U_LAW;
 
 			Oct6100ChannelOpenDef(ChannelOpen);
+	trace_printk("HERE:%d\n", __LINE__);
 			ChannelOpen->pulChannelHndl = &vpm450m->aulEchoChanHndl[x];
 			ChannelOpen->ulUserChanId = x;
 			ChannelOpen->TdmConfig.ulRinPcmLaw = law;
@@ -513,21 +516,28 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 			ChannelOpen->fEnableToneDisabler = true;
 			ChannelOpen->ulEchoOperationMode = cOCT6100_ECHO_OP_MODE_DIGITAL;
 			
+	trace_printk("HERE:%d\n", __LINE__);
 			ulResult = Oct6100ChannelOpen(vpm450m->pApiInstance, ChannelOpen);
+	trace_printk("HERE:%d\n", __LINE__);
 			if (ulResult != GENERIC_OK)
 				printk(KERN_NOTICE "Failed to open channel %d!\n", x);
 
 			for (y = 0; y < ARRAY_SIZE(tones); y++) {
 				struct oct6100_tone_detection_enable enable;
+	trace_printk("HERE:%d\n", __LINE__);
 				Oct6100ToneDetectionEnableDef(&enable);
+	trace_printk("HERE:%d\n", __LINE__);
 				enable.ulChannelHndl = vpm450m->aulEchoChanHndl[x];
 				enable.ulToneNumber = tones[y];
+	trace_printk("HERE:%d\n", __LINE__);
 				if (Oct6100ToneDetectionEnable(vpm450m->pApiInstance, &enable) != GENERIC_OK) 
 					printk(KERN_NOTICE "Failed to enable tone detection on channel %d for tone %d!\n", x, y);
+	trace_printk("HERE:%d\n", __LINE__);
 			}
 		}
 	}
 
+	trace_printk("HERE:%d\n", __LINE__);
 #ifdef CONFIG_4KSTACKS
 	local_irq_restore(flags);
 #endif

commit 8aced974da738afe37772e33ba3c58c1eaf1eeef
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 15:10:52 2011 -0600

    dbg

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 0fd1521..e1d1f0c 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -8797,6 +8797,7 @@ static u32 Oct6100ApiReserveChannelResources(
 		/* Set the echo, encoder and decoder memory indexes.*/
 		f_pChanIndexConf->usEchoMemIndex = f_pChanIndexConf->usEchoChanIndex;
 
+			trace_printk("HERE:%d\n", __LINE__);
 		/* Reserve an entry for the RIN/ROUT tsi chariot memory. */
 		ulResult = Oct6100ApiReserveTsiMemEntry(instance,
 												 &f_pChanIndexConf->usRinRoutTsiMemIndex);
@@ -8804,6 +8805,7 @@ static u32 Oct6100ApiReserveChannelResources(
 		{
 			fRinRoutTsiMemEntry = true;
 
+			trace_printk("HERE:%d\n", __LINE__);
 			/* Reserve an entry for the SIN/SOUT tsi chariot memory. */
 			ulResult = Oct6100ApiReserveTsiMemEntry(instance,
 													 &f_pChanIndexConf->usSinSoutTsiMemIndex);
@@ -8874,6 +8876,7 @@ static u32 Oct6100ApiReserveChannelResources(
 					{
 						fExtToneChanEntry = true;
 
+							trace_printk("HERE:%d\n", __LINE__);
 						/* Reserve an entry for the TSI chariot memory for the additionnal channel. */
 						ulResult = Oct6100ApiReserveTsiMemEntry(instance,
 																 &f_pChanIndexConf->usExtToneTsiIndex);
@@ -26134,26 +26137,31 @@ u32 Oct6100ChipOpen(struct oct6100_instance_api *instance,
 		if (ulResult != cOCT6100_ERR_OK)
 			return ulResult;
 
+	trace_printk("HERE:%d\n", __LINE__);
 		/* Initialize the mixer memory. */
 		ulResult = Oct6100ApiInitRecordResources(instance);
 		if (ulResult != cOCT6100_ERR_OK)
 			return ulResult;
 
+	trace_printk("HERE:%d\n", __LINE__);
 		/* Initialize free external memory for buffer playout. */
 		ulResult = Oct6100ApiBufferPlayoutMemorySwInit(instance);
 		if (ulResult != cOCT6100_ERR_OK)
 			return ulResult;
+	trace_printk("HERE:%d\n", __LINE__);
 
 		/*Clear all interrupts that could have occured during startup*/
 		ulResult = Oct6100ApiClearInterrupts(instance);
 		if (ulResult != cOCT6100_ERR_OK)
 			return ulResult;
+	trace_printk("HERE:%d\n", __LINE__);
 
 		/* Configure the interrupt registers. */
 		ulResult = Oct6100ApiIsrHwInit(instance, &f_pChipOpen->InterruptConfig);
 		if (ulResult != cOCT6100_ERR_OK)
 			return ulResult;
 	}
+	trace_printk("HERE:%d\n", __LINE__);
 
 	return cOCT6100_ERR_OK;
 }
@@ -31508,20 +31516,24 @@ static u32 Oct6100ApiInitRecordResources(
 	if (pSharedInfo->DebugInfo.usRecordMemIndex != (pSharedInfo->ImageInfo.usMaxNumberOfChannels - 1))
 		return cOCT6100_ERR_OPEN_DEBUG_MEM_INDEX;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	/* Reserve the TSI entries for the channel. */
 	ulResult = Oct6100ApiReserveTsiMemEntry(instance, &pSharedInfo->DebugInfo.usRecordRinRoutTsiMemIndex);
 	if (ulResult != cOCT6100_ERR_OK)
 		return ulResult;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	ulResult = Oct6100ApiReserveTsiMemEntry(instance, &pSharedInfo->DebugInfo.usRecordSinSoutTsiMemIndex);
 	if (ulResult != cOCT6100_ERR_OK)
 		return ulResult;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	/* Open the debug channel. */
 	ulResult = Oct6100ApiDebugChannelOpen(instance);
 	if (ulResult != cOCT6100_ERR_OK)
 		return ulResult;
 
+	trace_printk("HERE:%d\n", __LINE__);
 	return cOCT6100_ERR_OK;
 }
 

commit 5e525a7f396320bc081b343856c675ac59395703
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 15:08:35 2011 -0600

    dbg

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 71bcc71..0fd1521 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -5357,18 +5357,23 @@ static u32 Oct6100ApiReserveTsiMemEntry(
 
 	mOCT6100_GET_TSI_MEMORY_ALLOC_PNT(pSharedInfo, pTsiMemAlloc)
 
+	trace_printk("HERE:%d\n", __LINE__);
 	ulResult = OctapiLlmAllocAlloc(pTsiMemAlloc, &ulIndex);
+	trace_printk("HERE:%d\n", __LINE__);
 	if (ulResult != cOCT6100_ERR_OK) {
+			trace_printk("HERE:%d\n", __LINE__);
 		if (ulResult == OCTAPI_LLM_NO_STRUCTURES_LEFT)
 			return cOCT6100_ERR_MEMORY_ALL_TSI_MEM_ENTRY_RESERVED;
 		else
 			return cOCT6100_ERR_FATAL_92;
 	}
 
+	trace_printk("HERE:%d\n", __LINE__);
 	if (ulIndex >= cOCT6100_NUM_TSI_B4_PHASING) {
 		/* Evaluate the number of TSI memory before the timestamp TSI. */
 		ulNumTsiB4Timestamp = cOCT6100_NUM_TSI_B4_PHASING + cOCT6100_MAX_TSI_B4_TIMESTAMP - pSharedInfo->ChipConfig.usMaxPhasingTssts;
 
+			trace_printk("HERE:%d\n", __LINE__);
 		if (ulIndex >= ulNumTsiB4Timestamp) {
 			/* + 4 for the timestamp TSI entries.*/
 			*f_pusTsiMemIndex = (u16)(pSharedInfo->ChipConfig.usMaxPhasingTssts + ulIndex + cOCT6100_TSI_MEM_FOR_TIMESTAMP);
@@ -5376,9 +5381,11 @@ static u32 Oct6100ApiReserveTsiMemEntry(
 			*f_pusTsiMemIndex = (u16)(pSharedInfo->ChipConfig.usMaxPhasingTssts + ulIndex);
 		}
 	} else  {
+			trace_printk("HERE:%d\n", __LINE__);
 		*f_pusTsiMemIndex = (u16)(ulIndex);
 	}
 
+	trace_printk("HERE:%d\n", __LINE__);
 	return cOCT6100_ERR_OK;
 }
 

commit 097f51ae995bd4591f3955608b1327124840481c
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 14:27:44 2011 -0600

    debug add some trace

diff --git a/drivers/dahdi/wct4xxp/vpm450m.c b/drivers/dahdi/wct4xxp/vpm450m.c
index 18693f7..2857d86 100644
--- a/drivers/dahdi/wct4xxp/vpm450m.c
+++ b/drivers/dahdi/wct4xxp/vpm450m.c
@@ -447,6 +447,8 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
 	}
 	
 	
+	trace_printk("InstanceSize.ulApiInstanceSize = %d\n", InstanceSize.ulApiInstanceSize);
+
 	vpm450m->pApiInstance = vmalloc(InstanceSize.ulApiInstanceSize);
 	if (!vpm450m->pApiInstance) {
 		printk(KERN_NOTICE "Out of memory (can't allocate %d bytes)!\n", InstanceSize.ulApiInstanceSize);

commit 6533bc665383ac385eac625e115209dc465e81a7
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 14:25:36 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 5e9589a..71bcc71 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -26971,9 +26971,6 @@ static u32 Oct6100ApiCalculateInstanceSizes(
 	ulResult = Oct6100ApiGetPhasingTsstSwSizes(f_pChipOpen, f_pInstSizes);
 	if (ulResult != cOCT6100_ERR_OK)
 		return ulResult;
-	/*-----------------------------------------------------------------------------*/
-	/* Calculate memory needed for the ADPCM channels. */
-		return ulResult;
 
 	/*-----------------------------------------------------------------------------*/
 	/* Determine amount of memory needed for memory allocation softwares.  These

commit b24beb8971e6a16926e36b574d7eb446e484740d
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 14:25:03 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index 5fa2637..5e9589a 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -26927,7 +26927,7 @@ static u32 Oct6100ApiCalculateInstanceSizes(
 	u32	ulResult;
 
 	/* Start with all instance sizes set to 0. */
-	memset(f_pInstSizes, 0x00, sizeof(struct oct6100_api_instance_sizes));
+	memset(f_pInstSizes, 0x00, sizeof(*f_pInstSizes));
 
 	/* All memory sizes are rounded up to the next multiple of 64 bytes. */
 

commit be8652014593af52ee84b94ce72cb06a786e59d9
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 01:45:25 2011 -0600

    enable mg2

diff --git a/drivers/dahdi/Kbuild b/drivers/dahdi/Kbuild
index 9ccaee5..48fe281 100644
--- a/drivers/dahdi/Kbuild
+++ b/drivers/dahdi/Kbuild
@@ -27,7 +27,7 @@ obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_WCT4XXP)		+= wct4xxp/
 #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_STEVE)	+= dahdi_echocan_sec.o
 #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_STEVE2)	+= dahdi_echocan_sec2.o
 #obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_KB1)	+= dahdi_echocan_kb1.o
-#obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_MG2)	+= dahdi_echocan_mg2.o
+obj-$(DAHDI_BUILD_ALL)$(CONFIG_DAHDI_ECHOCAN_MG2)	+= dahdi_echocan_mg2.o
 
 obj-m += $(DAHDI_MODULES_EXTRA)
 

commit e836b516ef3a3e7ebf7bac9fdc5a018fc37a22db
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Mon Jan 31 01:43:22 2011 -0600

    wip

diff --git a/drivers/dahdi/wct4xxp/octapi.h b/drivers/dahdi/wct4xxp/octapi.h
index 65d3b0a..b269a3b 100644
--- a/drivers/dahdi/wct4xxp/octapi.h
+++ b/drivers/dahdi/wct4xxp/octapi.h
@@ -70,11 +70,8 @@ $Octasic_Revision: 18 $
 #define	cOCT6100_MEM_TYPE_DDR				1
 #define cOCT6100_MEM_TYPE_SDR_PLL_BYPASS	2
 
-#define cOCT6100_MEMORY_CHIP_SIZE_8MB		cOCT6100_SIZE_8M
-#define cOCT6100_MEMORY_CHIP_SIZE_16MB		cOCT6100_SIZE_16M
+#define cOCT6100_SIZE_32M	33554432
 #define cOCT6100_MEMORY_CHIP_SIZE_32MB		cOCT6100_SIZE_32M
-#define cOCT6100_MEMORY_CHIP_SIZE_64MB		cOCT6100_SIZE_64M
-#define cOCT6100_MEMORY_CHIP_SIZE_128MB		cOCT6100_SIZE_128M
 
 #define cOCT6100_MAX_NUM_MEMORY_CHIP		2
 

commit 5dd41a4355db93fd1be699564260af3cc44bbccf
Author: Shaun Ruffell <sruffell at digium.com>
Date:   Sun Jan 30 12:38:49 2011 -0600

    wip

diff --git a/convert.py b/convert.py
index 30236bb..f7976d2 100644
--- a/convert.py
+++ b/convert.py
@@ -3,16 +3,20 @@
 import sys
 import re
 
-pat1 = re.compile(r"(\s)t(OCT\S*)")
-pat2 = re.compile(r"(\s)tP(OCT\S*)\s*(\S)")
-pat3 = re.compile(r"}.*;")
-pat4 = re.compile(r"typedef\s*")
-pat5 = re.compile(r"struct\s*(_OCT\S*)")
+pats = []
+pats.append((re.compile(r"(\s)t(OCT\S*)"), lambda x: x.group(1) + "struct " + x.group(2).lower()))
+pats.append((re.compile(r"(\s)tP(OCT\S*)\s*(\S)"), lambda x: x.group(1) + "struct " + x.group(2).lower() + " *" + x.group(3)))
+pats.append((re.compile(r"}.*;"), "};"))
+pats.append((re.compile(r"typedef\s*"), ""))
+pats.append((re.compile(r"struct\s*(_OCT\S*)"), lambda x: "struct " + x.group(1).lower()[1:-1]))
+pats.append((re.compile(r"struct\s*_(LLM\S*)"), lambda x: "struct " + x.group(1).lower()))
+pats.append((re.compile(r"struct\s*_(TLLM\S*)"), lambda x: "struct " + x.group(1).lower()[:-1]))
+pats.append((re.compile(r"(\s)(LLM\S*)"), lambda x: x.group(1) + "struct " + x.group(2).lower()))
+pats.append((re.compile(r"(\s)(TLLM\S*)"), lambda x: x.group(1) + "struct " + x.group(2).lower()))
+pats.append((re.compile(r"\((LLM\S*)"), lambda x: "(struct " + x.group(1).lower()))
+pats.append((re.compile(r"\((TLLM\S*)"), lambda x: "(struct " + x.group(1).lower()))
 
 for line in sys.stdin:
-    s = re.sub(pat1, lambda x: x.group(1) + "struct " + x.group(2).lower(), line)
-    s = re.sub(pat2, lambda x: x.group(1) + "struct " + x.group(2).lower() + " *" + x.group(3), s)
-    s = re.sub(pat3, "};", s)
-    s = re.sub(pat4, "", s)
-    s = re.sub(pat5, lambda x: "struct " + x.group(1).lower()[1:-1], s)
-    sys.stdout.write(s)
+    for pat, sub in pats:
+        line = re.sub(pat, sub, line)
+    sys.stdout.write(line)
diff --git a/drivers/dahdi/wct4xxp/octapi.c b/drivers/dahdi/wct4xxp/octapi.c
index e014a0b..5fa2637 100644
--- a/drivers/dahdi/wct4xxp/octapi.c
+++ b/drivers/dahdi/wct4xxp/octapi.c
@@ -3,99 +3,4817 @@
 File: oct6100_memory.c
 
     Copyright (c) 2001-2007 Octasic Inc.
-    
-Description: 
+
+Description:
 
 	This file contains the functions used to manage the allocation of memory
 	blocks in external memory.
 
-This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API  is 
-free software; you can redistribute it and/or modify it under the terms of 
-the GNU General Public License as published by the Free Software Foundation; 
-either version 2 of the License, or (at your option) any later version.
+This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API  is
+free software; you can redistribute it and/or modify it under the terms of
+the GNU General Public License as published by the Free Software Foundation;
+either version 2 of the License, or (at your option) any later version.
+
+The OCT6100 GPL API is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with the OCT6100 GPL API; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+
+$Octasic_Release: OCT612xAPI-01.00-PR49 $
+
+$Octasic_Revision: 42 $
+
+\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/slab.h>
+#include <linux/string.h>
+
+#include "octapi.h"
+
+/* List of TLV types supported by this API. */
+#define cOCT6100_TLV_TYPE_VERSION_NUMBER				0
+#define cOCT6100_TLV_TYPE_CUSTOMER_PROJECT_ID			2
+
+#define cOCT6100_TLV_TYPE_POUCH_BASE_ADDRESS			3
+#define cOCT6100_TLV_TYPE_CH0_MAIN_BASE_ADDRESS			4
+#define cOCT6100_TLV_TYPE_CH_MAIN_SIZE					5
+#define cOCT6100_TLV_TYPE_CH_MAIN_IO_OFFSET				6
+#define cOCT6100_TLV_TYPE_CH_MAIN_ZCB_OFFSET			7
+#define cOCT6100_TLV_TYPE_CH_MAIN_ZCB_SIZE				8
+#define cOCT6100_TLV_TYPE_CH_MAIN_XCB_OFFSET			9
+#define cOCT6100_TLV_TYPE_CH_MAIN_XCB_SIZE				10
+#define cOCT6100_TLV_TYPE_CH_MAIN_YCB_OFFSET			11
+#define cOCT6100_TLV_TYPE_CH_MAIN_YCB_SIZE				12
+#define cOCT6100_TLV_TYPE_FREE_MEM_BASE_ADDRESS			13
+#define cOCT6100_TLV_TYPE_CH_ROOT_CONF_OFFSET			14
+
+#define cOCT6100_TLV_TYPE_POA_CH_MAIN_ZPO_OFFSET		15
+#define cOCT6100_TLV_TYPE_POA_CH_MAIN_ZPO_SIZE			16
+#define cOCT6100_TLV_TYPE_POA_CH_MAIN_YPO_OFFSET		17
+#define cOCT6100_TLV_TYPE_POA_CH_MAIN_YPO_SIZE			18
+#define cOCT6100_TLV_TYPE_POA_BOFF_RW_ZWP				19
+#define cOCT6100_TLV_TYPE_POA_BOFF_RW_ZIS				20
+#define cOCT6100_TLV_TYPE_POA_BOFF_RW_ZSP				21
+#define cOCT6100_TLV_TYPE_POA_BOFF_RW_YWP				22
+#define cOCT6100_TLV_TYPE_POA_BOFF_RW_YIS				23
+#define cOCT6100_TLV_TYPE_POA_BOFF_RW_YSP				24
+#define cOCT6100_TLV_TYPE_POA_BOFF_RO_ZRP				25
+#define cOCT6100_TLV_TYPE_POA_BOFF_RO_YRP				26
+
+#define cOCT6100_TLV_TYPE_CNR_CONF_BOFF_RW_ENABLE		27
+#define cOCT6100_TLV_TYPE_ANR_CONF_BOFF_RW_ENABLE		28
+
+#define cOCT6100_TLV_TYPE_HZ_CONF_BOFF_RW_ENABLE		29
+#define cOCT6100_TLV_TYPE_HX_CONF_BOFF_RW_ENABLE		30
+
+#define cOCT6100_TLV_TYPE_LCA_Z_CONF_BOFF_RW_GAIN		31
+#define cOCT6100_TLV_TYPE_LCA_Y_CONF_BOFF_RW_GAIN		32
+
+#define cOCT6100_TLV_TYPE_CNA_CONF_BOFF_RW_ENABLE		33
+
+#define cOCT6100_TLV_TYPE_NOA_CONF_BOFF_RW_ENABLE		34
+
+#define cOCT6100_TLV_TYPE_VFA_CONF_BOFF_RW_ENABLE		35
+
+#define cOCT6100_TLV_TYPE_TLA_MAIN_IO_BOFF_RW_TAIL_DISP		37
+
+#define cOCT6100_TLV_TYPE_STATSA_MAIN_IO_BOFF_RO_EPC		38
+#define cOCT6100_TLV_TYPE_BOOTA_POUCH_BOFF_RW_BOOT_INST		39
+#define cOCT6100_TLV_TYPE_BOOTA_POUCH_BOFF_RW_BOOT_RESULT	40
+
+#define cOCT6100_TLV_TYPE_DIS_CONF_BOFF_RW_ENABLE			41
+#define cOCT6100_TLV_TYPE_TDM_CONF_BOFF_RW_ENABLE			42
+#define cOCT6100_TLV_TYPE_NT_CONF_BOFF_RW_ENABLE			43
+#define cOCT6100_TLV_TYPE_AEC_CONF_BOFF_RW_ENABLE			44
+
+#define cOCT6100_TLV_TYPE_PCM_LEAK_CONF_BOFF_RW				45
+#define cOCT6100_TLV_TYPE_DEFAULT_ERL_CONF_BOFF_RW			46
+#define cOCT6100_TLV_TYPE_TONE_REM_CONF_BOFF_RW_ENABLE		47
+
+#define cOCT6100_TLV_TYPE_TLA_MAIN_IO_BOFF_RW_MAX_ECHO_POINT	48
+
+#define cOCT6100_TLV_TYPE_NLP_CONV_CAP_CONF_BOFF_RW				49
+#define cOCT6100_TLV_TYPE_MATRIX_EVENT_SIZE						50
+#define cOCT6100_TLV_TYPE_CNR_RW_ENABLE							51
+#define cOCT6100_TLV_TYPE_MAX_TAIL_LENGTH_RW_ENABLE				52
+
+#define cOCT6100_TLV_TYPE_PLAYOUT_ENABLE					53
+#define cOCT6100_TLV_TYPE_DOMINANT_SPEAKER_BOFF_RW_ENABLE	54
+
+#define cOCT6100_TLV_TYPE_ANR_RW_ENABLE						57
+#define cOCT6100_TLV_TYPE_TONE_REMOVAL_ENABLE				58
+#define cOCT6100_TLV_TYPE_MUSIC_PROTECTION_RW_ENABLE		59
+#define cOCT6100_TLV_TYPE_TAIL_DISP_CONF_BOFF_RW_ENABLE		60
+#define cOCT6100_TLV_TYPE_IDLE_CODE_DETECTION_ENABLE		62
+
+#define cOCT6100_TLV_TYPE_AEC_DEFAULT_ERL_BOFF				64
+
+#define cOCT6100_TLV_TYPE_Z_ALC_TARGET_BOFF					65
+#define cOCT6100_TLV_TYPE_Y_ALC_TARGET_BOFF					66
+#define cOCT6100_TLV_TYPE_Z_HLC_TARGET_BOFF					67
+#define cOCT6100_TLV_TYPE_Y_HLC_TARGET_BOFF					68
+#define cOCT6100_TLV_TYPE_ALC_HLC_STATUS_BOFF				69
+
+#define cOCT6100_TLV_TYPE_Z_PLAYOUT_HARD_SKIP_BOFF			70
+#define cOCT6100_TLV_TYPE_Y_PLAYOUT_HARD_SKIP_BOFF			71
+
+#define cOCT6100_TLV_TYPE_AFT_FIELD_BOFF					72
+
+#define cOCT6100_TLV_TYPE_VOICE_DETECTED_STAT_BOFF			73
+
+#define cOCT6100_TLV_TYPE_GAIN_APPLIED_RIN_STAT_BOFF		74
+#define cOCT6100_TLV_TYPE_GAIN_APPLIED_SOUT_STAT_BOFF		75
+
+#define cOCT6100_TLV_TYPE_MAX_ADAPT_ALE_BOFF				77
+#define cOCT6100_TLV_TYPE_RIN_ANR_BOFF						78
+
+#define cOCT6100_TLV_TYPE_NUMBER_PLAYOUT_EVENTS				79
+
+#define cOCT6100_TLV_TYPE_RIN_MUTE_BOFF						80
+#define cOCT6100_TLV_TYPE_SIN_MUTE_BOFF						81
+
+#define cOCT6100_TLV_TYPE_CHAN_TAIL_LENGTH_BOFF				82
+
+#define cOCT6100_TLV_TYPE_CHAN_VQE_TONE_DISABLING_BOFF		83
+
+#define cOCT6100_TLV_TYPE_ANR_SNR_IMPROVEMENT_BOFF			84
+#define cOCT6100_TLV_TYPE_ANR_AGRESSIVITY_BOFF				85
+
+#define cOCT6100_TLV_TYPE_RIN_TONE_REM_CONF_BOFF_RW_ENABLE	86
+#define cOCT6100_TLV_TYPE_RIN_TONE_REM_COUNTER_BOFF			87
+
+#define cOCT6100_TLV_TYPE_AF_TAIL_DISP_VALUE_BOFF			88
+
+#define cOCT6100_TLV_TYPE_POUCH_COUNTER_BOFF				89
+
+#define cOCT6100_TLV_TYPE_AEC_TAIL_LENGTH_BOFF				90
+
+#define cOCT6100_TLV_TYPE_MATRIX_DWORD_BASE					91
+#define cOCT6100_TLV_TYPE_DEBUG_CHAN_STATS_BYTE_SIZE		92
+#define cOCT6100_TLV_TYPE_RECORDED_PCM_EVENT_BYTE_SIZE		93
+#define cOCT6100_TLV_TYPE_HOT_CHANNEL_SELECT_DWORD_BASE		94
+#define cOCT6100_TLV_TYPE_IS_ISR_CALLED_BOFF				95
+
+#define cOCT6100_TLV_TYPE_MATRIX_TIMESTAMP_DWORD_BASE		96
+
+#define cOCT6100_TLV_TYPE_CHAN_MAIN_IO_STATS_OFFSET			100
+#define cOCT6100_TLV_TYPE_CHAN_MAIN_IO_STATS_SIZE			101
+
+#define cOCT6100_TLV_TYPE_AF_WRITE_PTR_BYTE_OFFSET			104
+#define cOCT6100_TLV_TYPE_MATRIX_WP_DWORD_BASE				105
+#define cOCT6100_TLV_TYPE_DEBUG_CHAN_LITE_STATS_BYTE_SIZE	106
+
+#define cOCT6100_TLV_TYPE_MUSIC_PROTECTION_ENABLE_BOFF		107
+
+#define cOCT6100_TLV_TYPE_IMAGE_TYPE						108
+#define cOCT6100_TLV_TYPE_MAX_WIRELINE_CHANNELS				111
+
+#define cOCT6100_TLV_TYPE_AF_EVENT_CB_SIZE					112
+
+#define cOCT6100_TLV_TYPE_ZZ_ENERGY_CHAN_STATS_BOFF			116
+#define cOCT6100_TLV_TYPE_YY_ENERGY_CHAN_STATS_BOFF			117
+
+#define cOCT6100_TLV_TYPE_BUFFER_PLAYOUT_SKIP_IN_EVENTS		119
+
+#define cOCT6100_TLV_TYPE_SOUT_NOISE_BLEACHING				121
+
+#define cOCT6100_TLV_TYPE_DOUBLE_TALK_BEH_MODE				124
+#define cOCT6100_TLV_TYPE_DOUBLE_TALK_BEH_MODE_BOFF			125
+
+#define cOCT6100_TLV_TYPE_IDLE_CODE_DETECTION_BOFF			136
+
+#define cOCT6100_TLV_TYPE_NLP_STATISTICS					138
+
+#define cOCT6100_TLV_TYPE_RIN_ANR_VALUE						147
+
+#define cOCT6100_TLV_TYPE_ADPCM_ENABLE						150
+#define cOCT6100_TLV_TYPE_NUM_TONE_DETECTOR					151
+#define cOCT6100_TLV_TYPE_CONFERENCING_ENABLE				152
+#define cOCT6100_TLV_TYPE_MAX_NUMBER_OF_CHANNELS			153
+#define cOCT6100_TLV_TYPE_DEBUG_CHAN_INDEX_VALUE			154
+#define cOCT6100_TLV_TYPE_TONE_DETECTOR_PROFILE				155
+#define cOCT6100_TLV_TYPE_TEST_MODE_ENABLE					156
+#define cOCT6100_TLV_TYPE_MAX_TAIL_DISPLACEMENT				157
+
+/* TLV length defines. */
+#define cOCT6100_TLV_MIN_LENGTH_DEFAULT					4
+#define cOCT6100_TLV_MAX_LENGTH_DEFAULT					0xFFFFFFFF
+
+#define cOCT6100_TLV_MIN_LENGTH_VERSION_NUMBER			4
+#define cOCT6100_TLV_MAX_LENGTH_VERSION_NUMBER			1016
+#define cOCT6100_TLV_MIN_LENGTH_CUSTOMER_PROJECT_ID		4
+#define cOCT6100_TLV_MAX_LENGTH_CUSTOMER_PROJECT_ID		4
+
+#define cOCT6100_TLV_MIN_LENGTH_CH0_MAIN_BASE_ADDRESS	4
+#define cOCT6100_TLV_MAX_LENGTH_CH0_MAIN_BASE_ADDRESS	4
+#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_SIZE			4
+#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_SIZE			4
+#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_IO_OFFSET		4
+#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_IO_OFFSET		4
+#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_ZCB_OFFSET		4
+#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_ZCB_OFFSET		4
+#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_ZCB_SIZE		4
+#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_ZCB_SIZE		4
+#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_XCB_OFFSET		4
+#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_XCB_OFFSET		4
+#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_XCB_SIZE		4
+#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_XCB_SIZE		4
+#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_YCB_OFFSET		4
+#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_YCB_OFFSET		4
+#define cOCT6100_TLV_MIN_LENGTH_CH_MAIN_YCB_SIZE		4
+#define cOCT6100_TLV_MAX_LENGTH_CH_MAIN_YCB_SIZE		4
+#define cOCT6100_TLV_MIN_LENGTH_FREE_MEM_BASE_ADDRESS	4
+#define cOCT6100_TLV_MAX_LENGTH_FREE_MEM_BASE_ADDRESS	4
+#define cOCT6100_TLV_MIN_LENGTH_CH_ROOT_CONF_OFFSET		4
+#define cOCT6100_TLV_MAX_LENGTH_CH_ROOT_CONF_OFFSET		4
+
+#define cOCT6100_TLV_MIN_LENGTH_POA_CH_MAIN_ZPO_OFFSET	4
+#define cOCT6100_TLV_MAX_LENGTH_POA_CH_MAIN_ZPO_OFFSET	4
+#define cOCT6100_TLV_MIN_LENGTH_POA_CH_MAIN_ZPO_SIZE	4
+#define cOCT6100_TLV_MAX_LENGTH_POA_CH_MAIN_ZPO_SIZE	4
+#define cOCT6100_TLV_MIN_LENGTH_POA_CH_MAIN_YPO_OFFSET	4
+#define cOCT6100_TLV_MAX_LENGTH_POA_CH_MAIN_YPO_OFFSET	4
+#define cOCT6100_TLV_MIN_LENGTH_POA_CH_MAIN_YPO_SIZE	4
+#define cOCT6100_TLV_MAX_LENGTH_POA_CH_MAIN_YPO_SIZE	4
+#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RW_ZWP			8
+#define cOCT6100_TLV_MAX_LENGTH_POA_BOFF_RW_ZWP			8
+#define cOCT6100_TLV_MIN_LENGTH_POA_BOFF_RW_ZIS			8
... 231926 lines suppressed ...


-- 
team/sruffell/dahdi-linux.git



More information about the asterisk-scf-commits mailing list