rt2x00: Remove async vendor request calls from rt2x00usb
[pandora-kernel.git] / drivers / net / wireless / rt2x00 / rt73usb.c
index bf2391b..6546b0d 100644 (file)
@@ -290,29 +290,38 @@ static void rt73usb_led_brightness(struct led_classdev *led_cdev,
        unsigned int bg_mode =
            (enabled && led->rt2x00dev->curr_band == IEEE80211_BAND_2GHZ);
 
+       if (in_atomic()) {
+               NOTICE(led->rt2x00dev,
+                      "Ignoring LED brightness command for led %d", led->type);
+               return;
+       }
+
        if (led->type == LED_TYPE_RADIO) {
                rt2x00_set_field16(&led->rt2x00dev->led_mcu_reg,
                                   MCU_LEDCS_RADIO_STATUS, enabled);
 
-               rt2x00usb_vendor_request_async(led->rt2x00dev, USB_LED_CONTROL,
-                                              0, led->rt2x00dev->led_mcu_reg);
+               rt2x00usb_vendor_request_sw(led->rt2x00dev, USB_LED_CONTROL,
+                                           0, led->rt2x00dev->led_mcu_reg,
+                                           REGISTER_TIMEOUT);
        } else if (led->type == LED_TYPE_ASSOC) {
                rt2x00_set_field16(&led->rt2x00dev->led_mcu_reg,
                                   MCU_LEDCS_LINK_BG_STATUS, bg_mode);
                rt2x00_set_field16(&led->rt2x00dev->led_mcu_reg,
                                   MCU_LEDCS_LINK_A_STATUS, a_mode);
 
-               rt2x00usb_vendor_request_async(led->rt2x00dev, USB_LED_CONTROL,
-                                              0, led->rt2x00dev->led_mcu_reg);
+               rt2x00usb_vendor_request_sw(led->rt2x00dev, USB_LED_CONTROL,
+                                           0, led->rt2x00dev->led_mcu_reg,
+                                           REGISTER_TIMEOUT);
        } else if (led->type == LED_TYPE_QUALITY) {
                /*
                 * The brightness is divided into 6 levels (0 - 5),
                 * this means we need to convert the brightness
                 * argument into the matching level within that range.
                 */
-               rt2x00usb_vendor_request_async(led->rt2x00dev, USB_LED_CONTROL,
-                                              brightness / (LED_FULL / 6),
-                                              led->rt2x00dev->led_mcu_reg);
+               rt2x00usb_vendor_request_sw(led->rt2x00dev, USB_LED_CONTROL,
+                                           brightness / (LED_FULL / 6),
+                                           led->rt2x00dev->led_mcu_reg,
+                                           REGISTER_TIMEOUT);
        }
 }
 #else