static inline int mt76x2_sign_extend_optional(u32 val, unsigned int size) { bool enable = val & BIT(size); return enable ? mt76x2_sign_extend(val, size) : 0; }
static void mt76x2_set_rssi_offset(struct mt76x2_dev *dev, int chain, u8 val) { s8 *dest = dev->cal.rx.rssi_offset; if (!field_valid(val)) { dest[chain] = 0; return; } dest[chain] = mt76x2_sign_extend(val, 6); }
static void mt76x2_set_rx_gain_group(struct mt76x2_dev *dev, u8 val) { s8 *dest = dev->cal.rx.high_gain; if (!field_valid(val)) { dest[0] = 0; dest[1] = 0; return; } dest[0] = mt76x2_sign_extend(val, 4); dest[1] = mt76x2_sign_extend(val >> 4, 4); }