Loading drivers/net/wireless/ath/wil6210/main.c +6 −0 Original line number Diff line number Diff line Loading @@ -1042,6 +1042,12 @@ int wil_reset(struct wil6210_priv *wil, bool load_fw) wil_s(wil, RGF_CAF_ICR + offsetof(struct RGF_ICR, ICR), 0); wil_w(wil, RGF_CAF_ICR + offsetof(struct RGF_ICR, IMV), ~0); if (wil->fw_calib_result > 0) { __le32 val = cpu_to_le32(wil->fw_calib_result | (CALIB_RESULT_SIGNATURE << 8)); wil_w(wil, RGF_USER_FW_CALIB_RESULT, (u32 __force)val); } wil_release_cpu(wil); } Loading drivers/net/wireless/ath/wil6210/wil6210.h +6 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,10 @@ struct RGF_ICR { #define RGF_USER_USER_SCRATCH_PAD (0x8802bc) #define RGF_USER_BL (0x880A3C) /* Boot Loader */ #define RGF_USER_FW_REV_ID (0x880a8c) /* chip revision */ #define RGF_USER_FW_CALIB_RESULT (0x880a90) /* b0-7:result * b8-15:signature */ #define CALIB_RESULT_SIGNATURE (0x11) #define RGF_USER_CLKS_CTL_0 (0x880abc) #define BIT_USER_CLKS_CAR_AHB_SW_SEL BIT(1) /* ref clk/PLL */ #define BIT_USER_CLKS_RST_PWGD BIT(11) /* reset on "power good" */ Loading Loading @@ -733,6 +737,8 @@ struct wil6210_priv { bool tt_data_set; struct wmi_tt_data tt_data; int fw_calib_result; #ifdef CONFIG_PM #ifdef CONFIG_PM_SLEEP struct notifier_block pm_notify; Loading drivers/net/wireless/ath/wil6210/wmi.c +5 −0 Original line number Diff line number Diff line Loading @@ -345,6 +345,11 @@ static void wmi_evt_ready(struct wil6210_priv *wil, int id, void *d, int len) strlcpy(wdev->wiphy->fw_version, wil->fw_version, sizeof(wdev->wiphy->fw_version)); if (len > offsetof(struct wmi_ready_event, rfc_read_calib_result)) { wil_dbg_wmi(wil, "rfc calibration result %d\n", evt->rfc_read_calib_result); wil->fw_calib_result = evt->rfc_read_calib_result; } wil_set_recovery_state(wil, fw_recovery_idle); set_bit(wil_status_fwready, wil->status); /* let the reset sequence continue */ Loading drivers/net/wireless/ath/wil6210/wmi.h +2 −0 Original line number Diff line number Diff line Loading @@ -1300,6 +1300,8 @@ struct wmi_ready_event { /* enum wmi_phy_capability */ u8 phy_capability; u8 numof_additional_mids; u8 rfc_read_calib_result; u8 reserved[3]; } __packed; /* WMI_NOTIFY_REQ_DONE_EVENTID */ Loading Loading
drivers/net/wireless/ath/wil6210/main.c +6 −0 Original line number Diff line number Diff line Loading @@ -1042,6 +1042,12 @@ int wil_reset(struct wil6210_priv *wil, bool load_fw) wil_s(wil, RGF_CAF_ICR + offsetof(struct RGF_ICR, ICR), 0); wil_w(wil, RGF_CAF_ICR + offsetof(struct RGF_ICR, IMV), ~0); if (wil->fw_calib_result > 0) { __le32 val = cpu_to_le32(wil->fw_calib_result | (CALIB_RESULT_SIGNATURE << 8)); wil_w(wil, RGF_USER_FW_CALIB_RESULT, (u32 __force)val); } wil_release_cpu(wil); } Loading
drivers/net/wireless/ath/wil6210/wil6210.h +6 −0 Original line number Diff line number Diff line Loading @@ -175,6 +175,10 @@ struct RGF_ICR { #define RGF_USER_USER_SCRATCH_PAD (0x8802bc) #define RGF_USER_BL (0x880A3C) /* Boot Loader */ #define RGF_USER_FW_REV_ID (0x880a8c) /* chip revision */ #define RGF_USER_FW_CALIB_RESULT (0x880a90) /* b0-7:result * b8-15:signature */ #define CALIB_RESULT_SIGNATURE (0x11) #define RGF_USER_CLKS_CTL_0 (0x880abc) #define BIT_USER_CLKS_CAR_AHB_SW_SEL BIT(1) /* ref clk/PLL */ #define BIT_USER_CLKS_RST_PWGD BIT(11) /* reset on "power good" */ Loading Loading @@ -733,6 +737,8 @@ struct wil6210_priv { bool tt_data_set; struct wmi_tt_data tt_data; int fw_calib_result; #ifdef CONFIG_PM #ifdef CONFIG_PM_SLEEP struct notifier_block pm_notify; Loading
drivers/net/wireless/ath/wil6210/wmi.c +5 −0 Original line number Diff line number Diff line Loading @@ -345,6 +345,11 @@ static void wmi_evt_ready(struct wil6210_priv *wil, int id, void *d, int len) strlcpy(wdev->wiphy->fw_version, wil->fw_version, sizeof(wdev->wiphy->fw_version)); if (len > offsetof(struct wmi_ready_event, rfc_read_calib_result)) { wil_dbg_wmi(wil, "rfc calibration result %d\n", evt->rfc_read_calib_result); wil->fw_calib_result = evt->rfc_read_calib_result; } wil_set_recovery_state(wil, fw_recovery_idle); set_bit(wil_status_fwready, wil->status); /* let the reset sequence continue */ Loading
drivers/net/wireless/ath/wil6210/wmi.h +2 −0 Original line number Diff line number Diff line Loading @@ -1300,6 +1300,8 @@ struct wmi_ready_event { /* enum wmi_phy_capability */ u8 phy_capability; u8 numof_additional_mids; u8 rfc_read_calib_result; u8 reserved[3]; } __packed; /* WMI_NOTIFY_REQ_DONE_EVENTID */ Loading