All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.