Staging: w35und: simplify hal_init_hardware() error handling
Impact: cleanup Use gotos to simplify the deep if-statement nesting in hal_init_hardware(). Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
cfe31f81e1
commit
00e2e05dd0
1 changed files with 31 additions and 27 deletions
|
@ -487,38 +487,42 @@ static int hal_init_hardware(struct ieee80211_hw *hw)
|
||||||
pHwData->FragmentThreshold = DEFAULT_FRAGMENT_THRESHOLD; // Setting default fragment threshold
|
pHwData->FragmentThreshold = DEFAULT_FRAGMENT_THRESHOLD; // Setting default fragment threshold
|
||||||
|
|
||||||
pHwData->InitialResource = 1;
|
pHwData->InitialResource = 1;
|
||||||
if( Wb35Reg_initial(pHwData)) {
|
if (!Wb35Reg_initial(pHwData))
|
||||||
pHwData->InitialResource = 2;
|
goto error;
|
||||||
if (Wb35Tx_initial(pHwData)) {
|
|
||||||
pHwData->InitialResource = 3;
|
|
||||||
if (Wb35Rx_initial(pHwData)) {
|
|
||||||
pHwData->InitialResource = 4;
|
|
||||||
init_timer(&pHwData->LEDTimer);
|
|
||||||
pHwData->LEDTimer.function = hal_led_control;
|
|
||||||
pHwData->LEDTimer.data = (unsigned long) priv;
|
|
||||||
pHwData->LEDTimer.expires = jiffies + msecs_to_jiffies(1000);
|
|
||||||
add_timer(&pHwData->LEDTimer);
|
|
||||||
|
|
||||||
//
|
pHwData->InitialResource = 2;
|
||||||
// For restrict to vendor's hardware
|
if (!Wb35Tx_initial(pHwData))
|
||||||
//
|
goto error;
|
||||||
SoftwareSet = hal_software_set( pHwData );
|
|
||||||
|
|
||||||
#ifdef Vendor2
|
pHwData->InitialResource = 3;
|
||||||
// Try to make sure the EEPROM contain
|
if (!Wb35Rx_initial(pHwData))
|
||||||
SoftwareSet >>= 8;
|
goto error;
|
||||||
if( SoftwareSet != 0x82 )
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Wb35Rx_start(hw);
|
pHwData->InitialResource = 4;
|
||||||
Wb35Tx_EP2VM_start(priv);
|
init_timer(&pHwData->LEDTimer);
|
||||||
|
pHwData->LEDTimer.function = hal_led_control;
|
||||||
|
pHwData->LEDTimer.data = (unsigned long) priv;
|
||||||
|
pHwData->LEDTimer.expires = jiffies + msecs_to_jiffies(1000);
|
||||||
|
add_timer(&pHwData->LEDTimer);
|
||||||
|
|
||||||
return 0;
|
//
|
||||||
}
|
// For restrict to vendor's hardware
|
||||||
}
|
//
|
||||||
}
|
SoftwareSet = hal_software_set( pHwData );
|
||||||
|
|
||||||
|
#ifdef Vendor2
|
||||||
|
// Try to make sure the EEPROM contain
|
||||||
|
SoftwareSet >>= 8;
|
||||||
|
if( SoftwareSet != 0x82 )
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Wb35Rx_start(hw);
|
||||||
|
Wb35Tx_EP2VM_start(priv);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
error:
|
||||||
pHwData->SurpriseRemove = 1;
|
pHwData->SurpriseRemove = 1;
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue