Hi Frank,
First bad commit (maybe != root cause):
tree:
https://github.com/frank-w/BPI-R2-4.14 5.8-main
head: 3fc4f1d2748b72489057cd07d270b4a259880fb0
commit: 47ca5358d0035b974a89981e97432d30817566a8 [17/58] mt6625l: set MTK_PLATFORM in
Makefile if none is set via *config
config: arm-randconfig-r026-20200811 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
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
git checkout 47ca5358d0035b974a89981e97432d30817566a8
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
cc1: error: drivers/misc/mediatek/include/mt-plat/mt7623/include: No such file or
directory [-Werror=missing-include-dirs]
cc1: error: drivers/misc/mediatek/include/mt-plat/mt7623/include/mach: No such file or
directory [-Werror=missing-include-dirs]
>
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c:191:6:
error: no previous prototype for 'mtk_wcn_consys_power_on'
[-Werror=missing-prototypes]
191 | VOID mtk_wcn_consys_power_on(VOID)
| ^~~~~~~~~~~~~~~~~~~~~~~
>
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c:207:6:
error: no previous prototype for 'mtk_wcn_consys_power_off'
[-Werror=missing-prototypes]
207 | VOID mtk_wcn_consys_power_off(VOID)
| ^~~~~~~~~~~~~~~~~~~~~~~~
>
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c:224:7:
error: no previous prototype for 'mtk_wcn_consys_hw_reg_ctrl'
[-Werror=missing-prototypes]
224 | INT32 mtk_wcn_consys_hw_reg_ctrl(UINT32 on,
UINT32 co_clock_type)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c:335:7:
error: no previous prototype for 'mtk_wcn_consys_hw_gpio_ctrl'
[-Werror=missing-prototypes]
335 | INT32 mtk_wcn_consys_hw_gpio_ctrl(UINT32
on)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c:539:7:
error: no previous prototype for 'mtk_wcn_consys_hw_restore'
[-Werror=missing-prototypes]
539 | INT32 mtk_wcn_consys_hw_restore(struct
device *device)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c:592:5:
error: no previous prototype for 'reserve_memory_consys_fn'
[-Werror=missing-prototypes]
592 | int reserve_memory_consys_fn(struct
reserved_mem *rmem)
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c: In
function 'mtk_wcn_consys_get_pinctrl':
>
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c:713:17:
error: old-style function definition [-Werror=old-style-definition]
713 |
struct pinctrl *mtk_wcn_consys_get_pinctrl()
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
--
cc1: error: drivers/misc/mediatek/include/mt-plat/mt7623/include: No such file or
directory [-Werror=missing-include-dirs]
cc1: error: drivers/misc/mediatek/include/mt-plat/mt7623/include/mach: No such file or
directory [-Werror=missing-include-dirs]
>
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/wmt_plat_alps.c:255:13: error:
no previous prototype for 'wmt_plat_bgf_irq_isr' [-Werror=missing-prototypes]
255 | irqreturn_t wmt_plat_bgf_irq_isr(INT32 i, VOID *arg)
| ^~~~~~~~~~~~~~~~~~~~
>
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/wmt_plat_alps.c:296:8: error: no
previous prototype for 'wmt_plat_soc_co_clock_flag_get'
[-Werror=missing-prototypes]
296 | UINT32 wmt_plat_soc_co_clock_flag_get(VOID)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/wmt_plat_alps.c:39:
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/include/stp_dbg.h:61:20:
error: 'gStpDbgType' defined but not used [-Werror=unused-const-variable=]
61 | static char *const gStpDbgType[] = {
| ^~~~~~~~~~~
cc1: all warnings being treated as errors
--
cc1: error: drivers/misc/mediatek/include/mt-plat/mt7623/include: No such file or
directory [-Werror=missing-include-dirs]
> cc1: error: drivers/misc/mediatek/mach/mt7623/include/mach: No
such file or directory [-Werror=missing-include-dirs]
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_btif.c:191:7: error: no
previous prototype for 'mtk_wcn_consys_stp_btif_rx' [-Werror=missing-prototypes]
191 | INT32 mtk_wcn_consys_stp_btif_rx(UINT8 *pBuf, UINT32 len)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
--
cc1: error: drivers/misc/mediatek/include/mt-plat/mt7623/include: No such file or
directory [-Werror=missing-include-dirs]
> cc1: error: drivers/misc/mediatek/mach/mt7623/include/mach: No
such file or directory [-Werror=missing-include-dirs]
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c: In function
'wcn_wmtd_timeout_collect_ftrace':
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:456:8: error:
variable 'len' set but not used [-Werror=unused-but-set-variable]
456 | INT32 len;
| ^~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:455:9: error:
variable 'pbuf' set but not used [-Werror=unused-but-set-variable]
455 | PUINT8 pbuf;
| ^~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c: In function
'wcn_psm_flag_trigger_collect_ftrace':
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:474:8: error:
variable 'len' set but not used [-Werror=unused-but-set-variable]
474 | INT32 len;
| ^~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:473:9: error:
variable 'pbuf' set but not used [-Werror=unused-but-set-variable]
473 | PUINT8 pbuf;
| ^~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c: In function
'wcn_btif_rxd_blocked_collect_ftrace':
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:501:8: error:
variable 'len' set but not used [-Werror=unused-but-set-variable]
501 | INT32 len;
| ^~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:500:9: error:
variable 'pbuf' set but not used [-Werror=unused-but-set-variable]
500 | PUINT8 pbuf;
| ^~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c: In function
'wcn_core_dump_timeout':
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:520:8: error:
variable 'len' set but not used [-Werror=unused-but-set-variable]
520 | INT32 len;
| ^~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:519:9: error:
variable 'pbuf' set but not used [-Werror=unused-but-set-variable]
519 | PUINT8 pbuf;
| ^~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c: At top level:
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:1032:5: error:
no previous prototype for 'stp_gdb_notify_btm_dmp_wq'
[-Werror=missing-prototypes]
1032 | int stp_gdb_notify_btm_dmp_wq(MTKSTP_DBG_T *stp_dbg)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:1056:5: error:
no previous prototype for 'stp_dbg_dmp_in' [-Werror=missing-prototypes]
1056 | int stp_dbg_dmp_in(MTKSTP_DBG_T *stp_dbg, char *buf, int len)
| ^~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c: In function
'stp_dbg_nl_bind':
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:1254:8: error:
variable 'mydata' set but not used [-Werror=unused-but-set-variable]
1254 | char *mydata;
| ^~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c: At top level:
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:1346:8: error:
no previous prototype for '_stp_dbg_id_to_task' [-Werror=missing-prototypes]
1346 | UINT8 *_stp_dbg_id_to_task(UINT32 id)
| ^~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:1362:7: error:
no previous prototype for '_stp_dbg_parser_assert_str'
[-Werror=missing-prototypes]
1362 | INT32 _stp_dbg_parser_assert_str(PINT8 str, ENUM_ASSERT_INFO_PARSER_TYPE type)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:1530:20: error:
no previous prototype for 'stp_dbg_cpupcr_init' [-Werror=missing-prototypes]
1530 | P_STP_DBG_CPUPCR_T stp_dbg_cpupcr_init(VOID)
| ^~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:1547:21: error:
no previous prototype for 'stp_dbg_dmaregs_init' [-Werror=missing-prototypes]
1547 | P_STP_DBG_DMAREGS_T stp_dbg_dmaregs_init(VOID)
| ^~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:1564:6: error:
no previous prototype for 'stp_dbg_cpupcr_deinit' [-Werror=missing-prototypes]
1564 | VOID stp_dbg_cpupcr_deinit(P_STP_DBG_CPUPCR_T pCpupcr)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/stp_dbg.c:1573:6: error:
no previous prototype for 'stp_dbg_dmaregs_deinit' [-Werror=missing-prototypes]
1573 | VOID stp_dbg_dmaregs_deinit(P_STP_DBG_DMAREGS_T pDmaRegs)
| ^~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
--
cc1: error: drivers/misc/mediatek/include/mt-plat/mt7623/include: No such file or
directory [-Werror=missing-include-dirs]
> cc1: error: drivers/misc/mediatek/mach/mt7623/include/mach: No
such file or directory [-Werror=missing-include-dirs]
cc1: all warnings being
treated as errors
--
cc1: error: drivers/misc/mediatek/include/mt-plat/mt7623/include: No such file or
directory [-Werror=missing-include-dirs]
> cc1: error: drivers/misc/mediatek/mach/mt7623/include/mach: No
such file or directory [-Werror=missing-include-dirs]
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1289:7: error: no
previous prototype for 'wmt_dev_dbg_setup' [-Werror=missing-prototypes]
1289 | INT32 wmt_dev_dbg_setup(VOID)
| ^~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1303:7: error:
no previous prototype for 'wmt_dev_dbg_remove' [-Werror=missing-prototypes]
1303 | INT32 wmt_dev_dbg_remove(VOID)
| ^~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1374:7: error:
no previous prototype for 'wmt_dev_proc_for_aee_setup'
[-Werror=missing-prototypes]
1374 | INT32 wmt_dev_proc_for_aee_setup(VOID)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1390:7: error:
no previous prototype for 'wmt_dev_proc_for_aee_remove'
[-Werror=missing-prototypes]
1390 | INT32 wmt_dev_proc_for_aee_remove(VOID)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1435:7: error:
no previous prototype for 'wmt_dev_read_file' [-Werror=missing-prototypes]
1435 | 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:1597:14: error:
no previous prototype for 'wmt_dev_is_file_exist' [-Werror=missing-prototypes]
1597 | MTK_WCN_BOOL wmt_dev_is_file_exist(PUINT8 pFileName)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1645:14: error:
no previous prototype for 'wmt_dev_tra_bitf_update' [-Werror=missing-prototypes]
1645 | 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 'wmt_dev_tm_temp_query' [-Werror=missing-prototypes]
1703 | long wmt_dev_tm_temp_query(void)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1801:9: error:
no previous prototype for 'WMT_write' [-Werror=missing-prototypes]
1801 | 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:1834:9: error:
no previous prototype for 'WMT_read' [-Werror=missing-prototypes]
1834 | 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:1865:14: error:
no previous prototype for 'WMT_poll' [-Werror=missing-prototypes]
1865 | unsigned int WMT_poll(struct file *filp, poll_table *wait)
| ^~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1885:6: error:
no previous prototype for 'WMT_unlocked_ioctl' [-Werror=missing-prototypes]
1885 | 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: In function
'WMT_unlocked_ioctl':
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:1985:11: error:
variable 'u4Wait' set but not used [-Werror=unused-but-set-variable]
1985 | UINT32 u4Wait;
| ^~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2154:21: error:
variable 'pTemp' set but not used [-Werror=unused-but-set-variable]
2154 | P_WMT_PATCH_INFO pTemp = NULL;
| ^~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c: At top level:
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2368:6: error:
no previous prototype for 'wmt_dev_bgw_desense_init' [-Werror=missing-prototypes]
2368 | void wmt_dev_bgw_desense_init(VOID)
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2373:6: error:
no previous prototype for 'wmt_dev_bgw_desense_deinit'
[-Werror=missing-prototypes]
2373 | void wmt_dev_bgw_desense_deinit(VOID)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2544:5: error:
no previous prototype for 'mtk_wcn_soc_common_drv_init'
[-Werror=missing-prototypes]
2544 | int mtk_wcn_soc_common_drv_init(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_dev.c:2550:6: error:
no previous prototype for 'mtk_wcn_soc_common_drv_exit'
[-Werror=missing-prototypes]
2550 | void mtk_wcn_soc_common_drv_exit(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
--
cc1: error: drivers/misc/mediatek/include/mt-plat/mt7623/include: No such file or
directory [-Werror=missing-include-dirs]
> cc1: error: drivers/misc/mediatek/mach/mt7623/include/mach: No
such file or directory [-Werror=missing-include-dirs]
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:131:14: error: no
previous prototype for '_mtk_wcn_wmt_func_off' [-Werror=missing-prototypes]
131 | MTK_WCN_BOOL _mtk_wcn_wmt_func_off(ENUM_WMTDRV_TYPE_T type)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:153:14: error:
no previous prototype for '_mtk_wcn_wmt_func_on' [-Werror=missing-prototypes]
153 | MTK_WCN_BOOL _mtk_wcn_wmt_func_on(ENUM_WMTDRV_TYPE_T type)
| ^~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:189:6: error: no
previous prototype for '_mtk_wcn_wmt_therm_ctrl' [-Werror=missing-prototypes]
189 | INT8 _mtk_wcn_wmt_therm_ctrl(ENUM_WMTTHERM_TYPE_T eType)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:254:22: error:
no previous prototype for '_mtk_wcn_wmt_hwver_get' [-Werror=missing-prototypes]
254 | ENUM_WMTHWVER_TYPE_T _mtk_wcn_wmt_hwver_get(VOID)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:269:14: error:
no previous prototype for '_mtk_wcn_wmt_dsns_ctrl' [-Werror=missing-prototypes]
269 | MTK_WCN_BOOL _mtk_wcn_wmt_dsns_ctrl(ENUM_WMTDSNS_TYPE_T eType)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:330:7: error: no
previous prototype for '_mtk_wcn_wmt_msgcb_reg' [-Werror=missing-prototypes]
330 | INT32 _mtk_wcn_wmt_msgcb_reg(ENUM_WMTDRV_TYPE_T eType, PF_WMT_CB pCb)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:342:7: error: no
previous prototype for '_mtk_wcn_wmt_msgcb_unreg' [-Werror=missing-prototypes]
342 | INT32 _mtk_wcn_wmt_msgcb_unreg(ENUM_WMTDRV_TYPE_T eType)
| ^~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:354:7: error: no
previous prototype for '_mtk_wcn_stp_wmt_sdio_op_reg'
[-Werror=missing-prototypes]
354 | INT32 _mtk_wcn_stp_wmt_sdio_op_reg(PF_WMT_SDIO_PSOP own_cb)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:367:7: error: no
previous prototype for '_mtk_wcn_stp_wmt_sdio_host_awake'
[-Werror=missing-prototypes]
367 | INT32 _mtk_wcn_stp_wmt_sdio_host_awake(VOID)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:380:14: error:
no previous prototype for '_mtk_wcn_wmt_assert' [-Werror=missing-prototypes]
380 | MTK_WCN_BOOL _mtk_wcn_wmt_assert(ENUM_WMTDRV_TYPE_T type, UINT32 reason)
| ^~~~~~~~~~~~~~~~~~~
drivers/misc/mediatek/connectivity/common/conn_soc/linux/pri/wmt_exp.c:608:6: error: no
previous prototype for 'mtk_wcn_wmt_set_wifi_ver' [-Werror=missing-prototypes]
608 | VOID mtk_wcn_wmt_set_wifi_ver(UINT32 Value)
| ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/mtk_wcn_consys_power_on +191
drivers/misc/mediatek/connectivity/common/conn_soc/mt7623/mtk_wcn_consys_hw.c
1d4087fef69d21 Frank Wunderlich 2020-06-15 190
1d4087fef69d21 Frank Wunderlich 2020-06-15 @191 VOID mtk_wcn_consys_power_on(VOID)
1d4087fef69d21 Frank Wunderlich 2020-06-15 192 {
1d4087fef69d21 Frank Wunderlich 2020-06-15 193 INT32 iRet = -1;
1d4087fef69d21 Frank Wunderlich 2020-06-15 194 iRet =
pm_runtime_get_sync(&my_pdev->dev);
1d4087fef69d21 Frank Wunderlich 2020-06-15 195 if (iRet)
1d4087fef69d21 Frank Wunderlich 2020-06-15 196
WMT_PLAT_ERR_FUNC("pm_runtime_get_sync() fail(%d)\n", iRet);
1d4087fef69d21 Frank Wunderlich 2020-06-15 197 else
1d4087fef69d21 Frank Wunderlich 2020-06-15 198
WMT_PLAT_INFO_FUNC("pm_runtime_get_sync() CONSYS ok\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 199
1d4087fef69d21 Frank Wunderlich 2020-06-15 200 iRet =
device_init_wakeup(&my_pdev->dev, true);
1d4087fef69d21 Frank Wunderlich 2020-06-15 201 if (iRet)
1d4087fef69d21 Frank Wunderlich 2020-06-15 202
WMT_PLAT_ERR_FUNC("device_init_wakeup(true) fail.\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 203 else
1d4087fef69d21 Frank Wunderlich 2020-06-15 204
WMT_PLAT_INFO_FUNC("device_init_wakeup(true) CONSYS ok\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 205 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 206
1d4087fef69d21 Frank Wunderlich 2020-06-15 @207 VOID mtk_wcn_consys_power_off(VOID)
1d4087fef69d21 Frank Wunderlich 2020-06-15 208 {
1d4087fef69d21 Frank Wunderlich 2020-06-15 209 INT32 iRet = -1;
1d4087fef69d21 Frank Wunderlich 2020-06-15 210
1d4087fef69d21 Frank Wunderlich 2020-06-15 211 iRet =
pm_runtime_put_sync(&my_pdev->dev);
1d4087fef69d21 Frank Wunderlich 2020-06-15 212 if (iRet)
1d4087fef69d21 Frank Wunderlich 2020-06-15 213
WMT_PLAT_ERR_FUNC("pm_runtime_put_sync() fail.\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 214 else
1d4087fef69d21 Frank Wunderlich 2020-06-15 215
WMT_PLAT_INFO_FUNC("pm_runtime_put_sync() CONSYS ok\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 216
1d4087fef69d21 Frank Wunderlich 2020-06-15 217 iRet =
device_init_wakeup(&my_pdev->dev, false);
1d4087fef69d21 Frank Wunderlich 2020-06-15 218 if (iRet)
1d4087fef69d21 Frank Wunderlich 2020-06-15 219
WMT_PLAT_ERR_FUNC("device_init_wakeup(false) fail.\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 220 else
1d4087fef69d21 Frank Wunderlich 2020-06-15 221
WMT_PLAT_INFO_FUNC("device_init_wakeup(false) CONSYS ok\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 222 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 223
1d4087fef69d21 Frank Wunderlich 2020-06-15 @224 INT32 mtk_wcn_consys_hw_reg_ctrl(UINT32
on, UINT32 co_clock_type)
1d4087fef69d21 Frank Wunderlich 2020-06-15 225 {
1d4087fef69d21 Frank Wunderlich 2020-06-15 226 UINT32 retry = 10;
1d4087fef69d21 Frank Wunderlich 2020-06-15 227 UINT32 consysHwChipId = 0;
1d4087fef69d21 Frank Wunderlich 2020-06-15 228
1d4087fef69d21 Frank Wunderlich 2020-06-15 229
WMT_PLAT_DBG_FUNC("CONSYS-HW-REG-CTRL(0x%08x),start\n", on);
1d4087fef69d21 Frank Wunderlich 2020-06-15 230 if (on) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 231 WMT_PLAT_DBG_FUNC("++\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 232 /*need PMIC driver provide new API
protocol */
1d4087fef69d21 Frank Wunderlich 2020-06-15 233 /*1.AP power on VCN_1V8 LDO (with
PMIC_WRAP API) VCN_1V8 */
1d4087fef69d21 Frank Wunderlich 2020-06-15 234 regulator_set_mode(reg_VCN18,
REGULATOR_MODE_STANDBY);
1d4087fef69d21 Frank Wunderlich 2020-06-15 235 /* VOL_DEFAULT, VOL_1200, VOL_1300,
VOL_1500, VOL_1800... */
1d4087fef69d21 Frank Wunderlich 2020-06-15 236 if (reg_VCN18) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 237 regulator_set_voltage(reg_VCN18,
1800000, 1800000);
1d4087fef69d21 Frank Wunderlich 2020-06-15 238 if (regulator_enable(reg_VCN18))
1d4087fef69d21 Frank Wunderlich 2020-06-15 239 WMT_PLAT_ERR_FUNC("enable VCN18
fail\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 240 else
1d4087fef69d21 Frank Wunderlich 2020-06-15 241 WMT_PLAT_DBG_FUNC("enable VCN18
ok\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 242 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 243 udelay(150);
1d4087fef69d21 Frank Wunderlich 2020-06-15 244 if (co_clock_type) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 245 /*step0,clk buf ctrl */
1d4087fef69d21 Frank Wunderlich 2020-06-15 246 WMT_PLAT_INFO_FUNC("co clock
type(%d),turn on clk buf\n", co_clock_type);
1d4087fef69d21 Frank Wunderlich 2020-06-15 247 #if CONSYS_CLOCK_BUF_CTRL
1d4087fef69d21 Frank Wunderlich 2020-06-15 248 clk_buf_ctrl(CLK_BUF_CONN, 1);
1d4087fef69d21 Frank Wunderlich 2020-06-15 249 #endif
1d4087fef69d21 Frank Wunderlich 2020-06-15 250 /*if co-clock mode: */
1d4087fef69d21 Frank Wunderlich 2020-06-15 251 /*2.set VCN28 to SW control mode (with
PMIC_WRAP API) */
1d4087fef69d21 Frank Wunderlich 2020-06-15 252 /*turn on VCN28 LDO only when FMSYS is
activated" */
1d4087fef69d21 Frank Wunderlich 2020-06-15 253 regmap_update_bits(pmic_regmap, 0x41C,
0x1 << 14, 0x0 << 14);/*V28*/
1d4087fef69d21 Frank Wunderlich 2020-06-15 254 } else {
1d4087fef69d21 Frank Wunderlich 2020-06-15 255 /*if NOT co-clock: */
1d4087fef69d21 Frank Wunderlich 2020-06-15 256 /*2.1.switch VCN28 to HW control mode
(with PMIC_WRAP API) */
1d4087fef69d21 Frank Wunderlich 2020-06-15 257 regmap_update_bits(pmic_regmap, 0x41C,
0x1 << 14, 0x1 << 14);/*V28*/
1d4087fef69d21 Frank Wunderlich 2020-06-15 258 /*2.2.turn on VCN28 LDO (with
PMIC_WRAP API)" */
1d4087fef69d21 Frank Wunderlich 2020-06-15 259 /*fix vcn28 not balance warning */
1d4087fef69d21 Frank Wunderlich 2020-06-15 260 if (reg_VCN28) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 261 regulator_set_voltage(reg_VCN28,
2800000, 2800000);
1d4087fef69d21 Frank Wunderlich 2020-06-15 262 if (regulator_enable(reg_VCN28))
1d4087fef69d21 Frank Wunderlich 2020-06-15 263 WMT_PLAT_ERR_FUNC("enable
VCN_2V8 fail!\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 264 else
1d4087fef69d21 Frank Wunderlich 2020-06-15 265 WMT_PLAT_DBG_FUNC("enable
VCN_2V8 ok\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 266 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 267 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 268
1d4087fef69d21 Frank Wunderlich 2020-06-15 269 /*3.assert CONNSYS CPU SW reset
0x10007018 "[12]=1'b1 [31:24]=8'h88 (key)" */
1d4087fef69d21 Frank Wunderlich 2020-06-15 270 reset_control_reset(rstc);
1d4087fef69d21 Frank Wunderlich 2020-06-15 271 mtk_wcn_consys_power_on();
1d4087fef69d21 Frank Wunderlich 2020-06-15 272 /*11.26M is ready now, delay 10us for
mem_pd de-assert */
1d4087fef69d21 Frank Wunderlich 2020-06-15 273 udelay(10);
1d4087fef69d21 Frank Wunderlich 2020-06-15 274 /*enable AP bus clock : connmcu_bus_pd
API: enable_clock() ++?? */
1d4087fef69d21 Frank Wunderlich 2020-06-15 275
clk_prepare_enable(clk_infra_conn_main);
1d4087fef69d21 Frank Wunderlich 2020-06-15 276 WMT_PLAT_DBG_FUNC("[CCF]enable
clk_infra_conn_main\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 277 /*12.poll CONNSYS CHIP ID until chipid
is returned 0x18070008 */
1d4087fef69d21 Frank Wunderlich 2020-06-15 278 while (retry-- > 0) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 279 consysHwChipId =
CONSYS_REG_READ(conn_reg.mcu_base + CONSYS_CHIP_ID_OFFSET) - 0xf6d;
1d4087fef69d21 Frank Wunderlich 2020-06-15 280
1d4087fef69d21 Frank Wunderlich 2020-06-15 281 if ((consysHwChipId == 0x0321) ||
(consysHwChipId == 0x0335) || (consysHwChipId == 0x0337)) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 282
WMT_PLAT_INFO_FUNC("retry(%d)consys chipId(0x%08x)\n", retry,
consysHwChipId);
1d4087fef69d21 Frank Wunderlich 2020-06-15 283 break;
1d4087fef69d21 Frank Wunderlich 2020-06-15 284 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 285 if ((consysHwChipId == 0x8163) ||
(consysHwChipId == 0x8127) || (consysHwChipId == 0x7623)) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 286
WMT_PLAT_INFO_FUNC("retry(%d)consys chipId(0x%08x)\n", retry,
consysHwChipId);
1d4087fef69d21 Frank Wunderlich 2020-06-15 287 break;
1d4087fef69d21 Frank Wunderlich 2020-06-15 288 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 289
1d4087fef69d21 Frank Wunderlich 2020-06-15 290 WMT_PLAT_ERR_FUNC("Read CONSYS
chipId(0x%08x)", consysHwChipId);
1d4087fef69d21 Frank Wunderlich 2020-06-15 291 msleep(20);
1d4087fef69d21 Frank Wunderlich 2020-06-15 292 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 293
1d4087fef69d21 Frank Wunderlich 2020-06-15 294 if ((0 == retry) || (0 ==
consysHwChipId))
1d4087fef69d21 Frank Wunderlich 2020-06-15 295 WMT_PLAT_ERR_FUNC("Maybe has a
consys power on issue,(0x%08x)\n", consysHwChipId);
1d4087fef69d21 Frank Wunderlich 2020-06-15 296
1d4087fef69d21 Frank Wunderlich 2020-06-15 297 msleep(40);
1d4087fef69d21 Frank Wunderlich 2020-06-15 298
1d4087fef69d21 Frank Wunderlich 2020-06-15 299 } else {
1d4087fef69d21 Frank Wunderlich 2020-06-15 300
1d4087fef69d21 Frank Wunderlich 2020-06-15 301
clk_disable_unprepare(clk_infra_conn_main);
1d4087fef69d21 Frank Wunderlich 2020-06-15 302 WMT_PLAT_DBG_FUNC("[CCF]
clk_disable_unprepare(clk_infra_conn_main) calling\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 303 mtk_wcn_consys_power_off();
1d4087fef69d21 Frank Wunderlich 2020-06-15 304
1d4087fef69d21 Frank Wunderlich 2020-06-15 305 if (co_clock_type) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 306 /*VCN28 has been turned off by GPS OR
FM */
1d4087fef69d21 Frank Wunderlich 2020-06-15 307 #if CONSYS_CLOCK_BUF_CTRL
1d4087fef69d21 Frank Wunderlich 2020-06-15 308 clk_buf_ctrl(CLK_BUF_CONN, 0);
1d4087fef69d21 Frank Wunderlich 2020-06-15 309 #endif
1d4087fef69d21 Frank Wunderlich 2020-06-15 310 } else {
1d4087fef69d21 Frank Wunderlich 2020-06-15 311 regmap_update_bits(pmic_regmap, 0x41C,
0x1 << 14, 0x0 << 14);/*V28*/
1d4087fef69d21 Frank Wunderlich 2020-06-15 312 /*turn off VCN28 LDO (with PMIC_WRAP
API)" */
1d4087fef69d21 Frank Wunderlich 2020-06-15 313 if (reg_VCN28) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 314 if (regulator_disable(reg_VCN28))
1d4087fef69d21 Frank Wunderlich 2020-06-15 315 WMT_PLAT_ERR_FUNC("disable
VCN_2V8 fail!\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 316 else
1d4087fef69d21 Frank Wunderlich 2020-06-15 317 WMT_PLAT_DBG_FUNC("disable
VCN_2V8 ok\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 318 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 319 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 320
1d4087fef69d21 Frank Wunderlich 2020-06-15 321 /*AP power off MT6625L VCN_1V8 LDO */
1d4087fef69d21 Frank Wunderlich 2020-06-15 322 regulator_set_mode(reg_VCN18,
REGULATOR_MODE_STANDBY);
1d4087fef69d21 Frank Wunderlich 2020-06-15 323 if (reg_VCN18) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 324 if (regulator_disable(reg_VCN18))
1d4087fef69d21 Frank Wunderlich 2020-06-15 325 WMT_PLAT_ERR_FUNC("disable
VCN_1V8 fail!\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 326 else
1d4087fef69d21 Frank Wunderlich 2020-06-15 327 WMT_PLAT_DBG_FUNC("disable
VCN_1V8 ok\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 328 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 329
1d4087fef69d21 Frank Wunderlich 2020-06-15 330 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 331
WMT_PLAT_DBG_FUNC("CONSYS-HW-REG-CTRL(0x%08x),finish\n", on);
1d4087fef69d21 Frank Wunderlich 2020-06-15 332 return 0;
1d4087fef69d21 Frank Wunderlich 2020-06-15 333 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 334
1d4087fef69d21 Frank Wunderlich 2020-06-15 @335 INT32 mtk_wcn_consys_hw_gpio_ctrl(UINT32
on)
1d4087fef69d21 Frank Wunderlich 2020-06-15 336 {
1d4087fef69d21 Frank Wunderlich 2020-06-15 337 INT32 iRet = 0;
1d4087fef69d21 Frank Wunderlich 2020-06-15 338
1d4087fef69d21 Frank Wunderlich 2020-06-15 339
WMT_PLAT_DBG_FUNC("CONSYS-HW-GPIO-CTRL(0x%08x), start\n", on);
1d4087fef69d21 Frank Wunderlich 2020-06-15 340
1d4087fef69d21 Frank Wunderlich 2020-06-15 341 if (on) {
1d4087fef69d21 Frank Wunderlich 2020-06-15 342
1d4087fef69d21 Frank Wunderlich 2020-06-15 343 /* TODO: [FixMe][GeorgeKuo] double
check if BGF_INT is implemented ok */
1d4087fef69d21 Frank Wunderlich 2020-06-15 344 /* iRet +=
wmt_plat_gpio_ctrl(PIN_BGF_EINT, PIN_STA_MUX); */
1d4087fef69d21 Frank Wunderlich 2020-06-15 345 iRet +=
wmt_plat_eirq_ctrl(PIN_BGF_EINT, PIN_STA_INIT);
1d4087fef69d21 Frank Wunderlich 2020-06-15 346 iRet +=
wmt_plat_eirq_ctrl(PIN_BGF_EINT, PIN_STA_EINT_DIS);
1d4087fef69d21 Frank Wunderlich 2020-06-15 347 WMT_PLAT_DBG_FUNC("CONSYS-HW, BGF
IRQ registered and disabled\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 348
1d4087fef69d21 Frank Wunderlich 2020-06-15 349 } else {
1d4087fef69d21 Frank Wunderlich 2020-06-15 350
1d4087fef69d21 Frank Wunderlich 2020-06-15 351 /* set bgf eint/all eint to deinit
state, namely input low state */
1d4087fef69d21 Frank Wunderlich 2020-06-15 352 iRet +=
wmt_plat_eirq_ctrl(PIN_BGF_EINT, PIN_STA_EINT_DIS);
1d4087fef69d21 Frank Wunderlich 2020-06-15 353 iRet +=
wmt_plat_eirq_ctrl(PIN_BGF_EINT, PIN_STA_DEINIT);
1d4087fef69d21 Frank Wunderlich 2020-06-15 354 WMT_PLAT_DBG_FUNC("CONSYS-HW, BGF
IRQ unregistered and disabled\n");
1d4087fef69d21 Frank Wunderlich 2020-06-15 355 /* iRet +=
wmt_plat_gpio_ctrl(PIN_BGF_EINT, PIN_STA_DEINIT); */
1d4087fef69d21 Frank Wunderlich 2020-06-15 356 }
1d4087fef69d21 Frank Wunderlich 2020-06-15 357
WMT_PLAT_DBG_FUNC("CONSYS-HW-GPIO-CTRL(0x%08x), finish\n", on);
1d4087fef69d21 Frank Wunderlich 2020-06-15 358 return iRet;
1d4087fef69d21 Frank Wunderlich 2020-06-15 359
:::::: The code at line 191 was first introduced by commit
:::::: 1d4087fef69d21eeb0bdb3f34b978298f6609d91 mt6625l: add driver-folder from 5.7
:::::: TO: Frank Wunderlich <frank-w(a)public-files.de>
:::::: CC: Frank Wunderlich <linux(a)fw-web.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org