Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
@@ -6,9 +6,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git
|
||||
PKG_SOURCE_DATE:=2025-10-14
|
||||
PKG_SOURCE_VERSION:=821d27b582c130ab65b7d20d0dfcbade7cdaf623
|
||||
PKG_MIRROR_HASH:=1e2959037baa5cfb24d931f9ad9b8f9a732d93810fce91a836ca7ed4d46ad7b0
|
||||
PKG_SOURCE_DATE:=2025-10-17
|
||||
PKG_SOURCE_VERSION:=a1529e183333e38bdc95dc8d9317b7af2bec0dcd
|
||||
PKG_MIRROR_HASH:=30ce8f808424602cba556e106cb16080ef29d6d45a9d9018e04664598460eb2f
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
@@ -185,7 +185,7 @@ static void *g_xdata_addr = NULL;
|
||||
static u32 *mei_arc_swap_buff = NULL; // holding swap pages
|
||||
|
||||
extern void ltq_mask_and_ack_irq(struct irq_data *d);
|
||||
static void inline MEI_MASK_AND_ACK_IRQ(int x)
|
||||
static inline void MEI_MASK_AND_ACK_IRQ(int x)
|
||||
{
|
||||
struct irq_data d;
|
||||
d.hwirq = x;
|
||||
@@ -1178,7 +1178,7 @@ DSL_BSP_AdslLedSet (DSL_DEV_Device_t * dev, DSL_DEV_LedId_t led_number, DSL_DEV_
|
||||
* \param CMVMSG The pointer to message buffer.
|
||||
* \ingroup Internal
|
||||
*/
|
||||
void
|
||||
static void
|
||||
makeCMV (u8 opcode, u8 group, u16 address, u16 index, int size, u16 * data, u16 *CMVMSG)
|
||||
{
|
||||
memset (CMVMSG, 0, MSG_LENGTH * 2);
|
||||
@@ -2451,7 +2451,7 @@ IFX_MEI_IoctlCopyTo (int from_kernel, char *dest, char *from, int size)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
IFX_MEI_Ioctls (DSL_DEV_Device_t * pDev, int from_kernel, unsigned int command, unsigned long lon)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
@@ -618,6 +618,9 @@ extern DSL_DEV_MeiError_t DSL_BSP_Showtime(DSL_DEV_Device_t *, DSL_uint32_t, DSL
|
||||
extern int DSL_BSP_ATMLedCBRegister( int (*ifx_adsl_ledcallback)(void));
|
||||
extern DSL_DEV_MeiError_t DSL_BSP_MemoryDebugAccess(DSL_DEV_Device_t *, DSL_BSP_MemoryAccessType_t, DSL_uint32_t, DSL_uint32_t *, DSL_uint32_t);
|
||||
extern volatile DSL_DEV_Device_t *adsl_dev;
|
||||
extern int DSL_BSP_ATMLedCBUnregister (int (*ifx_adsl_ledcallback) (void));
|
||||
extern int ifx_mei_atm_led_blink(void);
|
||||
extern int ifx_mei_atm_showtime_check(int *is_showtime, struct port_cell_info *port_cell, void **xdata_addr);
|
||||
|
||||
/**
|
||||
* Dummy structure by now to show mechanism of extended data that will be
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 20:01:14 +0800
|
||||
Subject: [PATCH] add missing header platform_device.h
|
||||
|
||||
Fix compilation error:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-dsl-danube/drv_dsl_cpe_api-3.24.4.4/src/common/drv_dsl_cpe_os_linux.c:1155:15: error: variable 'ltq_adsl_driver' has initializer but incomplete type
|
||||
1155 | static struct platform_driver ltq_adsl_driver = {
|
||||
| ^~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/common/drv_dsl_cpe_os_linux.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/src/common/drv_dsl_cpe_os_linux.c
|
||||
+++ b/src/common/drv_dsl_cpe_os_linux.c
|
||||
@@ -13,6 +13,7 @@
|
||||
#define DSL_INTERN
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/of_platform.h>
|
||||
+#include <linux/platform_device.h>
|
||||
|
||||
#include "drv_dsl_cpe_api.h"
|
||||
#include "drv_dsl_cpe_api_ioctl.h"
|
||||
@@ -0,0 +1,32 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 20:58:09 +0800
|
||||
Subject: [PATCH] silence missing-prototypes warnings
|
||||
|
||||
This patch silences various missing-prototypes build warnings on
|
||||
6.12 kernel.
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/Makefile.am | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -299,6 +299,8 @@ if KERNEL_2_6
|
||||
|
||||
drv_dsl_cpe_api_OBJS = "$(subst .c,.o,$(filter %.c,$(drv_dsl_cpe_api_SOURCES)))"
|
||||
|
||||
+PKGFIX_CFLAGS = -Wno-error=missing-prototypes
|
||||
+
|
||||
drv_dsl_cpe_api.ko: $(drv_dsl_cpe_api_SOURCES)
|
||||
@echo "drv_dsl_cpe_api: Making Linux 2.6.x kernel object"
|
||||
if test ! -e common/drv_dsl_cpe_api.c ; then \
|
||||
@@ -311,7 +313,7 @@ drv_dsl_cpe_api.ko: $(drv_dsl_cpe_api_SO
|
||||
@echo "# drv_dsl_cpe_api: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild
|
||||
@echo "obj-m := $(subst .ko,.o,$@)" >> $(PWD)/Kbuild
|
||||
@echo "$(subst .ko,,$@)-y := $(drv_dsl_cpe_api_OBJS)" >> $(PWD)/Kbuild
|
||||
- @echo "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include" >> $(PWD)/Kbuild
|
||||
+ @echo "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_dsl_cpe_api_CFLAGS) $(PKGFIX_CFLAGS) $(DSL_DRIVER_INCL_PATH) $(IFXOS_INCLUDE_PATH) -I@abs_srcdir@/include -I$(PWD)/include" >> $(PWD)/Kbuild
|
||||
$(MAKE) ARCH=@KERNEL_ARCH@ -C @KERNEL_BUILD_PATH@ O=@KERNEL_BUILD_PATH@ M=$(PWD) modules
|
||||
|
||||
clean-generic:
|
||||
@@ -1,12 +0,0 @@
|
||||
--- a/ltq_atm.c
|
||||
+++ b/ltq_atm.c
|
||||
@@ -338,7 +338,8 @@ static int ppe_ioctl(struct atm_dev *dev
|
||||
break;
|
||||
|
||||
case PPE_ATM_MIB_VCC: /* VCC related MIB */
|
||||
- copy_from_user(&mib_vcc, arg, sizeof(mib_vcc));
|
||||
+ if (copy_from_user(&mib_vcc, arg, sizeof(mib_vcc)))
|
||||
+ return -EFAULT;
|
||||
conn = find_vpivci(mib_vcc.vpi, mib_vcc.vci);
|
||||
if (conn >= 0) {
|
||||
mib_vcc.mib_vcc.aal5VccCrcErrors = g_atm_priv_data.conn[conn].aal5_vcc_crc_err;
|
||||
@@ -254,7 +254,7 @@ static inline int pp32_download_code(u32 *code_src, unsigned int code_dword_len,
|
||||
* ####################################
|
||||
*/
|
||||
|
||||
extern void ase_fw_ver(unsigned int *major, unsigned int *minor)
|
||||
static void ase_fw_ver(unsigned int *major, unsigned int *minor)
|
||||
{
|
||||
ASSERT(major != NULL, "pointer is NULL");
|
||||
ASSERT(minor != NULL, "pointer is NULL");
|
||||
@@ -263,7 +263,7 @@ extern void ase_fw_ver(unsigned int *major, unsigned int *minor)
|
||||
*minor = FW_VER_ID->minor;
|
||||
}
|
||||
|
||||
int ase_init(struct platform_device *pdev)
|
||||
static int ase_init(struct platform_device *pdev)
|
||||
{
|
||||
init_pmu();
|
||||
|
||||
@@ -280,7 +280,7 @@ int ase_init(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ase_shutdown(void)
|
||||
static void ase_shutdown(void)
|
||||
{
|
||||
uninit_pmu();
|
||||
}
|
||||
@@ -294,7 +294,7 @@ void ase_shutdown(void)
|
||||
* int --- 0: Success
|
||||
* else: Error Code
|
||||
*/
|
||||
int ase_start(int pp32)
|
||||
static int ase_start(int pp32)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -320,7 +320,7 @@ int ase_start(int pp32)
|
||||
* Output:
|
||||
* none
|
||||
*/
|
||||
void ase_stop(int pp32)
|
||||
static void ase_stop(int pp32)
|
||||
{
|
||||
/* halt PP32 */
|
||||
IFX_REG_W32(DBG_CTRL_STOP, PP32_DBG_CTRL);
|
||||
|
||||
@@ -185,7 +185,7 @@ static inline int pp32_download_code(u32 *code_src, unsigned int code_dword_len,
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ar9_fw_ver(unsigned int *major, unsigned int *minor)
|
||||
static void ar9_fw_ver(unsigned int *major, unsigned int *minor)
|
||||
{
|
||||
ASSERT(major != NULL, "pointer is NULL");
|
||||
ASSERT(minor != NULL, "pointer is NULL");
|
||||
@@ -194,7 +194,7 @@ void ar9_fw_ver(unsigned int *major, unsigned int *minor)
|
||||
*minor = FW_VER_ID->minor;
|
||||
}
|
||||
|
||||
int ar9_init(struct platform_device *pdev)
|
||||
static int ar9_init(struct platform_device *pdev)
|
||||
{
|
||||
init_pmu();
|
||||
reset_ppe(pdev);
|
||||
@@ -205,7 +205,7 @@ int ar9_init(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ar9_shutdown(void)
|
||||
static void ar9_shutdown(void)
|
||||
{
|
||||
ltq_pmu_disable(IFX_PMU_MODULE_PPE_SLL01 |
|
||||
IFX_PMU_MODULE_PPE_TC |
|
||||
@@ -215,7 +215,7 @@ void ar9_shutdown(void)
|
||||
IFX_PMU_MODULE_DSL_DFE);
|
||||
}
|
||||
|
||||
int ar9_start(int pp32)
|
||||
static int ar9_start(int pp32)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -231,7 +231,7 @@ int ar9_start(int pp32)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ar9_stop(int pp32)
|
||||
static void ar9_stop(int pp32)
|
||||
{
|
||||
IFX_REG_W32(DBG_CTRL_STOP, PP32_DBG_CTRL(0));
|
||||
}
|
||||
|
||||
@@ -198,7 +198,7 @@ static void danube_shutdown(void)
|
||||
{
|
||||
}
|
||||
|
||||
int danube_start(int pp32)
|
||||
static int danube_start(int pp32)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -218,7 +218,7 @@ int danube_start(int pp32)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void danube_stop(int pp32)
|
||||
static void danube_stop(int pp32)
|
||||
{
|
||||
IFX_REG_W32(DBG_CTRL_STOP_SET(1), PP32_DBG_CTRL);
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/atmdev.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/atm.h>
|
||||
@@ -338,7 +339,8 @@ static int ppe_ioctl(struct atm_dev *dev, unsigned int cmd, void *arg)
|
||||
break;
|
||||
|
||||
case PPE_ATM_MIB_VCC: /* VCC related MIB */
|
||||
copy_from_user(&mib_vcc, arg, sizeof(mib_vcc));
|
||||
if (copy_from_user(&mib_vcc, arg, sizeof(mib_vcc)))
|
||||
return -EFAULT;
|
||||
conn = find_vpivci(mib_vcc.vpi, mib_vcc.vci);
|
||||
if (conn >= 0) {
|
||||
mib_vcc.mib_vcc.aal5VccCrcErrors = g_atm_priv_data.conn[conn].aal5_vcc_crc_err;
|
||||
|
||||
@@ -148,7 +148,7 @@ extern int disable_multiblock;
|
||||
* \param key_len key lengths of 16, 24 and 32 bytes supported
|
||||
* \return -EINVAL - bad key length, 0 - SUCCESS
|
||||
*/
|
||||
int aes_set_key (struct crypto_tfm *tfm, const u8 *in_key, unsigned int key_len)
|
||||
static int aes_set_key (struct crypto_tfm *tfm, const u8 *in_key, unsigned int key_len)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
|
||||
|
||||
@@ -177,7 +177,7 @@ int aes_set_key (struct crypto_tfm *tfm, const u8 *in_key, unsigned int key_len)
|
||||
* \param key_len key lengths of 16, 24 and 32 bytes supported
|
||||
* \return -EINVAL - bad key length, 0 - SUCCESS
|
||||
*/
|
||||
int aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
|
||||
static int aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
|
||||
{
|
||||
return aes_set_key(crypto_skcipher_tfm(tfm), in_key, key_len);
|
||||
}
|
||||
@@ -189,7 +189,7 @@ int aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigne
|
||||
* \param ctx_arg crypto algo context
|
||||
* \return
|
||||
*/
|
||||
void aes_set_key_hw (void *ctx_arg)
|
||||
static void aes_set_key_hw (void *ctx_arg)
|
||||
{
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
|
||||
volatile struct aes_t *aes = (volatile struct aes_t *) AES_START;
|
||||
@@ -343,7 +343,7 @@ void ifx_deu_aes (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
|
||||
* \return 0 - SUCCESS
|
||||
* -EINVAL - bad key length
|
||||
*/
|
||||
int ctr_rfc3686_aes_set_key (struct crypto_tfm *tfm, const uint8_t *in_key, unsigned int key_len)
|
||||
static int ctr_rfc3686_aes_set_key (struct crypto_tfm *tfm, const uint8_t *in_key, unsigned int key_len)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
|
||||
|
||||
@@ -376,7 +376,7 @@ int ctr_rfc3686_aes_set_key (struct crypto_tfm *tfm, const uint8_t *in_key, unsi
|
||||
* \return 0 - SUCCESS
|
||||
* -EINVAL - bad key length
|
||||
*/
|
||||
int ctr_rfc3686_aes_set_key_skcipher (struct crypto_skcipher *tfm, const uint8_t *in_key, unsigned int key_len)
|
||||
static int ctr_rfc3686_aes_set_key_skcipher (struct crypto_skcipher *tfm, const uint8_t *in_key, unsigned int key_len)
|
||||
{
|
||||
return ctr_rfc3686_aes_set_key(crypto_skcipher_tfm(tfm), in_key, key_len);
|
||||
}
|
||||
@@ -413,7 +413,7 @@ int ctr_rfc3686_aes_set_key_skcipher (struct crypto_skcipher *tfm, const uint8_t
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
* \param inplace not used
|
||||
*/
|
||||
void ifx_deu_aes_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
static void ifx_deu_aes_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_aes (ctx, dst, src, NULL, nbytes, encdec, 0);
|
||||
@@ -430,7 +430,7 @@ void ifx_deu_aes_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
* \param inplace not used
|
||||
*/
|
||||
void ifx_deu_aes_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
static void ifx_deu_aes_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_aes (ctx, dst, src, iv, nbytes, encdec, 1);
|
||||
@@ -447,7 +447,7 @@ void ifx_deu_aes_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
* \param inplace not used
|
||||
*/
|
||||
void ifx_deu_aes_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
static void ifx_deu_aes_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_aes (ctx, dst, src, iv, nbytes, encdec, 2);
|
||||
@@ -464,7 +464,7 @@ void ifx_deu_aes_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
* \param inplace not used
|
||||
*/
|
||||
void ifx_deu_aes_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
static void ifx_deu_aes_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_aes (ctx, dst, src, iv, nbytes, encdec, 3);
|
||||
@@ -481,7 +481,7 @@ void ifx_deu_aes_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
* \param inplace not used
|
||||
*/
|
||||
void ifx_deu_aes_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
static void ifx_deu_aes_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_aes (ctx, dst, src, iv, nbytes, encdec, 4);
|
||||
@@ -494,7 +494,7 @@ void ifx_deu_aes_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
* \param out output bytestream
|
||||
* \param in input bytestream
|
||||
*/
|
||||
void ifx_deu_aes_encrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
|
||||
static void ifx_deu_aes_encrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
|
||||
ifx_deu_aes (ctx, out, in, NULL, AES_BLOCK_SIZE,
|
||||
@@ -508,7 +508,7 @@ void ifx_deu_aes_encrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *i
|
||||
* \param out output bytestream
|
||||
* \param in input bytestream
|
||||
*/
|
||||
void ifx_deu_aes_decrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
|
||||
static void ifx_deu_aes_decrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(tfm);
|
||||
ifx_deu_aes (ctx, out, in, NULL, AES_BLOCK_SIZE,
|
||||
@@ -544,7 +544,7 @@ struct crypto_alg ifxdeu_aes_alg = {
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ecb_aes_encrypt(struct skcipher_request *req)
|
||||
static int ecb_aes_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -570,7 +570,7 @@ int ecb_aes_encrypt(struct skcipher_request *req)
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ecb_aes_decrypt(struct skcipher_request *req)
|
||||
static int ecb_aes_decrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -615,7 +615,7 @@ struct skcipher_alg ifxdeu_ecb_aes_alg = {
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int cbc_aes_encrypt(struct skcipher_request *req)
|
||||
static int cbc_aes_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -642,7 +642,7 @@ int cbc_aes_encrypt(struct skcipher_request *req)
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int cbc_aes_decrypt(struct skcipher_request *req)
|
||||
static int cbc_aes_decrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -694,7 +694,7 @@ struct skcipher_alg ifxdeu_cbc_aes_alg = {
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
*
|
||||
*/
|
||||
void ifx_deu_aes_xts (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
|
||||
static void ifx_deu_aes_xts (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
|
||||
u8 *iv_arg, size_t nbytes, int encdec)
|
||||
{
|
||||
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
|
||||
@@ -797,7 +797,7 @@ void ifx_deu_aes_xts (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int xts_aes_encrypt(struct skcipher_request *req)
|
||||
static int xts_aes_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -853,7 +853,7 @@ int xts_aes_encrypt(struct skcipher_request *req)
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int xts_aes_decrypt(struct skcipher_request *req)
|
||||
static int xts_aes_decrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -911,7 +911,7 @@ int xts_aes_decrypt(struct skcipher_request *req)
|
||||
* \param key_len key lengths of 16, 24 and 32 bytes supported
|
||||
* \return -EINVAL - bad key length, 0 - SUCCESS
|
||||
*/
|
||||
int xts_aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
|
||||
static int xts_aes_set_key_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(crypto_skcipher_tfm(tfm));
|
||||
unsigned int keylen = (key_len / 2);
|
||||
@@ -958,7 +958,7 @@ struct skcipher_alg ifxdeu_xts_aes_alg = {
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ofb_aes_encrypt(struct skcipher_request *req)
|
||||
static int ofb_aes_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -991,7 +991,7 @@ int ofb_aes_encrypt(struct skcipher_request *req)
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ofb_aes_decrypt(struct skcipher_request *req)
|
||||
static int ofb_aes_decrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -1046,7 +1046,7 @@ struct skcipher_alg ifxdeu_ofb_aes_alg = {
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int cfb_aes_encrypt(struct skcipher_request *req)
|
||||
static int cfb_aes_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -1079,7 +1079,7 @@ int cfb_aes_encrypt(struct skcipher_request *req)
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int cfb_aes_decrypt(struct skcipher_request *req)
|
||||
static int cfb_aes_decrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -1134,7 +1134,7 @@ struct skcipher_alg ifxdeu_cfb_aes_alg = {
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ctr_basic_aes_encrypt(struct skcipher_request *req)
|
||||
static int ctr_basic_aes_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -1167,7 +1167,7 @@ int ctr_basic_aes_encrypt(struct skcipher_request *req)
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ctr_basic_aes_decrypt(struct skcipher_request *req)
|
||||
static int ctr_basic_aes_decrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -1221,7 +1221,7 @@ struct skcipher_alg ifxdeu_ctr_basic_aes_alg = {
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ctr_rfc3686_aes_encrypt(struct skcipher_request *req)
|
||||
static int ctr_rfc3686_aes_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -1264,7 +1264,7 @@ int ctr_rfc3686_aes_encrypt(struct skcipher_request *req)
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ctr_rfc3686_aes_decrypt(struct skcipher_request *req)
|
||||
static int ctr_rfc3686_aes_decrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -1576,7 +1576,7 @@ static struct shash_alg ifxdeu_cbcmac_aes_alg = {
|
||||
* \param key_len key lengths of 16, 24 and 32 bytes supported
|
||||
* \return -EINVAL - bad key length, 0 - SUCCESS
|
||||
*/
|
||||
int aes_set_key_aead (struct crypto_aead *aead, const u8 *in_key, unsigned int key_len)
|
||||
static int aes_set_key_aead (struct crypto_aead *aead, const u8 *in_key, unsigned int key_len)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_aead_ctx(aead);
|
||||
int err;
|
||||
@@ -1601,7 +1601,7 @@ int aes_set_key_aead (struct crypto_aead *aead, const u8 *in_key, unsigned int k
|
||||
* \param in_key input authsize
|
||||
* \return -EINVAL - bad authsize length, 0 - SUCCESS
|
||||
*/
|
||||
int gcm_aes_setauthsize (struct crypto_aead *aead, unsigned int authsize)
|
||||
static int gcm_aes_setauthsize (struct crypto_aead *aead, unsigned int authsize)
|
||||
{
|
||||
return crypto_gcm_check_authsize(authsize);
|
||||
}
|
||||
@@ -1612,7 +1612,7 @@ int gcm_aes_setauthsize (struct crypto_aead *aead, unsigned int authsize)
|
||||
* \param req aead request
|
||||
* \return err
|
||||
*/
|
||||
int gcm_aes_encrypt(struct aead_request *req)
|
||||
static int gcm_aes_encrypt(struct aead_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -1726,7 +1726,7 @@ int gcm_aes_encrypt(struct aead_request *req)
|
||||
* \param req aead request
|
||||
* \return err
|
||||
*/
|
||||
int gcm_aes_decrypt(struct aead_request *req)
|
||||
static int gcm_aes_decrypt(struct aead_request *req)
|
||||
{
|
||||
struct aes_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
|
||||
@@ -126,7 +126,7 @@ extern int disable_deudma;
|
||||
* \param key input key
|
||||
* \param keylen key length
|
||||
*/
|
||||
int des_setkey(struct crypto_tfm *tfm, const u8 *key,
|
||||
static int des_setkey(struct crypto_tfm *tfm, const u8 *key,
|
||||
unsigned int keylen)
|
||||
{
|
||||
struct ifx_deu_des_ctx *dctx = crypto_tfm_ctx(tfm);
|
||||
@@ -161,7 +161,7 @@ int des_setkey(struct crypto_tfm *tfm, const u8 *key,
|
||||
* \param key_len key lengths of 16, 24 and 32 bytes supported
|
||||
* \return -EINVAL - bad key length, 0 - SUCCESS
|
||||
*/
|
||||
int des_setkey_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
|
||||
static int des_setkey_skcipher (struct crypto_skcipher *tfm, const u8 *in_key, unsigned int key_len)
|
||||
{
|
||||
return des_setkey(crypto_skcipher_tfm(tfm), in_key, key_len);
|
||||
}
|
||||
@@ -296,7 +296,7 @@ void ifx_deu_des (void *ctx_arg, u8 *out_arg, const u8 *in_arg,
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
* \param inplace not used
|
||||
*/
|
||||
void ifx_deu_des_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
static void ifx_deu_des_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_des (ctx, dst, src, NULL, nbytes, encdec, 0);
|
||||
@@ -313,7 +313,7 @@ void ifx_deu_des_ecb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
* \param inplace not used
|
||||
*/
|
||||
void ifx_deu_des_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
static void ifx_deu_des_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_des (ctx, dst, src, iv, nbytes, encdec, 1);
|
||||
@@ -330,11 +330,13 @@ void ifx_deu_des_cbc (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
* \param inplace not used
|
||||
*/
|
||||
void ifx_deu_des_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
/*
|
||||
static void ifx_deu_des_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_des (ctx, dst, src, iv, nbytes, encdec, 2);
|
||||
}
|
||||
*/
|
||||
|
||||
/*! \fn void ifx_deu_des_cfb (void *ctx, uint8_t *dst, const uint8_t *src, uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
\ingroup IFX_DES_FUNCTIONS
|
||||
@@ -347,11 +349,13 @@ void ifx_deu_des_ofb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
\param encdec 1 for encrypt; 0 for decrypt
|
||||
\param inplace not used
|
||||
*/
|
||||
void ifx_deu_des_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
/*
|
||||
static void ifx_deu_des_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_des (ctx, dst, src, iv, nbytes, encdec, 3);
|
||||
}
|
||||
*/
|
||||
|
||||
/*! \fn void ifx_deu_des_ctr (void *ctx, uint8_t *dst, const uint8_t *src, uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
* \ingroup IFX_DES_FUNCTIONS
|
||||
@@ -364,11 +368,13 @@ void ifx_deu_des_cfb (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
* \param encdec 1 for encrypt; 0 for decrypt
|
||||
* \param inplace not used
|
||||
*/
|
||||
/*
|
||||
void ifx_deu_des_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
uint8_t *iv, size_t nbytes, int encdec, int inplace)
|
||||
{
|
||||
ifx_deu_des (ctx, dst, src, iv, nbytes, encdec, 4);
|
||||
}
|
||||
*/
|
||||
|
||||
/*! \fn void ifx_deu_des_encrypt (struct crypto_tfm *tfm, uint8_t *out, const uint8_t *in)
|
||||
* \ingroup IFX_DES_FUNCTIONS
|
||||
@@ -377,7 +383,7 @@ void ifx_deu_des_ctr (void *ctx, uint8_t *dst, const uint8_t *src,
|
||||
* \param out output bytestream
|
||||
* \param in input bytestream
|
||||
*/
|
||||
void ifx_deu_des_encrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t * in)
|
||||
static void ifx_deu_des_encrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t * in)
|
||||
{
|
||||
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(tfm);
|
||||
ifx_deu_des (ctx, out, in, NULL, DES_BLOCK_SIZE,
|
||||
@@ -392,7 +398,7 @@ void ifx_deu_des_encrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t *
|
||||
* \param out output bytestream
|
||||
* \param in input bytestream
|
||||
*/
|
||||
void ifx_deu_des_decrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t * in)
|
||||
static void ifx_deu_des_decrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t * in)
|
||||
{
|
||||
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(tfm);
|
||||
ifx_deu_des (ctx, out, in, NULL, DES_BLOCK_SIZE,
|
||||
@@ -420,7 +426,7 @@ void ifx_deu_des_decrypt (struct crypto_tfm *tfm, uint8_t * out, const uint8_t *
|
||||
* \param key input key
|
||||
* \param keylen key length
|
||||
*/
|
||||
int des3_ede_setkey(struct crypto_tfm *tfm, const u8 *key,
|
||||
static int des3_ede_setkey(struct crypto_tfm *tfm, const u8 *key,
|
||||
unsigned int keylen)
|
||||
{
|
||||
struct ifx_deu_des_ctx *dctx = crypto_tfm_ctx(tfm);
|
||||
@@ -454,7 +460,7 @@ int des3_ede_setkey(struct crypto_tfm *tfm, const u8 *key,
|
||||
* \param key input key
|
||||
* \param keylen key length
|
||||
*/
|
||||
int des3_ede_setkey_skcipher(struct crypto_skcipher *tfm, const u8 *key,
|
||||
static int des3_ede_setkey_skcipher(struct crypto_skcipher *tfm, const u8 *key,
|
||||
unsigned int keylen)
|
||||
{
|
||||
return des3_ede_setkey(crypto_skcipher_tfm(tfm), key, keylen);
|
||||
@@ -508,7 +514,7 @@ struct crypto_alg ifxdeu_des3_ede_alg = {
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ecb_des_encrypt(struct skcipher_request *req)
|
||||
static int ecb_des_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -534,7 +540,7 @@ int ecb_des_encrypt(struct skcipher_request *req)
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int ecb_des_decrypt(struct skcipher_request *req)
|
||||
static int ecb_des_decrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -599,7 +605,7 @@ struct skcipher_alg ifxdeu_ecb_des3_ede_alg = {
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int cbc_des_encrypt(struct skcipher_request *req)
|
||||
static int cbc_des_encrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
@@ -627,7 +633,7 @@ int cbc_des_encrypt(struct skcipher_request *req)
|
||||
* \param req skcipher request
|
||||
* \return err
|
||||
*/
|
||||
int cbc_des_decrypt(struct skcipher_request *req)
|
||||
static int cbc_des_decrypt(struct skcipher_request *req)
|
||||
{
|
||||
struct ifx_deu_des_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
|
||||
struct skcipher_walk walk;
|
||||
|
||||
@@ -304,4 +304,7 @@ struct deu_dma_t {
|
||||
} controlr;
|
||||
};
|
||||
|
||||
u32 input_swap(u32 input);
|
||||
void chip_version(void);
|
||||
|
||||
#endif /* IFXMIPS_DEU_AR9_H */
|
||||
|
||||
@@ -255,4 +255,6 @@ struct deu_dma_t {
|
||||
} controlr;
|
||||
};
|
||||
|
||||
u32 input_swap(u32 input);
|
||||
|
||||
#endif /* IFXMIPS_DEU_DANUBE_H */
|
||||
|
||||
@@ -321,4 +321,7 @@ struct deu_dma_t {
|
||||
} controlr;
|
||||
};
|
||||
|
||||
u32 input_swap(u32 input);
|
||||
void chip_version(void);
|
||||
|
||||
#endif /* IFXMIPS_DEU_VR9_H */
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Wed, 7 May 2025 20:24:34 +0800
|
||||
Subject: [PATCH] add missing prototype for IFX_Var_Fifo_getRoom()
|
||||
|
||||
Fix build warning on 6.12 kernel:
|
||||
|
||||
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/ifxos-ugw_8.5.2.10/src/common/ifx_fifo.c:532:14: error: no previous prototype for 'IFX_Var_Fifo_getRoom' [-Werror=missing-prototypes]
|
||||
532 | IFX_uint32_t IFX_Var_Fifo_getRoom (IFX_VFIFO *pFifo)
|
||||
| ^~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/include/ifx_fifo.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/src/include/ifx_fifo.h
|
||||
+++ b/src/include/ifx_fifo.h
|
||||
@@ -104,6 +104,8 @@ extern IFX_int8_t IFX_Var_Fifo_isFull
|
||||
IFX_VFIFO *pFifo);
|
||||
extern IFX_uint32_t IFX_Var_Fifo_getCount(
|
||||
IFX_VFIFO *pFifo);
|
||||
+extern IFX_uint32_t IFX_Var_Fifo_getRoom(
|
||||
+ IFX_VFIFO *pFifo);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/ifxmips_ptm_adsl.c
|
||||
+++ b/ifxmips_ptm_adsl.c
|
||||
@@ -175,9 +175,11 @@ static INLINE void mailbox_signal(unsign
|
||||
@@ -177,9 +177,11 @@ static INLINE void mailbox_signal(unsign
|
||||
*/
|
||||
static INLINE void proc_file_create(void);
|
||||
static INLINE void proc_file_delete(void);
|
||||
@@ -12,7 +12,7 @@
|
||||
#if defined(ENABLE_FW_PROC) && ENABLE_FW_PROC
|
||||
static int proc_read_genconf(char *, char **, off_t, int, int *, void *);
|
||||
#endif
|
||||
@@ -896,6 +898,7 @@ static INLINE void proc_file_delete(void
|
||||
@@ -927,6 +929,7 @@ static INLINE void proc_file_delete(void
|
||||
remove_proc_entry("driver/ifx_ptm", NULL);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
static int proc_read_version(char *buf, char **start, off_t offset, int count, int *eof, void *data)
|
||||
{
|
||||
int len = 0;
|
||||
@@ -970,8 +973,9 @@ static int proc_write_wanmib(struct file
|
||||
@@ -1001,8 +1004,9 @@ static int proc_write_wanmib(struct file
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
--- a/ifxmips_ptm_adsl.c
|
||||
+++ b/ifxmips_ptm_adsl.c
|
||||
@@ -180,7 +180,7 @@ static int proc_read_version(char *, cha
|
||||
@@ -182,7 +182,7 @@ static int proc_read_version(char *, cha
|
||||
static int proc_read_wanmib(char *, char **, off_t, int, int *, void *);
|
||||
static int proc_write_wanmib(struct file *, const char *, unsigned long, void *);
|
||||
#endif
|
||||
@@ -9,7 +9,7 @@
|
||||
static int proc_read_genconf(char *, char **, off_t, int, int *, void *);
|
||||
#endif
|
||||
#if defined(ENABLE_DBG_PROC) && ENABLE_DBG_PROC
|
||||
@@ -191,8 +191,8 @@ static int proc_write_wanmib(struct file
|
||||
@@ -193,8 +193,8 @@ static int proc_write_wanmib(struct file
|
||||
/*
|
||||
* Proc Help Functions
|
||||
*/
|
||||
@@ -19,7 +19,7 @@
|
||||
static INLINE int strincmp(const char *, const char *, int);
|
||||
#endif
|
||||
static INLINE int ifx_ptm_version(char *);
|
||||
@@ -1166,8 +1166,6 @@ static int proc_write_dbg(struct file *f
|
||||
@@ -1197,8 +1197,6 @@ static int proc_write_dbg(struct file *f
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
static INLINE int stricmp(const char *p1, const char *p2)
|
||||
{
|
||||
int c1, c2;
|
||||
@@ -1185,7 +1183,6 @@ static INLINE int stricmp(const char *p1
|
||||
@@ -1216,7 +1214,6 @@ static INLINE int stricmp(const char *p1
|
||||
return *p1 - *p2;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 02:34:14 +0800
|
||||
Subject: [PATCH] fix missing-prototypes warning
|
||||
|
||||
Fix the build warning on 6.12 kernel:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/ltq-ptm-vr9/ltq-ptm/ifxmips_ptm_vdsl.c:64:15: error: no previous prototype for 'cgu_get_pp32_clock' [-Werror=missing-prototypes]
|
||||
64 | unsigned long cgu_get_pp32_clock(void)
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
ifxmips_ptm_vdsl.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/ifxmips_ptm_vdsl.c
|
||||
+++ b/ifxmips_ptm_vdsl.c
|
||||
@@ -61,7 +61,7 @@ static void *g_xdata_addr = NULL;
|
||||
|
||||
#define ENABLE_TMP_DBG 0
|
||||
|
||||
-unsigned long cgu_get_pp32_clock(void)
|
||||
+static unsigned long cgu_get_pp32_clock(void)
|
||||
{
|
||||
struct clk *c = clk_get_ppe();
|
||||
unsigned long rate = clk_get_rate(c);
|
||||
@@ -0,0 +1,26 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 02:36:31 +0800
|
||||
Subject: [PATCH] add missing header mod_devicetable.h
|
||||
|
||||
Fix compilation error:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/ltq-ptm-vr9/ltq-ptm/ifxmips_ptm_vdsl.c:969:34: error: array type has incomplete element type 'struct of_device_id'
|
||||
969 | static const struct of_device_id ltq_ptm_match[] = {
|
||||
| ^~~~~~~~~~~~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/ltq-ptm-vr9/ltq-ptm/ifxmips_ptm_vdsl.c:969:34: error: 'ltq_ptm_match' defined but not used [-Werror=unused-variable]
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
ifxmips_ptm_vdsl.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/ifxmips_ptm_vdsl.c
|
||||
+++ b/ifxmips_ptm_vdsl.c
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/platform_device.h>
|
||||
+#include <linux/mod_devicetable.h>
|
||||
#include <linux/of_device.h>
|
||||
|
||||
#include "ifxmips_ptm_vdsl.h"
|
||||
@@ -0,0 +1,25 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 21:16:08 +0800
|
||||
Subject: [PATCH] add missing header "mod_devicetable.h"
|
||||
|
||||
Fix compilation error:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xway/ltq-ptm-danube/ltq-ptm/ifxmips_ptm_adsl.c:1433:34: error: array type has incomplete element type 'struct of_device_id'
|
||||
1433 | static const struct of_device_id ltq_ptm_match[] = {
|
||||
| ^~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
ifxmips_ptm_adsl.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/ifxmips_ptm_adsl.c
|
||||
+++ b/ifxmips_ptm_adsl.c
|
||||
@@ -43,6 +43,7 @@
|
||||
#include <linux/ioctl.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/interrupt.h>
|
||||
+#include <linux/mod_devicetable.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of_device.h>
|
||||
@@ -46,6 +46,8 @@
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/capability.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
/*
|
||||
@@ -463,56 +465,85 @@ static int ptm_ioctl(struct net_device *dev, struct ifreq *ifr, void __user *dat
|
||||
{
|
||||
int ndev;
|
||||
|
||||
if (!capable(CAP_NET_ADMIN))
|
||||
return -EPERM;
|
||||
|
||||
for ( ndev = 0; ndev < ARRAY_SIZE(g_net_dev) && g_net_dev[ndev] != dev; ndev++ );
|
||||
ASSERT(ndev >= 0 && ndev < ARRAY_SIZE(g_net_dev), "ndev = %d (wrong value)", ndev);
|
||||
|
||||
switch ( cmd )
|
||||
{
|
||||
case IFX_PTM_MIB_CW_GET:
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifRxNoIdleCodewords = WAN_MIB_TABLE[ndev].wrx_nonidle_cw;
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifRxIdleCodewords = WAN_MIB_TABLE[ndev].wrx_idle_cw;
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifRxCodingViolation = WAN_MIB_TABLE[ndev].wrx_err_cw;
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifTxNoIdleCodewords = 0;
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifTxIdleCodewords = 0;
|
||||
{
|
||||
PTM_CW_IF_ENTRY_T tmp = {0};
|
||||
|
||||
tmp.ifRxNoIdleCodewords = WAN_MIB_TABLE[ndev].wrx_nonidle_cw;
|
||||
tmp.ifRxIdleCodewords = WAN_MIB_TABLE[ndev].wrx_idle_cw;
|
||||
tmp.ifRxCodingViolation = WAN_MIB_TABLE[ndev].wrx_err_cw;
|
||||
tmp.ifTxNoIdleCodewords = 0;
|
||||
tmp.ifTxIdleCodewords = 0;
|
||||
|
||||
if (copy_to_user(data, &tmp, sizeof(tmp)))
|
||||
return -EFAULT;
|
||||
}
|
||||
break;
|
||||
case IFX_PTM_MIB_FRAME_GET:
|
||||
((PTM_FRAME_MIB_T *)data)->RxCorrect = WAN_MIB_TABLE[ndev].wrx_correct_pdu;
|
||||
((PTM_FRAME_MIB_T *)data)->TC_CrcError = WAN_MIB_TABLE[ndev].wrx_tccrc_err_pdu;
|
||||
((PTM_FRAME_MIB_T *)data)->RxDropped = WAN_MIB_TABLE[ndev].wrx_nodesc_drop_pdu + WAN_MIB_TABLE[ndev].wrx_len_violation_drop_pdu;
|
||||
((PTM_FRAME_MIB_T *)data)->TxSend = WAN_MIB_TABLE[ndev].wtx_total_pdu;
|
||||
{
|
||||
PTM_FRAME_MIB_T tmp = {0};
|
||||
|
||||
tmp.RxCorrect = WAN_MIB_TABLE[ndev].wrx_correct_pdu;
|
||||
tmp.TC_CrcError = WAN_MIB_TABLE[ndev].wrx_tccrc_err_pdu;
|
||||
tmp.RxDropped = WAN_MIB_TABLE[ndev].wrx_nodesc_drop_pdu + WAN_MIB_TABLE[ndev].wrx_len_violation_drop_pdu;
|
||||
tmp.TxSend = WAN_MIB_TABLE[ndev].wtx_total_pdu;
|
||||
if (copy_to_user(data, &tmp, sizeof(tmp)))
|
||||
return -EFAULT;
|
||||
}
|
||||
break;
|
||||
case IFX_PTM_CFG_GET:
|
||||
((IFX_PTM_CFG_T *)data)->RxEthCrcPresent = CFG_ETH_EFMTC_CRC->rx_eth_crc_present;
|
||||
((IFX_PTM_CFG_T *)data)->RxEthCrcCheck = CFG_ETH_EFMTC_CRC->rx_eth_crc_check;
|
||||
((IFX_PTM_CFG_T *)data)->RxTcCrcCheck = CFG_ETH_EFMTC_CRC->rx_tc_crc_check;
|
||||
((IFX_PTM_CFG_T *)data)->RxTcCrcLen = CFG_ETH_EFMTC_CRC->rx_tc_crc_len;
|
||||
((IFX_PTM_CFG_T *)data)->TxEthCrcGen = CFG_ETH_EFMTC_CRC->tx_eth_crc_gen;
|
||||
((IFX_PTM_CFG_T *)data)->TxTcCrcGen = CFG_ETH_EFMTC_CRC->tx_tc_crc_gen;
|
||||
((IFX_PTM_CFG_T *)data)->TxTcCrcLen = CFG_ETH_EFMTC_CRC->tx_tc_crc_len;
|
||||
{
|
||||
IFX_PTM_CFG_T tmp = {0};
|
||||
|
||||
tmp.RxEthCrcPresent = CFG_ETH_EFMTC_CRC->rx_eth_crc_present;
|
||||
tmp.RxEthCrcCheck = CFG_ETH_EFMTC_CRC->rx_eth_crc_check;
|
||||
tmp.RxTcCrcCheck = CFG_ETH_EFMTC_CRC->rx_tc_crc_check;
|
||||
tmp.RxTcCrcLen = CFG_ETH_EFMTC_CRC->rx_tc_crc_len;
|
||||
tmp.TxEthCrcGen = CFG_ETH_EFMTC_CRC->tx_eth_crc_gen;
|
||||
tmp.TxTcCrcGen = CFG_ETH_EFMTC_CRC->tx_tc_crc_gen;
|
||||
tmp.TxTcCrcLen = CFG_ETH_EFMTC_CRC->tx_tc_crc_len;
|
||||
if (copy_to_user(data, &tmp, sizeof(tmp)))
|
||||
return -EFAULT;
|
||||
}
|
||||
break;
|
||||
case IFX_PTM_CFG_SET:
|
||||
CFG_ETH_EFMTC_CRC->rx_eth_crc_present = ((IFX_PTM_CFG_T *)data)->RxEthCrcPresent ? 1 : 0;
|
||||
CFG_ETH_EFMTC_CRC->rx_eth_crc_check = ((IFX_PTM_CFG_T *)data)->RxEthCrcCheck ? 1 : 0;
|
||||
if ( ((IFX_PTM_CFG_T *)data)->RxTcCrcCheck && (((IFX_PTM_CFG_T *)data)->RxTcCrcLen == 16 || ((IFX_PTM_CFG_T *)data)->RxTcCrcLen == 32) )
|
||||
{
|
||||
CFG_ETH_EFMTC_CRC->rx_tc_crc_check = 1;
|
||||
CFG_ETH_EFMTC_CRC->rx_tc_crc_len = ((IFX_PTM_CFG_T *)data)->RxTcCrcLen;
|
||||
}
|
||||
else
|
||||
{
|
||||
CFG_ETH_EFMTC_CRC->rx_tc_crc_check = 0;
|
||||
CFG_ETH_EFMTC_CRC->rx_tc_crc_len = 0;
|
||||
}
|
||||
CFG_ETH_EFMTC_CRC->tx_eth_crc_gen = ((IFX_PTM_CFG_T *)data)->TxEthCrcGen ? 1 : 0;
|
||||
if ( ((IFX_PTM_CFG_T *)data)->TxTcCrcGen && (((IFX_PTM_CFG_T *)data)->TxTcCrcLen == 16 || ((IFX_PTM_CFG_T *)data)->TxTcCrcLen == 32) )
|
||||
{
|
||||
CFG_ETH_EFMTC_CRC->tx_tc_crc_gen = 1;
|
||||
CFG_ETH_EFMTC_CRC->tx_tc_crc_len = ((IFX_PTM_CFG_T *)data)->TxTcCrcLen;
|
||||
}
|
||||
else
|
||||
{
|
||||
CFG_ETH_EFMTC_CRC->tx_tc_crc_gen = 0;
|
||||
CFG_ETH_EFMTC_CRC->tx_tc_crc_len = 0;
|
||||
IFX_PTM_CFG_T cfg = {0};
|
||||
|
||||
if (copy_from_user(&cfg, data, sizeof(cfg)))
|
||||
return -EFAULT;
|
||||
|
||||
CFG_ETH_EFMTC_CRC->rx_eth_crc_present = cfg.RxEthCrcPresent ? 1 : 0;
|
||||
CFG_ETH_EFMTC_CRC->rx_eth_crc_check = cfg.RxEthCrcCheck ? 1 : 0;
|
||||
if ( cfg.RxTcCrcCheck && (cfg.RxTcCrcLen == 16 || cfg.RxTcCrcLen == 32) )
|
||||
{
|
||||
CFG_ETH_EFMTC_CRC->rx_tc_crc_check = 1;
|
||||
CFG_ETH_EFMTC_CRC->rx_tc_crc_len = cfg.RxTcCrcLen;
|
||||
}
|
||||
else
|
||||
{
|
||||
CFG_ETH_EFMTC_CRC->rx_tc_crc_check = 0;
|
||||
CFG_ETH_EFMTC_CRC->rx_tc_crc_len = 0;
|
||||
}
|
||||
CFG_ETH_EFMTC_CRC->tx_eth_crc_gen = cfg.TxEthCrcGen ? 1 : 0;
|
||||
if ( cfg.TxTcCrcGen && (cfg.TxTcCrcLen == 16 || cfg.TxTcCrcLen == 32) )
|
||||
{
|
||||
CFG_ETH_EFMTC_CRC->tx_tc_crc_gen = 1;
|
||||
CFG_ETH_EFMTC_CRC->tx_tc_crc_len = cfg.TxTcCrcLen;
|
||||
}
|
||||
else
|
||||
{
|
||||
CFG_ETH_EFMTC_CRC->tx_tc_crc_gen = 0;
|
||||
CFG_ETH_EFMTC_CRC->tx_tc_crc_len = 0;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -381,14 +381,24 @@ static int ptm_ioctl(struct net_device *dev, struct ifreq *ifr, void __user *dat
|
||||
{
|
||||
ASSERT(dev == g_net_dev[0], "incorrect device");
|
||||
|
||||
if (!capable(CAP_NET_ADMIN))
|
||||
return -EPERM;
|
||||
|
||||
switch ( cmd )
|
||||
{
|
||||
case IFX_PTM_MIB_CW_GET:
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifRxNoIdleCodewords = IFX_REG_R32(DREG_AR_CELL0) + IFX_REG_R32(DREG_AR_CELL1);
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifRxIdleCodewords = IFX_REG_R32(DREG_AR_IDLE_CNT0) + IFX_REG_R32(DREG_AR_IDLE_CNT1);
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifRxCodingViolation = IFX_REG_R32(DREG_AR_CVN_CNT0) + IFX_REG_R32(DREG_AR_CVN_CNT1) + IFX_REG_R32(DREG_AR_CVNP_CNT0) + IFX_REG_R32(DREG_AR_CVNP_CNT1);
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifTxNoIdleCodewords = IFX_REG_R32(DREG_AT_CELL0) + IFX_REG_R32(DREG_AT_CELL1);
|
||||
((PTM_CW_IF_ENTRY_T *)data)->ifTxIdleCodewords = IFX_REG_R32(DREG_AT_IDLE_CNT0) + IFX_REG_R32(DREG_AT_IDLE_CNT1);
|
||||
{
|
||||
PTM_CW_IF_ENTRY_T tmp = {0};
|
||||
|
||||
tmp.ifRxNoIdleCodewords = IFX_REG_R32(DREG_AR_CELL0) + IFX_REG_R32(DREG_AR_CELL1);
|
||||
tmp.ifRxIdleCodewords = IFX_REG_R32(DREG_AR_IDLE_CNT0) + IFX_REG_R32(DREG_AR_IDLE_CNT1);
|
||||
tmp.ifRxCodingViolation = IFX_REG_R32(DREG_AR_CVN_CNT0) + IFX_REG_R32(DREG_AR_CVN_CNT1) + IFX_REG_R32(DREG_AR_CVNP_CNT0) + IFX_REG_R32(DREG_AR_CVNP_CNT1);
|
||||
tmp.ifTxNoIdleCodewords = IFX_REG_R32(DREG_AT_CELL0) + IFX_REG_R32(DREG_AT_CELL1);
|
||||
tmp.ifTxIdleCodewords = IFX_REG_R32(DREG_AT_IDLE_CNT0) + IFX_REG_R32(DREG_AT_IDLE_CNT1);
|
||||
|
||||
if (copy_to_user(data, &tmp, sizeof(tmp)))
|
||||
return -EFAULT;
|
||||
}
|
||||
break;
|
||||
case IFX_PTM_MIB_FRAME_GET:
|
||||
{
|
||||
@@ -401,38 +411,50 @@ static int ptm_ioctl(struct net_device *dev, struct ifreq *ifr, void __user *dat
|
||||
for ( i = 0; i < 8; i++ )
|
||||
tmp.TxSend += WAN_TX_MIB_TABLE(i)->wtx_total_pdu;
|
||||
|
||||
*((PTM_FRAME_MIB_T *)data) = tmp;
|
||||
if (copy_to_user(data, &tmp, sizeof(tmp)))
|
||||
return -EFAULT;
|
||||
}
|
||||
break;
|
||||
case IFX_PTM_CFG_GET:
|
||||
// use bear channel 0 preemption gamma interface settings
|
||||
((IFX_PTM_CFG_T *)data)->RxEthCrcPresent = 1;
|
||||
((IFX_PTM_CFG_T *)data)->RxEthCrcCheck = RX_GAMMA_ITF_CFG(0)->rx_eth_fcs_ver_dis == 0 ? 1 : 0;
|
||||
((IFX_PTM_CFG_T *)data)->RxTcCrcCheck = RX_GAMMA_ITF_CFG(0)->rx_tc_crc_ver_dis == 0 ? 1 : 0;;
|
||||
((IFX_PTM_CFG_T *)data)->RxTcCrcLen = RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size == 0 ? 0 : (RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size * 16);
|
||||
((IFX_PTM_CFG_T *)data)->TxEthCrcGen = TX_GAMMA_ITF_CFG(0)->tx_eth_fcs_gen_dis == 0 ? 1 : 0;
|
||||
((IFX_PTM_CFG_T *)data)->TxTcCrcGen = TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size == 0 ? 0 : 1;
|
||||
((IFX_PTM_CFG_T *)data)->TxTcCrcLen = TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size == 0 ? 0 : (TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size * 16);
|
||||
{
|
||||
IFX_PTM_CFG_T tmp = {0};
|
||||
|
||||
// use bear channel 0 preemption gamma interface settings
|
||||
tmp.RxEthCrcPresent = 1;
|
||||
tmp.RxEthCrcCheck = RX_GAMMA_ITF_CFG(0)->rx_eth_fcs_ver_dis == 0 ? 1 : 0;
|
||||
tmp.RxTcCrcCheck = RX_GAMMA_ITF_CFG(0)->rx_tc_crc_ver_dis == 0 ? 1 : 0;
|
||||
tmp.RxTcCrcLen = RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size == 0 ? 0 : (RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size * 16);
|
||||
tmp.TxEthCrcGen = TX_GAMMA_ITF_CFG(0)->tx_eth_fcs_gen_dis == 0 ? 1 : 0;
|
||||
tmp.TxTcCrcGen = TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size == 0 ? 0 : 1;
|
||||
tmp.TxTcCrcLen = TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size == 0 ? 0 : (TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size * 16);
|
||||
|
||||
if (copy_to_user(data, &tmp, sizeof(tmp)))
|
||||
return -EFAULT;
|
||||
}
|
||||
break;
|
||||
case IFX_PTM_CFG_SET:
|
||||
{
|
||||
IFX_PTM_CFG_T cfg;
|
||||
int i;
|
||||
|
||||
if (copy_from_user(&cfg, data, sizeof(cfg)))
|
||||
return -EFAULT;
|
||||
|
||||
for ( i = 0; i < 4; i++ ) {
|
||||
RX_GAMMA_ITF_CFG(i)->rx_eth_fcs_ver_dis = ((IFX_PTM_CFG_T *)data)->RxEthCrcCheck ? 0 : 1;
|
||||
RX_GAMMA_ITF_CFG(i)->rx_eth_fcs_ver_dis = cfg.RxEthCrcCheck ? 0 : 1;
|
||||
|
||||
RX_GAMMA_ITF_CFG(0)->rx_tc_crc_ver_dis = ((IFX_PTM_CFG_T *)data)->RxTcCrcCheck ? 0 : 1;
|
||||
RX_GAMMA_ITF_CFG(0)->rx_tc_crc_ver_dis = cfg.RxTcCrcCheck ? 0 : 1;
|
||||
|
||||
switch ( ((IFX_PTM_CFG_T *)data)->RxTcCrcLen ) {
|
||||
switch ( cfg.RxTcCrcLen ) {
|
||||
case 16: RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size = 1; break;
|
||||
case 32: RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size = 2; break;
|
||||
default: RX_GAMMA_ITF_CFG(0)->rx_tc_crc_size = 0;
|
||||
}
|
||||
|
||||
TX_GAMMA_ITF_CFG(0)->tx_eth_fcs_gen_dis = ((IFX_PTM_CFG_T *)data)->TxEthCrcGen ? 0 : 1;
|
||||
TX_GAMMA_ITF_CFG(0)->tx_eth_fcs_gen_dis = cfg.TxEthCrcGen ? 0 : 1;
|
||||
|
||||
if ( ((IFX_PTM_CFG_T *)data)->TxTcCrcGen ) {
|
||||
switch ( ((IFX_PTM_CFG_T *)data)->TxTcCrcLen ) {
|
||||
if ( cfg.TxTcCrcGen ) {
|
||||
switch ( cfg.TxTcCrcLen ) {
|
||||
case 16: TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size = 1; break;
|
||||
case 32: TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size = 2; break;
|
||||
default: TX_GAMMA_ITF_CFG(0)->tx_tc_crc_size = 0;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Thu, 8 May 2025 23:30:39 +0800
|
||||
Subject: [PATCH] fix missing prototypes warnings
|
||||
|
||||
This patch fixes various missing-prototypes build warnings on
|
||||
6.12 kernel:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_tapi-3.13.0/src/drv_tapi_event.c:2815:13: error: no previous prototype for 'IFX_TAPI_EventWrpBufferPool_ElementCountGet' [-Werror=missing-prototypes]
|
||||
2815 | IFX_int32_t IFX_TAPI_EventWrpBufferPool_ElementCountGet(IFX_void_t)
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_tapi-3.13.0/src/drv_tapi_event.c:2844:13: error: no previous prototype for 'IFX_TAPI_EventWrpBufferPool_ElementAvailCountGet' [-Werror=missing-prototypes]
|
||||
2844 | IFX_int32_t IFX_TAPI_EventWrpBufferPool_ElementAvailCountGet(IFX_void_t)
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_tapi-3.13.0/src/drv_tapi_fxo.c:145:13: error: no previous prototype for 'TAPI_FXO_DAA_Ioctl' [-Werror=missing-prototypes]
|
||||
145 | IFX_int32_t TAPI_FXO_DAA_Ioctl (TAPI_CHANNEL *pChannel,
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_tapi-3.13.0/src/drv_tapi_fxo.c:291:13: error: no previous prototype for 'TAPI_FXO_SmartSlic_Ioctl' [-Werror=missing-prototypes]
|
||||
291 | IFX_int32_t TAPI_FXO_SmartSlic_Ioctl(TAPI_CHANNEL *pChannel,
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/drv_tapi_event.h | 3 +++
|
||||
src/drv_tapi_fxo.c | 4 ++--
|
||||
2 files changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/src/drv_tapi_event.h
|
||||
+++ b/src/drv_tapi_event.h
|
||||
@@ -24,4 +24,7 @@
|
||||
#define IFX_EVENT_DISABLE 1
|
||||
#define IFX_EVENT_ENABLE 0
|
||||
|
||||
+IFX_int32_t IFX_TAPI_EventWrpBufferPool_ElementCountGet(IFX_void_t);
|
||||
+IFX_int32_t IFX_TAPI_EventWrpBufferPool_ElementAvailCountGet(IFX_void_t);
|
||||
+
|
||||
#endif /* _DRV_TAPIEVENT_H */
|
||||
--- a/src/drv_tapi_fxo.c
|
||||
+++ b/src/drv_tapi_fxo.c
|
||||
@@ -142,7 +142,7 @@ IFX_return_t IFX_TAPI_FXO_Event_Dispatch
|
||||
\remarks
|
||||
This function is called if DAA TAPI plugin is used for FXO handling.
|
||||
*/
|
||||
-IFX_int32_t TAPI_FXO_DAA_Ioctl (TAPI_CHANNEL *pChannel,
|
||||
+static IFX_int32_t TAPI_FXO_DAA_Ioctl (TAPI_CHANNEL *pChannel,
|
||||
IFX_uint32_t cmd,
|
||||
IFX_ulong_t arg)
|
||||
{
|
||||
@@ -288,7 +288,7 @@ IFX_int32_t TAPI_FXO_DAA_Ioctl (TAPI_CHA
|
||||
This function is called if LL driver is used for FXO ioctl handling.
|
||||
Used on systems which have SmartSLIC with fused FXO line(s).
|
||||
*/
|
||||
-IFX_int32_t TAPI_FXO_SmartSlic_Ioctl(TAPI_CHANNEL *pChannel,
|
||||
+static IFX_int32_t TAPI_FXO_SmartSlic_Ioctl(TAPI_CHANNEL *pChannel,
|
||||
IFX_uint32_t cmd,
|
||||
IFX_ulong_t arg)
|
||||
{
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Wed, 7 May 2025 21:57:39 +0800
|
||||
Subject: [PATCH] add missing prototype for ifx_mei_atm_led_blink()
|
||||
|
||||
Fix build warning on 6.12 kernel:
|
||||
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_api_atm_ptm_intern.c:658:5: error: no previous prototype for 'ifx_mei_atm_led_blink' [-Werror=missing-prototypes]
|
||||
658 | int ifx_mei_atm_led_blink(void)
|
||||
| ^~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/drv_mei_cpe_api_atm_ptm_intern.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/src/drv_mei_cpe_api_atm_ptm_intern.h
|
||||
+++ b/src/drv_mei_cpe_api_atm_ptm_intern.h
|
||||
@@ -91,6 +91,7 @@ extern IFX_int32_t MEI_InternalLineTCMod
|
||||
IFX_int8_t nInstance,
|
||||
IFX_boolean_t bPowerUp,
|
||||
IFX_boolean_t bKillMEIControlThread);
|
||||
+int ifx_mei_atm_led_blink(void);
|
||||
|
||||
#ifdef PPA_SUPPORTS_CALLBACKS
|
||||
extern int ppa_callback_set(e_ltq_mei_cb_type type, void *func);
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Wed, 7 May 2025 22:07:16 +0800
|
||||
Subject: [PATCH] convert platform driver .remove to .remove_new
|
||||
|
||||
Fix build error on 6.12 kernel:
|
||||
|
||||
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_linux.c:2270:14: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Wincompatible-pointer-types]
|
||||
2270 | .remove = ltq_dsl_cpe_mei_remove,
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/drv_mei_cpe_linux.c | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/src/drv_mei_cpe_linux.c
|
||||
+++ b/src/drv_mei_cpe_linux.c
|
||||
@@ -2234,7 +2234,7 @@ static int dev_found = 0;
|
||||
/* containt the number of devices registered in module_init */
|
||||
static int dev_registered = 0;
|
||||
|
||||
-static int ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
|
||||
+static void ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
|
||||
{
|
||||
/* clear platform */
|
||||
MEI_DEVICE_CFG_VALUE_SET(platform, e_MEI_DEV_PLATFORM_CONFIG_UNKNOWN);
|
||||
@@ -2244,7 +2244,6 @@ static int ltq_dsl_cpe_mei_remove(struct
|
||||
dev_registered--;
|
||||
}
|
||||
#endif
|
||||
- return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id ltq_dsl_cpe_mei_match[] = {
|
||||
@@ -2267,7 +2266,7 @@ static struct platform_driver ltq_dsl_cp
|
||||
.owner = THIS_MODULE,
|
||||
.of_match_table = ltq_dsl_cpe_mei_match,
|
||||
},
|
||||
- .remove = ltq_dsl_cpe_mei_remove,
|
||||
+ .remove_new = ltq_dsl_cpe_mei_remove,
|
||||
};
|
||||
|
||||
static int ltq_dsl_cpe_mei_reboot_notifier(struct notifier_block *nb,
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Wed, 7 May 2025 22:53:48 +0800
|
||||
Subject: [PATCH] fix ignored-qualifiers build warnings
|
||||
|
||||
This patch fixes the following build warnings:
|
||||
|
||||
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_mei_access_vrx.c:41:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
|
||||
41 | static inline volatile IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
| ^~~~~~~~
|
||||
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_mei_access_vrx.c:55:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
|
||||
55 | static inline volatile IFX_uint32_t MEI_CGU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
| ^~~~~~~~
|
||||
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/dsl_cpe_mei-ugw_8.5.2.10/src/drv_mei_cpe_mei_access_vrx.c:63:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
|
||||
63 | static inline volatile IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
| ^~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/drv_mei_cpe_mei_access_vrx.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/src/drv_mei_cpe_mei_access_vrx.c
|
||||
+++ b/src/drv_mei_cpe_mei_access_vrx.c
|
||||
@@ -38,7 +38,7 @@
|
||||
Local macro definition
|
||||
========================================================================= */
|
||||
|
||||
-static inline volatile IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
+static inline IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
{
|
||||
IFX_uint32_t ret = 0;
|
||||
if (MEI_DEVICE_CFG_IS_PLATFORM(e_MEI_DEV_PLATFORM_CONFIG_VR9))
|
||||
@@ -52,7 +52,7 @@ static inline volatile IFX_uint32_t MEI_
|
||||
return ret;
|
||||
}
|
||||
#if (MEI_SUPPORT_DEVICE_VR11 == 1)
|
||||
-static inline volatile IFX_uint32_t MEI_CGU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
+static inline IFX_uint32_t MEI_CGU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
{
|
||||
IFX_uint32_t ret = 0;
|
||||
ret = (MEI_DRV_PCIE_VIRT_MEMBASE_GET(pMeiDrvCntrl) | MEI_CGU_OFFSET);
|
||||
@@ -60,7 +60,7 @@ static inline volatile IFX_uint32_t MEI_
|
||||
}
|
||||
#endif
|
||||
|
||||
-static inline volatile IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
+static inline IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
{
|
||||
IFX_uint32_t ret = 0;
|
||||
if (MEI_DEVICE_CFG_IS_PLATFORM(e_MEI_DEV_PLATFORM_CONFIG_VR9))
|
||||
+172
@@ -0,0 +1,172 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Wed, 7 May 2025 23:22:11 +0800
|
||||
Subject: [PATCH] fix missing prototypes warnings
|
||||
|
||||
This patch fixes various missing-prototypes build warnings on
|
||||
6.12 kernel.
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/bnd/drv_dsl_cpe_api_bnd_vrx.c | 2 +-
|
||||
src/common/drv_dsl_cpe_api.c | 16 ++++++++--------
|
||||
src/common/drv_dsl_cpe_os_linux.c | 4 ++--
|
||||
src/device/drv_dsl_cpe_device_vrx.c | 2 +-
|
||||
src/g997/drv_dsl_cpe_api_g997_vrx.c | 1 +
|
||||
src/include/drv_dsl_cpe_intern.h | 6 +++---
|
||||
6 files changed, 16 insertions(+), 15 deletions(-)
|
||||
|
||||
--- a/src/bnd/drv_dsl_cpe_api_bnd_vrx.c
|
||||
+++ b/src/bnd/drv_dsl_cpe_api_bnd_vrx.c
|
||||
@@ -75,7 +75,7 @@ static DSL_Error_t DSL_DRV_BND_VRX_HsCon
|
||||
- DSL_SUCCESS in case of success
|
||||
- DSL_ERROR if operation failed
|
||||
*/
|
||||
-DSL_Error_t DSL_DRV_BND_VRX_PafHsStatusGet(
|
||||
+static DSL_Error_t DSL_DRV_BND_VRX_PafHsStatusGet(
|
||||
DSL_Context_t *pContext,
|
||||
DSL_BND_VRX_PafHsStatus_t *pData)
|
||||
{
|
||||
--- a/src/common/drv_dsl_cpe_api.c
|
||||
+++ b/src/common/drv_dsl_cpe_api.c
|
||||
@@ -3873,7 +3873,7 @@ DSL_Error_t DSL_DRV_LoopLengthStatusGet(
|
||||
return nErrCode;
|
||||
}
|
||||
|
||||
-DSL_Error_t DSL_DRV_RetxStatisticsGet(
|
||||
+static DSL_Error_t DSL_DRV_RetxStatisticsGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_IN_OUT DSL_ReTxStatistics_t *pData)
|
||||
{
|
||||
@@ -4053,7 +4053,7 @@ DSL_Error_t DSL_DRV_SystemInterfaceConfi
|
||||
\ref DSL_FIO_SYSTEM_INTERFACE_STATUS_GET
|
||||
*/
|
||||
#ifdef INCLUDE_DSL_SYSTEM_INTERFACE
|
||||
-DSL_Error_t DSL_DRV_SystemInterfaceStatusGet(
|
||||
+static DSL_Error_t DSL_DRV_SystemInterfaceStatusGet(
|
||||
DSL_Context_t *pContext,
|
||||
DSL_SystemInterfaceStatus_t *pData)
|
||||
{
|
||||
@@ -5593,7 +5593,7 @@ DSL_Error_t DSL_DRV_DBG_DebugFeatureConf
|
||||
#endif /* DSL_DEBUG_DISABLE*/
|
||||
|
||||
#ifdef INCLUDE_DSL_FILTER_DETECTION
|
||||
-DSL_Error_t DSL_DRV_FilterDetectionDataGet(
|
||||
+static DSL_Error_t DSL_DRV_FilterDetectionDataGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_OUT DSL_FilterDetection_t *pData)
|
||||
{
|
||||
@@ -5742,7 +5742,7 @@ DSL_Error_t DSL_DRV_FilterDetectionBasic
|
||||
}
|
||||
#endif /* INCLUDE_DSL_FILTER_DETECTION */
|
||||
|
||||
-DSL_Error_t DSL_DRV_HybridSelectionDataGet(
|
||||
+static DSL_Error_t DSL_DRV_HybridSelectionDataGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_OUT DSL_HybridSelection_t *pData)
|
||||
{
|
||||
@@ -5804,7 +5804,7 @@ DSL_Error_t DSL_DRV_HybridSelectionDataG
|
||||
return nErrCode;
|
||||
}
|
||||
|
||||
-DSL_Error_t DSL_DRV_OlrStatisticsGet(
|
||||
+static DSL_Error_t DSL_DRV_OlrStatisticsGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_OUT DSL_OlrStatistics_t *pData)
|
||||
{
|
||||
@@ -5932,7 +5932,7 @@ DSL_void_t DSL_DRV_InitDataFree(
|
||||
#endif /* INCLUDE_DSL_INIT_DATA_PREPARE*/
|
||||
}
|
||||
|
||||
-DSL_Error_t DSL_DRV_IoctlHandleHelperCall(
|
||||
+static DSL_Error_t DSL_DRV_IoctlHandleHelperCall(
|
||||
DSL_OpenContext_t *pOpenCtx,
|
||||
DSL_Context_t *pContext,
|
||||
DSL_boolean_t bIsInKernel,
|
||||
@@ -6573,7 +6573,7 @@ DSL_Error_t DSL_DRV_T1413_XTUR_VendorRev
|
||||
return nErrCode;
|
||||
}
|
||||
|
||||
-DSL_Error_t DSL_DRV_PSDCalibrationConfigGet(
|
||||
+static DSL_Error_t DSL_DRV_PSDCalibrationConfigGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_IN_OUT DSL_PSDCalibration_t *pData)
|
||||
{
|
||||
@@ -6608,7 +6608,7 @@ DSL_Error_t DSL_DRV_PSDCalibrationConfig
|
||||
return nErrCode;
|
||||
}
|
||||
|
||||
-DSL_Error_t DSL_DRV_PSDCalibrationConfigSet(
|
||||
+static DSL_Error_t DSL_DRV_PSDCalibrationConfigSet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_IN_OUT DSL_PSDCalibration_t *pData)
|
||||
{
|
||||
--- a/src/common/drv_dsl_cpe_os_linux.c
|
||||
+++ b/src/common/drv_dsl_cpe_os_linux.c
|
||||
@@ -1341,7 +1341,7 @@ static void DSL_DRV_NlSendMsg(DSL_char_t
|
||||
#endif
|
||||
|
||||
/* Entry point of driver */
|
||||
-int __init DSL_ModuleInit(void)
|
||||
+static int __init DSL_ModuleInit(void)
|
||||
{
|
||||
DSL_int_t i;
|
||||
|
||||
@@ -1457,7 +1457,7 @@ void DSL_ModuleCleanup(void)
|
||||
return;
|
||||
}
|
||||
|
||||
-void __exit DSL_ModuleExit(void)
|
||||
+static void __exit DSL_ModuleExit(void)
|
||||
{
|
||||
printk("DSL: Unloading module" DSL_DRV_CRLF);
|
||||
|
||||
--- a/src/device/drv_dsl_cpe_device_vrx.c
|
||||
+++ b/src/device/drv_dsl_cpe_device_vrx.c
|
||||
@@ -6914,7 +6914,7 @@ DSL_Error_t DSL_DRV_VRX_ShowtimeMeasurem
|
||||
return nErrCode;
|
||||
}
|
||||
|
||||
-DSL_Error_t DSL_DRV_VRX_ShowtimeBasicMFDMeasurementUpdate(DSL_Context_t *pContext)
|
||||
+static DSL_Error_t DSL_DRV_VRX_ShowtimeBasicMFDMeasurementUpdate(DSL_Context_t *pContext)
|
||||
{
|
||||
DSL_Error_t nErrCode = DSL_SUCCESS;
|
||||
ACK_MFD_InitResultsGet_t sInitResultAck = { 0 };
|
||||
--- a/src/g997/drv_dsl_cpe_api_g997_vrx.c
|
||||
+++ b/src/g997/drv_dsl_cpe_api_g997_vrx.c
|
||||
@@ -11,6 +11,7 @@
|
||||
#define DSL_INTERN
|
||||
|
||||
#include "drv_dsl_cpe_api.h"
|
||||
+#include "drv_dsl_cpe_device_g997.h"
|
||||
|
||||
#ifdef INCLUDE_DSL_CPE_API_VRX
|
||||
|
||||
--- a/src/include/drv_dsl_cpe_intern.h
|
||||
+++ b/src/include/drv_dsl_cpe_intern.h
|
||||
@@ -1151,7 +1151,7 @@ DSL_Error_t DSL_DRV_InteropFeatureConfig
|
||||
For a detailed description please refer to the equivalent ioctl
|
||||
\ref DSL_FIO_RETX_STATISTICS_GET
|
||||
*/
|
||||
-#ifdef INCLUDE_DSL_CPE_API_DANUBE
|
||||
+#if defined(INCLUDE_DSL_CPE_API_DANUBE) && 0
|
||||
#ifndef SWIG_TMP
|
||||
DSL_Error_t DSL_DRV_RetxStatisticsGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
@@ -1436,7 +1436,7 @@ DSL_Error_t DSL_DRV_SystemInterfaceConfi
|
||||
For a detailed description please refer to the equivalent ioctl
|
||||
\ref DSL_FIO_FILTER_DETECTION_DATA_GET
|
||||
*/
|
||||
-#if defined(INCLUDE_DSL_CPE_API_DANUBE) && defined(INCLUDE_DSL_FILTER_DETECTION)
|
||||
+#if defined(INCLUDE_DSL_CPE_API_DANUBE) && defined(INCLUDE_DSL_FILTER_DETECTION) && 0
|
||||
#ifndef SWIG_TMP
|
||||
DSL_Error_t DSL_DRV_FilterDetectionDataGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
@@ -1462,7 +1462,7 @@ DSL_Error_t DSL_DRV_FilterDetectionBasic
|
||||
For a detailed description please refer to the equivalent ioctl
|
||||
\ref DSL_FIO_HYBRID_SELECTION_DATA_GET
|
||||
*/
|
||||
-#ifdef INCLUDE_DSL_CPE_API_DANUBE
|
||||
+#if defined(INCLUDE_DSL_CPE_API_DANUBE) && 0
|
||||
#ifndef SWIG_TMP
|
||||
DSL_Error_t DSL_DRV_HybridSelectionDataGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
@@ -313,17 +313,22 @@
|
||||
|
||||
#if (MEI_EXPORT_INTERNAL_API == 1) && (MEI_DRV_ATM_PTM_INTERFACE_ENABLE == 1)
|
||||
|
||||
@@ -59,8 +58,21 @@ extern IFX_int32_t MEI_InternalTcReset(
|
||||
@@ -58,9 +57,26 @@ extern IFX_int32_t MEI_InternalTcRequest
|
||||
extern IFX_int32_t MEI_InternalTcReset(
|
||||
MEI_DYN_CNTRL_T *pMeiDynCntrl,
|
||||
MEI_TC_Reset_t *pArgTcReset);
|
||||
|
||||
+struct port_cell_info;
|
||||
+extern int ifx_mei_atm_showtime_check(int *is_showtime,
|
||||
+ struct port_cell_info *port_cell,
|
||||
+ void **xdata_addr);
|
||||
+
|
||||
+#if 1
|
||||
+#include <lantiq_atm.h>
|
||||
+typedef enum {
|
||||
+ LTQ_MEI_SHOWTIME_ENTER,
|
||||
+ LTQ_MEI_SHOWTIME_EXIT
|
||||
+} e_ltq_mei_cb_type;
|
||||
+
|
||||
|
||||
+typedef void (*ltq_mei_atm_showtime_enter_t)(IFX_uint8_t, struct port_cell_info *, void *);
|
||||
+typedef void (*ltq_mei_atm_showtime_exit_t)(IFX_uint8_t);
|
||||
+
|
||||
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 00:54:48 +0800
|
||||
Subject: [PATCH] convert platform driver .remove to .remove_new
|
||||
|
||||
Fix compilation error on 6.12 kernel:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_linux.c:2073:23: error: initialization of 'void (*)(struct platform_device *)' from incompatible pointer type 'int (*)(struct platform_device *)' [-Wincompatible-pointer-types]
|
||||
2073 | .remove = __exit_p(ltq_dsl_cpe_mei_remove),
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/drv_mei_cpe_linux.c | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/src/drv_mei_cpe_linux.c
|
||||
+++ b/src/drv_mei_cpe_linux.c
|
||||
@@ -2048,13 +2048,12 @@ static int MEI_InstallProcEntry(unsigned
|
||||
#endif
|
||||
|
||||
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0))
|
||||
-static int __exit ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
|
||||
+static void __exit ltq_dsl_cpe_mei_remove(struct platform_device *pdev)
|
||||
{
|
||||
MEI_module_exit();
|
||||
|
||||
/* clear platform */
|
||||
MEI_DEVICE_CFG_VALUE_SET(platform, e_MEI_DEV_PLATFORM_CONFIG_UNKNOWN);
|
||||
- return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id ltq_dsl_cpe_mei_match[] = {
|
||||
@@ -2070,7 +2069,7 @@ static struct platform_driver ltq_dsl_cp
|
||||
.owner = THIS_MODULE,
|
||||
.of_match_table = ltq_dsl_cpe_mei_match,
|
||||
},
|
||||
- .remove = __exit_p(ltq_dsl_cpe_mei_remove),
|
||||
+ .remove_new = __exit_p(ltq_dsl_cpe_mei_remove),
|
||||
};
|
||||
|
||||
static int __init ltq_dsl_cpe_mei_probe(struct platform_device *pdev)
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 00:58:00 +0800
|
||||
Subject: [PATCH] fix ignored-qualifiers build warnings
|
||||
|
||||
This patch fixes the following build warnings:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_mei_access_vrx.c:41:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
|
||||
41 | static inline volatile IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
| ^~~~~~~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_mei_access_vrx.c:56:15: error: type qualifiers ignored on function return type [-Werror=ignored-qualifiers]
|
||||
56 | static inline volatile IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
| ^~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/drv_mei_cpe_mei_access_vrx.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/src/drv_mei_cpe_mei_access_vrx.c
|
||||
+++ b/src/drv_mei_cpe_mei_access_vrx.c
|
||||
@@ -38,7 +38,7 @@
|
||||
Local macro definition
|
||||
========================================================================= */
|
||||
|
||||
-static inline volatile IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
+static inline IFX_uint32_t MEI_RCU_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
{
|
||||
IFX_uint32_t ret = 0;
|
||||
if (MEI_DEVICE_CFG_IS_PLATFORM(e_MEI_DEV_PLATFORM_CONFIG_VR9))
|
||||
@@ -53,7 +53,7 @@ static inline volatile IFX_uint32_t MEI_
|
||||
return ret;
|
||||
}
|
||||
|
||||
-static inline volatile IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
+static inline IFX_uint32_t MEI_RCU_Slave_get(MEI_MEI_DRV_CNTRL_T *pMeiDrvCntrl)
|
||||
{
|
||||
IFX_uint32_t ret = 0;
|
||||
if (MEI_DEVICE_CFG_IS_PLATFORM(e_MEI_DEV_PLATFORM_CONFIG_VR9))
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 01:10:32 +0800
|
||||
Subject: [PATCH] fix missing prototypes warnings
|
||||
|
||||
This patch fixes various missing-prototypes build warnings on
|
||||
6.12 kernel.
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_api_atm_ptm_intern.c:314:5: error: no previous prototype for 'ifx_mei_atm_led_blink' [-Werror=missing-prototypes]
|
||||
314 | int ifx_mei_atm_led_blink(void)
|
||||
| ^~~~~~~~~~~~~~~~~~~~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_api_atm_ptm_intern.c:325:5: error: no previous prototype for 'ltq_ifx_mei_atm_showtime_enter_compat' [-Werror=missing-prototypes]
|
||||
325 | int ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum,
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_mei_cpe-1.5.17.6/src/drv_mei_cpe_api_atm_ptm_intern.c:334:5: error: no previous prototype for 'ltq_ifx_mei_atm_showtime_exit_compat' [-Werror=missing-prototypes]
|
||||
334 | int ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) {
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/drv_mei_cpe_api_atm_ptm_intern.c | 4 ++--
|
||||
src/drv_mei_cpe_api_atm_ptm_intern.h | 1 +
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/src/drv_mei_cpe_api_atm_ptm_intern.c
|
||||
+++ b/src/drv_mei_cpe_api_atm_ptm_intern.c
|
||||
@@ -322,7 +322,7 @@ int ifx_mei_atm_led_blink(void)
|
||||
int (*ifx_mei_atm_showtime_enter)(struct port_cell_info *, void *) = NULL;
|
||||
int (*ifx_mei_atm_showtime_exit)(void) = NULL;
|
||||
|
||||
-int ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum,
|
||||
+static int ltq_ifx_mei_atm_showtime_enter_compat(IFX_uint8_t dslLineNum,
|
||||
struct port_cell_info *cellInfo,
|
||||
void *xdata) {
|
||||
if (ifx_mei_atm_showtime_enter)
|
||||
@@ -331,7 +331,7 @@ int ltq_ifx_mei_atm_showtime_enter_compa
|
||||
return -e_MEI_ERR_OP_FAILED;
|
||||
}
|
||||
|
||||
-int ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) {
|
||||
+static int ltq_ifx_mei_atm_showtime_exit_compat(IFX_uint8_t dslLineNum) {
|
||||
if (ifx_mei_atm_showtime_exit)
|
||||
return ifx_mei_atm_showtime_exit();
|
||||
|
||||
--- a/src/drv_mei_cpe_api_atm_ptm_intern.h
|
||||
+++ b/src/drv_mei_cpe_api_atm_ptm_intern.h
|
||||
@@ -61,6 +61,7 @@ struct port_cell_info;
|
||||
extern int ifx_mei_atm_showtime_check(int *is_showtime,
|
||||
struct port_cell_info *port_cell,
|
||||
void **xdata_addr);
|
||||
+extern int ifx_mei_atm_led_blink(void);
|
||||
|
||||
#if 1
|
||||
#include <lantiq_atm.h>
|
||||
@@ -0,0 +1,100 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 02:48:52 +0800
|
||||
Subject: [PATCH] fix missing-prototypes warning
|
||||
|
||||
This patch fixes various missing-prototypes build warnings on
|
||||
6.12 kernel.
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/common/drv_dsl_cpe_api.c | 12 ++++++------
|
||||
src/common/drv_dsl_cpe_os_linux.c | 4 ++--
|
||||
src/g997/drv_dsl_cpe_api_g997_vrx.c | 1 +
|
||||
3 files changed, 9 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/src/common/drv_dsl_cpe_api.c
|
||||
+++ b/src/common/drv_dsl_cpe_api.c
|
||||
@@ -2871,7 +2871,7 @@ DSL_Error_t DSL_DRV_LoopLengthStatusGet(
|
||||
return nErrCode;
|
||||
}
|
||||
|
||||
-DSL_Error_t DSL_DRV_RetxStatisticsGet(
|
||||
+static DSL_Error_t DSL_DRV_RetxStatisticsGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_IN_OUT DSL_ReTxStatistics_t *pData)
|
||||
{
|
||||
@@ -3044,7 +3044,7 @@ DSL_Error_t DSL_DRV_SystemInterfaceConfi
|
||||
\ref DSL_FIO_SYSTEM_INTERFACE_STATUS_GET
|
||||
*/
|
||||
#ifdef INCLUDE_DSL_SYSTEM_INTERFACE
|
||||
-DSL_Error_t DSL_DRV_SystemInterfaceStatusGet(
|
||||
+static DSL_Error_t DSL_DRV_SystemInterfaceStatusGet(
|
||||
DSL_Context_t *pContext,
|
||||
DSL_SystemInterfaceStatus_t *pData)
|
||||
{
|
||||
@@ -4372,7 +4372,7 @@ DSL_Error_t DSL_DRV_DBG_DebugFeatureConf
|
||||
#endif /* DSL_DEBUG_DISABLE*/
|
||||
|
||||
#ifdef INCLUDE_DSL_FILTER_DETECTION
|
||||
-DSL_Error_t DSL_DRV_FilterDetectionDataGet(
|
||||
+static DSL_Error_t DSL_DRV_FilterDetectionDataGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_OUT DSL_FilterDetection_t *pData)
|
||||
{
|
||||
@@ -4422,7 +4422,7 @@ DSL_Error_t DSL_DRV_FilterDetectionDataG
|
||||
}
|
||||
#endif /* INCLUDE_DSL_FILTER_DETECTION */
|
||||
|
||||
-DSL_Error_t DSL_DRV_HybridSelectionDataGet(
|
||||
+static DSL_Error_t DSL_DRV_HybridSelectionDataGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_OUT DSL_HybridSelection_t *pData)
|
||||
{
|
||||
@@ -4476,7 +4476,7 @@ DSL_Error_t DSL_DRV_HybridSelectionDataG
|
||||
return nErrCode;
|
||||
}
|
||||
|
||||
-DSL_Error_t DSL_DRV_OlrStatisticsGet(
|
||||
+static DSL_Error_t DSL_DRV_OlrStatisticsGet(
|
||||
DSL_IN DSL_Context_t *pContext,
|
||||
DSL_OUT DSL_OlrStatistics_t *pData)
|
||||
{
|
||||
@@ -4596,7 +4596,7 @@ DSL_void_t DSL_DRV_InitDataFree(
|
||||
#endif /* INCLUDE_DSL_INIT_DATA_PREPARE*/
|
||||
}
|
||||
|
||||
-DSL_Error_t DSL_DRV_IoctlHandleHelperCall(
|
||||
+static DSL_Error_t DSL_DRV_IoctlHandleHelperCall(
|
||||
DSL_OpenContext_t *pOpenCtx,
|
||||
DSL_Context_t *pContext,
|
||||
DSL_boolean_t bIsInKernel,
|
||||
--- a/src/common/drv_dsl_cpe_os_linux.c
|
||||
+++ b/src/common/drv_dsl_cpe_os_linux.c
|
||||
@@ -1214,7 +1214,7 @@ static struct class *dsl_class;
|
||||
static dev_t dsl_devt;
|
||||
|
||||
/* Entry point of driver */
|
||||
-int __init DSL_ModuleInit(void)
|
||||
+static int __init DSL_ModuleInit(void)
|
||||
{
|
||||
DSL_int_t i;
|
||||
|
||||
@@ -1262,7 +1262,7 @@ int __init DSL_ModuleInit(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-void __exit DSL_ModuleCleanup(void)
|
||||
+static void __exit DSL_ModuleCleanup(void)
|
||||
{
|
||||
printk("Module will be unloaded"DSL_DRV_CRLF);
|
||||
|
||||
--- a/src/g997/drv_dsl_cpe_api_g997_vrx.c
|
||||
+++ b/src/g997/drv_dsl_cpe_api_g997_vrx.c
|
||||
@@ -11,6 +11,7 @@
|
||||
#define DSL_INTERN
|
||||
|
||||
#include "drv_dsl_cpe_api.h"
|
||||
+#include "drv_dsl_cpe_device_g997.h"
|
||||
|
||||
#ifdef INCLUDE_DSL_CPE_API_VRX
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 08:22:25 +0800
|
||||
Subject: [PATCH] ignore missing-prototypes warning
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/Makefile.am | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -226,6 +226,8 @@ install-exec-hook: $(bin_PROGRAMS)
|
||||
if KERNEL_2_6
|
||||
drv_vmmc_OBJS = "$(subst .c,.o, $(drv_vmmc_SOURCES) $(nodist_drv_vmmc_SOURCES))"
|
||||
|
||||
+PKGFIX_CFLAGS = -Wno-error=missing-prototypes
|
||||
+
|
||||
drv_vmmc.ko: $(drv_vmmc_SOURCES) $(EXTRA_DIST)
|
||||
@echo "Making Linux 2.6.x kernel object"
|
||||
@for f in $(drv_vmmc_SOURCES) $(nodist_drv_vmmc_SOURCES) ; do \
|
||||
@@ -238,7 +240,7 @@ drv_vmmc.ko: $(drv_vmmc_SOURCES) $(EXTRA
|
||||
@echo "# drv_vmmc: Generated to build Linux 2.6.x kernel object" > $(PWD)/Kbuild
|
||||
@echo "obj-m := $(subst .ko,.o,$@)" >> $(PWD)/Kbuild
|
||||
@echo "$(subst .ko,,$@)-y := $(drv_vmmc_OBJS)" >> $(PWD)/Kbuild
|
||||
- @echo "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_vmmc_CFLAGS) $(INCLUDES)" >> $(PWD)/Kbuild
|
||||
+ @echo "EXTRA_CFLAGS := -DHAVE_CONFIG_H $(drv_vmmc_CFLAGS) $(PKGFIX_CFLAGS) $(INCLUDES)" >> $(PWD)/Kbuild
|
||||
$(MAKE) ARCH=@KERNEL_ARCH@ -C @KERNEL_BUILD_PATH@ O=@KERNEL_BUILD_PATH@ M=$(PWD) modules
|
||||
|
||||
clean-generic:
|
||||
@@ -18,7 +18,7 @@
|
||||
#include "drv_mps_vmmc_dbg.h"
|
||||
#include "drv_mps_vmmc_device.h"
|
||||
|
||||
+const void (*ifx_bsp_basic_mps_decrypt)(unsigned int addr, int n) = NULL;
|
||||
+void (*ifx_bsp_basic_mps_decrypt)(unsigned int addr, int n) = NULL;
|
||||
+
|
||||
+#define IFX_MPS_SRAM IFXMIPS_MPS_SRAM
|
||||
+
|
||||
@@ -106,13 +106,13 @@
|
||||
pFWDwnld->length -= sizeof(IFX_uint32_t);
|
||||
+ switch(ltq_soc_type()) {
|
||||
+ case SOC_TYPE_AR9:
|
||||
+ ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf0017c4;
|
||||
+ ifx_bsp_basic_mps_decrypt = (void (*)(unsigned int, int))0xbf0017c4;
|
||||
+ break;
|
||||
+ case SOC_TYPE_VR9:
|
||||
+ ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf001ea4;
|
||||
+ ifx_bsp_basic_mps_decrypt = (void (*)(unsigned int, int))0xbf001ea4;
|
||||
+ break;
|
||||
+ case SOC_TYPE_VR9_2:
|
||||
+ ifx_bsp_basic_mps_decrypt = (const void (*)(unsigned int, int))0xbf001f38;
|
||||
+ ifx_bsp_basic_mps_decrypt = (void (*)(unsigned int, int))0xbf001f38;
|
||||
+ break;
|
||||
+ }
|
||||
+ if (ifx_bsp_basic_mps_decrypt)
|
||||
|
||||
+143
@@ -0,0 +1,143 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Thu, 8 May 2025 23:53:01 +0800
|
||||
Subject: [PATCH] fix version macro definition conflicts on 6.12 kernel
|
||||
|
||||
Add LANTIQ prefix before MIN/MAX to fix:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_init.c:91:9: error: "MAX" redefined [-Werror]
|
||||
91 | #define MAX(x,y) ((x) > (y) ? (x) : (y))
|
||||
| ^~~
|
||||
./include/linux/minmax.h:330:9: note: this is the location of the previous definition
|
||||
330 | #define MAX(a,b) __cmp(max,a,b)
|
||||
| ^~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_init_cap.c:42:9: error: "MIN" redefined [-Werror]
|
||||
42 | #define MIN(x,y) ({ (x) < (y) ? (x) : (y); })
|
||||
| ^~~
|
||||
./include/linux/minmax.h:329:9: note: this is the location of the previous definition
|
||||
329 | #define MIN(a,b) __cmp(min,a,b)
|
||||
| ^~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_sig_cptd.c:41:9: error: "MAX" redefined [-Werror]
|
||||
41 | #define MAX(x,y) ((x) > (y) ? (x) : (y))
|
||||
| ^~~
|
||||
./include/linux/minmax.h:330:9: note: this is the location of the previous definition
|
||||
330 | #define MAX(a,b) __cmp(max,a,b)
|
||||
| ^~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/drv_vmmc_init.c | 12 ++++++------
|
||||
src/drv_vmmc_init_cap.c | 4 ++--
|
||||
src/drv_vmmc_sig_cptd.c | 4 ++--
|
||||
3 files changed, 10 insertions(+), 10 deletions(-)
|
||||
|
||||
--- a/src/drv_vmmc_init.c
|
||||
+++ b/src/drv_vmmc_init.c
|
||||
@@ -88,7 +88,7 @@ CREATE_TRACE_GROUP(VMMC);
|
||||
/** what compatible driver version */
|
||||
#define DRV_VMMC_WHAT_STR "@(#)Lantiq VMMC device driver, version " DRV_VMMC_VER_STR
|
||||
|
||||
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
|
||||
+#define LANTIQ_MAX(x,y) ((x) > (y) ? (x) : (y))
|
||||
|
||||
#define MPS_CH_VALID(mpsCh) ((mpsCh >= 1 && mpsCh <= 7) ? 1 : 0)
|
||||
|
||||
@@ -927,17 +927,17 @@ static IFX_int32_t VMMC_TAPI_LL_FW_Init(
|
||||
|
||||
/* Maximum number of resources, is the maximum of:
|
||||
nALI, nPCM, nCOD, nSIG, nDECT, nLIN and nAudioCnt. */
|
||||
- tmp1 = MAX (pDev->caps.nALI, pDev->caps.nPCM);
|
||||
- tmp2 = MAX (pDev->caps.nCOD, pDev->caps.nSIG);
|
||||
- pDev->caps.nMaxRes = MAX(tmp1, tmp2);
|
||||
+ tmp1 = LANTIQ_MAX(pDev->caps.nALI, pDev->caps.nPCM);
|
||||
+ tmp2 = LANTIQ_MAX(pDev->caps.nCOD, pDev->caps.nSIG);
|
||||
+ pDev->caps.nMaxRes = LANTIQ_MAX(tmp1, tmp2);
|
||||
#ifdef DECT_SUPPORT
|
||||
- pDev->caps.nMaxRes = MAX(pDev->caps.nMaxRes, pDev->caps.nDECT);
|
||||
+ pDev->caps.nMaxRes = LANTIQ_MAX(pDev->caps.nMaxRes, pDev->caps.nDECT);
|
||||
#endif /* LIN_SUPPORT */
|
||||
#ifdef LIN_SUPPORT
|
||||
- pDev->caps.nMaxRes = MAX(pDev->caps.nMaxRes, pDev->caps.nLIN);
|
||||
+ pDev->caps.nMaxRes = LANTIQ_MAX(pDev->caps.nMaxRes, pDev->caps.nLIN);
|
||||
#endif /* LIN_SUPPORT */
|
||||
#if (VMMC_CFG_FEATURES & VMMC_FEAT_AUDIO)
|
||||
- pDev->caps.nMaxRes = MAX(pDev->caps.nMaxRes, pDev->caps.nAudioCnt);
|
||||
+ pDev->caps.nMaxRes = LANTIQ_MAX(pDev->caps.nMaxRes, pDev->caps.nAudioCnt);
|
||||
#endif /* (VMMC_CFG_FEATURES & VMMC_FEAT_AUDIO) */
|
||||
|
||||
if (pDev->caps.nMaxRes > VMMC_MAX_CH_NR)
|
||||
@@ -977,7 +977,7 @@ static IFX_int32_t VMMC_TAPI_LL_FW_Init(
|
||||
nResource.DTMFRCount = pDev->caps.nDTMFD;
|
||||
nResource.FSKGCount = pDev->caps.nCIDS;
|
||||
nResource.FSKRCount = pDev->caps.nCIDR;
|
||||
- nResource.ToneCount = MAX(pDev->caps.nSIG, pDev->caps.nDECT);
|
||||
+ nResource.ToneCount = LANTIQ_MAX(pDev->caps.nSIG, pDev->caps.nDECT);
|
||||
nResource.HdlcCount = pDev->caps.nHDLC;
|
||||
IFX_TAPI_ReportResources (pDev->pTapiDev,&nResource);
|
||||
|
||||
--- a/src/drv_vmmc_init_cap.c
|
||||
+++ b/src/drv_vmmc_init_cap.c
|
||||
@@ -39,7 +39,7 @@
|
||||
/* ============================= */
|
||||
/* Local Macros & Definitions */
|
||||
/* ============================= */
|
||||
-#define MIN(x,y) ({ (x) < (y) ? (x) : (y); })
|
||||
+#define LANTIQ_MIN(x,y) ({ (x) < (y) ? (x) : (y); })
|
||||
|
||||
/* ============================= */
|
||||
/* Local function declaration */
|
||||
@@ -392,7 +392,7 @@ IFX_return_t VMMC_Get_FwCap(VMMC_DEVICE
|
||||
/* Read the maximum length of the message that we can interpret but
|
||||
not more than the firmware can provide. */
|
||||
/* BLEN is the length including the header that the fw reports. */
|
||||
- capCmd.LENGTH = MIN (capCmd.BLEN, sizeof(SYS_CAP_t));
|
||||
+ capCmd.LENGTH = LANTIQ_MIN(capCmd.BLEN, sizeof(SYS_CAP_t));
|
||||
/* Subtract the length of the header. */
|
||||
capCmd.LENGTH -= CMD_HDR_CNT;
|
||||
/* Read capability once more - this time with maximum length. */
|
||||
@@ -479,7 +479,7 @@ IFX_return_t VMMC_Get_FwCap(VMMC_DEVICE
|
||||
pDev->caps.FEAT = capCmd.FEAT;
|
||||
/* Number of UTG resources per channel (== SIG module), either 1 or 2 */
|
||||
pDev->caps.nUtgPerCh = (capCmd.FEAT & EDSP_CAP_FEAT_UTGUD) ? 2 : 1;
|
||||
- pDev->caps.nUtgPerCh = MIN(pDev->caps.nUtgPerCh, LL_TAPI_TONE_MAXRES);
|
||||
+ pDev->caps.nUtgPerCh = LANTIQ_MIN(pDev->caps.nUtgPerCh, LL_TAPI_TONE_MAXRES);
|
||||
/* Number of AudioChannels */
|
||||
pDev->caps.nAudioCnt = (pDev->caps.FEAT & EDSP_CAP_FEAT_CHAUD) ? 1 : 0;
|
||||
/* Overlays */
|
||||
--- a/src/drv_vmmc_sig_cptd.c
|
||||
+++ b/src/drv_vmmc_sig_cptd.c
|
||||
@@ -38,7 +38,7 @@
|
||||
/** define which constant is taken for cpt level calculation */
|
||||
#define CONST_CPT CONST_CPT_BLACKMAN
|
||||
/* return the maximum of two scalar values */
|
||||
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
|
||||
+#define LANTIQ_MAX(x,y) ((x) > (y) ? (x) : (y))
|
||||
|
||||
/* ============================= */
|
||||
/* Local function declaration */
|
||||
@@ -511,7 +511,7 @@ static IFX_int32_t vmmc_sig_CPTD_SetCoef
|
||||
if (nTenPercentTimeTolerance > nMaxTenPercentTimeTolerance)
|
||||
nMaxTenPercentTimeTolerance = nTenPercentTimeTolerance;
|
||||
|
||||
- val = (IFX_uint16_t) (pTone->cadence[i] - MAX(nAbsoluteTimeTolerance,
|
||||
+ val = (IFX_uint16_t) (pTone->cadence[i] - LANTIQ_MAX(nAbsoluteTimeTolerance,
|
||||
nTenPercentTimeTolerance));
|
||||
switch (i)
|
||||
{
|
||||
@@ -578,7 +578,7 @@ static IFX_int32_t vmmc_sig_CPTD_SetCoef
|
||||
{
|
||||
/* set tolerance +TIM_TOL */
|
||||
pCmd->TIM_TOL =
|
||||
- (2 * MAX (nAbsoluteTimeTolerance, nMaxTenPercentTimeTolerance));
|
||||
+ (2 * LANTIQ_MAX(nAbsoluteTimeTolerance, nMaxTenPercentTimeTolerance));
|
||||
/* return because nothing more to do */
|
||||
return IFX_SUCCESS;
|
||||
}
|
||||
@@ -605,7 +605,7 @@ static IFX_int32_t vmmc_sig_CPTD_SetCoef
|
||||
/* set tolerance +TIM_TOL and NR of successfully fulfilled timing
|
||||
requirement steps required to pass */
|
||||
pCmd->TIM_TOL =
|
||||
- (2 * MAX (nAbsoluteTimeTolerance, nMaxTenPercentTimeTolerance));
|
||||
+ (2 * LANTIQ_MAX(nAbsoluteTimeTolerance, nMaxTenPercentTimeTolerance));
|
||||
pCmd->NR = nr;
|
||||
|
||||
return IFX_SUCCESS;
|
||||
@@ -0,0 +1,28 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 01:31:44 +0800
|
||||
Subject: [PATCH] fix unknown type name errors
|
||||
|
||||
Fix compilation errors:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_sig.h:41:45: error: unknown type name 'IFX_TAPI_DRV_CTX_SIG_t'
|
||||
41 | extern IFX_void_t VMMC_SIG_Func_Register (IFX_TAPI_DRV_CTX_SIG_t *pSig);
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/drv_vmmc_sig.h:43:54: error: unknown type name 'VMMC_CHANNEL'
|
||||
43 | extern IFX_int32_t VMMC_SIG_Allocate_Ch_Structures (VMMC_CHANNEL *pCh);
|
||||
| ^~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/drv_vmmc_sig.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/src/drv_vmmc_sig.h
|
||||
+++ b/src/drv_vmmc_sig.h
|
||||
@@ -20,6 +20,7 @@
|
||||
/* ============================= */
|
||||
/* Includes */
|
||||
/* ============================= */
|
||||
+#include "drv_vmmc_api.h"
|
||||
#include "ifx_types.h"
|
||||
|
||||
/* ============================= */
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Fri, 9 May 2025 01:43:41 +0800
|
||||
Subject: [PATCH] fix 'inline' is not at beginning of declaration
|
||||
|
||||
Fix build warning on 6.12 kernel:
|
||||
|
||||
/home/db/owrt/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/drv_vmmc-1.9.0/src/mps/drv_mps_vmmc_common.c:58:1: error: 'inline' is not at beginning of declaration [-Werror=old-style-declaration]
|
||||
58 | static void inline bsp_mask_and_ack_irq(int x)
|
||||
| ^~~~~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
src/mps/drv_mps_vmmc_common.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/src/mps/drv_mps_vmmc_common.c
|
||||
+++ b/src/mps/drv_mps_vmmc_common.c
|
||||
@@ -55,7 +55,7 @@
|
||||
# define bsp_mask_and_ack_irq ltq_mask_and_ack_irq
|
||||
#else
|
||||
extern void ltq_mask_and_ack_irq(struct irq_data *d);
|
||||
-static void inline bsp_mask_and_ack_irq(int x)
|
||||
+static inline void bsp_mask_and_ack_irq(int x)
|
||||
{
|
||||
struct irq_data d;
|
||||
d.hwirq = x;
|
||||
@@ -1,6 +1,14 @@
|
||||
--- a/ep.c
|
||||
+++ b/ep.c
|
||||
@@ -373,23 +373,23 @@ int dc_ep_dev_info_req(int dev_idx, enum
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <linux/pci.h>
|
||||
#include <linux/pci_regs.h>
|
||||
#include <linux/platform_device.h>
|
||||
+#include <linux/version.h>
|
||||
|
||||
#include "ep.h"
|
||||
#include "aca.h"
|
||||
@@ -373,23 +374,23 @@ int dc_ep_dev_info_req(int dev_idx, enum
|
||||
|
||||
switch (module) {
|
||||
case DC_EP_INT_PPE:
|
||||
@@ -31,18 +39,22 @@
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -466,8 +466,8 @@ static int dc_ep_msi_enable(struct pci_d
|
||||
@@ -466,8 +467,12 @@ static int dc_ep_msi_enable(struct pci_d
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
- err = pci_enable_msi_exact(pdev, nvec);
|
||||
- if (err) {
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(6, 10, 0))
|
||||
+ err = pci_alloc_irq_vectors(pdev, nvec, nvec, PCI_IRQ_MSI | PCI_IRQ_LEGACY);
|
||||
+#else
|
||||
+ err = pci_alloc_irq_vectors(pdev, nvec, nvec, PCI_IRQ_MSI | PCI_IRQ_INTX);
|
||||
+#endif
|
||||
+ if (err < 0) {
|
||||
dev_err(&pdev->dev,
|
||||
"%s: Failed to enable MSI interrupts error code: %d\n",
|
||||
__func__, err);
|
||||
@@ -589,15 +589,15 @@ static int dc_ep_probe(struct pci_dev *p
|
||||
@@ -589,15 +594,15 @@ static int dc_ep_probe(struct pci_dev *p
|
||||
/* Target structures have a limit of 32 bit DMA pointers.
|
||||
* DMA pointers can be wider than 32 bits by default on some systems.
|
||||
*/
|
||||
@@ -61,7 +73,7 @@
|
||||
goto err_region;
|
||||
}
|
||||
|
||||
@@ -654,7 +654,7 @@ static int dc_ep_probe(struct pci_dev *p
|
||||
@@ -654,7 +659,7 @@ static int dc_ep_probe(struct pci_dev *p
|
||||
goto err_iomap;
|
||||
|
||||
spin_lock(&dc_ep_lock);
|
||||
@@ -70,7 +82,7 @@
|
||||
spin_unlock(&dc_ep_lock);
|
||||
|
||||
#ifndef CONFIG_OF
|
||||
@@ -715,7 +715,7 @@ static void dc_ep_remove(struct pci_dev
|
||||
@@ -715,7 +720,7 @@ static void dc_ep_remove(struct pci_dev
|
||||
dc_ep_icu_disable(priv);
|
||||
pci_iounmap(pdev, priv->mem);
|
||||
pci_release_region(pdev, DC_EP_BAR_NUM);
|
||||
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Wed, 7 May 2025 19:16:16 +0800
|
||||
Subject: [PATCH] fix version macro definition conflicts on 6.12 kernel
|
||||
|
||||
Add LANTIQ prefix to version variable names to fix:
|
||||
|
||||
/home/db/owrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-ipq40xx_generic/vrx518_ep-2.1.0/ep.c:45:9: error: "MIN" redefined [-Werror]
|
||||
45 | #define MIN 1
|
||||
| ^~~
|
||||
./include/linux/minmax.h:329:9: note: this is the location of the previous definition
|
||||
329 | #define MIN(a,b) __cmp(min,a,b)
|
||||
| ^~~
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
ep.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/ep.c
|
||||
+++ b/ep.c
|
||||
@@ -42,10 +42,10 @@
|
||||
|
||||
#define DC_EP_DBG
|
||||
|
||||
-#define MAJ 2
|
||||
-#define MIN 1
|
||||
+#define LANTIQ_MAJ 2
|
||||
+#define LANTIQ_MIN 1
|
||||
#define BUILD 0
|
||||
-#define DRV_VERSION __stringify(MAJ) "." __stringify(MIN) "." \
|
||||
+#define DRV_VERSION __stringify(LANTIQ_MAJ) "." __stringify(LANTIQ_MIN) "." \
|
||||
__stringify(BUILD) "-k"
|
||||
|
||||
static bool pcie_switch_exist;
|
||||
+3
-3
@@ -22,9 +22,9 @@ Signed-off-by: Andrew MacIntyre <andymac@pcug.org.au>
|
||||
dcdp/ptm_tc.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/dcdp/ptm_tc.c 2023-12-17 16:11:22.503500398 +1100
|
||||
+++ b/dcdp/ptm_tc.c 2024-01-26 16:48:49.881623474 +1100
|
||||
@@ -657,6 +657,7 @@ static void ptm_setup(struct net_device
|
||||
--- a/dcdp/ptm_tc.c
|
||||
+++ b/dcdp/ptm_tc.c
|
||||
@@ -666,6 +666,7 @@ static void ptm_setup(struct net_device
|
||||
ether_setup(dev);
|
||||
dev->watchdog_timeo = 10 * HZ;
|
||||
dev->netdev_ops = &g_ptm_netdev_ops;
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
From: Shiji Yang <yangshiji66@outlook.com>
|
||||
Date: Thu, 8 May 2025 7:43:51 +0800
|
||||
Subject: [PATCH] fix missing prototypes warnings
|
||||
|
||||
This patch fixes various missing-prototypes build warnings on
|
||||
6.12 kernel.
|
||||
|
||||
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
---
|
||||
dcdp/atm_tc.c | 2 +-
|
||||
dcdp/inc/platform.h | 1 +
|
||||
dcdp/platform/sw_plat.c | 1 +
|
||||
dcdp/tc_proc.c | 4 ++--
|
||||
4 files changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/dcdp/atm_tc.c
|
||||
+++ b/dcdp/atm_tc.c
|
||||
@@ -279,7 +279,7 @@ unsigned int find_vpi(unsigned int vpi)
|
||||
* success: 0
|
||||
* failed: -1
|
||||
*/
|
||||
-unsigned int find_vpivci_from_queue_id(
|
||||
+static unsigned int find_vpivci_from_queue_id(
|
||||
unsigned int queue_id,
|
||||
unsigned int *vpi,
|
||||
unsigned int *vci)
|
||||
--- a/dcdp/inc/platform.h
|
||||
+++ b/dcdp/inc/platform.h
|
||||
@@ -20,6 +20,7 @@
|
||||
the file called "COPYING".
|
||||
|
||||
*******************************************************************************/
|
||||
+struct tc_priv;
|
||||
extern size_t plat_priv_sz(void);
|
||||
extern int platform_init(struct tc_priv *, const char *);
|
||||
extern void platform_exit(void);
|
||||
--- a/dcdp/platform/sw_plat.c
|
||||
+++ b/dcdp/platform/sw_plat.c
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <linux/workqueue.h>
|
||||
#include "../inc/dsl_tc.h"
|
||||
|
||||
+#include "../inc/platform.h"
|
||||
#include "../inc/tc_main.h"
|
||||
#include "../inc/reg_addr.h"
|
||||
#include "../inc/tc_common.h"
|
||||
--- a/dcdp/tc_proc.c
|
||||
+++ b/dcdp/tc_proc.c
|
||||
@@ -1945,7 +1945,7 @@ static void fwdbg_help(struct tc_comm *p
|
||||
if (!cmds[i].cmd)
|
||||
fwdbg_help(priv, NULL, 0, result);
|
||||
}
|
||||
-int fw_dbg_start(struct tc_comm *priv,
|
||||
+static int fw_dbg_start(struct tc_comm *priv,
|
||||
char *commands[], int num, char *result)
|
||||
{
|
||||
int i;
|
||||
@@ -1964,7 +1964,7 @@ int fw_dbg_start(struct tc_comm *priv,
|
||||
return 0;
|
||||
}
|
||||
|
||||
-ssize_t proc_write_fwdbg_seq(
|
||||
+static ssize_t proc_write_fwdbg_seq(
|
||||
struct file *file,
|
||||
const char __user *buf,
|
||||
size_t count,
|
||||
@@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mbedtls
|
||||
PKG_VERSION:=3.6.4
|
||||
PKG_VERSION:=3.6.5
|
||||
PKG_RELEASE:=1
|
||||
PKG_BUILD_FLAGS:=no-mips16 gc-sections no-lto
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL=https://github.com/Mbed-TLS/$(PKG_NAME)/releases/download/$(PKG_NAME)-$(PKG_VERSION)
|
||||
PKG_HASH:=ec35b18a6c593cf98c3e30db8b98ff93e8940a8c4e690e66b41dfc011d678110
|
||||
PKG_HASH:=4a11f1777bb95bf4ad96721cac945a26e04bf19f57d905f241fe77ebeddf46d8
|
||||
|
||||
PKG_LICENSE:=GPL-2.0-or-later
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
@@ -12,9 +12,9 @@ PKG_SOURCE_DATE:=2018-06-27
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_URL:=https://git.netfilter.org/ebtables
|
||||
PKG_MIRROR_HASH:=3039d73b167c41025b1b401b647743b9c6d786613c693eef34de325b30de6d47
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=48cff25dfea5b37e16ba5dc6601e98ab140f5f99
|
||||
PKG_MIRROR_HASH:=1ee560498e1a047b329eab3dad8425ae51e7f0527e4495efb99481ca11206b37
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_CPE_ID:=cpe:/a:netfilter:ebtables
|
||||
|
||||
@@ -5,10 +5,10 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/ubus.git
|
||||
PKG_SOURCE_DATE:=2025-07-02
|
||||
PKG_SOURCE_DATE:=2025-10-17
|
||||
PKG_SOURCE_DATE_ABI:=2025-01-02
|
||||
PKG_SOURCE_VERSION:=5952b48e251c0ea76dfce97f129da6f18d889eda
|
||||
PKG_MIRROR_HASH:=60edfc101eaa85976d243febc368fc419fe44283bd3a743851a6bc7975e881f0
|
||||
PKG_SOURCE_VERSION:=60e04048a0e2f3e33651c19e62861b41be4c290f
|
||||
PKG_MIRROR_HASH:=2db028305ae58afe184bb01e51d3635898d84ffcd04308a73ce143c05fc7b2db
|
||||
PKG_ABI_VERSION:=$(call abi_version_str,$(PKG_SOURCE_DATE_ABI))
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
From 0fc403192dcc8def1f6284959141608ac4c86699 Mon Sep 17 00:00:00 2001
|
||||
From: Namjae Jeon <linkinjeon@kernel.org>
|
||||
Date: Fri, 10 Jan 2025 13:37:05 +0900
|
||||
Subject: ksmbd: browse interfaces list on FSCTL_QUERY_INTERFACE_INFO IOCTL
|
||||
|
||||
[ Upstream commit b2d99376c5d61eb60ffdb6c503e4b6c8f9712ddd ]
|
||||
|
||||
ksmbd.mount will give each interfaces list and bind_interfaces_only flags
|
||||
to ksmbd server. Previously, the interfaces list was sent only
|
||||
when bind_interfaces_only was enabled.
|
||||
ksmbd server browse only interfaces list given from ksmbd.conf on
|
||||
FSCTL_QUERY_INTERFACE_INFO IOCTL.
|
||||
|
||||
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
|
||||
Signed-off-by: Steve French <stfrench@microsoft.com>
|
||||
Stable-dep-of: 21a4e47578d4 ("ksmbd: fix use-after-free in __smb2_lease_break_noti()")
|
||||
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
||||
---
|
||||
fs/smb/server/ksmbd_netlink.h | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
(limited to 'fs/smb/server/ksmbd_netlink.h')
|
||||
|
||||
--- a/fs/smb/server/ksmbd_netlink.h
|
||||
+++ b/fs/smb/server/ksmbd_netlink.h
|
||||
@@ -108,7 +108,8 @@ struct ksmbd_startup_request {
|
||||
__u32 smb2_max_credits; /* MAX credits */
|
||||
__u32 smbd_max_io_size; /* smbd read write size */
|
||||
__u32 max_connections; /* Number of maximum simultaneous connections */
|
||||
- __u32 reserved[126]; /* Reserved room */
|
||||
+ __s8 bind_interfaces_only;
|
||||
+ __s8 reserved[503]; /* Reserved room */
|
||||
__u32 ifc_list_sz; /* interfaces list size */
|
||||
__s8 ____payload[];
|
||||
};
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
From d8b6dc9256762293048bf122fc11c4e612d0ef5d Mon Sep 17 00:00:00 2001
|
||||
From: Namjae Jeon <linkinjeon@kernel.org>
|
||||
Date: Wed, 1 Oct 2025 09:25:35 +0900
|
||||
Subject: ksmbd: add max ip connections parameter
|
||||
|
||||
This parameter set the maximum number of connections per ip address.
|
||||
The default is 8.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Fixes: c0d41112f1a5 ("ksmbd: extend the connection limiting mechanism to support IPv6")
|
||||
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
|
||||
Signed-off-by: Steve French <stfrench@microsoft.com>
|
||||
---
|
||||
fs/smb/server/ksmbd_netlink.h | 5 +++--
|
||||
fs/smb/server/server.h | 1 +
|
||||
fs/smb/server/transport_ipc.c | 3 +++
|
||||
fs/smb/server/transport_tcp.c | 27 ++++++++++++++++-----------
|
||||
4 files changed, 23 insertions(+), 13 deletions(-)
|
||||
|
||||
(limited to 'fs/smb')
|
||||
|
||||
--- a/fs/smb/server/ksmbd_netlink.h
|
||||
+++ b/fs/smb/server/ksmbd_netlink.h
|
||||
@@ -109,10 +109,11 @@ struct ksmbd_startup_request {
|
||||
__u32 smbd_max_io_size; /* smbd read write size */
|
||||
__u32 max_connections; /* Number of maximum simultaneous connections */
|
||||
__s8 bind_interfaces_only;
|
||||
- __s8 reserved[503]; /* Reserved room */
|
||||
+ __u32 max_ip_connections; /* Number of maximum connection per ip address */
|
||||
+ __s8 reserved[499]; /* Reserved room */
|
||||
__u32 ifc_list_sz; /* interfaces list size */
|
||||
__s8 ____payload[];
|
||||
-};
|
||||
+} __packed;
|
||||
|
||||
#define KSMBD_STARTUP_CONFIG_INTERFACES(s) ((s)->____payload)
|
||||
|
||||
--- a/fs/smb/server/server.h
|
||||
+++ b/fs/smb/server/server.h
|
||||
@@ -43,6 +43,7 @@ struct ksmbd_server_config {
|
||||
unsigned int auth_mechs;
|
||||
unsigned int max_connections;
|
||||
unsigned int max_inflight_req;
|
||||
+ unsigned int max_ip_connections;
|
||||
|
||||
char *conf[SERVER_CONF_WORK_GROUP + 1];
|
||||
};
|
||||
--- a/fs/smb/server/transport_ipc.c
|
||||
+++ b/fs/smb/server/transport_ipc.c
|
||||
@@ -321,6 +321,9 @@ static int ipc_server_config_on_startup(
|
||||
if (req->max_connections)
|
||||
server_conf.max_connections = req->max_connections;
|
||||
|
||||
+ if (req->max_ip_connections)
|
||||
+ server_conf.max_ip_connections = req->max_ip_connections;
|
||||
+
|
||||
ret = ksmbd_set_netbios_name(req->netbios_name);
|
||||
ret |= ksmbd_set_server_string(req->server_string);
|
||||
ret |= ksmbd_set_work_group(req->work_group);
|
||||
--- a/fs/smb/server/transport_tcp.c
|
||||
+++ b/fs/smb/server/transport_tcp.c
|
||||
@@ -240,6 +240,7 @@ static int ksmbd_kthread_fn(void *p)
|
||||
struct interface *iface = (struct interface *)p;
|
||||
struct ksmbd_conn *conn;
|
||||
int ret;
|
||||
+ unsigned int max_ip_conns;
|
||||
|
||||
while (!kthread_should_stop()) {
|
||||
mutex_lock(&iface->sock_release_lock);
|
||||
@@ -257,34 +258,38 @@ static int ksmbd_kthread_fn(void *p)
|
||||
continue;
|
||||
}
|
||||
|
||||
+ if (!server_conf.max_ip_connections)
|
||||
+ goto skip_max_ip_conns_limit;
|
||||
+
|
||||
/*
|
||||
* Limits repeated connections from clients with the same IP.
|
||||
*/
|
||||
+ max_ip_conns = 0;
|
||||
down_read(&conn_list_lock);
|
||||
- list_for_each_entry(conn, &conn_list, conns_list)
|
||||
+ list_for_each_entry(conn, &conn_list, conns_list) {
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
if (client_sk->sk->sk_family == AF_INET6) {
|
||||
if (memcmp(&client_sk->sk->sk_v6_daddr,
|
||||
- &conn->inet6_addr, 16) == 0) {
|
||||
- ret = -EAGAIN;
|
||||
- break;
|
||||
- }
|
||||
+ &conn->inet6_addr, 16) == 0)
|
||||
+ max_ip_conns++;
|
||||
} else if (inet_sk(client_sk->sk)->inet_daddr ==
|
||||
- conn->inet_addr) {
|
||||
- ret = -EAGAIN;
|
||||
- break;
|
||||
- }
|
||||
+ conn->inet_addr)
|
||||
+ max_ip_conns++;
|
||||
#else
|
||||
if (inet_sk(client_sk->sk)->inet_daddr ==
|
||||
- conn->inet_addr) {
|
||||
+ conn->inet_addr)
|
||||
+ max_ip_conns++;
|
||||
+#endif
|
||||
+ if (server_conf.max_ip_connections <= max_ip_conns) {
|
||||
ret = -EAGAIN;
|
||||
break;
|
||||
}
|
||||
-#endif
|
||||
+ }
|
||||
up_read(&conn_list_lock);
|
||||
if (ret == -EAGAIN)
|
||||
continue;
|
||||
|
||||
+skip_max_ip_conns_limit:
|
||||
if (server_conf.max_connections &&
|
||||
atomic_inc_return(&active_num_conn) >= server_conf.max_connections) {
|
||||
pr_info_ratelimited("Limit the maximum number of connections(%u)\n",
|
||||
@@ -33,6 +33,11 @@ define Device/Default
|
||||
pad-rootfs | append-metadata
|
||||
endef
|
||||
|
||||
define Build/asus-trx
|
||||
$(STAGING_DIR_HOST)/bin/asusuimage $(wordlist 1,$(words $(1)),$(1)) -i $@ -o $@.new
|
||||
mv $@.new $@
|
||||
endef
|
||||
|
||||
include $(SUBTARGET).mk
|
||||
|
||||
define Image/Build
|
||||
|
||||
@@ -271,6 +271,9 @@ define Device/asus_rt-ax52
|
||||
KERNEL_INITRAMFS := kernel-bin | lzma | \
|
||||
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
|
||||
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
||||
ARTIFACTS := initramfs.trx
|
||||
ARTIFACT/initramfs.trx := append-image-stage initramfs-kernel.bin | \
|
||||
uImage none | asus-trx -v 3 -n $$(DEVICE_MODEL)
|
||||
endef
|
||||
TARGET_DEVICES += asus_rt-ax52
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ CONFIG_GRO_CELLS=y
|
||||
CONFIG_LZO_COMPRESS=y
|
||||
CONFIG_LZO_DECOMPRESS=y
|
||||
CONFIG_MEMORY=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_NAND_FSL_IFC=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_SPLIT_TPLINK_FW=y
|
||||
|
||||
Reference in New Issue
Block a user