Signed-off-by: Matthias Beyer <mail@xxxxxxxxxxxxxxxx> --- drivers/staging/bcm/InterfaceMisc.c | 69 +++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/drivers/staging/bcm/InterfaceMisc.c b/drivers/staging/bcm/InterfaceMisc.c index fff7d68..a0f159e 100644 --- a/drivers/staging/bcm/InterfaceMisc.c +++ b/drivers/staging/bcm/InterfaceMisc.c @@ -1,36 +1,46 @@ #include "headers.h" -int InterfaceRDM(struct bcm_interface_adapter *psIntfAdapter, - unsigned int addr, - void *buff, - int len) +static int adapter_err_occurred(const struct bcm_interface_adapter *ad) { - int bytes; - - if (!psIntfAdapter) - return -EINVAL; - - if (psIntfAdapter->psAdapter->device_removed == TRUE) { - BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_PRINTK, 0, 0, + if (ad->psAdapter->device_removed == TRUE) { + BCM_DEBUG_PRINT(ad->psAdapter, DBG_TYPE_PRINTK, 0, 0, "Device got removed"); return -ENODEV; } - if ((psIntfAdapter->psAdapter->StopAllXaction == TRUE) && - (psIntfAdapter->psAdapter->chip_id >= T3LPB)) { - BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_OTHERS, RDM, + if ((ad->psAdapter->StopAllXaction == TRUE) && + (ad->psAdapter->chip_id >= T3LPB)) { + BCM_DEBUG_PRINT(ad->psAdapter, DBG_TYPE_OTHERS, RDM, DBG_LVL_ALL, "Currently Xaction is not allowed on the bus"); return -EACCES; } - if (psIntfAdapter->bSuspended == TRUE || - psIntfAdapter->bPreparingForBusSuspend == TRUE) { - BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_OTHERS, RDM, + if (ad->bSuspended == TRUE || ad->bPreparingForBusSuspend == TRUE) { + BCM_DEBUG_PRINT(ad->psAdapter, DBG_TYPE_OTHERS, RDM, DBG_LVL_ALL, "Bus is in suspended states hence RDM not allowed.."); return -EACCES; } + + return 0; +} + +int InterfaceRDM(struct bcm_interface_adapter *psIntfAdapter, + unsigned int addr, + void *buff, + int len) +{ + int bytes; + int err = 0; + + if (!psIntfAdapter) + return -EINVAL; + + err = adapter_err_occurred(psIntfAdapter); + if (err) + return err; + psIntfAdapter->psAdapter->DeviceAccess = TRUE; bytes = usb_control_msg(psIntfAdapter->udev, @@ -63,31 +73,14 @@ int InterfaceWRM(struct bcm_interface_adapter *psIntfAdapter, int len) { int retval = 0; + int err = 0; if (!psIntfAdapter) return -EINVAL; - if (psIntfAdapter->psAdapter->device_removed == TRUE) { - BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_PRINTK, 0, 0, - "Device got removed"); - return -ENODEV; - } - - if ((psIntfAdapter->psAdapter->StopAllXaction == TRUE) && - (psIntfAdapter->psAdapter->chip_id >= T3LPB)) { - BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_OTHERS, WRM, - DBG_LVL_ALL, - "Currently Xaction is not allowed on the bus..."); - return -EACCES; - } - - if (psIntfAdapter->bSuspended == TRUE || - psIntfAdapter->bPreparingForBusSuspend == TRUE) { - BCM_DEBUG_PRINT(psIntfAdapter->psAdapter, DBG_TYPE_OTHERS, WRM, - DBG_LVL_ALL, - "Bus is in suspended states hence RDM not allowed.."); - return -EACCES; - } + err = adapter_err_occurred(psIntfAdapter); + if (err) + return err; psIntfAdapter->psAdapter->DeviceAccess = TRUE; -- 2.0.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel