diff options
Diffstat (limited to 'package/network/config/ltq-vdsl-vr11-app/patches')
4 files changed, 233 insertions, 0 deletions
diff --git a/package/network/config/ltq-vdsl-vr11-app/patches/100-compat.patch b/package/network/config/ltq-vdsl-vr11-app/patches/100-compat.patch new file mode 100644 index 0000000000..6bc359c3cc --- /dev/null +++ b/package/network/config/ltq-vdsl-vr11-app/patches/100-compat.patch @@ -0,0 +1,11 @@ +--- a/src/dsl_cpe_init_cfg.c ++++ b/src/dsl_cpe_init_cfg.c +@@ -38,7 +38,7 @@ DSL_InitData_t gInitCfgData = + DSL_DEV_HS_TONE_GROUP_CLEANED, \ + DSL_DEV_HS_TONE_GROUP_CLEANED, \ + DSL_DEV_HS_TONE_GROUP_CLEANED, \ +- 0x1E116000, 0x37, -1), ++ 0x1E116000, 0x3f, -1), + DSL_CPE_SIC_SET(DSL_TC_ATM, DSL_EMF_TC_CLEANED, DSL_EMF_TC_CLEANED, DSL_SYSTEMIF_MII, \ + DSL_TC_EFM, DSL_EMF_TC_CLEANED, DSL_EMF_TC_CLEANED, DSL_SYSTEMIF_MII), + DSL_CPE_MAC_CFG_SET(DSL_EFM_SPEED_100, DSL_EFM_DUPLEX_FULL, DSL_EFM_FLOWCTRL_ON, DSL_EFM_AUTONEG_OFF, \ diff --git a/package/network/config/ltq-vdsl-vr11-app/patches/101-warnings.patch b/package/network/config/ltq-vdsl-vr11-app/patches/101-warnings.patch new file mode 100644 index 0000000000..0c02bb17b7 --- /dev/null +++ b/package/network/config/ltq-vdsl-vr11-app/patches/101-warnings.patch @@ -0,0 +1,87 @@ +--- a/src/dsl_cpe_control.h ++++ b/src/dsl_cpe_control.h +@@ -13,6 +13,8 @@ + #ifndef _DSL_CPE_CONTROL_H + #define _DSL_CPE_CONTROL_H + ++#include <string.h> ++ + /** \defgroup DSL_CPE_CONTROL Lantiq DSL CPE API Control Application + Lists the entire modules to the DSL CPE_API Control Application. + @{ */ +--- a/src/dsl_cpe_safec_wrapper.h ++++ b/src/dsl_cpe_safec_wrapper.h +@@ -23,7 +23,7 @@ + #define cpe_control_vsnprintf_s vsnprintf_s + + /* snprintf_s symbol is not exported in SafeC lib */ +-static int cpe_control_snprintf_s(char *dest, ++static inline int cpe_control_snprintf_s(char *dest, + size_t dmax, + const char *fmt, + ...) +@@ -40,7 +40,7 @@ static int cpe_control_snprintf_s(char * + + #else + +-#warning "Safe C library is not available!" ++//#warning "Safe C library is not available!" + + #include <stddef.h> /* size_t */ + #include <stdarg.h> /* va_list */ +@@ -55,7 +55,7 @@ static __inline__ size_t safec_wrapper_m + #define cpe_control_memset_s(dest, destsz, src, srcsz) memset(dest, src, safec_wrapper_min(destsz,srcsz)) + #define cpe_control_strncpy_s(dest, destsz, src, srcsz) strncpy(dest, src, safec_wrapper_min(destsz,srcsz)) + +-static size_t cpe_control_strnlen_s(const char *str, ++static inline size_t cpe_control_strnlen_s(const char *str, + size_t smax) + { + /* preconditions */ +@@ -74,7 +74,7 @@ static size_t cpe_control_strnlen_s(cons + return size; + } + +-static char *cpe_control_strtok_s(char *dest, ++static inline char *cpe_control_strtok_s(char *dest, + size_t *dmax, + const char *delim, + char **ptr) +@@ -123,7 +123,7 @@ static char *cpe_control_strtok_s(char * + return pTmp; + } + +-static int cpe_control_pipe_strcat_s(char *dest, ++static inline int cpe_control_pipe_strcat_s(char *dest, + size_t destsz, + char *src) + { +@@ -157,7 +157,7 @@ static int cpe_control_pipe_strcat_s(cha + return 0; + } + +-static int cpe_control_snprintf_s(char *dest, ++static inline int cpe_control_snprintf_s(char *dest, + size_t dmax, + const char *fmt, + ...) +@@ -181,7 +181,7 @@ static int cpe_control_snprintf_s(char * + return retVal; + } + +-static int cpe_control_vsnprintf_s(char *dest, ++static inline int cpe_control_vsnprintf_s(char *dest, + size_t dmax, + const char *fmt, + va_list vlist) +--- a/tools/pipe/dsl_cpe_safec_wrapper.h ++++ b/tools/pipe/dsl_cpe_safec_wrapper.h +@@ -27,7 +27,7 @@ + + #else + +-#warning "Safe C library is not available!" ++//#warning "Safe C library is not available!" + + #include <stddef.h> /* size_t */ + static __inline__ size_t safec_wrapper_min(size_t a, size_t b) diff --git a/package/network/config/ltq-vdsl-vr11-app/patches/200-autoboot.patch b/package/network/config/ltq-vdsl-vr11-app/patches/200-autoboot.patch new file mode 100644 index 0000000000..c3e9b96620 --- /dev/null +++ b/package/network/config/ltq-vdsl-vr11-app/patches/200-autoboot.patch @@ -0,0 +1,85 @@ +This enables automatic connection after the control daemon is started, +and also changes the way the connection is stopped on termination. + +Using the autoboot restart command is necessary because the stop command +would stop the autoboot thread, and the driver offers no working way to +start it again later, short of unloading and reloading the module. + +--- a/src/dsl_cpe_init_cfg.c ++++ b/src/dsl_cpe_init_cfg.c +@@ -27,7 +27,7 @@ DSL_InitData_t gInitCfgData = + DSL_CPE_FW2_SET(DSL_NULL, 0x0), + DSL_CPE_XTU_SET(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7), + DSL_CPE_LINE_INV_NE_SET(DSL_NULL), +- DSL_CPE_AUTOBOOT_CTRL_SET(DSL_AUTOBOOT_CTRL_STOP), ++ DSL_CPE_AUTOBOOT_CTRL_SET(DSL_AUTOBOOT_CTRL_START), + DSL_CPE_AUTOBOOT_CFG_SET(DSL_FALSE, DSL_FALSE, DSL_FALSE), + DSL_CPE_TEST_MODE_CTRL_SET(DSL_TESTMODE_DISABLE), + DSL_CPE_LINE_ACTIVATE_CTRL_SET(DSL_G997_INHIBIT_LDSF, DSL_G997_INHIBIT_ACSF, DSL_G997_NORMAL_STARTUP), +--- a/src/dsl_cpe_control.c ++++ b/src/dsl_cpe_control.c +@@ -7338,6 +7338,7 @@ DSL_CPE_STATIC DSL_void_t DSL_CPE_Termi + { + DSL_Error_t nRet = DSL_SUCCESS; + DSL_int_t nDevice = 0; ++ DSL_AutobootConfig_t sAutobootCfg; + DSL_AutobootControl_t sAutobootCtl; + DSL_CPE_Control_Context_t *pCtrlCtx = DSL_NULL; + +@@ -7349,8 +7350,32 @@ DSL_CPE_STATIC DSL_void_t DSL_CPE_Termi + + for (nDevice = 0; nDevice < DSL_CPE_DSL_ENTITIES; ++nDevice) + { ++ g_bWaitBeforeConfigWrite[nDevice] = DSL_TRUE; ++ g_bWaitBeforeLinkActivation[nDevice] = DSL_TRUE; ++ g_bWaitBeforeRestart[nDevice] = DSL_TRUE; ++ ++ g_bAutoContinueWaitBeforeConfigWrite[nDevice] = DSL_FALSE; ++ g_bAutoContinueWaitBeforeLinkActivation[nDevice] = DSL_FALSE; ++ g_bAutoContinueWaitBeforeRestart[nDevice] = DSL_FALSE; ++ ++ memset(&sAutobootCfg, 0x0, sizeof(DSL_AutobootConfig_t)); ++ sAutobootCfg.data.nStateMachineOptions.bWaitBeforeConfigWrite = DSL_TRUE; ++ sAutobootCfg.data.nStateMachineOptions.bWaitBeforeLinkActivation = DSL_TRUE; ++ sAutobootCfg.data.nStateMachineOptions.bWaitBeforeRestart = DSL_TRUE; ++ ++ nRet = (DSL_Error_t)DSL_CPE_Ioctl( ++ DSL_CPE_GetGlobalContext()->fd[nDevice], ++ DSL_FIO_AUTOBOOT_CONFIG_SET, (DSL_int_t)&sAutobootCfg); ++ ++ if (nRet < DSL_SUCCESS) ++ { ++ DSL_CCA_DEBUG(DSL_CCA_DBG_ERR, (DSL_CPE_PREFIX ++ "Autoboot configuration for device (%d) failed!, nRet = %d!" ++ DSL_CPE_CRLF, nDevice, sAutobootCtl.accessCtl.nReturn)); ++ } ++ + memset(&sAutobootCtl, 0, sizeof(DSL_AutobootControl_t)); +- sAutobootCtl.data.nCommand = DSL_AUTOBOOT_CTRL_STOP; ++ sAutobootCtl.data.nCommand = DSL_AUTOBOOT_CTRL_RESTART; + + nRet = (DSL_Error_t)DSL_CPE_Ioctl( + DSL_CPE_GetGlobalContext()->fd[nDevice], +@@ -7359,13 +7384,13 @@ DSL_CPE_STATIC DSL_void_t DSL_CPE_Termi + if (nRet < DSL_SUCCESS) + { + DSL_CCA_DEBUG(DSL_CCA_DBG_ERR, (DSL_CPE_PREFIX +- "Autoboot stop for device (%d) failed!, nRet = %d!" ++ "Autoboot restart for device (%d) failed!, nRet = %d!" + DSL_CPE_CRLF, nDevice, sAutobootCtl.accessCtl.nReturn)); + } + } + + DSL_CCA_DEBUG(DSL_CCA_DBG_MSG, (DSL_CPE_PREFIX +- "Autoboot stop executed" DSL_CPE_CRLF)); ++ "Autoboot restart executed" DSL_CPE_CRLF)); + + DSL_CPE_DaemonExit(); + +@@ -8798,4 +8823,4 @@ DSL_CPE_STATIC DSL_Error_t DSL_CPE_Firmw + pDecimal)); + + return nErrCode; +-} +\ No newline at end of file ++} diff --git a/package/network/config/ltq-vdsl-vr11-app/patches/300-ubus.patch b/package/network/config/ltq-vdsl-vr11-app/patches/300-ubus.patch new file mode 100644 index 0000000000..fc0dd70bc1 --- /dev/null +++ b/package/network/config/ltq-vdsl-vr11-app/patches/300-ubus.patch @@ -0,0 +1,50 @@ +--- a/src/dsl_cpe_control.c ++++ b/src/dsl_cpe_control.c +@@ -221,6 +221,9 @@ extern DSL_Error_t DSL_CPE_Pipe_StaticRe + #endif /* INCLUDE_DSL_RESOURCE_STATISTICS*/ + #endif + ++extern void ubus_init(); ++extern void ubus_deinit(); ++ + DSL_char_t *g_sFirmwareName1 = DSL_NULL; + DSL_FirmwareFeatures_t g_nFwFeatures1 = {DSL_FW_XDSLMODE_CLEANED, DSL_FW_XDSLFEATURE_CLEANED, + DSL_FW_XDSLFEATURE_CLEANED}; +@@ -7831,6 +7834,8 @@ DSL_int_t dsl_cpe_daemon ( + #endif /* defined(INCLUDE_DSL_JSON_PARSING) && (INCLUDE_DSL_JSON_PARSING == 1) */ + #endif /* RTEMS*/ + ++ ubus_init(); ++ + /* Open DSL_CPE_MAX_DSL_ENTITIES devices*/ + for (nDevice = 0; nDevice < DSL_CPE_DSL_ENTITIES; nDevice++) + { +@@ -8367,6 +8372,7 @@ DSL_int_t dsl_cpe_daemon ( + #endif /* INCLUDE_DSL_CPE_CLI_SUPPORT */ + + DSL_CPE_CONTROL_EXIT: ++ ubus_deinit(); + + if (INCLUDE_DSL_BONDING) + { +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -17,7 +17,7 @@ else + dsl_cpe_control_common_ldflags = + endif + +-dsl_cpe_control_LDADD = -lpthread -lrt ++dsl_cpe_control_LDADD = -lpthread -lrt -lubox -lubus + + if INCLUDE_DSL_CPE_DTI_SUPPORT + dsl_cpe_control_LDADD += -ldti_agent +@@ -118,7 +118,8 @@ dsl_cpe_control_SOURCES = \ + dsl_cpe_control.c \ + dsl_cpe_init_cfg.c \ + dsl_cpe_linux.c \ +- dsl_cpe_debug.c ++ dsl_cpe_debug.c \ ++ dsl_cpe_ubus.c + + dsl_cpe_control_SOURCES += \ + $(dsl_cpe_control_dti_sources) |