编译驱动的时候提示错误:drivers/net/wireless/rockchip_wlan/rtl8852bs/phl/phl_ps.c:285:9: error: implicit conversion from enumeration type 'enum rtw_hal_status' to different enumeration type 'enum rtw_phl_status' [-Werror,-Wenum-conversion]
return rtw_hal_ps_ips_cfg(phl_info->hal, &ips_info);
上面的提示的意思是类型不匹配,返回的rtw_hal_ps_ips_cfg(phl_info->hal, &ips_info)是'enum rtw_hal_status'类型,但是函数的返回值类型是'enum rtw_phl_status'。原函数如下:
enum rtw_phl_status
phl_ps_ips_cfg(struct phl_info_t *phl_info, struct ps_cfg *cfg, u8 en)
{
u32 tbtt_agg = en ? 0 : RTW_MAC_TBTT_AGG_DEF;
struct rtw_hal_ips_info ips_info = {0};
/* avoid waking up at each TBTT under disconnected standby */
_phl_ips_role_config_tbtt_agg(phl_info, tbtt_agg);
ips_info.en = en;
ips_info.macid = cfg->macid;
return rtw_hal_ps_ips_cfg(phl_info->hal, &ips_info);
}
将上面中return rtw_hal_ps_ips_cfg(phl_info->hal, &ips_info);改成return (enum rtw_phl_status)rtw_hal_ps_ips_cfg(phl_info->hal, &ips_info);即对返回类型进行强制类型转换即可。