Commit cee2c7315f60beeff6137ee59e99acc77d636eeb (rt2800: fix RT5390 & RT3290 TX power settings regression) needs to be extended for the RT5592 chipset as well. But at least for the RT5592 the existing regression fix is not right because the value returned from rt2800_get_gain_calibration_delta() is bogus as it is generated by an unappropriate algorithm. This can cause severe connection issues with sticks that have external ALC enabled like the Netis WF2150 because of too low TX power at least during the scan process. So the fix for now is not to call rt2800_get_gain_calibration_delta() for the RT5592 chipset. I do not touch the existing regression fix for RT5390 & RT3290 but I think they may need a rework as well. Signed-off-by: Ronald Wahl <ronald.wahl@xxxxxxxxxxx> --- drivers/net/wireless/rt2x00/rt2800lib.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c index 9f57a2d..66f3546 100644 --- a/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c @@ -4118,8 +4118,12 @@ static void rt2800_config_txpower_rt28xx(struct rt2x00_dev *rt2x00dev, * to temperature or maybe other factors) is smaller or bigger than * expected. We adjust it, based on TSSI reference and boundaries values * provided in EEPROM. + * + * TODO: add different temperature compensation code for RT5592 */ - delta += rt2800_get_gain_calibration_delta(rt2x00dev); + if (!rt2x00_rt(rt2x00dev, RT5592)) { + delta += rt2800_get_gain_calibration_delta(rt2x00dev); + } /* * Decrease power according to user settings, on devices with unknown -- 1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html