ar7: remove unmaintained target

This target seems to have been unmaintained for quite a while, and not a
single tester for the (now outdated) kernel 4.14 patches has been found.
Remove the code and all the packages which are only used by this target.

To add this target to OpenWrt again port it to a recent and supported
kernel version.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
This commit is contained in:
Adrian Schmutzler
2020-01-05 13:49:38 +01:00
parent 2a0e0dec02
commit 4bc92c1e75
68 changed files with 1 additions and 11820 deletions

View File

@@ -26,7 +26,7 @@ include $(INCLUDE_DIR)/package.mk
define KernelPackage/acx-mac80211
SUBMENU:=Wireless Drivers
TITLE:=ACX1xx mac80211 driver
DEPENDS:=@(PCI_SUPPORT||TARGET_ar7) @mipsel +kmod-mac80211
DEPENDS:=@PCI_SUPPORT @mipsel +kmod-mac80211
FILES:=$(PKG_BUILD_DIR)/acx-mac80211.ko
AUTOLOAD:=$(call AutoProbe,acx-mac80211)
MENU:=1

View File

@@ -1,22 +0,0 @@
menu "Configuration"
depends on (PACKAGE_kmod-sangam-atm-annex-a || PACKAGE_kmod-sangam-atm-annex-b)
choice
prompt "Firmware version"
default AR7_ATM_FW_VERSION_704
help
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"
config AR7_ATM_FW_VERSION_703
bool "D7.03.01.00"
endchoice
endmenu

View File

@@ -1,100 +0,0 @@
#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=sangam_atm
ifeq ($(CONFIG_AR7_ATM_FW_VERSION_705),y)
PKG_VERSION:=D7.05.01.00
PKG_HASH:=874b5baff92159e99cef0dfb839d6fdc124a46aef7374653064d29d9eee9a3c9
PKG_RELEASE:=R1
PATCH_DIR:=patches-$(PKG_VERSION)
endif
ifeq ($(CONFIG_AR7_ATM_FW_VERSION_704),y)
PKG_VERSION:=D7.04.03.00
PKG_HASH:=af2e203e4c86f9a86cdd07d172897b07e66a25379376e8da4c1b14816f86b58f
PKG_RELEASE:=R1
PATCH_DIR:=patches-$(PKG_VERSION)
endif
ifeq ($(CONFIG_AR7_ATM_FW_VERSION_703),y)
PKG_VERSION:=D7.03.01.00
PKG_HASH:=2d156164ef5abbe10ffb2400ada4cef2035df3ba2b3f866f00bdede489861c4d
PKG_RELEASE:=R2
PATCH_DIR:=patches-D7.04.03.00
endif
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.bz2
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
PKG_FLAGS:=nonshared
include $(INCLUDE_DIR)/package.mk
define KernelPackage/sangam-atm/Default
SUBMENU:=Network Devices
DEPENDS:=@TARGET_ar7_generic +kmod-atm
TITLE:=AR7 ADSL driver
FILES:=$(PKG_BUILD_DIR)/tiatm.ko
AUTOLOAD:=$(call AutoLoad,50,tiatm)
MENU:=1
endef
define KernelPackage/sangam-atm/config
source "$(SOURCE)/Config.in"
endef
define KernelPackage/sangam-atm-annex-a
$(call KernelPackage/sangam-atm/Default)
TITLE+= (Annex A, ADSL over POTS)
endef
define KernelPackage/sangam-atm-annex-a/description
The AR7 ADSL driver for Annex A (ADSL over POTS).
endef
define KernelPackage/sangam-atm-annex-a/config
$(call KernelPackage/sangam-atm/config)
endef
define KernelPackage/sangam-atm-annex-b
$(call KernelPackage/sangam-atm/Default)
TITLE+= (Annex B, ADSL over ISDN)
endef
define KernelPackage/sangam-atm-annex-b/description
The AR7 ADSL driver for Annex B (ADSL over ISDN).
endef
define KernelPackage/sangam-atm-annex-a/config
$(call KernelPackage/sangam-atm/config)
endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" \
$(KERNEL_MAKE_FLAGS) \
SUBDIRS="$(PKG_BUILD_DIR)" \
modules
endef
define KernelPackage/sangam-atm-annex-a/install
mkdir -p $(1)/lib/firmware
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ar0700mp.bin $(1)/lib/firmware/
$(LN) ar0700mp.bin $(1)/lib/firmware/ar0700xx.bin
endef
define KernelPackage/sangam-atm-annex-b/install
mkdir -p $(1)/lib/firmware
$(INSTALL_DATA) $(PKG_BUILD_DIR)/ar0700db.bin $(1)/lib/firmware/
$(LN) ar0700db.bin $(1)/lib/firmware/ar0700xx.bin
endef
$(eval $(call KernelPackage,sangam-atm-annex-a))
$(eval $(call KernelPackage,sangam-atm-annex-b))

View File

@@ -1,11 +0,0 @@
--- a/aal5sar.h
+++ b/aal5sar.h
@@ -19,7 +19,7 @@
/** \namespace AAL5_Version
This documents version 01.07.2c of the AAL5 CPHAL.
*/
-const char *pszVersion_CPAAL5="CPAAL5 01.07.2c "__DATE__" "__TIME__;
+const char *pszVersion_CPAAL5="CPAAL5 01.07.2c ";
#include "cpsar_cpaal5.h"

View File

