rt2x00: Disable link tuning in rt2500usb

In the legacy rt2570 driver the link tuner was never
really called. And now the reason has finally become
apparent: It breaks TX capabilities

As soon as the device has been associated all following
TX frames will be queued in the hardware and never transmitted
to the air. Disabling sections of the link tuner did not
have the expected result, but completely disabling the
link tuner did have the right result (Both of my rt2570 devices
came back to life).

This should fix Fedora bug: 411481

v2: Fix typos

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

authored by Ivo van Doorn and committed by John W. Linville d06193f3 5cbbb376

+14
+14
drivers/net/wireless/rt2x00/rt2500usb.c
··· 633 rt2x00dev->link.vgc_level = value; 634 } 635 636 static void rt2500usb_link_tuner(struct rt2x00_dev *rt2x00dev) 637 { 638 int rssi = rt2x00_get_link_rssi(&rt2x00dev->link); ··· 762 rt2x00dev->link.vgc_level = r17; 763 } 764 } 765 766 /* 767 * Initialization functions. ··· 1750 __set_bit(DRIVER_REQUIRE_ATIM_QUEUE, &rt2x00dev->flags); 1751 __set_bit(DRIVER_REQUIRE_BEACON_GUARD, &rt2x00dev->flags); 1752 __set_bit(DRIVER_REQUIRE_SCHEDULED, &rt2x00dev->flags); 1753 1754 /* 1755 * Set the rssi offset.
··· 633 rt2x00dev->link.vgc_level = value; 634 } 635 636 + /* 637 + * NOTE: This function is directly ported from legacy driver, but 638 + * despite it being declared it was never called. Although link tuning 639 + * sounds like a good idea, and usually works well for the other drivers, 640 + * it does _not_ work with rt2500usb. Enabling this function will result 641 + * in TX capabilities only until association kicks in. Immediately 642 + * after the successful association all TX frames will be kept in the 643 + * hardware queue and never transmitted. 644 + */ 645 + #if 0 646 static void rt2500usb_link_tuner(struct rt2x00_dev *rt2x00dev) 647 { 648 int rssi = rt2x00_get_link_rssi(&rt2x00dev->link); ··· 752 rt2x00dev->link.vgc_level = r17; 753 } 754 } 755 + #else 756 + #define rt2500usb_link_tuner NULL 757 + #endif 758 759 /* 760 * Initialization functions. ··· 1737 __set_bit(DRIVER_REQUIRE_ATIM_QUEUE, &rt2x00dev->flags); 1738 __set_bit(DRIVER_REQUIRE_BEACON_GUARD, &rt2x00dev->flags); 1739 __set_bit(DRIVER_REQUIRE_SCHEDULED, &rt2x00dev->flags); 1740 + __set_bit(CONFIG_DISABLE_LINK_TUNING, &rt2x00dev->flags); 1741 1742 /* 1743 * Set the rssi offset.