mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
[ar7] add support for new ar7-atm version D7.05.00.00 (#6515)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20039 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
1 parent
32997050fa
commit
bcd6a465a2
22 files changed
+1761
No files matched your search
@@ -6,6 +6,9 @@ choice
|
||||
This option allows you to switch between firmware/driver versions which
|
||||
might improve the DSL line speed.
|
||||
|
||||
config AR7_ATM_FW_VERSION_705
|
||||
bool "D7.05.01.00"
|
||||
|
||||
config AR7_ATM_FW_VERSION_704
|
||||
bool "D7.04.03.00"
|
||||
|
||||
|
||||
@@ -10,16 +10,25 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=sangam_atm
|
||||
|
||||
ifeq ($(CONFIG_AR7_ATM_FW_VERSION_705),y)
|
||||
PKG_VERSION:=D7.05.01.00
|
||||
PKG_MD5SUM:=42ee465be5cfbe9476fc25deb260d450
|
||||
PKG_RELEASE:=R1
|
||||
PATCH_DIR:=patches-$(PKG_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_AR7_ATM_FW_VERSION_704),y)
|
||||
PKG_VERSION:=D7.04.03.00
|
||||
PKG_MD5SUM:=3d76004e46f09e88931f91670cb420ad
|
||||
PKG_RELEASE:=R1
|
||||
PATCH_DIR:=patches-$(PKG_VERSION)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_AR7_ATM_FW_VERSION_703),y)
|
||||
PKG_VERSION:=D7.03.01.00
|
||||
PKG_MD5SUM:=bc6e9c6adb1be25820c7ee661de8ca7d
|
||||
PKG_RELEASE:=R2
|
||||
PATCH_DIR:=patches-D7.04.03.00
|
||||
endif
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.bz2
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,826 @@
|
||||
Index: sangam_atm-D7.05.01.00/cppi_cpaal5.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/cppi_cpaal5.c 2007-09-25 15:55:14.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/cppi_cpaal5.c 2010-03-07 19:03:28.000000000 +0100
|
||||
@@ -360,7 +360,7 @@
|
||||
{
|
||||
/* malloc failed, add this RCB to Needs Buffer List */
|
||||
TempRcb->FragCount = 1; /*MJH+030417*/
|
||||
- (HAL_RCB *)TempRcb->Eop = TempRcb; /* GSG +030430 */
|
||||
+ TempRcb->Eop = TempRcb; /* GSG +030430 */
|
||||
|
||||
if(HalDev->NeedsCount < MAX_NEEDS) /* +MJH 030410 */
|
||||
{ /* +MJH 030410 */
|
||||
Index: sangam_atm-D7.05.01.00/dsl_hal_api.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/dsl_hal_api.c 2007-09-27 10:35:44.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/dsl_hal_api.c 2010-03-07 19:03:28.000000000 +0100
|
||||
@@ -273,15 +273,15 @@
|
||||
* 09/15/07 CPH CQ11466 Added EFM support
|
||||
* 09/27/07 EYin CQ11929: Added NFEC/INP/Lp/Rp reporting for only ADSL2/2+ mode.
|
||||
******************************************************************************/
|
||||
-#include <dev_host_interface.h>
|
||||
-#include <dsl_hal_register.h>
|
||||
-#include <dsl_hal_support.h>
|
||||
+#include "dev_host_interface.h"
|
||||
+#include "dsl_hal_register.h"
|
||||
+#include "dsl_hal_support.h"
|
||||
|
||||
#ifndef NO_ADV_STATS
|
||||
-#include <dsl_hal_logtable.h>
|
||||
+#include "dsl_hal_logtable.h"
|
||||
#endif
|
||||
|
||||
-#include <dsl_hal_version.h>
|
||||
+#include "dsl_hal_version.h"
|
||||
|
||||
// UR8_MERGE_START CQ11054 Jack Zhang
|
||||
static unsigned int highprecision_selected = 0; //By default we use low precision for backward compt.
|
||||
Index: sangam_atm-D7.05.01.00/dsl_hal_support.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/dsl_hal_support.c 2007-09-25 11:19:50.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/dsl_hal_support.c 2010-03-07 19:03:28.000000000 +0100
|
||||
@@ -142,9 +142,9 @@
|
||||
* UR8_MERGE_START_END CQ11922 Tim
|
||||
* 04Sep07 0.14.00 Tim CQ11922: Added support for new scratchram for INP NDR tables
|
||||
*******************************************************************************/
|
||||
-#include <dev_host_interface.h>
|
||||
-#include <dsl_hal_register.h>
|
||||
-#include <dsl_hal_support.h>
|
||||
+#include "dev_host_interface.h"
|
||||
+#include "dsl_hal_register.h"
|
||||
+#include "dsl_hal_support.h"
|
||||
|
||||
#define NUM_READ_RETRIES 3
|
||||
static unsigned int dslhal_support_adsl2ByteSwap32(unsigned int in32Bits);
|
||||
Index: sangam_atm-D7.05.01.00/dsl_hal_support.h
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/dsl_hal_support.h 2005-11-11 09:07:04.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/dsl_hal_support.h 2010-03-07 19:03:28.000000000 +0100
|
||||
@@ -49,7 +49,7 @@
|
||||
* 04Nov05 0.11.00 CPH Fixed T1413 mode got Zero DS/US rate when DSL_BIT_TMODE is set.
|
||||
*******************************************************************************/
|
||||
|
||||
-#include <dsl_hal_api.h>
|
||||
+#include "dsl_hal_api.h"
|
||||
|
||||
#define virtual2Physical(a) (((int)a)&~0xe0000000)
|
||||
/* External Function Prototype Declarations */
|
||||
Index: sangam_atm-D7.05.01.00/Makefile
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/Makefile 2005-06-01 04:46:28.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/Makefile 2010-03-07 19:03:45.000000000 +0100
|
||||
@@ -1,18 +1,9 @@
|
||||
-# File: drivers/atm/ti_evm3/Makefile
|
||||
#
|
||||
-# Makefile for the Texas Instruments EVM3 ADSL/ATM driver.
|
||||
+# Makefile for the TIATM device driver.
|
||||
#
|
||||
-#
|
||||
-# Copyright (c) 2000 Texas Instruments Incorporated.
|
||||
-# Jeff Harrell (jharrell@telogy.com)
|
||||
-# Viren Balar (vbalar@ti.com)
|
||||
-# Victor Wells (vwells@telogy.com)
|
||||
-#
|
||||
-include $(TOPDIR)/Rules.make
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
-
|
||||
|
||||
+CONFIG_SANGAM_ATM=m
|
||||
+#EXTRA_CFLAGS += -DEL -I. -DPOST_SILICON -DCOMMON_NSP -DCONFIG_LED_MODULE -DDEREGISTER_LED -DNO_ACT
|
||||
+EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
+obj-$(CONFIG_SANGAM_ATM) := tiatm.o
|
||||
+tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o
|
||||
Index: sangam_atm-D7.05.01.00/tn7atm.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7atm.c 2008-08-28 17:15:22.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/tn7atm.c 2010-03-07 19:03:48.000000000 +0100
|
||||
@@ -66,7 +66,6 @@
|
||||
* 09/18/07 CPH CQ11466 Added EFM Support
|
||||
*********************************************************************************************/
|
||||
|
||||
-#include <linux/config.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
@@ -74,11 +73,14 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
-#include <asm/io.h>
|
||||
-#include <asm/mips-boards/prom.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
+
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/ar7/ar7.h>
|
||||
+#include <asm/ar7/prom.h>
|
||||
+
|
||||
#include "dsl_hal_api.h"
|
||||
#ifdef AR7_EFM
|
||||
#include "tn7efm.h"
|
||||
@@ -90,6 +92,7 @@
|
||||
#include "dsl_hal_register.h"
|
||||
|
||||
#ifdef MODULE
|
||||
+MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION ("Tnetd73xx ATM Device Driver");
|
||||
MODULE_AUTHOR ("Zhicheng Tang");
|
||||
#endif
|
||||
@@ -108,9 +111,9 @@
|
||||
|
||||
/*end of externs */
|
||||
|
||||
-#ifndef TI_STATIC_ALLOCATIONS
|
||||
-#define TI_STATIC_ALLOCATIONS
|
||||
-#endif
|
||||
+//#ifndef TI_STATIC_ALLOCATIONS
|
||||
+//#define TI_STATIC_ALLOCATIONS
|
||||
+//#endif
|
||||
|
||||
#define tn7atm_kfree_skb(x) dev_kfree_skb(x)
|
||||
|
||||
@@ -135,7 +138,7 @@
|
||||
/* prototypes */
|
||||
static int tn7atm_set_can_support_adsl2 (int can);
|
||||
|
||||
-static int tn7atm_open (struct atm_vcc *vcc, short vpi, int vci);
|
||||
+static int tn7atm_open (struct atm_vcc *vcc);
|
||||
|
||||
void tn7atm_close (struct atm_vcc *vcc);
|
||||
|
||||
@@ -298,13 +301,12 @@
|
||||
getsockopt: NULL,
|
||||
setsockopt: NULL,
|
||||
send: tn7atm_send,
|
||||
- sg_send: NULL,
|
||||
phy_put: NULL,
|
||||
phy_get: NULL,
|
||||
change_qos: tn7atm_change_qos,
|
||||
};
|
||||
|
||||
-const char drv_proc_root_folder[] = "avalanche/";
|
||||
+const char drv_proc_root_folder[] = "avalanche";
|
||||
static struct proc_dir_entry *root_proc_dir_entry = NULL;
|
||||
#define DRV_PROC_MODE 0644
|
||||
static int proc_root_already_exists = TRUE;
|
||||
@@ -626,56 +628,6 @@
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
*
|
||||
- * Function: int tn7atm_walk_vccs(struct atm_dev *dev, short *vcc, int *vci)
|
||||
- *
|
||||
- * Description: retrieve VPI/VCI for connection
|
||||
- *
|
||||
- *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
-static int tn7atm_walk_vccs (struct atm_vcc *vcc, short *vpi, int *vci)
|
||||
-{
|
||||
- struct atm_vcc *walk;
|
||||
-
|
||||
- /*
|
||||
- * find a free VPI
|
||||
- */
|
||||
- if (*vpi == ATM_VPI_ANY)
|
||||
- {
|
||||
-
|
||||
- for (*vpi = 0, walk = vcc->dev->vccs; walk; walk = walk->next)
|
||||
- {
|
||||
-
|
||||
- if ((walk->vci == *vci) && (walk->vpi == *vpi))
|
||||
- {
|
||||
- (*vpi)++;
|
||||
- walk = vcc->dev->vccs;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /*
|
||||
- * find a free VCI
|
||||
- */
|
||||
- if (*vci == ATM_VCI_ANY)
|
||||
- {
|
||||
-
|
||||
- for (*vci = ATM_NOT_RSV_VCI, walk = vcc->dev->vccs; walk;
|
||||
- walk = walk->next)
|
||||
- {
|
||||
-
|
||||
- if ((walk->vpi = *vpi) && (walk->vci == *vci))
|
||||
- {
|
||||
- *vci = walk->vci + 1;
|
||||
- walk = vcc->dev->vccs;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-
|
||||
-/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- *
|
||||
* Function: int tn7atm_sar_irq(void)
|
||||
*
|
||||
* Description: tnetd73xx SAR interrupt.
|
||||
@@ -766,7 +718,7 @@
|
||||
|
||||
priv->sar_irq = LNXINTNUM (ATM_SAR_INT); /* Interrupt line # */
|
||||
|
||||
- if (request_irq (priv->sar_irq, tn7atm_sar_irq, SA_INTERRUPT, "SAR ", dev))
|
||||
+ if (request_irq (priv->sar_irq, tn7atm_sar_irq, IRQF_DISABLED, "SAR ", dev))
|
||||
printk ("Could not register tn7atm_sar_irq\n");
|
||||
|
||||
/*
|
||||
@@ -777,8 +729,8 @@
|
||||
{
|
||||
def_sar_inter_pace = os_atoi (ptr);
|
||||
}
|
||||
- avalanche_request_pacing (priv->sar_irq, ATM_SAR_INT_PACING_BLOCK_NUM,
|
||||
- def_sar_inter_pace);
|
||||
+ /* avalanche_request_pacing (priv->sar_irq, ATM_SAR_INT_PACING_BLOCK_NUM,
|
||||
+ def_sar_inter_pace); */
|
||||
|
||||
|
||||
#ifdef AR7_EFM
|
||||
@@ -790,7 +742,7 @@
|
||||
* Reigster Receive interrupt A
|
||||
*/
|
||||
priv->dsl_irq = LNXINTNUM (ATM_DSL_INT); /* Interrupt line # */
|
||||
- if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, SA_INTERRUPT, "DSL ", dev))
|
||||
+ if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, IRQF_DISABLED, "DSL ", dev))
|
||||
printk ("Could not register tn7atm_dsl_irq\n");
|
||||
|
||||
/***** VRB Tasklet Mode ****/
|
||||
@@ -958,11 +910,15 @@
|
||||
#define ATM_VBR_RT 5
|
||||
#endif
|
||||
|
||||
-int tn7atm_open (struct atm_vcc *vcc, short vpi, int vci)
|
||||
+int tn7atm_open (struct atm_vcc *vcc)
|
||||
{
|
||||
tn7atm_activate_vc_parm_t tn7atm_activate_vc_parm;
|
||||
int rc;
|
||||
//int flags;
|
||||
+ tn7atm_activate_vc_parm.pcr = 0x20000;
|
||||
+ tn7atm_activate_vc_parm.scr = 0x20000;
|
||||
+ tn7atm_activate_vc_parm.mbs = 0x20000;
|
||||
+ tn7atm_activate_vc_parm.cdvt = 10000;
|
||||
|
||||
dgprintf(1, "tn7atm_open()\n");
|
||||
|
||||
@@ -974,24 +930,18 @@
|
||||
return -1;
|
||||
}
|
||||
|
||||
- MOD_INC_USE_COUNT;
|
||||
+// MOD_INC_USE_COUNT;
|
||||
|
||||
- /* find a free VPI/VCI */
|
||||
- tn7atm_walk_vccs(vcc, &vpi, &vci);
|
||||
-
|
||||
- vcc->vpi = vpi;
|
||||
- vcc->vci = vci;
|
||||
-
|
||||
- if ((vci == ATM_VCI_UNSPEC) || (vpi == ATM_VCI_UNSPEC))
|
||||
+ if ((vcc->vci == ATM_VCI_UNSPEC) || (vcc->vpi == ATM_VCI_UNSPEC))
|
||||
{
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
- tn7atm_activate_vc_parm.vpi = vpi;
|
||||
- tn7atm_activate_vc_parm.vci = vci;
|
||||
+ tn7atm_activate_vc_parm.vpi = vcc->vpi;
|
||||
+ tn7atm_activate_vc_parm.vci = vcc->vci;
|
||||
|
||||
- if ((vpi == CLEAR_EOC_VPI) && (vci == CLEAR_EOC_VCI))
|
||||
+ if ((vcc->vpi == CLEAR_EOC_VPI) && (vcc->vci == CLEAR_EOC_VCI))
|
||||
{
|
||||
/* always use (max_dma_chan+1) for clear eoc */
|
||||
tn7atm_activate_vc_parm.chan = EOC_DMA_CHAN;
|
||||
@@ -999,7 +949,7 @@
|
||||
/* check to see whether clear eoc is opened or not */
|
||||
if (tn7atm_activate_vc_parm.priv->lut[tn7atm_activate_vc_parm.chan].inuse)
|
||||
{
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
printk("tn7atm_open: Clear EOC channel (dmachan=%d) already in use.\n", tn7atm_activate_vc_parm.chan);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -1008,7 +958,7 @@
|
||||
if (rc)
|
||||
{
|
||||
printk("tn7atm_open: failed to setup clear_eoc\n");
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
return -EBUSY;
|
||||
}
|
||||
tn7atm_set_lut(tn7atm_activate_vc_parm.priv,vcc, tn7atm_activate_vc_parm.chan);
|
||||
@@ -1017,17 +967,17 @@
|
||||
}
|
||||
else /* PVC channel setup */
|
||||
{
|
||||
- if ((vpi==REMOTE_MGMT_VPI) && (vci==REMOTE_MGMT_VCI))
|
||||
+ if ((vcc->vpi==REMOTE_MGMT_VPI) && (vcc->vci==REMOTE_MGMT_VCI))
|
||||
{
|
||||
tn7atm_activate_vc_parm.chan = 14; /* always use chan 14 for MII PVC-base romote mgmt */
|
||||
}
|
||||
else
|
||||
{
|
||||
- rc = tn7atm_lut_find(vpi, vci);
|
||||
+ rc = tn7atm_lut_find(vcc->vpi, vcc->vci);
|
||||
/* check to see whether PVC is opened or not */
|
||||
if(ATM_NO_DMA_CHAN != rc)
|
||||
{
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
printk("PVC already opened. dmachan = %d\n", rc);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -1059,6 +1009,7 @@
|
||||
tn7atm_activate_vc_parm.priority = 2;
|
||||
break;
|
||||
|
||||
+#if 0
|
||||
case ATM_VBR: /* Variable Bit Rate-Non RealTime*/
|
||||
tn7atm_activate_vc_parm.qos = 1;
|
||||
tn7atm_activate_vc_parm.priority = 1;
|
||||
@@ -1080,6 +1031,7 @@
|
||||
tn7atm_activate_vc_parm.mbs = vcc->qos.txtp.max_pcr;
|
||||
tn7atm_activate_vc_parm.cdvt = vcc->qos.txtp.max_cdv;
|
||||
break;
|
||||
+#endif
|
||||
|
||||
default:
|
||||
tn7atm_activate_vc_parm.qos = 2;
|
||||
@@ -1107,7 +1059,7 @@
|
||||
if (rc < 0)
|
||||
{
|
||||
printk("failed to activate hw channel\n");
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
tn7atm_lut_clear(vcc, tn7atm_activate_vc_parm.chan);
|
||||
//spin_unlock_irqrestore(&chan_init_lock, flags);
|
||||
return -EBUSY;
|
||||
@@ -1197,7 +1149,7 @@
|
||||
tn7atm_lut_clear (vcc, dmachan);
|
||||
//spin_unlock_irqrestore (&closeLock, closeFlag);
|
||||
|
||||
- MOD_DEC_USE_COUNT;
|
||||
+// MOD_DEC_USE_COUNT;
|
||||
|
||||
dgprintf (1, "Leave tn7atm_close\n");
|
||||
}
|
||||
@@ -1630,8 +1582,7 @@
|
||||
* firewall is on */
|
||||
|
||||
dgprintf (3, "pushing the skb...\n");
|
||||
-
|
||||
- skb->stamp = vcc->timestamp = xtime;
|
||||
+ __net_timestamp(skb);
|
||||
|
||||
xdump ((unsigned char *) skb->data, skb->len, 5);
|
||||
|
||||
@@ -1854,8 +1805,7 @@
|
||||
|
||||
kfree (dev->dev_data);
|
||||
|
||||
- // atm_dev_deregister (dev);
|
||||
- shutdown_atm_dev (dev);
|
||||
+ atm_dev_deregister (dev);
|
||||
|
||||
/*
|
||||
* remove proc entries
|
||||
@@ -2086,9 +2036,6 @@
|
||||
* Set up proc entry for atm stats
|
||||
*/
|
||||
|
||||
- if (tn7atm_xlate_proc_name
|
||||
- (drv_proc_root_folder, &root_proc_dir_entry, &residual))
|
||||
- {
|
||||
printk ("Creating new root folder %s in the proc for the driver stats \n",
|
||||
drv_proc_root_folder);
|
||||
root_proc_dir_entry = proc_mkdir (drv_proc_root_folder, NULL);
|
||||
@@ -2098,7 +2045,6 @@
|
||||
return -ENOMEM;
|
||||
}
|
||||
proc_root_already_exists = FALSE;
|
||||
- }
|
||||
|
||||
|
||||
/*
|
||||
@@ -2731,7 +2677,5 @@
|
||||
return count;
|
||||
}
|
||||
|
||||
-#ifdef MODULE
|
||||
module_init (tn7atm_detect);
|
||||
module_exit (tn7atm_exit);
|
||||
-#endif /* MODULE */
|
||||
Index: sangam_atm-D7.05.01.00/tn7atm.h
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7atm.h 2007-09-25 15:49:34.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/tn7atm.h 2010-03-07 19:03:28.000000000 +0100
|
||||
@@ -20,7 +20,8 @@
|
||||
//#include "mips_support.h"
|
||||
#include <linux/list.h>
|
||||
|
||||
-#include <linux/config.h>
|
||||
+#define MIPS_EXCEPTION_OFFSET 8
|
||||
+#define LNXINTNUM(x)((x) + MIPS_EXCEPTION_OFFSET)
|
||||
|
||||
#ifdef CONFIG_MODVERSIONS
|
||||
#include <linux/modversions.h>
|
||||
Index: sangam_atm-D7.05.01.00/tn7dsl.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7dsl.c 2009-07-08 13:02:06.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/tn7dsl.c 2010-03-07 19:04:27.000000000 +0100
|
||||
@@ -102,7 +102,6 @@
|
||||
* UR8_MERGE_END CQ11813
|
||||
* 09/18/07 CPH CQ11466: Added EFM support.
|
||||
*********************************************************************************************/
|
||||
-#include <linux/config.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
@@ -110,8 +109,6 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
-#include <asm/io.h>
|
||||
-#include <asm/mips-boards/prom.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
@@ -119,6 +116,12 @@
|
||||
#include <linux/timer.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/file.h>
|
||||
+#include <linux/firmware.h>
|
||||
+
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/ar7/ar7.h>
|
||||
+#include <asm/ar7/prom.h>
|
||||
+
|
||||
/* Modules specific header files */
|
||||
#ifdef AR7_EFM
|
||||
#include "tn7efm.h"
|
||||
@@ -185,7 +188,7 @@
|
||||
static struct led_funcs ledreg[2];
|
||||
#endif
|
||||
|
||||
-#define DEV_DSLMOD 1
|
||||
+#define DEV_DSLMOD CTL_UNNUMBERED
|
||||
#define MAX_STR_SIZE 256
|
||||
#define DSL_MOD_SIZE 256
|
||||
|
||||
@@ -316,7 +319,7 @@
|
||||
static volatile int bshutdown;
|
||||
static char info[MAX_STR_SIZE];
|
||||
/* Used for DSL Polling enable */
|
||||
-static DECLARE_MUTEX_LOCKED (adsl_sem_overlay);
|
||||
+static struct semaphore adsl_sem_overlay;
|
||||
|
||||
//kthread_t overlay_thread;
|
||||
/* end of module wide declars */
|
||||
@@ -369,6 +372,14 @@
|
||||
return val;
|
||||
}
|
||||
|
||||
+int avalanche_request_intr_pacing(int irq_nr, unsigned int blk_num,
|
||||
+ unsigned int pace_value)
|
||||
+{
|
||||
+ printk("avalanche_request_pacing(%d, %u, %u); // not implemented\n", irq_nr, blk_num, pace_value);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
int os_atoi(const char *pStr)
|
||||
{
|
||||
int MulNeg = (*pStr == '-' ? -1 : 1);
|
||||
@@ -405,39 +416,6 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
-int strcmp(const char *s1, const char *s2)
|
||||
-{
|
||||
-
|
||||
- int size = strlen(s1);
|
||||
-
|
||||
- return(strncmp(s1, s2, size));
|
||||
-}
|
||||
-
|
||||
-int strncmp(const char *s1, const char *s2, size_t size)
|
||||
-{
|
||||
- int i = 0;
|
||||
- int max_size = (int)size;
|
||||
-
|
||||
- while((s1[i] != 0) && i < max_size)
|
||||
- {
|
||||
- if(s2[i] == 0)
|
||||
- {
|
||||
- return -1;
|
||||
- }
|
||||
- if(s1[i] != s2[i])
|
||||
- {
|
||||
- return 1;
|
||||
- }
|
||||
- i++;
|
||||
- }
|
||||
- if(s2[i] != 0)
|
||||
- {
|
||||
- return 1;
|
||||
- }
|
||||
-
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
// * UR8_MERGE_START CQ10640 Jack Zhang
|
||||
int tn7dsl_dump_dsp_memory(char *input_str) //cph99
|
||||
{
|
||||
@@ -487,144 +465,78 @@
|
||||
return CpuFrequency;
|
||||
}
|
||||
|
||||
-int shim_osLoadFWImage(unsigned char *ptr)
|
||||
+static void avsar_release(struct device *dev)
|
||||
{
|
||||
- unsigned int bytesRead;
|
||||
- mm_segment_t oldfs;
|
||||
- static struct file *filp;
|
||||
- unsigned int imageLength=0x5ffff;
|
||||
-
|
||||
-#ifdef AR7_EFM
|
||||
- int dp_alt=0;
|
||||
- char *ptr1=NULL;
|
||||
-#ifdef EFM_DEBUG
|
||||
- char *ptr2=NULL;
|
||||
- char *ptr3=NULL;
|
||||
-#endif
|
||||
-
|
||||
- if ((ptr1 = prom_getenv("DSL_DP_ALT")) != NULL)
|
||||
- {
|
||||
- dp_alt=os_atoi(ptr1);
|
||||
- if (dp_alt==1)
|
||||
- {
|
||||
- filp = filp_open(DSP_DEBUG_FIRMWARE_PATH,00,O_RDONLY);
|
||||
- if (!IS_ERR(filp))
|
||||
- {
|
||||
- strcpy (DSP_FIRMWARE_PATH, DSP_DEBUG_FIRMWARE_PATH);
|
||||
- }
|
||||
- }
|
||||
-#ifdef EFM_DEBUG
|
||||
- else if (dp_alt==2)
|
||||
- {
|
||||
- if ((ptr2 = prom_getenv("DSL_DP")) != NULL)
|
||||
- {
|
||||
- if (!strncmp(ptr2, "DSL_DP", 6))
|
||||
- { // indirect naming
|
||||
- if ((ptr3 = prom_getenv(ptr2)) != NULL)
|
||||
- filp = filp_open(ptr3,00,O_RDONLY);
|
||||
- ptr2 = ptr3; // redirect ptr2 to ptr3
|
||||
- }
|
||||
-
|
||||
- filp = filp_open(ptr2,00,O_RDONLY);
|
||||
- if (!IS_ERR(filp))
|
||||
- {
|
||||
- strcpy (DSP_FIRMWARE_PATH, ptr2);
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- printk("dp_path=%s\n", DSP_FIRMWARE_PATH);
|
||||
-#endif
|
||||
- }
|
||||
-#endif
|
||||
-
|
||||
- dgprintf(4, "tn7dsl_read_dsp()\n");
|
||||
-
|
||||
- dgprintf(4,"open file %s\n", DSP_FIRMWARE_PATH);
|
||||
-
|
||||
- filp=filp_open(DSP_FIRMWARE_PATH,00,O_RDONLY);
|
||||
- if(IS_ERR(filp))
|
||||
- {
|
||||
- printk("Failed: Could not open DSP binary file\n");
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
- if (filp->f_dentry != NULL)
|
||||
- {
|
||||
- if (filp->f_dentry->d_inode != NULL)
|
||||
- {
|
||||
- printk ("DSP binary filesize = %d bytes\n",
|
||||
- (int) filp->f_dentry->d_inode->i_size);
|
||||
- imageLength = (unsigned int)filp->f_dentry->d_inode->i_size + 0x200;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (filp->f_op->read==NULL)
|
||||
- return -1; /* File(system) doesn't allow reads */
|
||||
-
|
||||
- /*
|
||||
- * Disable parameter checking
|
||||
- */
|
||||
- oldfs = get_fs();
|
||||
- set_fs(KERNEL_DS);
|
||||
-
|
||||
- /*
|
||||
- * Now read bytes from postion "StartPos"
|
||||
- */
|
||||
- filp->f_pos = 0;
|
||||
-
|
||||
- bytesRead = filp->f_op->read(filp,ptr,imageLength,&filp->f_pos);
|
||||
-
|
||||
- dgprintf(4,"file length = %d\n", bytesRead);
|
||||
-
|
||||
- set_fs(oldfs);
|
||||
-
|
||||
- /*
|
||||
- * Close the file
|
||||
- */
|
||||
- fput(filp);
|
||||
-
|
||||
- return bytesRead;
|
||||
+ printk(KERN_DEBUG "avsar firmware released\n");
|
||||
}
|
||||
|
||||
+static struct device avsar = {
|
||||
+ .bus_id = "vlynq",
|
||||
+ .release = avsar_release,
|
||||
+};
|
||||
|
||||
-unsigned int shim_read_overlay_page (void *ptr, unsigned int secOffset,
|
||||
- unsigned int secLength)
|
||||
+int shim_osLoadFWImage(unsigned char *ptr)
|
||||
{
|
||||
- unsigned int bytesRead;
|
||||
- mm_segment_t oldfs;
|
||||
- struct file *filp;
|
||||
-
|
||||
- dgprintf(4,"shim_read_overlay_page\n");
|
||||
- //dgprintf(4,"sec offset=%d, sec length =%d\n", secOffset, secLength);
|
||||
+ const struct firmware *fw_entry;
|
||||
+ size_t size;
|
||||
|
||||
- filp=filp_open(DSP_FIRMWARE_PATH,00,O_RDONLY);
|
||||
- if(filp ==NULL)
|
||||
- {
|
||||
- printk("Failed: Could not open DSP binary file\n");
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
- if (filp->f_op->read==NULL)
|
||||
- return -1; /* File(system) doesn't allow reads */
|
||||
-
|
||||
- /*
|
||||
- * Now read bytes from postion "StartPos"
|
||||
- */
|
||||
+ printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
+ if(device_register(&avsar) < 0) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: device_register fails\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (request_firmware(&fw_entry, "ar0700xx.bin", &avsar)) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware not available\n");
|
||||
+ device_unregister(&avsar);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ size = fw_entry->size;
|
||||
+ device_unregister(&avsar);
|
||||
+ if (size > 0x6ffff) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware too big (%d bytes)\n", size);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ memcpy(ptr, fw_entry->data, size);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return size;
|
||||
+}
|
||||
+
|
||||
+unsigned int shim_read_overlay_page(void *ptr, unsigned int secOffset, unsigned int secLength)
|
||||
+{
|
||||
+ const struct firmware *fw_entry;
|
||||
+
|
||||
+ printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
+ if (device_register(&avsar) < 0) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: device_register fails\n");
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ if (request_firmware(&fw_entry, "ar0700xx.bin", &avsar)) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware not available\n");
|
||||
+ device_unregister(&avsar);
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ device_unregister(&avsar);
|
||||
+ if (fw_entry->size > secLength) {
|
||||
+ printk(KERN_ERR
|
||||
+ "avsar: Firmware too big (%d bytes)\n", fw_entry->size);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return -1;
|
||||
+ }
|
||||
+ memcpy(ptr + secOffset, fw_entry->data, secLength);
|
||||
+ release_firmware(fw_entry);
|
||||
+ return secLength;
|
||||
+}
|
||||
|
||||
- if(filp->f_op->llseek)
|
||||
- filp->f_op->llseek(filp,secOffset, 0);
|
||||
- oldfs = get_fs();
|
||||
- set_fs(KERNEL_DS);
|
||||
- filp->f_pos = secOffset;
|
||||
- bytesRead = filp->f_op->read(filp,ptr,secLength,&filp->f_pos);
|
||||
|
||||
- set_fs(oldfs);
|
||||
- /*
|
||||
- * Close the file
|
||||
- */
|
||||
- fput(filp);
|
||||
- return bytesRead;
|
||||
-}
|
||||
|
||||
int shim_osLoadDebugFWImage(unsigned char *ptr)
|
||||
{
|
||||
@@ -3287,6 +3199,7 @@
|
||||
int high_precision_selected = 0;
|
||||
// UR8_MERGE_END CQ11054*
|
||||
|
||||
+ sema_init(&adsl_sem_overlay, 0);
|
||||
/*
|
||||
* start dsl
|
||||
*/
|
||||
@@ -3665,7 +3578,7 @@
|
||||
*/
|
||||
if(write)
|
||||
{
|
||||
- ret = proc_dostring(ctl, write, filp, buffer, lenp);
|
||||
+ ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
|
||||
switch (ctl->ctl_name)
|
||||
{
|
||||
@@ -3751,14 +3664,14 @@
|
||||
else
|
||||
{
|
||||
len += sprintf(info+len, mod_req);
|
||||
- ret = proc_dostring(ctl, write, filp, buffer, lenp);
|
||||
+ ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
ctl_table dslmod_table[] = {
|
||||
- {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, &dslmod_sysctl}
|
||||
+ {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
|
||||
,
|
||||
{0}
|
||||
};
|
||||
@@ -3781,8 +3694,7 @@
|
||||
if (initialized == 1)
|
||||
return;
|
||||
|
||||
- dslmod_sysctl_header = register_sysctl_table(dslmod_root_table, 1);
|
||||
- dslmod_root_table->child->de->owner = THIS_MODULE;
|
||||
+ dslmod_sysctl_header = register_sysctl_table(dslmod_root_table);
|
||||
|
||||
/*
|
||||
* set the defaults
|
||||
Index: sangam_atm-D7.05.01.00/tn7sar.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7sar.c 2007-09-25 15:49:22.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/tn7sar.c 2010-03-07 19:03:44.000000000 +0100
|
||||
@@ -43,7 +43,6 @@
|
||||
* 09/18/07 CPH CQ11466: Added EFM support.
|
||||
*******************************************************************************/
|
||||
|
||||
-#include <linux/config.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
@@ -51,12 +50,13 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/smp_lock.h>
|
||||
-#include <asm/io.h>
|
||||
-#include <asm/mips-boards/prom.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
|
||||
+#include <asm/io.h>
|
||||
+#include <asm/ar7/ar7.h>
|
||||
+#include <asm/ar7/prom.h>
|
||||
|
||||
#define _CPHAL_AAL5
|
||||
#define _CPHAL_SAR
|
||||
@@ -0,0 +1,39 @@
|
||||
Index: sangam_atm-D7.05.01.00/tn7atm.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7atm.c 2010-03-07 18:09:13.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7atm.c 2010-03-07 18:09:21.000000000 +0100
|
||||
@@ -633,7 +633,7 @@
|
||||
* Description: tnetd73xx SAR interrupt.
|
||||
*
|
||||
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
-static void tn7atm_sar_irq (int irq, void *voiddev, struct pt_regs *regs)
|
||||
+static irqreturn_t tn7atm_sar_irq (int irq, void *voiddev)
|
||||
{
|
||||
struct atm_dev *atmdev;
|
||||
Tn7AtmPrivate *priv;
|
||||
@@ -660,6 +660,7 @@
|
||||
#ifdef TIATM_INST_SUPP
|
||||
psp_trace_par (ATM_DRV_SAR_ISR_EXIT, retval);
|
||||
#endif
|
||||
+ return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -669,7 +670,7 @@
|
||||
* Description: tnetd73xx DSL interrupt.
|
||||
*
|
||||
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
|
||||
-static void tn7atm_dsl_irq (int irq, void *voiddev, struct pt_regs *regs)
|
||||
+static irqreturn_t tn7atm_dsl_irq (int irq, void *voiddev)
|
||||
{
|
||||
struct atm_dev *atmdev;
|
||||
Tn7AtmPrivate *priv;
|
||||
@@ -691,6 +692,8 @@
|
||||
#ifdef TIATM_INST_SUPP
|
||||
psp_trace_par (ATM_DRV_DSL_ISR_EXIT, retval);
|
||||
#endif
|
||||
+
|
||||
+ return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -0,0 +1,13 @@
|
||||
Index: sangam_atm-D7.05.01.00/tn7api.h
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7api.h 2007-09-25 15:49:10.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/tn7api.h 2010-03-07 18:09:52.000000000 +0100
|
||||
@@ -118,7 +118,7 @@
|
||||
int tn7dsl_proc_dbgmsg_read(char* buf, char **start, off_t offset, int count,int *eof, void *data);
|
||||
#endif
|
||||
//UR8_MERGE_END CQ11813
|
||||
-inline int tn7dsl_handle_interrupt(void);
|
||||
+int tn7dsl_handle_interrupt(void);
|
||||
|
||||
void tn7dsl_dslmod_sysctl_register(void);
|
||||
void tn7dsl_dslmod_sysctl_unregister(void);
|
||||
@@ -0,0 +1,50 @@
|
||||
Index: sangam_atm-D7.05.01.00/dsl_hal_advcfg.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/dsl_hal_advcfg.c 2005-08-09 08:20:46.000000000 +0200
|
||||
+++ sangam_atm-D7.05.01.00/dsl_hal_advcfg.c 2010-03-07 18:09:59.000000000 +0100
|
||||
@@ -36,9 +36,9 @@
|
||||
* 05Jul05 0.00.09 CPH CQ9775: Change dslhal_advcfg_configDsTones input parameters & support for ADSL2+
|
||||
* 24Jul05 0.00.10 CPH Fixed comments in dslhal_advcfg_configDsTones function header
|
||||
*******************************************************************************/
|
||||
-#include <dev_host_interface.h>
|
||||
-#include <dsl_hal_register.h>
|
||||
-#include <dsl_hal_support.h>
|
||||
+#include "dev_host_interface.h"
|
||||
+#include "dsl_hal_register.h"
|
||||
+#include "dsl_hal_support.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/* ACT API functions -- To be moved into their own independent module --RamP */
|
||||
Index: sangam_atm-D7.05.01.00/Makefile
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/Makefile 2010-03-07 18:01:20.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/Makefile 2010-03-07 18:09:59.000000000 +0100
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
CONFIG_SANGAM_ATM=m
|
||||
#EXTRA_CFLAGS += -DEL -I. -DPOST_SILICON -DCOMMON_NSP -DCONFIG_LED_MODULE -DDEREGISTER_LED -DNO_ACT
|
||||
-EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
+#EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
+EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL
|
||||
obj-$(CONFIG_SANGAM_ATM) := tiatm.o
|
||||
-tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o
|
||||
+tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o dsl_hal_advcfg.o
|
||||
Index: sangam_atm-D7.05.01.00/tn7dsl.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7dsl.c 2010-03-07 18:07:28.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7dsl.c 2010-03-07 18:09:59.000000000 +0100
|
||||
@@ -3053,6 +3053,14 @@
|
||||
dslhal_api_setRateAdaptFlag(pIhw, os_atoi(ptr));
|
||||
}
|
||||
|
||||
+ // set powercutback
|
||||
+ ptr = NULL;
|
||||
+ ptr = prom_getenv("powercutback");
|
||||
+ if(ptr)
|
||||
+ {
|
||||
+ dslhal_advcfg_onOffPcb(pIhw, os_atoi(ptr));
|
||||
+ }
|
||||
+
|
||||
// trellis
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("trellis");
|
||||
@@ -0,0 +1,18 @@
|
||||
Index: sangam_atm-D7.05.01.00/tn7sar.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7sar.c 2010-03-07 18:01:20.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7sar.c 2010-03-07 18:10:03.000000000 +0100
|
||||
@@ -125,10 +125,10 @@
|
||||
//09/05/07: cph, move to tn7atm.h
|
||||
// #define RESERVED_OAM_CHANNEL 15
|
||||
|
||||
-#define AAL5_PARM "id=aal5, base = 0x03000000, offset = 0, int_line=15, ch0=[RxBufSize=1522; RxNumBuffers = 32; RxServiceMax = 50; TxServiceMax=50; TxNumBuffers=32; CpcsUU=0x5aa5; TxVc_CellRate=0x3000; TxVc_AtmHeader=0x00000640]"
|
||||
-#define SAR_PARM "id=sar,base = 0x03000000, reset_bit = 9, offset = 0; UniNni = 0, PdspEnable = 1"
|
||||
+#define CH0_PARM "RxBufSize=1522, RxNumBuffers=32, RxServiceMax=50, TxServiceMax=50, TxNumBuffers=32, CpcsUU=0x5aa5, TxVc_CellRate=0x3000, TxVc_AtmHeader=0x00000640"
|
||||
+#define AAL5_PARM "id=aal5, base=0x03000000, offset=0, int_line=15, ch0=[" CH0_PARM "]"
|
||||
+#define SAR_PARM "id=sar, base=0x03000000, reset_bit=9, offset=0; UniNni=0, PdspEnable=1, Debug=0xFFFFFFFF"
|
||||
#define RESET_PARM "id=ResetControl, base=0xA8611600"
|
||||
-#define CH0_PARM "RxBufSize=1522, RxNumBuffers = 32, RxServiceMax = 50, TxServiceMax=50, TxNumBuffers=32, CpcsUU=0x5aa5, TxVc_CellRate=0x3000, TxVc_AtmHeader=0x00000640"
|
||||
|
||||
#define MAX_PVC_TABLE_ENTRY 16
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
Index: sangam_atm-D7.05.01.00/Makefile
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/Makefile 2010-03-07 18:09:59.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/Makefile 2010-03-07 18:10:06.000000000 +0100
|
||||
@@ -5,6 +5,7 @@
|
||||
CONFIG_SANGAM_ATM=m
|
||||
#EXTRA_CFLAGS += -DEL -I. -DPOST_SILICON -DCOMMON_NSP -DCONFIG_LED_MODULE -DDEREGISTER_LED -DNO_ACT
|
||||
#EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -DNO_ACT -D__NO__VOICE_PATCH__ -DEL
|
||||
-EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL
|
||||
+#EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL
|
||||
+EXTRA_CFLAGS += -DEL -I$(PWD) -DPOST_SILICON -DCOMMON_NSP -D__NO__VOICE_PATCH__ -DEL -DCPATM_TASKLET_MODE
|
||||
obj-$(CONFIG_SANGAM_ATM) := tiatm.o
|
||||
tiatm-objs += cpsar.o aal5sar.o tn7sar.o tn7atm.o tn7dsl.o dsl_hal_api.o dsl_hal_support.o dsl_hal_advcfg.o
|
||||
@@ -0,0 +1,669 @@
|
||||
Index: sangam_atm-D7.05.01.00/tn7atm.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7atm.c 2010-03-07 18:27:11.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7atm.c 2010-03-07 18:27:34.000000000 +0100
|
||||
@@ -95,6 +95,146 @@
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_DESCRIPTION ("Tnetd73xx ATM Device Driver");
|
||||
MODULE_AUTHOR ("Zhicheng Tang");
|
||||
+
|
||||
+int mp_sar_ipacemax = -1;
|
||||
+module_param_named(ipacemax, mp_sar_ipacemax, int, 0);
|
||||
+MODULE_PARM_DESC(ipacemax, "Interrupt pacing");
|
||||
+
|
||||
+char *mp_macc = NULL;
|
||||
+module_param_named(macc, mp_macc, charp, 0);
|
||||
+MODULE_PARM_DESC(macc, "MAC address");
|
||||
+
|
||||
+int mp_dsp_noboost = -1;
|
||||
+module_param_named(dsp_noboost, mp_dsp_noboost, int, 0);
|
||||
+MODULE_PARM_DESC(dsp_noboost, "Suppress DSP frequency boost");
|
||||
+
|
||||
+int mp_dsp_freq = -1;
|
||||
+module_param_named(dsp_freq, mp_dsp_freq, int, 0);
|
||||
+MODULE_PARM_DESC(dsp_freq, "Frequency to boost the DSP to");
|
||||
+
|
||||
+char *mp_featctl0 = NULL;
|
||||
+module_param_named(featctl0, mp_featctl0, charp, 0);
|
||||
+MODULE_PARM_DESC(featctl0, "DSL feature control 0");
|
||||
+
|
||||
+char *mp_featctl1 = NULL;
|
||||
+module_param_named(featctl1, mp_featctl1, charp, 0);
|
||||
+MODULE_PARM_DESC(featctl1, "DSL feature control 1");
|
||||
+
|
||||
+char *mp_phyctl0 = NULL;
|
||||
+module_param_named(phyctl0, mp_phyctl0, charp, 0);
|
||||
+MODULE_PARM_DESC(phyctl0, "DSL PHY control 0");
|
||||
+
|
||||
+char *mp_phyctl1 = NULL;
|
||||
+module_param_named(phyctl1, mp_phyctl1, charp, 0);
|
||||
+MODULE_PARM_DESC(phyctl1, "DSL PHY control 1");
|
||||
+
|
||||
+int mp_turbodsl = -1;
|
||||
+module_param_named(turbodsl, mp_turbodsl, int, 0);
|
||||
+MODULE_PARM_DESC(turbodsl, "Enable TurboDSL");
|
||||
+
|
||||
+int mp_sar_rxbuf = -1;
|
||||
+module_param_named(sar_rxbuf, mp_sar_rxbuf, int, 0);
|
||||
+MODULE_PARM_DESC(sar_rxbuf, "SAR RxBuf size");
|
||||
+
|
||||
+int mp_sar_rxmax = -1;
|
||||
+module_param_named(sar_rxmax, mp_sar_rxmax, int, 0);
|
||||
+MODULE_PARM_DESC(sar_rxmax, "SAR RxMax size");
|
||||
+
|
||||
+int mp_sar_txbuf = -1;
|
||||
+module_param_named(sar_txbuf, mp_sar_txbuf, int, 0);
|
||||
+MODULE_PARM_DESC(sar_txbuf, "SAR TxBuf size");
|
||||
+
|
||||
+int mp_sar_txmax = -1;
|
||||
+module_param_named(sar_txmax, mp_sar_txmax, int, 0);
|
||||
+MODULE_PARM_DESC(sar_txmax, "SAR TxMax size");
|
||||
+
|
||||
+char *mp_modulation = NULL;
|
||||
+module_param_named(modulation, mp_modulation, charp, 0);
|
||||
+MODULE_PARM_DESC(modulation, "Modulation");
|
||||
+
|
||||
+int mp_fine_gain_control = -1;
|
||||
+module_param_named(fine_gain_control, mp_fine_gain_control, int, 0);
|
||||
+MODULE_PARM_DESC(fine_gain_control, "Fine gain control");
|
||||
+
|
||||
+int mp_fine_gain_value = -1;
|
||||
+module_param_named(fine_gain_value, mp_fine_gain_value, int, 0);
|
||||
+MODULE_PARM_DESC(fine_gain_value, "Fine gain value");
|
||||
+
|
||||
+int mp_enable_margin_retrain = -1;
|
||||
+module_param_named(enable_margin_retrain, mp_enable_margin_retrain, int, 0);
|
||||
+MODULE_PARM_DESC(enable_margin_retrain, "Enable margin retrain");
|
||||
+
|
||||
+int mp_margin_threshold = -1;
|
||||
+module_param_named(margin_threshold, mp_margin_threshold, int, 0);
|
||||
+MODULE_PARM_DESC(margin_threshold, "Margin retrain treshold");
|
||||
+
|
||||
+int mp_enable_rate_adapt = -1;
|
||||
+module_param_named(enable_rate_adapt, mp_enable_rate_adapt, int, 0);
|
||||
+MODULE_PARM_DESC(enable_rate_adapt, "Enable rate adaption");
|
||||
+
|
||||
+int mp_powercutback = -1;
|
||||
+module_param_named(powercutback, mp_powercutback, int, 0);
|
||||
+MODULE_PARM_DESC(powercutback, "Enable / disable powercutback");
|
||||
+
|
||||
+int mp_trellis = -1;
|
||||
+module_param_named(trellis, mp_trellis, int, 0);
|
||||
+MODULE_PARM_DESC(trellis, "Enable / disable trellis coding");
|
||||
+
|
||||
+int mp_bitswap = -1;
|
||||
+module_param_named(bitswap, mp_bitswap, int, 0);
|
||||
+MODULE_PARM_DESC(bitswap, "Enable / disable bitswap");
|
||||
+
|
||||
+int mp_maximum_bits_per_carrier = -1;
|
||||
+module_param_named(maximum_bits_per_carrier, mp_maximum_bits_per_carrier, int, 0);
|
||||
+MODULE_PARM_DESC(maximum_bits_per_carrier, "Maximum bits per carrier");
|
||||
+
|
||||
+int mp_maximum_interleave_depth = -1;
|
||||
+module_param_named(maximum_interleave_depth, mp_maximum_interleave_depth, int, 0);
|
||||
+MODULE_PARM_DESC(maximum_interleave_depth, "Maximum interleave depth");
|
||||
+
|
||||
+int mp_pair_selection = -1;
|
||||
+module_param_named(pair_selection, mp_pair_selection, int, 0);
|
||||
+MODULE_PARM_DESC(pair_selection, "Pair selection");
|
||||
+
|
||||
+int mp_dgas_polarity = -1;
|
||||
+module_param_named(dgas_polarity, mp_dgas_polarity, int, 0);
|
||||
+MODULE_PARM_DESC(dgas_polarity, "DGAS polarity");
|
||||
+
|
||||
+int mp_los_alarm = -1;
|
||||
+module_param_named(los_alarm, mp_los_alarm, int, 0);
|
||||
+MODULE_PARM_DESC(los_alarm, "LOS alarm");
|
||||
+
|
||||
+char *mp_eoc_vendor_id = NULL;
|
||||
+module_param_named(eoc_vendor_id, mp_eoc_vendor_id, charp, 0);
|
||||
+MODULE_PARM_DESC(eoc_vendor_id, "EOC vendor id");
|
||||
+
|
||||
+int mp_eoc_vendor_revision = -1;
|
||||
+module_param_named(eoc_vendor_revision, mp_eoc_vendor_revision, int, 0);
|
||||
+MODULE_PARM_DESC(eoc_vendor_revision, "EOC vendor revision");
|
||||
+
|
||||
+char *mp_eoc_vendor_serialnum = NULL;
|
||||
+module_param_named(eoc_vendor_serialnum, mp_eoc_vendor_serialnum, charp, 0);
|
||||
+MODULE_PARM_DESC(eoc_vendor_serialnum, "EOC vendor serial number");
|
||||
+
|
||||
+char *mp_invntry_vernum = NULL;
|
||||
+module_param_named(invntry_vernum, mp_invntry_vernum, charp, 0);
|
||||
+MODULE_PARM_DESC(invntry_vernum, "Inventory revision number");
|
||||
+
|
||||
+int mp_dsl_bit_tmode = -1;
|
||||
+module_param_named(dsl_bit_tmode, mp_dsl_bit_tmode, int, 0);
|
||||
+MODULE_PARM_DESC(dsl_bit_tmode, "DSL bit training mode");
|
||||
+
|
||||
+int mp_high_precision = -1;
|
||||
+module_param_named(high_precision, mp_high_precision, int, 0);
|
||||
+MODULE_PARM_DESC(high_precision, "High precision");
|
||||
+
|
||||
+int mp_autopvc_enable = -1;
|
||||
+module_param_named(autopvc_enable, mp_autopvc_enable, int, 0);
|
||||
+MODULE_PARM_DESC(autopvc_enable, "Enable / disable automatic PVC");
|
||||
+
|
||||
+int mp_oam_lb_timeout = -1;
|
||||
+module_param_named(oam_lb_timeout, mp_oam_lb_timeout, int, 0);
|
||||
+MODULE_PARM_DESC(oam_lb_timeout, "OAM LB timeout");
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
@@ -728,9 +868,9 @@
|
||||
* interrupt pacing
|
||||
*/
|
||||
ptr = prom_getenv ("sar_ipacemax");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_ipacemax != -1)
|
||||
{
|
||||
- def_sar_inter_pace = os_atoi (ptr);
|
||||
+ def_sar_inter_pace = mp_sar_ipacemax == -1 ? os_atoi (ptr) : mp_sar_ipacemax;
|
||||
}
|
||||
/* avalanche_request_pacing (priv->sar_irq, ATM_SAR_INT_PACING_BLOCK_NUM,
|
||||
def_sar_inter_pace); */
|
||||
@@ -880,7 +1020,7 @@
|
||||
char esi_addr[ESI_LEN] = { 0x00, 0x00, 0x11, 0x22, 0x33, 0x44 };
|
||||
char *esiaddr_str = NULL;
|
||||
|
||||
- esiaddr_str = prom_getenv ("macc");
|
||||
+ esiaddr_str = mp_macc ? mp_macc : prom_getenv ("maca");
|
||||
|
||||
if (!esiaddr_str)
|
||||
{
|
||||
@@ -2139,15 +2279,15 @@
|
||||
//UR8_MERGE_END CQ10450*
|
||||
|
||||
cp = prom_getenv ("dsp_noboost");
|
||||
- if (cp)
|
||||
+ if (cp || mp_dsp_noboost != -1)
|
||||
{
|
||||
- dsp_noboost = os_atoi (cp);
|
||||
+ dsp_noboost = mp_dsp_noboost == -1 ? os_atoi (cp) : mp_dsp_noboost;
|
||||
}
|
||||
|
||||
cp = (char *) prom_getenv ("dsp_freq");
|
||||
- if (cp)
|
||||
+ if (cp || mp_dsp_freq != -1)
|
||||
{
|
||||
- dspfreq = os_atoi (cp);
|
||||
+ dspfreq = mp_dsp_freq == -1 ? os_atoi (cp) : mp_dsp_freq;
|
||||
if (dspfreq == 250)
|
||||
{
|
||||
boostDsp = 1;
|
||||
@@ -2396,15 +2536,17 @@
|
||||
// Inter-Op DSL phy Control
|
||||
// Note the setting of _dsl_Feature_0 and _dsl_Feature_1 must before
|
||||
// dslhal_api_dslStartup (in tn7dsl_init()).
|
||||
- if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_0")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_0")) != NULL || mp_featctl0 != NULL)
|
||||
{
|
||||
- _dsl_Feature_0 = os_atoih (ptr);
|
||||
+ if (mp_featctl0 != NULL) ptr = mp_featctl0;
|
||||
+ _dsl_Feature_0 = os_atoh (ptr);
|
||||
_dsl_Feature_0_defined = 1;
|
||||
}
|
||||
|
||||
- if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_1")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_FEATURE_CNTL_1")) != NULL || mp_featctl1 != NULL)
|
||||
{
|
||||
- _dsl_Feature_1 = os_atoih (ptr);
|
||||
+ if (mp_featctl1 != NULL) ptr = mp_featctl1;
|
||||
+ _dsl_Feature_1 = os_atoh (ptr);
|
||||
_dsl_Feature_1_defined = 1;
|
||||
}
|
||||
|
||||
@@ -2412,15 +2554,17 @@
|
||||
// DSL phy Feature Control
|
||||
// Note the setting of _dsl_PhyControl_0 and _dsl_PhyControl_1 must before
|
||||
// dslhal_api_dslStartup (in tn7dsl_init()).
|
||||
- if ((ptr = prom_getenv ("DSL_PHY_CNTL_0")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_PHY_CNTL_0")) != NULL || mp_phyctl0 != NULL)
|
||||
{
|
||||
- _dsl_PhyControl_0 = os_atoih (ptr);
|
||||
+ if (mp_phyctl0 != NULL) ptr = mp_phyctl0;
|
||||
+ _dsl_PhyControl_0 = os_atoh (ptr);
|
||||
_dsl_PhyControl_0_defined = 1;
|
||||
}
|
||||
|
||||
- if ((ptr = prom_getenv ("DSL_PHY_CNTL_1")) != NULL)
|
||||
+ if ((ptr = prom_getenv ("DSL_PHY_CNTL_1")) != NULL || mp_phyctl1 != NULL)
|
||||
{
|
||||
- _dsl_PhyControl_1 = os_atoih (ptr);
|
||||
+ if (mp_phyctl1 != NULL) ptr = mp_phyctl1;
|
||||
+ _dsl_PhyControl_1 = os_atoh (ptr);
|
||||
_dsl_PhyControl_1_defined = 1;
|
||||
}
|
||||
|
||||
@@ -2440,12 +2584,12 @@
|
||||
// read config for turbo dsl
|
||||
|
||||
ptr = prom_getenv ("TurboDSL");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_turbodsl != -1)
|
||||
{
|
||||
#if 1 //[KT]
|
||||
bTurboDsl = os_atoi (ptr);
|
||||
#else
|
||||
- priv->bTurboDsl = os_atoi (ptr);
|
||||
+ priv->bTurboDsl = mp_turbodsl == -1 ? os_atoi (ptr) : mp_turbodsl;
|
||||
#endif
|
||||
}
|
||||
else
|
||||
@@ -2459,33 +2603,33 @@
|
||||
priv->sarRxBuf = RX_BUFFER_NUM;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarRxBuf");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_rxbuf != -1)
|
||||
{
|
||||
- priv->sarRxBuf = os_atoi (ptr);
|
||||
+ priv->sarRxBuf = mp_sar_rxbuf == -1 ? os_atoi (ptr) : mp_sar_rxbuf;
|
||||
}
|
||||
|
||||
priv->sarRxMax = RX_SERVICE_MAX;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarRxMax");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_rxmax != -1)
|
||||
{
|
||||
- priv->sarRxMax = os_atoi (ptr);
|
||||
+ priv->sarRxMax = mp_sar_rxmax == -1 ? os_atoi (ptr) : mp_sar_rxmax;
|
||||
}
|
||||
|
||||
priv->sarTxBuf = TX_BUFFER_NUM;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarTxBuf");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_txbuf != -1)
|
||||
{
|
||||
- priv->sarTxBuf = os_atoi (ptr);
|
||||
+ priv->sarTxBuf = mp_sar_txbuf == -1 ? os_atoi (ptr) : mp_sar_txbuf;
|
||||
}
|
||||
|
||||
priv->sarTxMax = TX_SERVICE_MAX;
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv ("SarTxMax");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_sar_txmax != -1)
|
||||
{
|
||||
- priv->sarTxMax = os_atoi (ptr);
|
||||
+ priv->sarTxMax = mp_sar_txmax == -1 ? os_atoi (ptr) : mp_sar_txmax;
|
||||
}
|
||||
|
||||
#ifdef AR7_EFM
|
||||
Index: sangam_atm-D7.05.01.00/tn7dsl.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7dsl.c 2010-03-07 18:27:11.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7dsl.c 2010-03-07 18:28:15.000000000 +0100
|
||||
@@ -148,6 +148,27 @@
|
||||
#define NEW_TRAINING_VAL_T1413 128
|
||||
#define NEW_TRAINING_VAL_MMODE 255
|
||||
|
||||
+extern char *mp_modulation;
|
||||
+extern int mp_fine_gain_control;
|
||||
+extern int mp_fine_gain_value;
|
||||
+extern int mp_enable_margin_retrain;
|
||||
+extern int mp_margin_threshold;
|
||||
+extern int mp_enable_rate_adapt;
|
||||
+extern int mp_powercutback;
|
||||
+extern int mp_trellis;
|
||||
+extern int mp_bitswap;
|
||||
+extern int mp_maximum_bits_per_carrier;
|
||||
+extern int mp_maximum_interleave_depth;
|
||||
+extern int mp_pair_selection;
|
||||
+extern int mp_dgas_polarity;
|
||||
+extern int mp_los_alarm;
|
||||
+extern char *mp_eoc_vendor_id;
|
||||
+extern int mp_eoc_vendor_revision;
|
||||
+extern char *mp_eoc_vendor_serialnum;
|
||||
+extern char *mp_invntry_vernum;
|
||||
+extern int mp_dsl_bit_tmode;
|
||||
+extern int mp_high_precision;
|
||||
+
|
||||
int testflag1 = 0;
|
||||
extern int __guDbgLevel;
|
||||
extern sar_stat_t sarStat;
|
||||
@@ -2933,24 +2954,24 @@
|
||||
(unsigned char *) &oamFeature, 4);
|
||||
|
||||
ptr = prom_getenv("DSL_FEATURE_CNTL_0");
|
||||
- if(!ptr)
|
||||
- prom_setenv("DSL_FEATURE_CNTL_0", "0x00004000");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("DSL_FEATURE_CNTL_0", "0x00004000");
|
||||
|
||||
ptr = prom_getenv("DSL_FEATURE_CNTL_1");
|
||||
- if(!ptr)
|
||||
- prom_setenv("DSL_FEATURE_CNTL_1", "0x00000000");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("DSL_FEATURE_CNTL_1", "0x00000000");
|
||||
|
||||
ptr = prom_getenv("DSL_PHY_CNTL_0");
|
||||
- if(!ptr)
|
||||
- prom_setenv("DSL_PHY_CNTL_0", "0x00000400");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("DSL_PHY_CNTL_0", "0x00000400");
|
||||
|
||||
ptr = prom_getenv("enable_margin_retrain");
|
||||
- if(!ptr)
|
||||
- prom_setenv("enable_margin_retrain", "0");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("enable_margin_retrain", "0");
|
||||
|
||||
ptr = prom_getenv("modulation");
|
||||
- if(!ptr)
|
||||
- prom_setenv("modulation", "0xbf");
|
||||
+ //if(!ptr)
|
||||
+ //prom_setenv("modulation", "0xbf");
|
||||
|
||||
#define EOC_VENDOR_ID "4200534153000000"
|
||||
#define EOC_VENDOR_REVISION "FW370090708b1_55"
|
||||
@@ -2959,25 +2980,25 @@
|
||||
ptr = prom_getenv("eoc_vendor_id");
|
||||
if(!ptr || strcmp(ptr,EOC_VENDOR_ID) != 0 || strlen(ptr) != strlen(EOC_VENDOR_ID))
|
||||
{
|
||||
- if(ptr)
|
||||
- prom_unsetenv("eoc_vendor_id");
|
||||
- prom_setenv("eoc_vendor_id",EOC_VENDOR_ID);
|
||||
+ //if(ptr)
|
||||
+ //prom_unsetenv("eoc_vendor_id");
|
||||
+ //prom_setenv("eoc_vendor_id",EOC_VENDOR_ID);
|
||||
}
|
||||
|
||||
ptr = prom_getenv("eoc_vendor_revision");
|
||||
if(!ptr || strcmp(ptr,EOC_VENDOR_REVISION) != 0 || strlen(ptr) != strlen(EOC_VENDOR_REVISION))
|
||||
{
|
||||
- if(ptr)
|
||||
- prom_unsetenv("eoc_vendor_revision");
|
||||
- prom_setenv("eoc_vendor_revision",EOC_VENDOR_REVISION);
|
||||
+ //if(ptr)
|
||||
+ //prom_unsetenv("eoc_vendor_revision");
|
||||
+ //prom_setenv("eoc_vendor_revision",EOC_VENDOR_REVISION);
|
||||
}
|
||||
|
||||
ptr = prom_getenv("eoc_vendor_serialnum");
|
||||
if(!ptr || strcmp(ptr,EOC_VENDOR_SERIALNUM) != 0 || strlen(ptr) != strlen(EOC_VENDOR_SERIALNUM))
|
||||
{
|
||||
- if(ptr)
|
||||
- prom_unsetenv("eoc_vendor_serialnum");
|
||||
- prom_setenv("eoc_vendor_serialnum",EOC_VENDOR_SERIALNUM);
|
||||
+ //if(ptr)
|
||||
+ // prom_unsetenv("eoc_vendor_serialnum");
|
||||
+ //prom_setenv("eoc_vendor_serialnum",EOC_VENDOR_SERIALNUM);
|
||||
}
|
||||
|
||||
/* Do only if we are in the new Base PSP 7.4.*/
|
||||
@@ -2994,92 +3015,88 @@
|
||||
we clear the modulation environment variable, as this could potentially
|
||||
not have the same meaning in the new mode.
|
||||
*/
|
||||
- prom_unsetenv("modulation");
|
||||
- prom_setenv("DSL_UPG_DONE", "1");
|
||||
+ //prom_unsetenv("modulation");
|
||||
+ //prom_setenv("DSL_UPG_DONE", "1");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// modulation
|
||||
ptr = prom_getenv("modulation");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_modulation != NULL)
|
||||
{
|
||||
- tn7dsl_set_modulation(ptr, FALSE);
|
||||
+ tn7dsl_set_modulation(mp_modulation == NULL ? ptr : mp_modulation, FALSE);
|
||||
}
|
||||
|
||||
// Fine Gains
|
||||
ptr = prom_getenv("fine_gain_control");
|
||||
- if (ptr)
|
||||
+ if (ptr || mp_fine_gain_control != -1)
|
||||
{
|
||||
- value = os_atoi(ptr);
|
||||
+ value = mp_fine_gain_control == -1 ? os_atoi(ptr) : mp_fine_gain_control;
|
||||
tn7dsl_ctrl_fineGain(value);
|
||||
}
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("fine_gain_value");
|
||||
- if(ptr)
|
||||
- tn7dsl_set_fineGainValue(os_atoh(ptr));
|
||||
+ if(ptr || mp_fine_gain_value != -1)
|
||||
+ tn7dsl_set_fineGainValue(mp_fine_gain_value == -1 ? os_atoh(ptr) : mp_fine_gain_value);
|
||||
|
||||
// margin retrain
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("enable_margin_retrain");
|
||||
- if(ptr)
|
||||
+ value = mp_enable_margin_retrain == -1 ? (ptr ? os_atoi(ptr) : 0) : mp_enable_margin_retrain;
|
||||
+
|
||||
+ if (value == 1)
|
||||
{
|
||||
- value = os_atoi(ptr);
|
||||
- if(value == 1)
|
||||
+ dslhal_api_setMarginMonitorFlags(pIhw, 0, 1);
|
||||
+ bMarginRetrainEnable = 1;
|
||||
+ //printk("enable showtime margin monitor.\n");
|
||||
+
|
||||
+ ptr = NULL;
|
||||
+ ptr = prom_getenv("margin_threshold");
|
||||
+ value = mp_margin_threshold == -1 ? (ptr ? os_atoi(ptr) : 0) : mp_margin_threshold;
|
||||
+
|
||||
+ if(value >= 0)
|
||||
{
|
||||
- dslhal_api_setMarginMonitorFlags(pIhw, 0, 1);
|
||||
- bMarginRetrainEnable = 1;
|
||||
- //printk("enable showtime margin monitor.\n");
|
||||
- ptr = NULL;
|
||||
- ptr = prom_getenv("margin_threshold");
|
||||
- if(ptr)
|
||||
- {
|
||||
- value = os_atoi(ptr);
|
||||
- //printk("Set margin threshold to %d x 0.5 db\n",value);
|
||||
- if(value >= 0)
|
||||
- {
|
||||
- dslhal_api_setMarginThreshold(pIhw, value);
|
||||
- bMarginThConfig=1;
|
||||
- }
|
||||
- }
|
||||
+ dslhal_api_setMarginThreshold(pIhw, value);
|
||||
+ bMarginThConfig=1;
|
||||
}
|
||||
}
|
||||
|
||||
// rate adapt
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("enable_rate_adapt");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_enable_rate_adapt != -1)
|
||||
{
|
||||
- dslhal_api_setRateAdaptFlag(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_setRateAdaptFlag(pIhw, mp_enable_rate_adapt == -1 ? os_atoi(ptr) : mp_enable_rate_adapt);
|
||||
}
|
||||
|
||||
// set powercutback
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("powercutback");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_powercutback != -1)
|
||||
{
|
||||
- dslhal_advcfg_onOffPcb(pIhw, os_atoi(ptr));
|
||||
+ dslhal_advcfg_onOffPcb(pIhw, mp_powercutback == -1 ? os_atoi(ptr) : mp_powercutback);
|
||||
}
|
||||
|
||||
// trellis
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("trellis");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_trellis != -1)
|
||||
{
|
||||
- dslhal_api_setTrellisFlag(pIhw, os_atoi(ptr));
|
||||
- trellis = os_atoi(ptr);
|
||||
+ trellis = mp_trellis == -1 ? os_atoi(ptr) : mp_trellis;
|
||||
+ dslhal_api_setTrellisFlag(pIhw, trellis);
|
||||
//printk("trellis=%d\n");
|
||||
}
|
||||
|
||||
// bitswap
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("bitswap");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_bitswap != -1)
|
||||
{
|
||||
int offset[2] = {33, 0};
|
||||
unsigned int bitswap;
|
||||
|
||||
- bitswap = os_atoi(ptr);
|
||||
+ bitswap = mp_bitswap == -1 ? os_atoi(ptr) : mp_bitswap;
|
||||
|
||||
tn7dsl_generic_read(2, offset);
|
||||
dslReg &= dslhal_support_byteSwap32(0xFFFFFF00);
|
||||
@@ -3097,46 +3114,47 @@
|
||||
// maximum bits per carrier
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("maximum_bits_per_carrier");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_maximum_bits_per_carrier != -1)
|
||||
{
|
||||
- dslhal_api_setMaxBitsPerCarrierUpstream(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_setMaxBitsPerCarrierUpstream(pIhw, mp_maximum_bits_per_carrier == -1 ? os_atoi(ptr) : mp_maximum_bits_per_carrier);
|
||||
}
|
||||
|
||||
// maximum interleave depth
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("maximum_interleave_depth");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_maximum_interleave_depth != -1)
|
||||
{
|
||||
- dslhal_api_setMaxInterleaverDepth(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_setMaxInterleaverDepth(pIhw, mp_maximum_interleave_depth == -1 ? os_atoi(ptr) : mp_maximum_interleave_depth);
|
||||
}
|
||||
|
||||
// inner and outer pairs
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("pair_selection");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_pair_selection != -1)
|
||||
{
|
||||
- dslhal_api_selectInnerOuterPair(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_selectInnerOuterPair(pIhw, mp_pair_selection == -1 ? os_atoi(ptr) : mp_pair_selection);
|
||||
}
|
||||
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("dgas_polarity");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_dgas_polarity != -1)
|
||||
{
|
||||
dslhal_api_configureDgaspLpr(pIhw, 1, 1);
|
||||
- dslhal_api_configureDgaspLpr(pIhw, 0, os_atoi(ptr));
|
||||
+ dslhal_api_configureDgaspLpr(pIhw, 0, mp_dgas_polarity == -1 ? os_atoi(ptr) : mp_dgas_polarity);
|
||||
}
|
||||
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("los_alarm");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_los_alarm != -1)
|
||||
{
|
||||
- dslhal_api_disableLosAlarm(pIhw, os_atoi(ptr));
|
||||
+ dslhal_api_disableLosAlarm(pIhw, mp_los_alarm == -1 ? os_atoi(ptr) : mp_los_alarm);
|
||||
}
|
||||
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("eoc_vendor_id");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_eoc_vendor_id != NULL)
|
||||
{
|
||||
+ ptr = mp_eoc_vendor_id == NULL ? ptr : mp_eoc_vendor_id;
|
||||
for(i=0;i<8;i++)
|
||||
{
|
||||
tmp[0]=ptr[i*2];
|
||||
@@ -3161,26 +3179,26 @@
|
||||
}
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("eoc_vendor_revision");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_eoc_vendor_revision != -1)
|
||||
{
|
||||
- value = os_atoi(ptr);
|
||||
+ value = mp_eoc_vendor_revision == -1 ? os_atoi(ptr) : mp_eoc_vendor_revision;
|
||||
//printk("eoc rev=%d\n", os_atoi(ptr));
|
||||
dslhal_api_setEocRevisionNumber(pIhw, (char *)&value);
|
||||
|
||||
}
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("eoc_vendor_serialnum");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_eoc_vendor_serialnum != NULL)
|
||||
{
|
||||
- dslhal_api_setEocSerialNumber(pIhw, ptr);
|
||||
+ dslhal_api_setEocSerialNumber(pIhw, mp_eoc_vendor_serialnum == NULL ? ptr : mp_eoc_vendor_serialnum);
|
||||
}
|
||||
|
||||
// CQ10037 Added invntry_vernum environment variable to be able to set version number in ADSL2, ADSL2+ modes.
|
||||
ptr = NULL;
|
||||
ptr = prom_getenv("invntry_vernum");
|
||||
- if(ptr)
|
||||
+ if(ptr || mp_invntry_vernum != NULL)
|
||||
{
|
||||
- dslhal_api_setEocRevisionNumber(pIhw, ptr);
|
||||
+ dslhal_api_setEocRevisionNumber(pIhw, mp_invntry_vernum == NULL ? ptr : mp_invntry_vernum);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -3225,7 +3243,7 @@
|
||||
* backward compatibility.
|
||||
*/
|
||||
cp = prom_getenv("DSL_BIT_TMODE");
|
||||
- if (cp)
|
||||
+ if (cp || mp_dsl_bit_tmode != -1)
|
||||
{
|
||||
printk("%s : env var DSL_BIT_TMODE is set\n", __FUNCTION__);
|
||||
/*
|
||||
@@ -3254,9 +3272,9 @@
|
||||
|
||||
// UR8_MERGE_START CQ11054 Jack Zhang
|
||||
cp = prom_getenv("high_precision");
|
||||
- if (cp)
|
||||
+ if (cp || mp_high_precision != -1)
|
||||
{
|
||||
- high_precision_selected = os_atoi(cp);
|
||||
+ high_precision_selected = mp_high_precision == -1 ? os_atoi(cp) : mp_high_precision;
|
||||
}
|
||||
if ( high_precision_selected)
|
||||
{
|
||||
Index: sangam_atm-D7.05.01.00/tn7sar.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7sar.c 2010-03-07 18:27:11.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7sar.c 2010-03-07 18:27:34.000000000 +0100
|
||||
@@ -76,6 +76,8 @@
|
||||
#include "tn7atm.h"
|
||||
#include "tn7api.h"
|
||||
|
||||
+extern int mp_oam_lb_timeout;
|
||||
+extern int mp_autopvc_enable;
|
||||
|
||||
/* PDSP Firmware files */
|
||||
#include "tnetd7300_sar_firm.h"
|
||||
@@ -932,9 +934,9 @@
|
||||
pHalDev = (HAL_DEVICE *)priv->pSarHalDev;
|
||||
|
||||
pauto_pvc = prom_getenv("autopvc_enable");
|
||||
- if(pauto_pvc) //CQ10273
|
||||
+ if(pauto_pvc || mp_autopvc_enable != -1) //CQ10273
|
||||
{
|
||||
- auto_pvc =tn7sar_strtoul(pauto_pvc, NULL, 10);
|
||||
+ auto_pvc = mp_autopvc_enable == -1 ? tn7sar_strtoul(pauto_pvc, NULL, 10) : mp_autopvc_enable;
|
||||
}
|
||||
|
||||
memset(&chInfo, 0xff, sizeof(chInfo));
|
||||
@@ -1133,9 +1135,9 @@
|
||||
|
||||
/* read in oam lb timeout value */
|
||||
pLbTimeout = prom_getenv("oam_lb_timeout");
|
||||
- if(pLbTimeout)
|
||||
+ if(pLbTimeout || mp_oam_lb_timeout != -1)
|
||||
{
|
||||
- lbTimeout =tn7sar_strtoul(pLbTimeout, NULL, 10);
|
||||
+ lbTimeout = mp_oam_lb_timeout == -1 ? tn7sar_strtoul(pLbTimeout, NULL, 10) : mp_oam_lb_timeout;
|
||||
oamLbTimeout = lbTimeout;
|
||||
pHalFunc->Control(pHalDev,"OamLbTimeout", "Set", &lbTimeout);
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
Index: sangam_atm-D7.05.01.00/tn7dsl.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7dsl.c 2010-03-07 18:18:39.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7dsl.c 2010-03-07 18:19:04.000000000 +0100
|
||||
@@ -117,6 +117,7 @@
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/file.h>
|
||||
#include <linux/firmware.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/ar7/ar7.h>
|
||||
@@ -492,7 +493,9 @@
|
||||
}
|
||||
|
||||
static struct device avsar = {
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
|
||||
.bus_id = "vlynq",
|
||||
+#endif
|
||||
.release = avsar_release,
|
||||
};
|
||||
|
||||
@@ -501,6 +504,9 @@
|
||||
const struct firmware *fw_entry;
|
||||
size_t size;
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
|
||||
+ dev_set_name(&avsar, "avsar");
|
||||
+#endif
|
||||
printk("requesting firmware image \"ar0700xx.bin\"\n");
|
||||
if(device_register(&avsar) < 0) {
|
||||
printk(KERN_ERR
|
||||
@@ -0,0 +1,60 @@
|
||||
Index: sangam_atm-D7.05.01.00/tn7atm.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7atm.c 2010-03-07 18:16:20.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7atm.c 2010-03-07 18:19:09.000000000 +0100
|
||||
@@ -76,10 +76,16 @@
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
||||
#include <asm/ar7/ar7.h>
|
||||
#include <asm/ar7/prom.h>
|
||||
+#else
|
||||
+#include <asm/mach-ar7/ar7.h>
|
||||
+#include <asm/mach-ar7/prom.h>
|
||||
+#endif
|
||||
|
||||
#include "dsl_hal_api.h"
|
||||
#ifdef AR7_EFM
|
||||
Index: sangam_atm-D7.05.01.00/tn7dsl.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7dsl.c 2010-03-07 18:19:04.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7dsl.c 2010-03-07 18:19:09.000000000 +0100
|
||||
@@ -120,8 +120,13 @@
|
||||
#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
||||
#include <asm/ar7/ar7.h>
|
||||
#include <asm/ar7/prom.h>
|
||||
+#else
|
||||
+#include <asm/mach-ar7/ar7.h>
|
||||
+#include <asm/mach-ar7/prom.h>
|
||||
+#endif
|
||||
|
||||
/* Modules specific header files */
|
||||
#ifdef AR7_EFM
|
||||
Index: sangam_atm-D7.05.01.00/tn7sar.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7sar.c 2010-03-07 18:10:13.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7sar.c 2010-03-07 18:19:09.000000000 +0100
|
||||
@@ -53,10 +53,16 @@
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/ctype.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include <asm/io.h>
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
|
||||
#include <asm/ar7/ar7.h>
|
||||
#include <asm/ar7/prom.h>
|
||||
+#else
|
||||
+#include <asm/mach-ar7/ar7.h>
|
||||
+#include <asm/mach-ar7/prom.h>
|
||||
+#endif
|
||||
|
||||
#define _CPHAL_AAL5
|
||||
#define _CPHAL_SAR
|
||||
@@ -0,0 +1,29 @@
|
||||
Index: sangam_atm-D7.05.01.00/tn7dsl.c
|
||||
===================================================================
|
||||
--- sangam_atm-D7.05.01.00.orig/tn7dsl.c 2010-03-07 18:19:09.000000000 +0100
|
||||
+++ sangam_atm-D7.05.01.00/tn7dsl.c 2010-03-07 18:19:12.000000000 +0100
|
||||
@@ -3615,8 +3615,11 @@
|
||||
*/
|
||||
if(write)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
|
||||
ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
-
|
||||
+#else
|
||||
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
|
||||
+#endif
|
||||
switch (ctl->ctl_name)
|
||||
{
|
||||
case DEV_DSLMOD:
|
||||
@@ -3701,7 +3704,11 @@
|
||||
else
|
||||
{
|
||||
len += sprintf(info+len, mod_req);
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
|
||||
ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
||||
+#else
|
||||
+ ret = proc_dostring(ctl, write, buffer, lenp, 0);
|
||||
+#endif
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
Reference in new issue
Block a user