@@ -1,768 +0,0 @@
--- a/cppi_cpaal5.c
+++ b/cppi_cpaal5.c
@@ -352,7 +352,7 @@ static int halRxReturn(HAL_RECEIVEINFO *
{
/* 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 */
--- a/dsl_hal_api.c
+++ b/dsl_hal_api.c
@@ -254,15 +254,15 @@
* of phyEnableDisableWord & phyControlWord to avoid changing API struct
* which may cause change required to application data structure.
******************************************************************************/
-#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.
--- a/dsl_hal_support.c
+++ b/dsl_hal_support.c
@@ -140,9 +140,9 @@
* oamFeature are overriden
// UR8_MERGE_END CQ10774 Ram
*******************************************************************************/
-#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);
--- a/dsl_hal_support.h
+++ b/dsl_hal_support.h
@@ -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 */
--- a/Makefile
+++ b/Makefile
@@ -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
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -61,7 +61,6 @@
* UR8_MERGE_END CQ11057*
*********************************************************************************************/
-#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
@@ -69,11 +68,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"
#include "tn7atm.h"
#include "tn7api.h"
@@ -82,6 +84,7 @@
#include "dsl_hal_register.h"
#ifdef MODULE
+MODULE_LICENSE("GPL");
MODULE_DESCRIPTION ("Tnetd73xx ATM Device Driver");
MODULE_AUTHOR ("Zhicheng Tang");
#endif
@@ -100,9 +103,9 @@ MODULE_AUTHOR ("Zhicheng Tang");
/*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)
@@ -114,7 +117,7 @@ static int EnableQoS = FALSE;
/* 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);
static void tn7atm_close (struct atm_vcc *vcc);
@@ -257,13 +260,12 @@ static const struct atmdev_ops tn7atm_op
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;
@@ -559,56 +561,6 @@ static int turbodsl_check_priority_type(
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
- * 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.
@@ -693,7 +645,7 @@ static int __init tn7atm_irq_request (st
* Register SAR interrupt
*/
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");
/*
@@ -704,14 +656,14 @@ static int __init tn7atm_irq_request (st
{
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);*/
/*
* 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 ****/
@@ -875,11 +827,15 @@ static int __init tn7atm_get_ESI (struct
#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");
@@ -891,24 +847,18 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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;
@@ -916,7 +866,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
/* 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;
}
@@ -925,7 +875,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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);
@@ -934,17 +884,17 @@ int tn7atm_open (struct atm_vcc *vcc, sh
}
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;
}
@@ -976,6 +926,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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;
@@ -997,6 +948,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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;
@@ -1024,7 +976,7 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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;
@@ -1114,7 +1066,7 @@ void tn7atm_close (struct atm_vcc *vcc)
tn7atm_lut_clear (vcc, dmachan);
//spin_unlock_irqrestore (&closeLock, closeFlag);
- MOD_DEC_USE_COUNT;
+// MOD_DEC_USE_COUNT;
dgprintf (1, "Leave tn7atm_close\n");
}
@@ -1528,8 +1480,7 @@ int tn7atm_receive (void *os_dev, int ch
* 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);
@@ -1725,8 +1676,7 @@ static void tn7atm_exit (void)
kfree (dev->dev_data);
- // atm_dev_deregister (dev);
- shutdown_atm_dev (dev);
+ atm_dev_deregister (dev);
/*
* remove proc entries
@@ -1885,9 +1835,6 @@ static int __init tn7atm_detect (void)
/*
* 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);
@@ -1897,7 +1844,6 @@ static int __init tn7atm_detect (void)
return -ENOMEM;
}
proc_root_already_exists = FALSE;
- }
/*
* AV: Clean-up. Moved all the definitions to the data structure.
@@ -2479,7 +2425,5 @@ static int tn7atm_proc_qos_write(struct
return count;
}
-#ifdef MODULE
module_init (tn7atm_detect);
module_exit (tn7atm_exit);
-#endif /* MODULE */
--- a/tn7atm.h
+++ b/tn7atm.h
@@ -19,7 +19,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>
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -94,7 +94,6 @@
* 1/02/07 JZ CQ11054: Data Precision and Range Changes for TR-069 Conformance
* UR8_MERGE_END CQ11054*
*********************************************************************************************/
-#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
@@ -102,8 +101,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>
@@ -111,6 +108,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 */
#include "tn7atm.h"
#include "tn7api.h"
@@ -173,7 +176,7 @@ led_reg_t ledreg[2];
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
@@ -299,7 +302,7 @@ static PITIDSLHW_T pIhw;
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 */
@@ -323,6 +326,14 @@ static int tn7dsl_proc_snr_print (char *
#define gDot1(a) ((a>0)?(a%10):((-a)%10))
// UR8_MERGE_END CQ11054*
+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);
@@ -359,39 +370,6 @@ void dprintf (int uDbgLevel, char *szFmt
#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
{
@@ -441,101 +419,74 @@ unsigned int shim_osGetCpuFrequency(void
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;
-
-
- 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(filp ==NULL)
- {
- 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"
- */
-
- 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;
+ 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 > 0x5ffff) {
+ 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;
}
int shim_osLoadDebugFWImage(unsigned char *ptr)
@@ -3064,6 +3015,7 @@ int tn7dsl_init(void *priv)
int high_precision_selected = 0;
// UR8_MERGE_END CQ11054*
+ sema_init(&adsl_sem_overlay, 0);
/*
* start dsl
*/
@@ -3442,7 +3394,7 @@ static int dslmod_sysctl(ctl_table *ctl,
*/
if(write)
{
- ret = proc_dostring(ctl, write, filp, buffer, lenp);
+ ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
switch (ctl->ctl_name)
{
@@ -3528,14 +3480,14 @@ static int dslmod_sysctl(ctl_table *ctl,
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}
};
@@ -3558,8 +3510,7 @@ void tn7dsl_dslmod_sysctl_register(void)
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
@@ -4821,4 +4772,4 @@ int tn7dsl_proc_PMDus(char* buf, char **
}
#endif //NO_ADV_STATS
#endif //TR69_PMD_IN
-// * UR8_MERGE_END CQ11057 *
\ No newline at end of file
+// * UR8_MERGE_END CQ11057 *
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -42,7 +42,6 @@
* UR8_MERGE_END CQ10700
*******************************************************************************/
-#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
@@ -50,12 +49,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

View File

@@ -1,37 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -566,7 +566,7 @@ static int turbodsl_check_priority_type(
* 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;
@@ -593,6 +593,7 @@ static void tn7atm_sar_irq (int irq, voi
#ifdef TIATM_INST_SUPP
psp_trace_par (ATM_DRV_SAR_ISR_EXIT, retval);
#endif
+ return IRQ_HANDLED;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -602,7 +603,7 @@ static void tn7atm_sar_irq (int irq, voi
* 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;
@@ -624,6 +625,8 @@ static void tn7atm_dsl_irq (int irq, voi
#ifdef TIATM_INST_SUPP
psp_trace_par (ATM_DRV_DSL_ISR_EXIT, retval);
#endif
+
+ return IRQ_HANDLED;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -1,11 +0,0 @@
--- a/tn7api.h
+++ b/tn7api.h
@@ -107,7 +107,7 @@ int tn7dsl_proc_dbg_rmsgs4(char* buf, ch
int tn7dsl_proc_write_stats(struct file *fp, const char * buf, unsigned long count, void * data);
int tn7dsl_proc_modem(char* buf, char **start, off_t offset, int count,int *eof, void *data);
-inline int tn7dsl_handle_interrupt(void);
+int tn7dsl_handle_interrupt(void);
void tn7dsl_dslmod_sysctl_register(void);
void tn7dsl_dslmod_sysctl_unregister(void);

View File

@@ -1,44 +0,0 @@
--- a/dsl_hal_advcfg.c
+++ b/dsl_hal_advcfg.c
@@ -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 */
--- a/Makefile
+++ b/Makefile
@@ -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
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -2869,6 +2869,14 @@ static int tn7dsl_set_dsl(void)
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");

View File

@@ -1,16 +0,0 @@
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -103,10 +103,10 @@ enum
#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

View File

@@ -1,11 +0,0 @@
--- a/Makefile
+++ b/Makefile
@@ -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

View File

@@ -1,589 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -87,6 +87,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
@@ -655,9 +795,9 @@ static int __init tn7atm_irq_request (st
* 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);*/
@@ -795,9 +935,18 @@ static int __init tn7atm_get_ESI (struct
{
int i;
char esi_addr[ESI_LEN] = { 0x00, 0x00, 0x11, 0x22, 0x33, 0x44 };
- char *esiaddr_str = NULL;
+ char *esiaddr_str = mp_macc;
- esiaddr_str = prom_getenv ("maca");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("macdsl");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("macc");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("HWA_1");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("macb");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("maca");
if (!esiaddr_str)
{
@@ -1930,15 +2079,15 @@ static int tn7atm_autoDetectDspBoost (vo
//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;
@@ -2187,8 +2336,9 @@ static int __init tn7atm_init (struct at
// 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)
{
+ if (mp_featctl0 != NULL) ptr = mp_featctl0;
if ((ptr[0] == '0') && (ptr[1] == 'x')) // skip 0x before pass to
// os_atoh
ptr += 2;
@@ -2196,8 +2346,9 @@ static int __init tn7atm_init (struct at
_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)
{
+ if (mp_featctl1 != NULL) ptr = mp_featctl1;
if ((ptr[0] == '0') && (ptr[1] == 'x')) // skip 0x before pass to
// os_atoh
ptr += 2;
@@ -2209,8 +2360,9 @@ static int __init tn7atm_init (struct at
// 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)
{
+ if (mp_phyctl0 != NULL) ptr = mp_phyctl0;
if ((ptr[0] == '0') && (ptr[1] == 'x')) // skip 0x before pass to
// os_atoh
ptr += 2;
@@ -2218,8 +2370,9 @@ static int __init tn7atm_init (struct at
_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)
{
+ if (mp_phyctl1 != NULL) ptr = mp_phyctl1;
if ((ptr[0] == '0') && (ptr[1] == 'x')) // skip 0x before pass to
// os_atoh
ptr += 2;
@@ -2247,9 +2400,9 @@ static int __init tn7atm_init (struct at
priv->bTurboDsl = 1;
// read config for turbo dsl
ptr = prom_getenv ("TurboDSL");
- if (ptr)
+ if (ptr || mp_turbodsl != -1)
{
- priv->bTurboDsl = os_atoi (ptr);
+ priv->bTurboDsl = mp_turbodsl == -1 ? os_atoi (ptr) : mp_turbodsl;
}
// @Added to make Rx buffer number & Service max configurable through
@@ -2257,30 +2410,30 @@ static int __init tn7atm_init (struct at
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;
}
return 0;
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -136,6 +136,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;
@@ -2818,84 +2839,80 @@ static int tn7dsl_set_dsl(void)
// 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);
@@ -2913,46 +2930,47 @@ static int tn7dsl_set_dsl(void)
// 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];
@@ -2977,26 +2995,26 @@ static int tn7dsl_set_dsl(void)
}
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;
@@ -3041,7 +3059,7 @@ int tn7dsl_init(void *priv)
* 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__);
/*
@@ -3070,9 +3088,9 @@ int tn7dsl_init(void *priv)
// 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)
{
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -74,6 +74,8 @@ typedef void OS_SETUP;
/* PDSP Firmware files */
#include "tnetd7300_sar_firm.h"
+extern int mp_oam_lb_timeout;
+extern int mp_autopvc_enable;
enum
{
@@ -817,9 +819,9 @@ int tn7sar_setup_oam_channel(Tn7AtmPriva
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));
@@ -985,9 +987,9 @@ int tn7sar_init(struct atm_dev *dev, Tn7
/* 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);
}

View File

@@ -1,19 +0,0 @@
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -446,7 +446,6 @@ static void avsar_release(struct device
}
static struct device avsar = {
- .bus_id = "vlynq",
.release = avsar_release,
};
@@ -455,6 +454,8 @@ int shim_osLoadFWImage(unsigned char *pt
const struct firmware *fw_entry;
size_t size;
+ dev_set_name(&avsar, "avsar");
+
printk("requesting firmware image \"ar0700xx.bin\"\n");
if(device_register(&avsar) < 0) {
printk(KERN_ERR

View File

@@ -1,39 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -73,8 +73,8 @@
#include <linux/ctype.h>
#include <asm/io.h>
-#include <asm/ar7/ar7.h>
-#include <asm/ar7/prom.h>
+#include <asm/mach-ar7/ar7.h>
+#include <asm/mach-ar7/prom.h>
#include "dsl_hal_api.h"
#include "tn7atm.h"
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -111,8 +111,8 @@
#include <linux/firmware.h>
#include <asm/io.h>
-#include <asm/ar7/ar7.h>
-#include <asm/ar7/prom.h>
+#include <asm/mach-ar7/ar7.h>
+#include <asm/mach-ar7/prom.h>
/* Modules specific header files */
#include "tn7atm.h"
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -54,8 +54,8 @@
#include <linux/ctype.h>
#include <asm/io.h>
-#include <asm/ar7/ar7.h>
-#include <asm/ar7/prom.h>
+#include <asm/mach-ar7/ar7.h>
+#include <asm/mach-ar7/prom.h>
#define _CPHAL_AAL5
#define _CPHAL_SAR

View File

@@ -1,92 +0,0 @@
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -197,7 +197,7 @@ led_reg_t ledreg[2];
static struct led_funcs ledreg[2];
#endif
-#define DEV_DSLMOD CTL_UNNUMBERED
+#define DEV_DSLMOD 0
#define MAX_STR_SIZE 256
#define DSL_MOD_SIZE 256
@@ -333,8 +333,8 @@ static void tn7dsl_chng_modulation(void*
static unsigned int tn7dsl_set_modulation(void* data, int flag);
static void tn7dsl_ctrl_fineGain(int value);
static void tn7dsl_set_fineGainValue(int value);
-static int dslmod_sysctl (ctl_table * ctl, int write, struct file *filp,
- void *buffer, size_t * lenp);
+static int dslmod_sysctl (ctl_table * ctl, int write, void *buffer,
+ size_t * lenp, loff_t *ppos);
static void tn7dsl_register_dslss_led(void);
void tn7dsl_dslmod_sysctl_register(void);
void tn7dsl_dslmod_sysctl_unregister(void);
@@ -3398,8 +3398,8 @@ unsigned int tn7dsl_get_memory(unsigned
-static int dslmod_sysctl(ctl_table *ctl, int write, struct file * filp,
- void *buffer, size_t *lenp)
+static int dslmod_sysctl(ctl_table *ctl, int write, void *buffer,
+ size_t *lenp, loff_t *ppos)
{
char *ptr;
int ret, len = 0;
@@ -3411,7 +3411,7 @@ static int dslmod_sysctl(ctl_table *ctl,
char mod_req[16] = { '\t' };
char fst_byt;
- if (!*lenp || (filp->f_pos && !write))
+ if (!*lenp || (*ppos && !write))
{
*lenp = 0;
return 0;
@@ -3421,9 +3421,9 @@ static int dslmod_sysctl(ctl_table *ctl,
*/
if(write)
{
- ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
+ ret = proc_dostring(ctl, write, buffer, lenp, ppos);
- switch (ctl->ctl_name)
+ switch ((long)ctl->extra2)
{
case DEV_DSLMOD:
ptr = strpbrk(info, " \t");
@@ -3507,14 +3507,21 @@ static int dslmod_sysctl(ctl_table *ctl,
else
{
len += sprintf(info+len, mod_req);
- ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
+ ret = proc_dostring(ctl, write, buffer, lenp, ppos);
}
return ret;
}
ctl_table dslmod_table[] = {
- {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
+ {
+ .procname = "dslmod",
+ .data = info,
+ .maxlen = DSL_MOD_SIZE,
+ .mode = 0644,
+ .proc_handler = &dslmod_sysctl,
+ .extra2 = (void *)DEV_DSLMOD,
+ }
,
{0}
};
@@ -3522,7 +3529,12 @@ ctl_table dslmod_table[] = {
/* Make sure that /proc/sys/dev is there */
ctl_table dslmod_root_table[] = {
#ifdef CONFIG_PROC_FS
- {CTL_DEV, "dev", NULL, 0, 0555, dslmod_table}
+ {
+ .procname = "dev",
+ .maxlen = 0,
+ .mode = 0555,
+ .child = dslmod_table,
+ }
,
#endif /* CONFIG_PROC_FS */
{0}

View File

@@ -1,32 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -1870,7 +1870,7 @@ static int __init tn7atm_register (Tn7At
dgprintf (4, "device %s being registered\n", priv->name);
- mydev = atm_dev_register (priv->proc_name, &tn7atm_ops, -1, NULL);
+ mydev = atm_dev_register (priv->proc_name, NULL, &tn7atm_ops, -1, NULL);
if (mydev == NULL)
{
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -453,13 +453,16 @@ int shim_osLoadFWImage(unsigned char *pt
{
const struct firmware *fw_entry;
size_t size;
+ int ret;
dev_set_name(&avsar, "avsar");
printk("requesting firmware image \"ar0700xx.bin\"\n");
- if(device_register(&avsar) < 0) {
+ dev_set_name(&avsar, "avsar");
+ ret = device_register(&avsar);
+ if (ret < 0) {
printk(KERN_ERR
- "avsar: device_register fails\n");
+ "avsar: device_register fails, error%i\n", ret);
return -1;
}

View File

@@ -1,33 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -67,7 +67,7 @@
#include <linux/atmdev.h>
#include <linux/delay.h>
#include <linux/spinlock.h>
-#include <linux/smp_lock.h>
+#include <linux/interrupt.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/ctype.h>
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -48,7 +48,7 @@
#include <linux/atmdev.h>
#include <linux/delay.h>
#include <linux/spinlock.h>
-#include <linux/smp_lock.h>
+#include <linux/interrupt.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/ctype.h>
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -100,7 +100,7 @@
#include <linux/atmdev.h>
#include <linux/delay.h>
#include <linux/spinlock.h>
-#include <linux/smp_lock.h>
+#include <linux/interrupt.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/ctype.h>

View File

@@ -1,44 +0,0 @@
--- a/cp_sar_reg.h
+++ b/cp_sar_reg.h
@@ -214,4 +214,4 @@
/* END OF FILE */
-#endif _INC_SAR_REG
+#endif
--- a/tn7api.h
+++ b/tn7api.h
@@ -172,4 +172,4 @@ void tn7sar_get_sar_firmware_version(uns
extern struct file_operations tn7sar_proc_oam_ping_fops;
extern struct file_operations tn7sar_proc_pvc_table_fops;
int tn7sar_tx_flush(void *privContext, int chan, int queue, int skip);
-#endif __SGAPI_H
+#endif
--- a/tn7atm.h
+++ b/tn7atm.h
@@ -276,4 +276,4 @@ typedef struct
#define PHYS_TO_K1(X) (PHYS_ADDR(X)|K1BASE)
#endif
-#endif __TN7ATM_H
+#endif
--- a/dsl_hal_api.h
+++ b/dsl_hal_api.h
@@ -2448,7 +2448,7 @@ unsigned int dslhal_api_getHLINpsds(tids
*
********************************************************************************************/
-unsigned int dslhal_api_getHighPrecision();
+unsigned int dslhal_api_getHighPrecision(void);
/********************************************************************************************
* FUNCTION NAME: void dslhal_api_setHighPrecision
@@ -2459,7 +2459,7 @@ unsigned int dslhal_api_getHighPrecision
* Return: None
********************************************************************************************/
-void dslhal_api_setHighPrecision();
+void dslhal_api_setHighPrecision(void);
// UR8_MERGE_END CQ11054*
#ifdef INTERNAL_BUILD

View File

@@ -1,38 +0,0 @@
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -333,7 +333,7 @@ static void tn7dsl_chng_modulation(void*
static unsigned int tn7dsl_set_modulation(void* data, int flag);
static void tn7dsl_ctrl_fineGain(int value);
static void tn7dsl_set_fineGainValue(int value);
-static int dslmod_sysctl (ctl_table * ctl, int write, void *buffer,
+static int dslmod_sysctl (struct ctl_table * ctl, int write, void *buffer,
size_t * lenp, loff_t *ppos);
static void tn7dsl_register_dslss_led(void);
void tn7dsl_dslmod_sysctl_register(void);
@@ -3308,7 +3308,7 @@ unsigned int tn7dsl_get_memory(unsigned
-static int dslmod_sysctl(ctl_table *ctl, int write, void *buffer,
+static int dslmod_sysctl(struct ctl_table *ctl, int write, void *buffer,
size_t *lenp, loff_t *ppos)
{
char *ptr;
@@ -3423,7 +3423,7 @@ static int dslmod_sysctl(ctl_table *ctl,
}
-ctl_table dslmod_table[] = {
+struct ctl_table dslmod_table[] = {
{
.procname = "dslmod",
.data = info,
@@ -3437,7 +3437,7 @@ ctl_table dslmod_table[] = {
};
/* Make sure that /proc/sys/dev is there */
-ctl_table dslmod_root_table[] = {
+struct ctl_table dslmod_root_table[] = {
#ifdef CONFIG_PROC_FS
{
.procname = "dev",

View File

@@ -1,20 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -777,7 +777,7 @@ static int __init tn7atm_irq_request (st
* Register SAR interrupt
*/
priv->sar_irq = LNXINTNUM (ATM_SAR_INT); /* Interrupt line # */
- if (request_irq (priv->sar_irq, tn7atm_sar_irq, IRQF_DISABLED, "SAR ", dev))
+ if (request_irq (priv->sar_irq, tn7atm_sar_irq, 0, "SAR ", dev))
printk ("Could not register tn7atm_sar_irq\n");
/*
@@ -795,7 +795,7 @@ static int __init tn7atm_irq_request (st
* Reigster Receive interrupt A
*/
priv->dsl_irq = LNXINTNUM (ATM_DSL_INT); /* Interrupt line # */
- if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, IRQF_DISABLED, "DSL ", dev))
+ if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, 0, "DSL ", dev))
printk ("Could not register tn7atm_dsl_irq\n");
/***** VRB Tasklet Mode ****/

View File

@@ -1,63 +0,0 @@
--- a/cpswhal_cpsar.h
+++ b/cpswhal_cpsar.h
@@ -430,10 +430,10 @@ typedef struct
int (*DeviceFindInfo)(int Inst, const char *DeviceName, void *DeviceInfo);
int (*DeviceFindParmUint)(void *DeviceInfo, const char *Parm, bit32u *Value);
int (*DeviceFindParmValue)(void *DeviceInfo, const char *Parm, void *Value);
- void (*Free)(void *MemPtr);
+ void (*Free)(const void *MemPtr);
void (*FreeRxBuffer)(OS_RECEIVEINFO *OsReceiveInfo, void *MemPtr);
- void (*FreeDev)(void *MemPtr);
- void (*FreeDmaXfer)(void *MemPtr);
+ void (*FreeDev)(const void *MemPtr);
+ void (*FreeDmaXfer)(const void *MemPtr);
void (*IsrRegister)(OS_DEVICE *OsDev, int (*halISR)(HAL_DEVICE*, int*), int InterruptBit);
void (*IsrUnRegister)(OS_DEVICE *OsDev, int InterruptBit);
void* (*Malloc)(bit32u size);
--- a/cpswhal_cpaal5.h
+++ b/cpswhal_cpaal5.h
@@ -430,10 +430,10 @@ typedef struct
int (*DeviceFindInfo)(int Inst, const char *DeviceName, void *DeviceInfo);
int (*DeviceFindParmUint)(void *DeviceInfo, const char *Parm, bit32u *Value);
int (*DeviceFindParmValue)(void *DeviceInfo, const char *Parm, void *Value);
- void (*Free)(void *MemPtr);
+ void (*Free)(const void *MemPtr);
void (*FreeRxBuffer)(OS_RECEIVEINFO *OsReceiveInfo, void *MemPtr);
- void (*FreeDev)(void *MemPtr);
- void (*FreeDmaXfer)(void *MemPtr);
+ void (*FreeDev)(const void *MemPtr);
+ void (*FreeDmaXfer)(const void *MemPtr);
void (*IsrRegister)(OS_DEVICE *OsDev, int (*halISR)(HAL_DEVICE*, int*), int InterruptBit);
void (*IsrUnRegister)(OS_DEVICE *OsDev, int InterruptBit);
void* (*Malloc)(bit32u size);
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -2481,7 +2481,7 @@ static int tn7atm_proc_qos_read(struct s
return 0;
}
-static int tn7atm_proc_qos_write(struct file *fp, const char *buf, unsigned long count, void *data)
+static int tn7atm_proc_qos_write(struct file *fp, const char *buf, size_t count, loff_t *data)
{
char local_buf[32];
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -1712,7 +1712,7 @@ static int tn7dsl_proc_stats_open(struct
return single_open(file, tn7dsl_proc_stats, PDE_DATA(inode));
}
-int tn7dsl_proc_write_stats (struct file *fp, const char *buf, unsigned long count, void *data);
+int tn7dsl_proc_write_stats (struct file *fp, const char *buf, size_t count, loff_t *data);
struct file_operations tn7dsl_proc_stats_fops = {
.owner = THIS_MODULE,
@@ -4256,7 +4256,7 @@ int tn7dsl_generic_write( int offsetnum,
}
int tn7dsl_proc_write_stats (struct file *fp, const char *buf,
- unsigned long count, void *data)
+ size_t count, loff_t *data)
{
char local_buf[31];
int ret_val = 0;

View File

@@ -1,51 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -1149,7 +1149,7 @@ void tn7atm_close (struct atm_vcc *vcc)
Tn7AtmPrivate *priv;
int dmachan;
spinlock_t closeLock;
- unsigned int closeFlag;
+ unsigned long closeFlag;
int rc;
priv = (Tn7AtmPrivate *) vcc->dev->dev_data;
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -620,7 +620,7 @@ unsigned int shim_osClockTick(void)
return jiffies;
}
-int flags;
+unsigned long flags;
spinlock_t shimLock;
void shim_osCriticalEnter(void)
@@ -3433,7 +3433,7 @@ struct ctl_table dslmod_table[] = {
.extra2 = (void *)DEV_DSLMOD,
}
,
- {0}
+ { }
};
/* Make sure that /proc/sys/dev is there */
@@ -3447,7 +3447,7 @@ struct ctl_table dslmod_root_table[] = {
}
,
#endif /* CONFIG_PROC_FS */
- {0}
+ { }
};
static struct ctl_table_header *dslmod_sysctl_header;
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -1208,7 +1208,7 @@ int tn7sar_deactivate_vc(Tn7AtmPrivate *
HAL_FUNCTIONS *pHalFunc;
HAL_DEVICE *pHalDev;
int rc;
- int flags;
+ unsigned long flags;
//dgprintf(4, "tn7sar_deactivate_vc\n");
//printk("tn7sar_deactivate_vc entered\n");

View File

@@ -1,11 +0,0 @@
--- a/aal5sar.h
+++ b/aal5sar.h
@@ -19,7 +19,7 @@
/** \namespace AAL5_Version
This documents version 01.07.2c of the AAL5 CPHAL.
*/
-const char *pszVersion_CPAAL5="CPAAL5 01.07.2c "__DATE__" "__TIME__;
+const char *pszVersion_CPAAL5="CPAAL5 01.07.2c ";
#include "cpsar_cpaal5.h"

View File

@@ -1,808 +0,0 @@
--- a/cppi_cpaal5.c
+++ b/cppi_cpaal5.c
@@ -360,7 +360,7 @@ static int halRxReturn(HAL_RECEIVEINFO *
{
/* 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 */
--- a/dsl_hal_api.c
+++ b/dsl_hal_api.c
@@ -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.
--- a/dsl_hal_support.c
+++ b/dsl_hal_support.c
@@ -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);
--- a/dsl_hal_support.h
+++ b/dsl_hal_support.h
@@ -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 */
--- a/Makefile
+++ b/Makefile
@@ -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
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -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 @@ MODULE_AUTHOR ("Zhicheng Tang");
/*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 @@ static int EnableQoS = FALSE;
/* 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 @@ static const struct atmdev_ops tn7atm_op
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 @@ static int turbodsl_check_priority_type(
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
- * 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 @@ static int __init tn7atm_irq_request (st
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 @@ static int __init tn7atm_irq_request (st
{
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 @@ static int __init tn7atm_irq_request (st
* 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 @@ static int __init tn7atm_get_ESI (struct
#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 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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 @@ int tn7atm_open (struct atm_vcc *vcc, sh
/* 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 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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 @@ int tn7atm_open (struct atm_vcc *vcc, sh
}
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 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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 @@ int tn7atm_open (struct atm_vcc *vcc, sh
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 @@ void tn7atm_close (struct atm_vcc *vcc)
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 @@ int tn7atm_receive (void *os_dev, int ch
* 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 @@ printk("!!!free atm irq: tn7atm_exit\n")
kfree (dev->dev_data);
- // atm_dev_deregister (dev);
- shutdown_atm_dev (dev);
+ atm_dev_deregister (dev);
/*
* remove proc entries
@@ -2086,9 +2036,6 @@ static int __init tn7atm_detect (void)
* 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 @@ static int __init tn7atm_detect (void)
return -ENOMEM;
}
proc_root_already_exists = FALSE;
- }
/*
@@ -2731,7 +2677,5 @@ int tn7atm_proc_turbodsl_write(struct fi
return count;
}
-#ifdef MODULE
module_init (tn7atm_detect);
module_exit (tn7atm_exit);
-#endif /* MODULE */
--- a/tn7atm.h
+++ b/tn7atm.h
@@ -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>
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -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 @@ led_reg_t ledreg[2];
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 PITIDSLHW_T pIhw;
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 @@ int os_atoih (const char *pstr)
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 @@ void dprintf (int uDbgLevel, char *szFmt
#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 @@ unsigned int shim_osGetCpuFrequency(void
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 tn7dsl_init(void *priv)
int high_precision_selected = 0;
// UR8_MERGE_END CQ11054*
+ sema_init(&adsl_sem_overlay, 0);
/*
* start dsl
*/
@@ -3665,7 +3578,7 @@ static int dslmod_sysctl(ctl_table *ctl,
*/
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 @@ static int dslmod_sysctl(ctl_table *ctl,
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 @@ void tn7dsl_dslmod_sysctl_register(void)
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
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -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

View File

@@ -1,37 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -633,7 +633,7 @@ static int turbodsl_check_priority_type(
* 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 @@ static void tn7atm_sar_irq (int irq, voi
#ifdef TIATM_INST_SUPP
psp_trace_par (ATM_DRV_SAR_ISR_EXIT, retval);
#endif
+ return IRQ_HANDLED;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -669,7 +670,7 @@ static void tn7atm_sar_irq (int irq, voi
* 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 @@ static void tn7atm_dsl_irq (int irq, voi
#ifdef TIATM_INST_SUPP
psp_trace_par (ATM_DRV_DSL_ISR_EXIT, retval);
#endif
+
+ return IRQ_HANDLED;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -1,11 +0,0 @@
--- a/tn7api.h
+++ b/tn7api.h
@@ -118,7 +118,7 @@ int tn7dsl_proc_dbgmsg_write(struct file
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);

View File

@@ -1,44 +0,0 @@
--- a/dsl_hal_advcfg.c
+++ b/dsl_hal_advcfg.c
@@ -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 */
--- a/Makefile
+++ b/Makefile
@@ -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
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -3053,6 +3053,14 @@ static int tn7dsl_set_dsl(void)
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");

View File

@@ -1,16 +0,0 @@
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -125,10 +125,10 @@ enum
//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

View File

@@ -1,11 +0,0 @@
--- a/Makefile
+++ b/Makefile
@@ -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

View File

@@ -1,675 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -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 @@ static int __init tn7atm_irq_request (st
* 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); */
@@ -878,9 +1018,18 @@ static int __init tn7atm_get_ESI (struct
{
int i;
char esi_addr[ESI_LEN] = { 0x00, 0x00, 0x11, 0x22, 0x33, 0x44 };
- char *esiaddr_str = NULL;
+ char *esiaddr_str = mp_macc;
- esiaddr_str = prom_getenv ("macc");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("macdsl");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("macc");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("HWA_1");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("macb");
+ if (esiaddr_str == NULL)
+ esiaddr_str = prom_getenv ("maca");
if (!esiaddr_str)
{
@@ -2139,15 +2288,15 @@ static int tn7atm_autoDetectDspBoost (vo
//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 +2545,17 @@ static int __init tn7atm_init (struct at
// 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 +2563,17 @@ static int __init tn7atm_init (struct at
// 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 +2593,12 @@ static int __init tn7atm_init (struct at
// 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 +2612,33 @@ static int __init tn7atm_init (struct at
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
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -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 @@ static int tn7dsl_set_dsl(void)
(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 @@ static int tn7dsl_set_dsl(void)
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 @@ static int tn7dsl_set_dsl(void)
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 @@ static int tn7dsl_set_dsl(void)
// 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 @@ static int tn7dsl_set_dsl(void)
}
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 @@ int tn7dsl_init(void *priv)
* 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 @@ int tn7dsl_init(void *priv)
// 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)
{
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -76,6 +76,8 @@ typedef void OS_SETUP;
#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 @@ int tn7sar_setup_oam_channel(Tn7AtmPriva
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 @@ int tn7sar_init(struct atm_dev *dev, Tn7
/* 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);
}

View File

@@ -1,19 +0,0 @@
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -492,7 +492,6 @@ static void avsar_release(struct device
}
static struct device avsar = {
- .bus_id = "vlynq",
.release = avsar_release,
};
@@ -501,6 +500,8 @@ int shim_osLoadFWImage(unsigned char *pt
const struct firmware *fw_entry;
size_t size;
+ dev_set_name(&avsar, "avsar");
+
printk("requesting firmware image \"ar0700xx.bin\"\n");
if(device_register(&avsar) < 0) {
printk(KERN_ERR

View File

@@ -1,39 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -78,8 +78,8 @@
#include <linux/ctype.h>
#include <asm/io.h>
-#include <asm/ar7/ar7.h>
-#include <asm/ar7/prom.h>
+#include <asm/mach-ar7/ar7.h>
+#include <asm/mach-ar7/prom.h>
#include "dsl_hal_api.h"
#ifdef AR7_EFM
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -119,8 +119,8 @@
#include <linux/firmware.h>
#include <asm/io.h>
-#include <asm/ar7/ar7.h>
-#include <asm/ar7/prom.h>
+#include <asm/mach-ar7/ar7.h>
+#include <asm/mach-ar7/prom.h>
/* Modules specific header files */
#ifdef AR7_EFM
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -55,8 +55,8 @@
#include <linux/ctype.h>
#include <asm/io.h>
-#include <asm/ar7/ar7.h>
-#include <asm/ar7/prom.h>
+#include <asm/mach-ar7/ar7.h>
+#include <asm/mach-ar7/prom.h>
#define _CPHAL_AAL5
#define _CPHAL_SAR

View File

@@ -1,92 +0,0 @@
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -209,7 +209,7 @@ led_reg_t ledreg[2];
static struct led_funcs ledreg[2];
#endif
-#define DEV_DSLMOD CTL_UNNUMBERED
+#define DEV_DSLMOD 0
#define MAX_STR_SIZE 256
#define DSL_MOD_SIZE 256
@@ -350,8 +350,8 @@ static void tn7dsl_chng_modulation(void*
static unsigned int tn7dsl_set_modulation(void* data, int flag);
static void tn7dsl_ctrl_fineGain(int value);
static void tn7dsl_set_fineGainValue(int value);
-static int dslmod_sysctl (ctl_table * ctl, int write, struct file *filp,
- void *buffer, size_t * lenp);
+static int dslmod_sysctl (ctl_table * ctl, int write, void *buffer,
+ size_t * lenp, loff_t *ppos);
static void tn7dsl_register_dslss_led(void);
void tn7dsl_dslmod_sysctl_register(void);
void tn7dsl_dslmod_sysctl_unregister(void);
@@ -3582,8 +3582,8 @@ unsigned int tn7dsl_get_memory(unsigned
-static int dslmod_sysctl(ctl_table *ctl, int write, struct file * filp,
- void *buffer, size_t *lenp)
+static int dslmod_sysctl(ctl_table *ctl, int write, void *buffer,
+ size_t *lenp, loff_t *ppos)
{
char *ptr;
int ret, len = 0;
@@ -3595,7 +3595,7 @@ static int dslmod_sysctl(ctl_table *ctl,
char mod_req[16] = { '\t' };
char fst_byt;
- if (!*lenp || (filp->f_pos && !write))
+ if (!*lenp || (*ppos && !write))
{
*lenp = 0;
return 0;
@@ -3605,9 +3605,9 @@ static int dslmod_sysctl(ctl_table *ctl,
*/
if(write)
{
- ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
+ ret = proc_dostring(ctl, write, buffer, lenp, ppos);
- switch (ctl->ctl_name)
+ switch ((long)ctl->extra2)
{
case DEV_DSLMOD:
ptr = strpbrk(info, " \t");
@@ -3691,14 +3691,21 @@ static int dslmod_sysctl(ctl_table *ctl,
else
{
len += sprintf(info+len, mod_req);
- ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
+ ret = proc_dostring(ctl, write, buffer, lenp, ppos);
}
return ret;
}
ctl_table dslmod_table[] = {
- {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
+ {
+ .procname = "dslmod",
+ .data = info,
+ .maxlen = DSL_MOD_SIZE,
+ .mode = 0644,
+ .proc_handler = &dslmod_sysctl,
+ .extra2 = (void *)DEV_DSLMOD,
+ }
,
{0}
};
@@ -3706,7 +3713,12 @@ ctl_table dslmod_table[] = {
/* Make sure that /proc/sys/dev is there */
ctl_table dslmod_root_table[] = {
#ifdef CONFIG_PROC_FS
- {CTL_DEV, "dev", NULL, 0, 0555, dslmod_table}
+ {
+ .procname = "dev",
+ .maxlen = 0,
+ .mode = 0555,
+ .child = dslmod_table,
+ }
,
#endif /* CONFIG_PROC_FS */
{0}

View File

@@ -1,32 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -2003,7 +2003,7 @@ static int __init tn7atm_register (Tn7At
dgprintf (4, "device %s being registered\n", priv->name);
- mydev = atm_dev_register (priv->proc_name, &tn7atm_ops, -1, NULL);
+ mydev = atm_dev_register (priv->proc_name, NULL, &tn7atm_ops, -1, NULL);
if (mydev == NULL)
{
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -499,13 +499,16 @@ int shim_osLoadFWImage(unsigned char *pt
{
const struct firmware *fw_entry;
size_t size;
+ int ret;
dev_set_name(&avsar, "avsar");
printk("requesting firmware image \"ar0700xx.bin\"\n");
- if(device_register(&avsar) < 0) {
+ dev_set_name(&avsar, "avsar");
+ ret = device_register(&avsar);
+ if (ret < 0) {
printk(KERN_ERR
- "avsar: device_register fails\n");
+ "avsar: device_register fails, error%i\n", ret);
return -1;
}

View File

@@ -1,33 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -72,7 +72,7 @@
#include <linux/atmdev.h>
#include <linux/delay.h>
#include <linux/spinlock.h>
-#include <linux/smp_lock.h>
+#include <linux/interrupt.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/ctype.h>
--- a/tn7sar.c
+++ b/tn7sar.c
@@ -49,7 +49,7 @@
#include <linux/atmdev.h>
#include <linux/delay.h>
#include <linux/spinlock.h>
-#include <linux/smp_lock.h>
+#include <linux/interrupt.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/ctype.h>
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -108,7 +108,7 @@
#include <linux/atmdev.h>
#include <linux/delay.h>
#include <linux/spinlock.h>
-#include <linux/smp_lock.h>
+#include <linux/interrupt.h>
#include <linux/proc_fs.h>
#include <linux/string.h>
#include <linux/ctype.h>

View File

@@ -1,38 +0,0 @@
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -350,7 +350,7 @@ static void tn7dsl_chng_modulation(void*
static unsigned int tn7dsl_set_modulation(void* data, int flag);
static void tn7dsl_ctrl_fineGain(int value);
static void tn7dsl_set_fineGainValue(int value);
-static int dslmod_sysctl (ctl_table * ctl, int write, void *buffer,
+static int dslmod_sysctl (struct ctl_table * ctl, int write, void *buffer,
size_t * lenp, loff_t *ppos);
static void tn7dsl_register_dslss_led(void);
void tn7dsl_dslmod_sysctl_register(void);
@@ -3488,7 +3488,7 @@ unsigned int tn7dsl_get_memory(unsigned
-static int dslmod_sysctl(ctl_table *ctl, int write, void *buffer,
+static int dslmod_sysctl(struct ctl_table *ctl, int write, void *buffer,
size_t *lenp, loff_t *ppos)
{
char *ptr;
@@ -3603,7 +3603,7 @@ static int dslmod_sysctl(ctl_table *ctl,
}
-ctl_table dslmod_table[] = {
+struct ctl_table dslmod_table[] = {
{
.procname = "dslmod",
.data = info,
@@ -3617,7 +3617,7 @@ ctl_table dslmod_table[] = {
};
/* Make sure that /proc/sys/dev is there */
-ctl_table dslmod_root_table[] = {
+struct ctl_table dslmod_root_table[] = {
#ifdef CONFIG_PROC_FS
{
.procname = "dev",

View File

@@ -1,20 +0,0 @@
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -845,7 +845,7 @@ static int __init tn7atm_irq_request (st
priv->sar_irq = LNXINTNUM (ATM_SAR_INT); /* Interrupt line # */
- if (request_irq (priv->sar_irq, tn7atm_sar_irq, IRQF_DISABLED, "SAR ", dev))
+ if (request_irq (priv->sar_irq, tn7atm_sar_irq, 0, "SAR ", dev))
printk ("Could not register tn7atm_sar_irq\n");
/*
@@ -869,7 +869,7 @@ static int __init tn7atm_irq_request (st
* Reigster Receive interrupt A
*/
priv->dsl_irq = LNXINTNUM (ATM_DSL_INT); /* Interrupt line # */
- if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, IRQF_DISABLED, "DSL ", dev))
+ if (request_irq (priv->dsl_irq, tn7atm_dsl_irq, 0, "DSL ", dev))
printk ("Could not register tn7atm_dsl_irq\n");
/***** VRB Tasklet Mode ****/

View File

@@ -1,63 +0,0 @@
--- a/cpswhal_cpsar.h
+++ b/cpswhal_cpsar.h
@@ -437,10 +437,10 @@ typedef struct
int (*DeviceFindInfo)(int Inst, const char *DeviceName, void *DeviceInfo);
int (*DeviceFindParmUint)(void *DeviceInfo, const char *Parm, bit32u *Value);
int (*DeviceFindParmValue)(void *DeviceInfo, const char *Parm, void *Value);
- void (*Free)(void *MemPtr);
+ void (*Free)(const void *MemPtr);
void (*FreeRxBuffer)(OS_RECEIVEINFO *OsReceiveInfo, void *MemPtr);
- void (*FreeDev)(void *MemPtr);
- void (*FreeDmaXfer)(void *MemPtr);
+ void (*FreeDev)(const void *MemPtr);
+ void (*FreeDmaXfer)(const void *MemPtr);
void (*IsrRegister)(OS_DEVICE *OsDev, int (*halISR)(HAL_DEVICE*, int*), int InterruptBit);
void (*IsrUnRegister)(OS_DEVICE *OsDev, int InterruptBit);
void* (*Malloc)(bit32u size);
--- a/cpswhal_cpaal5.h
+++ b/cpswhal_cpaal5.h
@@ -436,10 +436,10 @@ typedef struct
int (*DeviceFindInfo)(int Inst, const char *DeviceName, void *DeviceInfo);
int (*DeviceFindParmUint)(void *DeviceInfo, const char *Parm, bit32u *Value);
int (*DeviceFindParmValue)(void *DeviceInfo, const char *Parm, void *Value);
- void (*Free)(void *MemPtr);
+ void (*Free)(const void *MemPtr);
void (*FreeRxBuffer)(OS_RECEIVEINFO *OsReceiveInfo, void *MemPtr);
- void (*FreeDev)(void *MemPtr);
- void (*FreeDmaXfer)(void *MemPtr);
+ void (*FreeDev)(const void *MemPtr);
+ void (*FreeDmaXfer)(const void *MemPtr);
void (*IsrRegister)(OS_DEVICE *OsDev, int (*halISR)(HAL_DEVICE*, int*), int InterruptBit);
void (*IsrUnRegister)(OS_DEVICE *OsDev, int InterruptBit);
void* (*Malloc)(bit32u size);
--- a/tn7atm.c
+++ b/tn7atm.c
@@ -2690,7 +2690,7 @@ static int tn7atm_proc_turbodsl_read(str
return 0;
}
-static int tn7atm_proc_qos_write(struct file *fp, const char *buf, unsigned long count, void *data)
+static int tn7atm_proc_qos_write(struct file *fp, const char *buf, size_t count, loff_t *data)
{
char local_buf[32];
--- a/tn7dsl.c
+++ b/tn7dsl.c
@@ -1770,7 +1770,7 @@ static int tn7dsl_proc_stats_open(struct
return single_open(file, tn7dsl_proc_stats, PDE_DATA(inode));
}
-int tn7dsl_proc_write_stats(struct file *fp, const char * buf, unsigned long count, void * data);
+int tn7dsl_proc_write_stats(struct file *fp, const char * buf, size_t count, loff_t * data);
struct file_operations tn7dsl_proc_stats_fops = {
.owner = THIS_MODULE,
@@ -4436,7 +4436,7 @@ int tn7dsl_generic_write( int offsetnum,
}
int tn7dsl_proc_write_stats (struct file *fp, const char *buf,
- unsigned long count, void *data)
+ size_t count, loff_t *data)
{
char local_buf[31];
int ret_val = 0;