wil6210: add support for reading multiple RFs temperature via debugfs

Base-band chips support multi RFs chips. Add support for reading
multiple RFs temperature via debugfs.

Signed-off-by: Tzahi Sabo <stzahi@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Tento commit je obsažen v:
Tzahi Sabo
2019-06-16 10:26:05 +03:00
odevzdal Kalle Valo
rodič 3e7ee09d36
revize 9b58611873
4 změnil soubory, kde provedl 118 přidání a 18 odebrání

Zobrazit soubor

@@ -486,6 +486,8 @@ static const char *cmdid2name(u16 cmdid)
return "WMI_UPDATE_FT_IES_CMD";
case WMI_RBUFCAP_CFG_CMDID:
return "WMI_RBUFCAP_CFG_CMD";
case WMI_TEMP_SENSE_ALL_CMDID:
return "WMI_TEMP_SENSE_ALL_CMDID";
default:
return "Untracked CMD";
}
@@ -632,6 +634,8 @@ static const char *eventid2name(u16 eventid)
return "WMI_FT_REASSOC_STATUS_EVENT";
case WMI_RBUFCAP_CFG_EVENTID:
return "WMI_RBUFCAP_CFG_EVENT";
case WMI_TEMP_SENSE_ALL_DONE_EVENTID:
return "WMI_TEMP_SENSE_ALL_DONE_EVENTID";
default:
return "Untracked EVENT";
}
@@ -2648,6 +2652,44 @@ int wmi_get_temperature(struct wil6210_priv *wil, u32 *t_bb, u32 *t_rf)
return 0;
}
int wmi_get_all_temperatures(struct wil6210_priv *wil,
struct wmi_temp_sense_all_done_event
*sense_all_evt)
{
struct wil6210_vif *vif = ndev_to_vif(wil->main_ndev);
int rc;
struct wmi_temp_sense_all_cmd cmd = {
.measure_baseband_en = true,
.measure_rf_en = true,
.measure_mode = TEMPERATURE_MEASURE_NOW,
};
struct {
struct wmi_cmd_hdr wmi;
struct wmi_temp_sense_all_done_event evt;
} __packed reply;
if (!sense_all_evt) {
wil_err(wil, "Invalid sense_all_evt value\n");
return -EINVAL;
}
memset(&reply, 0, sizeof(reply));
reply.evt.status = WMI_FW_STATUS_FAILURE;
rc = wmi_call(wil, WMI_TEMP_SENSE_ALL_CMDID, vif->mid, &cmd,
sizeof(cmd), WMI_TEMP_SENSE_ALL_DONE_EVENTID,
&reply, sizeof(reply), WIL_WMI_CALL_GENERAL_TO_MS);
if (rc)
return rc;
if (reply.evt.status == WMI_FW_STATUS_FAILURE) {
wil_err(wil, "Failed geting TEMP_SENSE_ALL\n");
return -EINVAL;
}
memcpy(sense_all_evt, &reply.evt, sizeof(reply.evt));
return 0;
}
int wmi_disconnect_sta(struct wil6210_vif *vif, const u8 *mac, u16 reason,
bool del_sta)
{