aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h
diff options
context:
space:
mode:
authorLorenzo Bianconi <lorenzo.bianconi@redhat.com>2018-09-22 13:45:32 +0200
committerFelix Fietkau <nbd@nbd.name>2018-10-01 12:34:03 +0200
commit02a4251d44bdb1e8dda61919f3a4a85aaebfb771 (patch)
tree9235cb12106da0a0dd01c27cb921fd0a9c333151 /drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h
parentmt76: move rate_txpower handler in mt76 debugfs (diff)
downloadlinux-dev-02a4251d44bdb1e8dda61919f3a4a85aaebfb771.tar.xz
linux-dev-02a4251d44bdb1e8dda61919f3a4a85aaebfb771.zip
mt76: move mt76x02_rate_power_val in mt76x02-lib module
Move mt76x02_rate_power_val and mt76x2_sign_extend_optional utility routines in mt76x02_eeprom.h in order to reuse them in mt76x0 eeprom parsing Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h')
-rw-r--r--drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h b/drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h
index 9339514fb073..c3d8920a8127 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x02_eeprom.h
@@ -153,6 +153,22 @@ mt76x02_sign_extend(u32 val, unsigned int size)
}
static inline int
+mt76x02_sign_extend_optional(u32 val, unsigned int size)
+{
+ bool enable = val & BIT(size);
+
+ return enable ? mt76x02_sign_extend(val, size) : 0;
+}
+
+static inline s8 mt76x02_rate_power_val(u8 val)
+{
+ if (!mt76x02_field_valid(val))
+ return 0;
+
+ return mt76x02_sign_extend_optional(val, 7);
+}
+
+static inline int
mt76x02_eeprom_get(struct mt76_dev *dev,
enum mt76x02_eeprom_field field)
{