aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/winbond/wbusb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/winbond/wbusb.c')
-rw-r--r--drivers/staging/winbond/wbusb.c66
1 files changed, 35 insertions, 31 deletions
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index 897ac94f63a..4ce2e5af959 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -487,38 +487,42 @@ static int hal_init_hardware(struct ieee80211_hw *hw)
487 pHwData->FragmentThreshold = DEFAULT_FRAGMENT_THRESHOLD; // Setting default fragment threshold 487 pHwData->FragmentThreshold = DEFAULT_FRAGMENT_THRESHOLD; // Setting default fragment threshold
488 488
489 pHwData->InitialResource = 1; 489 pHwData->InitialResource = 1;
490 if( Wb35Reg_initial(pHwData)) { 490 if (!Wb35Reg_initial(pHwData))
491 pHwData->InitialResource = 2; 491 goto error;
492 if (Wb35Tx_initial(pHwData)) { 492
493 pHwData->InitialResource = 3; 493 pHwData->InitialResource = 2;
494 if (Wb35Rx_initial(pHwData)) { 494 if (!Wb35Tx_initial(pHwData))
495 pHwData->InitialResource = 4; 495 goto error;
496 init_timer(&pHwData->LEDTimer); 496
497 pHwData->LEDTimer.function = hal_led_control; 497 pHwData->InitialResource = 3;
498 pHwData->LEDTimer.data = (unsigned long) priv; 498 if (!Wb35Rx_initial(pHwData))
499 pHwData->LEDTimer.expires = jiffies + msecs_to_jiffies(1000); 499 goto error;
500 add_timer(&pHwData->LEDTimer); 500
501 501 pHwData->InitialResource = 4;
502 // 502 init_timer(&pHwData->LEDTimer);
503 // For restrict to vendor's hardware 503 pHwData->LEDTimer.function = hal_led_control;
504 // 504 pHwData->LEDTimer.data = (unsigned long) priv;
505 SoftwareSet = hal_software_set( pHwData ); 505 pHwData->LEDTimer.expires = jiffies + msecs_to_jiffies(1000);
506 506 add_timer(&pHwData->LEDTimer);
507 #ifdef Vendor2 507
508 // Try to make sure the EEPROM contain 508 //
509 SoftwareSet >>= 8; 509 // For restrict to vendor's hardware
510 if( SoftwareSet != 0x82 ) 510 //
511 return false; 511 SoftwareSet = hal_software_set( pHwData );
512 #endif 512
513 513 #ifdef Vendor2
514 Wb35Rx_start(hw); 514 // Try to make sure the EEPROM contain
515 Wb35Tx_EP2VM_start(priv); 515 SoftwareSet >>= 8;
516 516 if( SoftwareSet != 0x82 )
517 return 0; 517 return false;
518 } 518 #endif
519 }
520 }
521 519
520 Wb35Rx_start(hw);
521 Wb35Tx_EP2VM_start(priv);
522
523 return 0;
524
525error:
522 pHwData->SurpriseRemove = 1; 526 pHwData->SurpriseRemove = 1;
523 return -EINVAL; 527 return -EINVAL;
524} 528}