* [frank-w-bpi-r2-4.14:5.15-bpi-r2-pro 9/62] drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1985:11: error: variable 'u4Wait' set but not used
@ 2021-10-11 15:01 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-10-11 15:01 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 54262 bytes --]
tree: https://github.com/frank-w/BPI-R2-4.14 5.15-bpi-r2-pro
head: e9ec5310dae7e8b499130a2c7bb017d8bbc911b0
commit: b96e96b48153deec6b4c25facf47315bcc052e1f [9/62] mt6625l: disable {get,set}_fs as these are dropped in 5.15 source
config: arm-randconfig-r014-20211011 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 903b30fea21f99d8f48fde4defcc838970e30ee1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/frank-w/BPI-R2-4.14/commit/b96e96b48153deec6b4c25facf47315bcc052e1f
git remote add frank-w-bpi-r2-4.14 https://github.com/frank-w/BPI-R2-4.14
git fetch --no-tags frank-w-bpi-r2-4.14 5.15-bpi-r2-pro
git checkout b96e96b48153deec6b4c25facf47315bcc052e1f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1291:31: error: unused variable 'wmt_dbg_fops' [-Werror,-Wunused-variable]
static const struct proc_ops wmt_dbg_fops = {
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1289:7: error: no previous prototype for function 'wmt_dev_dbg_setup' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_dbg_setup(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1289:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_dbg_setup(VOID)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1303:7: error: no previous prototype for function 'wmt_dev_dbg_remove' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_dbg_remove(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1303:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_dbg_remove(VOID)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1376:31: error: unused variable 'wmt_aee_fops' [-Werror,-Wunused-variable]
static const struct proc_ops wmt_aee_fops = {
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1374:7: error: no previous prototype for function 'wmt_dev_proc_for_aee_setup' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_proc_for_aee_setup(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1374:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_proc_for_aee_setup(VOID)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1390:7: error: no previous prototype for function 'wmt_dev_proc_for_aee_remove' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_proc_for_aee_remove(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1390:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_proc_for_aee_remove(VOID)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1435:7: error: no previous prototype for function 'wmt_dev_read_file' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_read_file(PUINT8 pName, const PPUINT8 ppBufPtr, INT32 offset, INT32 padSzBuf)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1435:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_read_file(PUINT8 pName, const PPUINT8 ppBufPtr, INT32 offset, INT32 padSzBuf)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1597:14: error: no previous prototype for function 'wmt_dev_is_file_exist' [-Werror,-Wmissing-prototypes]
MTK_WCN_BOOL wmt_dev_is_file_exist(PUINT8 pFileName)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1597:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
MTK_WCN_BOOL wmt_dev_is_file_exist(PUINT8 pFileName)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1645:14: error: no previous prototype for function 'wmt_dev_tra_bitf_update' [-Werror,-Wmissing-prototypes]
extern INT32 wmt_dev_tra_bitf_update(void)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1645:8: note: declare 'static' if the function is not intended to be used outside of this translation unit
extern INT32 wmt_dev_tra_bitf_update(void)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1703:6: error: no previous prototype for function 'wmt_dev_tm_temp_query' [-Werror,-Wmissing-prototypes]
long wmt_dev_tm_temp_query(void)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1703:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
long wmt_dev_tm_temp_query(void)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1801:9: error: no previous prototype for function 'WMT_write' [-Werror,-Wmissing-prototypes]
ssize_t WMT_write(struct file *filp, const char __user *buf, size_t count, loff_t *f_pos)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1801:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ssize_t WMT_write(struct file *filp, const char __user *buf, size_t count, loff_t *f_pos)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1834:9: error: no previous prototype for function 'WMT_read' [-Werror,-Wmissing-prototypes]
ssize_t WMT_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1834:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ssize_t WMT_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1865:14: error: no previous prototype for function 'WMT_poll' [-Werror,-Wmissing-prototypes]
unsigned int WMT_poll(struct file *filp, poll_table *wait)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1865:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
unsigned int WMT_poll(struct file *filp, poll_table *wait)
^
static
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1985:11: error: variable 'u4Wait' set but not used [-Werror,-Wunused-but-set-variable]
UINT32 u4Wait;
^
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2154:21: error: variable 'pTemp' set but not used [-Werror,-Wunused-but-set-variable]
P_WMT_PATCH_INFO pTemp = NULL;
^
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1885:6: error: no previous prototype for function 'WMT_unlocked_ioctl' [-Werror,-Wmissing-prototypes]
long WMT_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1885:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
long WMT_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
^
static
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2368:6: error: no previous prototype for function 'wmt_dev_bgw_desense_init' [-Werror,-Wmissing-prototypes]
void wmt_dev_bgw_desense_init(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2368:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void wmt_dev_bgw_desense_init(VOID)
^
static
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2373:6: error: no previous prototype for function 'wmt_dev_bgw_desense_deinit' [-Werror,-Wmissing-prototypes]
void wmt_dev_bgw_desense_deinit(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2373:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void wmt_dev_bgw_desense_deinit(VOID)
^
static
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2544:5: error: no previous prototype for function 'mtk_wcn_soc_common_drv_init' [-Werror,-Wmissing-prototypes]
int mtk_wcn_soc_common_drv_init(void)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2544:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int mtk_wcn_soc_common_drv_init(void)
^
static
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
--
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1291:31: error: unused variable 'wmt_dbg_fops' [-Werror,-Wunused-variable]
static const struct proc_ops wmt_dbg_fops = {
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1289:7: error: no previous prototype for function 'wmt_dev_dbg_setup' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_dbg_setup(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1289:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_dbg_setup(VOID)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1303:7: error: no previous prototype for function 'wmt_dev_dbg_remove' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_dbg_remove(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1303:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_dbg_remove(VOID)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1376:31: error: unused variable 'wmt_aee_fops' [-Werror,-Wunused-variable]
static const struct proc_ops wmt_aee_fops = {
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1374:7: error: no previous prototype for function 'wmt_dev_proc_for_aee_setup' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_proc_for_aee_setup(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1374:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_proc_for_aee_setup(VOID)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1390:7: error: no previous prototype for function 'wmt_dev_proc_for_aee_remove' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_proc_for_aee_remove(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1390:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_proc_for_aee_remove(VOID)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1435:7: error: no previous prototype for function 'wmt_dev_read_file' [-Werror,-Wmissing-prototypes]
INT32 wmt_dev_read_file(PUINT8 pName, const PPUINT8 ppBufPtr, INT32 offset, INT32 padSzBuf)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1435:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
INT32 wmt_dev_read_file(PUINT8 pName, const PPUINT8 ppBufPtr, INT32 offset, INT32 padSzBuf)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1597:14: error: no previous prototype for function 'wmt_dev_is_file_exist' [-Werror,-Wmissing-prototypes]
MTK_WCN_BOOL wmt_dev_is_file_exist(PUINT8 pFileName)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1597:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
MTK_WCN_BOOL wmt_dev_is_file_exist(PUINT8 pFileName)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1645:14: error: no previous prototype for function 'wmt_dev_tra_bitf_update' [-Werror,-Wmissing-prototypes]
extern INT32 wmt_dev_tra_bitf_update(void)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1645:8: note: declare 'static' if the function is not intended to be used outside of this translation unit
extern INT32 wmt_dev_tra_bitf_update(void)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1703:6: error: no previous prototype for function 'wmt_dev_tm_temp_query' [-Werror,-Wmissing-prototypes]
long wmt_dev_tm_temp_query(void)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1703:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
long wmt_dev_tm_temp_query(void)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1801:9: error: no previous prototype for function 'WMT_write' [-Werror,-Wmissing-prototypes]
ssize_t WMT_write(struct file *filp, const char __user *buf, size_t count, loff_t *f_pos)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1801:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ssize_t WMT_write(struct file *filp, const char __user *buf, size_t count, loff_t *f_pos)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1834:9: error: no previous prototype for function 'WMT_read' [-Werror,-Wmissing-prototypes]
ssize_t WMT_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1834:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
ssize_t WMT_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos)
^
static
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1865:14: error: no previous prototype for function 'WMT_poll' [-Werror,-Wmissing-prototypes]
unsigned int WMT_poll(struct file *filp, poll_table *wait)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1865:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
unsigned int WMT_poll(struct file *filp, poll_table *wait)
^
static
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1985:11: error: variable 'u4Wait' set but not used [-Werror,-Wunused-but-set-variable]
UINT32 u4Wait;
^
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2154:21: error: variable 'pTemp' set but not used [-Werror,-Wunused-but-set-variable]
P_WMT_PATCH_INFO pTemp = NULL;
^
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1885:6: error: no previous prototype for function 'WMT_unlocked_ioctl' [-Werror,-Wmissing-prototypes]
long WMT_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1885:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
long WMT_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
^
static
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2368:6: error: no previous prototype for function 'wmt_dev_bgw_desense_init' [-Werror,-Wmissing-prototypes]
void wmt_dev_bgw_desense_init(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2368:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void wmt_dev_bgw_desense_init(VOID)
^
static
>> drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2373:6: error: no previous prototype for function 'wmt_dev_bgw_desense_deinit' [-Werror,-Wmissing-prototypes]
void wmt_dev_bgw_desense_deinit(VOID)
^
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2373:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void wmt_dev_bgw_desense_deinit(VOID)
^
static
18 errors generated.
vim +/u4Wait +1985 drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1883
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1884 /* INT32 WMT_ioctl(struct inode *inode, struct file *filp, UINT32 cmd, unsigned long arg) */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 @1885 long WMT_unlocked_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1886 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1887
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1888 INT32 iRet = 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1889 UINT8 *pBuffer = NULL;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1890
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1891 WMT_DBG_FUNC("cmd (%u), arg (0x%lx)\n", cmd, arg);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1892 switch (cmd) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1893 case WMT_IOCTL_SET_PATCH_NAME: /* patch location */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1894 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1895
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1896 pBuffer = kmalloc(NAME_MAX + 1, GFP_KERNEL);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1897 if (!pBuffer) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1898 WMT_ERR_FUNC("pBuffer kmalloc memory fail\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1899 return 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1900 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1901 if (copy_from_user(pBuffer, (void *)arg, NAME_MAX)) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1902 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1903 kfree(pBuffer);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1904 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1905 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1906 pBuffer[NAME_MAX] = '\0';
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1907 wmt_lib_set_patch_name(pBuffer);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1908 kfree(pBuffer);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1909 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1910 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1911
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1912 case WMT_IOCTL_SET_STP_MODE: /* stp/hif/fm mode */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1913
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1914 /* set hif conf */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1915 do {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1916 P_OSAL_OP pOp;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1917 MTK_WCN_BOOL bRet;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1918 P_OSAL_SIGNAL pSignal = NULL;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1919 P_WMT_HIF_CONF pHif = NULL;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1920
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1921 iRet = wmt_lib_set_hif(arg);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1922 if (0 != iRet) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1923 WMT_INFO_FUNC("wmt_lib_set_hif fail\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1924 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1925 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1926
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1927 pOp = wmt_lib_get_free_op();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1928 if (!pOp) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1929 WMT_INFO_FUNC("get_free_lxop fail\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1930 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1931 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1932 pSignal = &pOp->signal;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1933 pOp->op.opId = WMT_OPID_HIF_CONF;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1934
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1935 pHif = wmt_lib_get_hif();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1936
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1937 osal_memcpy(&pOp->op.au4OpData[0], pHif, sizeof(WMT_HIF_CONF));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1938 pOp->op.u4InfoBit = WMT_OP_HIF_BIT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1939 pSignal->timeoutValue = 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1940
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1941 bRet = wmt_lib_put_act_op(pOp);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1942 WMT_DBG_FUNC("WMT_OPID_HIF_CONF result(%d)\n", bRet);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1943 iRet = (MTK_WCN_BOOL_FALSE == bRet) ? -EFAULT : 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1944 } while (0);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1945
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1946 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1947
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1948 case WMT_IOCTL_FUNC_ONOFF_CTRL: /* test turn on/off func */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1949
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1950 do {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1951 MTK_WCN_BOOL bRet = MTK_WCN_BOOL_FALSE;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1952
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1953 if (arg & 0x80000000)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1954 bRet = mtk_wcn_wmt_func_on(arg & 0xF);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1955 else
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1956 bRet = mtk_wcn_wmt_func_off(arg & 0xF);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1957
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1958 iRet = (MTK_WCN_BOOL_FALSE == bRet) ? -EFAULT : 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1959 } while (0);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1960
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1961 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1962
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1963 case WMT_IOCTL_LPBK_POWER_CTRL:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1964 /*switch Loopback function on/off
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1965 arg: bit0 = 1:turn loopback function on
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1966 bit0 = 0:turn loopback function off
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1967 */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1968 do {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1969 MTK_WCN_BOOL bRet = MTK_WCN_BOOL_FALSE;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1970
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1971 if (arg & 0x01)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1972 bRet = mtk_wcn_wmt_func_on(WMTDRV_TYPE_LPBK);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1973 else
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1974 bRet = mtk_wcn_wmt_func_off(WMTDRV_TYPE_LPBK);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1975
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1976 iRet = (MTK_WCN_BOOL_FALSE == bRet) ? -EFAULT : 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1977 } while (0);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1978
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1979 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1980
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1981 case WMT_IOCTL_LPBK_TEST:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1982 do {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1983 P_OSAL_OP pOp;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1984 MTK_WCN_BOOL bRet;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 @1985 UINT32 u4Wait;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1986 /* UINT8 lpbk_buf[1024] = {0}; */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1987 UINT32 effectiveLen = 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1988 P_OSAL_SIGNAL pSignal = NULL;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1989
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1990 if (copy_from_user(&effectiveLen, (void *)arg, sizeof(effectiveLen))) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1991 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1992 WMT_ERR_FUNC("copy_from_user failed at %d\n", __LINE__);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1993 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1994 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1995 if (effectiveLen > sizeof(gLpbkBuf)) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1996 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1997 WMT_ERR_FUNC("length is too long\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1998 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 1999 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2000 WMT_DBG_FUNC("len = %d\n", effectiveLen);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2001
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2002 pOp = wmt_lib_get_free_op();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2003 if (!pOp) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2004 WMT_WARN_FUNC("get_free_lxop fail\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2005 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2006 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2007 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2008 u4Wait = 2000;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2009 if (copy_from_user(&gLpbkBuf[0], (void *)arg + sizeof(unsigned long), effectiveLen)) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2010 WMT_ERR_FUNC("copy_from_user failed at %d\n", __LINE__);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2011 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2012 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2013 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2014 pSignal = &pOp->signal;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2015 pOp->op.opId = WMT_OPID_LPBK;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2016 pOp->op.au4OpData[0] = effectiveLen; /* packet length */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2017 pOp->op.au4OpData[1] = (SIZE_T) &gLpbkBuf[0]; /* packet buffer pointer */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2018 memcpy(&gLpbkBufLog, &gLpbkBuf[((effectiveLen >= 4) ? effectiveLen - 4 : 0)], 4);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2019 pSignal->timeoutValue = MAX_EACH_WMT_CMD;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2020 WMT_INFO_FUNC("OPID(%d) type(%d) start\n", pOp->op.opId, pOp->op.au4OpData[0]);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2021 if (DISABLE_PSM_MONITOR()) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2022 WMT_ERR_FUNC("wake up failed,OPID(%d) type(%d) abort\n",
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2023 pOp->op.opId, pOp->op.au4OpData[0]);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2024 wmt_lib_put_op_to_free_queue(pOp);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2025 return -1;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2026 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2027
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2028 bRet = wmt_lib_put_act_op(pOp);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2029 ENABLE_PSM_MONITOR();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2030 if (MTK_WCN_BOOL_FALSE == bRet) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2031 WMT_WARN_FUNC("OPID(%d) type(%d) buf tail(0x%08x) fail\n",
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2032 pOp->op.opId, pOp->op.au4OpData[0], gLpbkBufLog);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2033 iRet = -1;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2034 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2035 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2036 WMT_INFO_FUNC("OPID(%d) length(%d) ok\n", pOp->op.opId, pOp->op.au4OpData[0]);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2037 iRet = pOp->op.au4OpData[0];
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2038 if (copy_to_user((void *)arg + sizeof(SIZE_T) + sizeof(UINT8[2048]), gLpbkBuf, iRet)) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2039 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2040 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2041 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2042
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2043 } while (0);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2044
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2045 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2046
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2047 case WMT_IOCTL_ADIE_LPBK_TEST:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2048 do {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2049 P_OSAL_OP pOp;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2050 MTK_WCN_BOOL bRet;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2051 P_OSAL_SIGNAL pSignal = NULL;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2052
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2053 pOp = wmt_lib_get_free_op();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2054 if (!pOp) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2055 WMT_WARN_FUNC("get_free_lxop fail\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2056 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2057 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2058 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2059
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2060 pSignal = &pOp->signal;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2061 pOp->op.opId = WMT_OPID_ADIE_LPBK_TEST;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2062 pOp->op.au4OpData[0] = 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2063 pOp->op.au4OpData[1] = (SIZE_T) &gLpbkBuf[0];
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2064 pSignal->timeoutValue = MAX_EACH_WMT_CMD;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2065 WMT_INFO_FUNC("OPID(%d) start\n", pOp->op.opId);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2066 if (DISABLE_PSM_MONITOR()) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2067 WMT_ERR_FUNC("wake up failed,OPID(%d)abort\n", pOp->op.opId);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2068 wmt_lib_put_op_to_free_queue(pOp);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2069 return -1;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2070 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2071
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2072 bRet = wmt_lib_put_act_op(pOp);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2073 ENABLE_PSM_MONITOR();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2074 if (MTK_WCN_BOOL_FALSE == bRet) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2075 WMT_WARN_FUNC("OPID(%d) fail\n", pOp->op.opId);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2076 iRet = -1;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2077 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2078 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2079 WMT_INFO_FUNC("OPID(%d) length(%d) ok\n", pOp->op.opId, pOp->op.au4OpData[0]);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2080 iRet = pOp->op.au4OpData[0];
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2081 if (copy_to_user((void *)arg + sizeof(SIZE_T), gLpbkBuf, iRet)) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2082 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2083 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2084 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2085
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2086 } while (0);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2087
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2088 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2089
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2090 case 10:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2091 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2092 pBuffer = kmalloc(NAME_MAX + 1, GFP_KERNEL);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2093 if (!pBuffer) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2094 WMT_ERR_FUNC("pBuffer kmalloc memory fail\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2095 return 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2096 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2097 wmt_lib_host_awake_get();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2098 mtk_wcn_stp_coredump_start_ctrl(1);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2099 osal_strcpy(pBuffer, "MT662x f/w coredump start-");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2100 if (copy_from_user
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2101 (pBuffer + osal_strlen(pBuffer), (void *)arg, NAME_MAX - osal_strlen(pBuffer))) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2102 /* osal_strcpy(pBuffer, "MT662x f/w assert core dump start"); */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2103 WMT_ERR_FUNC("copy assert string failed\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2104 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2105 pBuffer[NAME_MAX] = '\0';
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2106 osal_dbg_assert_aee(pBuffer, pBuffer);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2107 kfree(pBuffer);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2108 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2109 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2110 case 11:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2111 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2112 osal_dbg_assert_aee("MT662x f/w coredump end", "MT662x firmware coredump ends");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2113 wmt_lib_host_awake_put();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2114 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2115 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2116
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2117 case WMT_IOCTL_GET_CHIP_INFO:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2118 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2119 if (0 == arg)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2120 return wmt_lib_get_icinfo(WMTCHIN_CHIPID);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2121 else if (1 == arg)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2122 return wmt_lib_get_icinfo(WMTCHIN_HWVER);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2123 else if (2 == arg)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2124 return wmt_lib_get_icinfo(WMTCHIN_FWVER);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2125
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2126 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2127 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2128
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2129 case WMT_IOCTL_SET_LAUNCHER_KILL:{
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2130 if (1 == arg) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2131 WMT_INFO_FUNC("launcher may be killed,block abnormal stp tx.\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2132 wmt_lib_set_stp_wmt_last_close(1);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2133 } else {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2134 wmt_lib_set_stp_wmt_last_close(0);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2135 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2136
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2137 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2138 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2139
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2140 case WMT_IOCTL_SET_PATCH_NUM:{
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2141 pAtchNum = arg;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2142 WMT_DBG_FUNC(" get patch num from launcher = %d\n", pAtchNum);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2143 wmt_lib_set_patch_num(pAtchNum);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2144 pPatchInfo = kcalloc(pAtchNum, sizeof(WMT_PATCH_INFO), GFP_ATOMIC);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2145 if (!pPatchInfo) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2146 WMT_ERR_FUNC("allocate memory fail!\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2147 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2148 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2149 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2150 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2151
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2152 case WMT_IOCTL_SET_PATCH_INFO:{
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2153 WMT_PATCH_INFO wMtPatchInfo;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 @2154 P_WMT_PATCH_INFO pTemp = NULL;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2155 UINT32 dWloadSeq;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2156 static UINT32 counter;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2157
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2158 if (!pPatchInfo) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2159 WMT_ERR_FUNC("NULL patch info pointer\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2160 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2161 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2162
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2163 if (copy_from_user(&wMtPatchInfo, (void *)arg, sizeof(WMT_PATCH_INFO))) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2164 WMT_ERR_FUNC("copy_from_user failed at %d\n", __LINE__);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2165 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2166 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2167 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2168
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2169 dWloadSeq = wMtPatchInfo.dowloadSeq;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2170 WMT_DBG_FUNC(
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2171 "patch dl seq %d,name %s,address info 0x%02x,0x%02x,0x%02x,0x%02x\n",
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2172 dWloadSeq, wMtPatchInfo.patchName,
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2173 wMtPatchInfo.addRess[0],
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2174 wMtPatchInfo.addRess[1],
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2175 wMtPatchInfo.addRess[2],
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2176 wMtPatchInfo.addRess[3]);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2177 osal_memcpy(pPatchInfo + dWloadSeq - 1, &wMtPatchInfo, sizeof(WMT_PATCH_INFO));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2178 pTemp = pPatchInfo + dWloadSeq - 1;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2179 if (++counter == pAtchNum) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2180 wmt_lib_set_patch_info(pPatchInfo);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2181 counter = 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2182 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2183 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2184 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2185
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2186 case WMT_IOCTL_WMT_COREDUMP_CTRL:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2187 mtk_wcn_stp_coredump_flag_ctrl(arg);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2188 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2189 case WMT_IOCTL_WMT_QUERY_CHIPID:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2190 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2191 iRet = mtk_wcn_wmt_chipid_query();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2192 WMT_WARN_FUNC("chipid = 0x%x\n", iRet);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2193 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2194 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2195 case WMT_IOCTL_SEND_BGW_DS_CMD:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2196 do {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2197 P_OSAL_OP pOp;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2198 MTK_WCN_BOOL bRet;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2199 UINT8 desense_buf[14] = { 0 };
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2200 UINT32 effectiveLen = 14;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2201 P_OSAL_SIGNAL pSignal = NULL;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2202
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2203 pOp = wmt_lib_get_free_op();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2204 if (!pOp) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2205 WMT_WARN_FUNC("get_free_lxop fail\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2206 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2207 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2208 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2209 if (copy_from_user(&desense_buf[0], (void *)arg, effectiveLen)) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2210 WMT_ERR_FUNC("copy_from_user failed at %d\n", __LINE__);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2211 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2212 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2213 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2214 pSignal = &pOp->signal;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2215 pOp->op.opId = WMT_OPID_BGW_DS;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2216 pOp->op.au4OpData[0] = effectiveLen; /* packet length */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2217 pOp->op.au4OpData[1] = (SIZE_T) &desense_buf[0]; /* packet buffer pointer */
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2218 pSignal->timeoutValue = MAX_EACH_WMT_CMD;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2219 WMT_INFO_FUNC("OPID(%d) start\n", pOp->op.opId);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2220 if (DISABLE_PSM_MONITOR()) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2221 WMT_ERR_FUNC("wake up failed,opid(%d) abort\n", pOp->op.opId);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2222 wmt_lib_put_op_to_free_queue(pOp);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2223 return -1;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2224 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2225
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2226 bRet = wmt_lib_put_act_op(pOp);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2227 ENABLE_PSM_MONITOR();
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2228 if (MTK_WCN_BOOL_FALSE == bRet) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2229 WMT_WARN_FUNC("OPID(%d) fail\n", pOp->op.opId);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2230 iRet = -1;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2231 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2232 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2233 WMT_INFO_FUNC("OPID(%d) length(%d) ok\n", pOp->op.opId, pOp->op.au4OpData[0]);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2234 iRet = pOp->op.au4OpData[0];
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2235
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2236 } while (0);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2237
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2238 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2239 case WMT_IOCTL_FW_DBGLOG_CTRL:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2240 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2241 iRet = wmt_plat_set_dbg_mode(arg);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2242 if (iRet == 0)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2243 wmt_dbg_fwinfor_from_emi(0, 1, 0);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2244 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2245 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2246 case WMT_IOCTL_DYNAMIC_DUMP_CTRL:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2247 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2248 UINT32 i = 0, j = 0, k = 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2249 UINT8 *pBuf = NULL;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2250 UINT32 int_buf[10];
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2251 char Buffer[10][11];
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2252
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2253 pBuf = kmalloc(DYNAMIC_DUMP_BUF + 1, GFP_KERNEL);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2254 if (!pBuf) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2255 WMT_ERR_FUNC("pBuf kmalloc memory fail\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2256 return 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2257 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2258 if (copy_from_user(pBuf, (void *)arg, DYNAMIC_DUMP_BUF)) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2259 iRet = -EFAULT;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2260 kfree(pBuf);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2261 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2262 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2263 pBuf[DYNAMIC_DUMP_BUF] = '\0';
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2264 WMT_INFO_FUNC("get dynamic dump data from property(%s)\n", pBuf);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2265 memset(Buffer, 0, 10*11);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2266 for (i = 0; i < DYNAMIC_DUMP_BUF; i++) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2267 if (pBuf[i] == '/') {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2268 k = 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2269 j++;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2270 } else {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2271 Buffer[j][k] = pBuf[i];
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2272 k++;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2273 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2274 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2275 for (j = 0; j < 10; j++) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2276 iRet = kstrtou32(Buffer[j], 0, &int_buf[j]);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2277 if (iRet) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2278 WMT_ERR_FUNC("string convert fail(%d)\n", iRet);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2279 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2280 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2281 WMT_INFO_FUNC("dynamic dump data buf[%d]:(0x%x)\n", j, int_buf[j]);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2282 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2283 wmt_plat_set_dynamic_dumpmem(int_buf);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2284 kfree(pBuf);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2285 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2286 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2287 default:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2288 iRet = -EINVAL;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2289 WMT_WARN_FUNC("unknown cmd (%d)\n", cmd);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2290 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2291 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2292
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2293 return iRet;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2294 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2295 #ifdef CONFIG_COMPAT
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2296 long WMT_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2297 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2298 long ret;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2299 WMT_INFO_FUNC("cmd[0x%x]\n", cmd);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2300 switch (cmd) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2301 case COMPAT_WMT_IOCTL_SET_PATCH_NAME:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2302 ret = WMT_unlocked_ioctl(filp, WMT_IOCTL_SET_PATCH_NAME, (unsigned long)compat_ptr(arg));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2303 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2304 case COMPAT_WMT_IOCTL_LPBK_TEST:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2305 ret = WMT_unlocked_ioctl(filp, WMT_IOCTL_LPBK_TEST, (unsigned long)compat_ptr(arg));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2306 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2307 case COMPAT_WMT_IOCTL_SET_PATCH_INFO:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2308 ret = WMT_unlocked_ioctl(filp, WMT_IOCTL_SET_PATCH_INFO, (unsigned long)compat_ptr(arg));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2309 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2310 case COMPAT_WMT_IOCTL_PORT_NAME:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2311 ret = WMT_unlocked_ioctl(filp, WMT_IOCTL_PORT_NAME, (unsigned long)compat_ptr(arg));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2312 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2313 case COMPAT_WMT_IOCTL_WMT_CFG_NAME:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2314 ret = WMT_unlocked_ioctl(filp, WMT_IOCTL_WMT_CFG_NAME, (unsigned long)compat_ptr(arg));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2315 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2316 case COMPAT_WMT_IOCTL_SEND_BGW_DS_CMD:
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2317 ret = WMT_unlocked_ioctl(filp, WMT_IOCTL_SEND_BGW_DS_CMD, (unsigned long)compat_ptr(arg));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2318 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2319 default: {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2320 ret = WMT_unlocked_ioctl(filp, cmd, arg);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2321 break;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2322 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2323 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2324 return ret;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2325 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2326 #endif
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2327 static int WMT_open(struct inode *inode, struct file *file)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2328 {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2329 long ret;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2330
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2331 WMT_INFO_FUNC("major %d minor %d (pid %d)\n", imajor(inode), iminor(inode), current->pid);
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2332 ret = wait_event_timeout(gWmtInitWq, gWmtInitDone != 0, msecs_to_jiffies(WMT_DEV_INIT_TO_MS));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2333 if (!ret) {
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2334 WMT_WARN_FUNC("wait_event_timeout (%d)ms,(%d)jiffies,return -EIO\n",
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2335 WMT_DEV_INIT_TO_MS, msecs_to_jiffies(WMT_DEV_INIT_TO_MS));
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2336 return -EIO;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2337 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2338
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2339 if (atomic_inc_return(&gWmtRefCnt) == 1)
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2340 WMT_INFO_FUNC("1st call\n");
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2341
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2342 return 0;
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2343 }
c5ee799ddeb705 Frank Wunderlich 2021-08-29 2344
:::::: The code at line 1985 was first introduced by commit
:::::: c5ee799ddeb7053632fb81f09d36b86037eed8d8 mt6625l: add driver folder from 5.14
:::::: TO: Frank Wunderlich <frank-w@public-files.de>
:::::: CC: Frank Wunderlich <frank-w@public-files.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38095 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-10-11 15:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-11 15:01 [frank-w-bpi-r2-4.14:5.15-bpi-r2-pro 9/62] drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1985:11: error: variable 'u4Wait' set but not used kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.