Skip to content

Commit

Permalink
wifi: mt76: mt7915: rework mt7915_thermal_temp_store()
Browse files Browse the repository at this point in the history
Call mt7915_mcu_set_thermal_protect() through
mt7915_thermal_temp_store() to update firmware trigger/restore temp
directly.

Fixes: 02ee68b95d81 ("mt76: mt7915: add control knobs for thermal throttling")
Reviewed-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
  • Loading branch information
haogroot authored and nbd168 committed Jan 23, 2023
1 parent 8e5c21f commit 87cb74f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
18 changes: 16 additions & 2 deletions mt7915/init.c
Expand Up @@ -83,9 +83,23 @@ static ssize_t mt7915_thermal_temp_store(struct device *dev,

mutex_lock(&phy->dev->mt76.mutex);
val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), 60, 130);

if ((i - 1 == MT7915_CRIT_TEMP_IDX &&
val > phy->throttle_temp[MT7915_MAX_TEMP_IDX]) ||
(i - 1 == MT7915_MAX_TEMP_IDX &&
val < phy->throttle_temp[MT7915_CRIT_TEMP_IDX])) {
dev_err(phy->dev->mt76.dev,
"temp1_max shall be greater than temp1_crit.");
return -EINVAL;
}

phy->throttle_temp[i - 1] = val;
mutex_unlock(&phy->dev->mt76.mutex);

ret = mt7915_mcu_set_thermal_protect(phy);
if (ret)
return ret;

return count;
}

Expand Down Expand Up @@ -195,8 +209,8 @@ static int mt7915_thermal_init(struct mt7915_phy *phy)
return PTR_ERR(hwmon);

/* initialize critical/maximum high temperature */
phy->throttle_temp[0] = 110;
phy->throttle_temp[1] = 120;
phy->throttle_temp[MT7915_CRIT_TEMP_IDX] = 110;
phy->throttle_temp[MT7915_MAX_TEMP_IDX] = 120;

return 0;
}
Expand Down
3 changes: 3 additions & 0 deletions mt7915/mt7915.h
Expand Up @@ -70,6 +70,9 @@

#define MT7915_WED_RX_TOKEN_SIZE 12288

#define MT7915_CRIT_TEMP_IDX 0
#define MT7915_MAX_TEMP_IDX 1

struct mt7915_vif;
struct mt7915_sta;
struct mt7915_dfs_pulse;
Expand Down

0 comments on commit 87cb74f

Please sign in to comment.