diff options
| author | Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> | 2013-03-13 14:12:51 +0200 | 
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2013-03-13 14:27:35 -0400 | 
| commit | 1a2780e0f3bef7288190e1107350d085c49e3d33 (patch) | |
| tree | 264e12b6557b1d51a7b9386bed511e3b202bb0c5 /drivers/net/wireless/ath/wil6210/wmi.c | |
| parent | b80231773ad0b89f6abee8cf26fde8fe4638fceb (diff) | |
| download | olio-linux-3.10-1a2780e0f3bef7288190e1107350d085c49e3d33.tar.xz olio-linux-3.10-1a2780e0f3bef7288190e1107350d085c49e3d33.zip  | |
wil6210: temperature measurement
Firmware got support for temperature measurement.
There are 2 temperature sensors: MAC and radio
"not available" temperature - reported by FW as 0 or ~0
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/wil6210/wmi.c')
| -rw-r--r-- | drivers/net/wireless/ath/wil6210/wmi.c | 25 | 
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c index 706ee9d86e6..45b04e383f9 100644 --- a/drivers/net/wireless/ath/wil6210/wmi.c +++ b/drivers/net/wireless/ath/wil6210/wmi.c @@ -962,6 +962,31 @@ int wmi_rx_chain_add(struct wil6210_priv *wil, struct vring *vring)  	return rc;  } +int wmi_get_temperature(struct wil6210_priv *wil, u32 *t_m, u32 *t_r) +{ +	int rc; +	struct wmi_temp_sense_cmd cmd = { +		.measure_marlon_m_en = cpu_to_le32(!!t_m), +		.measure_marlon_r_en = cpu_to_le32(!!t_r), +	}; +	struct { +		struct wil6210_mbox_hdr_wmi wmi; +		struct wmi_temp_sense_done_event evt; +	} __packed reply; + +	rc = wmi_call(wil, WMI_TEMP_SENSE_CMDID, &cmd, sizeof(cmd), +		      WMI_TEMP_SENSE_DONE_EVENTID, &reply, sizeof(reply), 100); +	if (rc) +		return rc; + +	if (t_m) +		*t_m = le32_to_cpu(reply.evt.marlon_m_t1000); +	if (t_r) +		*t_r = le32_to_cpu(reply.evt.marlon_r_t1000); + +	return 0; +} +  void wmi_event_flush(struct wil6210_priv *wil)  {  	struct pending_wmi_event *evt, *t;  |