|
|
@ -494,7 +494,7 @@ __devinit ubsec_ssb_probe(struct ssb_device *sdev, |
|
|
|
err = ssb_bus_powerup(sdev->bus, 0); |
|
|
|
err = ssb_bus_powerup(sdev->bus, 0); |
|
|
|
if (err) { |
|
|
|
if (err) { |
|
|
|
dev_err(sdev->dev, "Failed to powerup the bus\n"); |
|
|
|
dev_err(sdev->dev, "Failed to powerup the bus\n"); |
|
|
|
goto err_powerup; |
|
|
|
goto err_out; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
err = request_irq(sdev->irq, (irq_handler_t)ubsec_ssb_isr,
|
|
|
|
err = request_irq(sdev->irq, (irq_handler_t)ubsec_ssb_isr,
|
|
|
@ -508,7 +508,7 @@ __devinit ubsec_ssb_probe(struct ssb_device *sdev, |
|
|
|
if (err) { |
|
|
|
if (err) { |
|
|
|
dev_err(sdev->dev, |
|
|
|
dev_err(sdev->dev, |
|
|
|
"Required 32BIT DMA mask unsupported by the system.\n"); |
|
|
|
"Required 32BIT DMA mask unsupported by the system.\n"); |
|
|
|
goto err_out_powerdown; |
|
|
|
goto err_out_free_irq; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
printk(KERN_INFO "Sentry5(tm) ROBOGateway(tm) IPSec Core at IRQ %u\n", |
|
|
|
printk(KERN_INFO "Sentry5(tm) ROBOGateway(tm) IPSec Core at IRQ %u\n", |
|
|
@ -520,7 +520,7 @@ __devinit ubsec_ssb_probe(struct ssb_device *sdev, |
|
|
|
ssb_device_enable(sdev, 0); |
|
|
|
ssb_device_enable(sdev, 0); |
|
|
|
|
|
|
|
|
|
|
|
if (ubsec_attach(sdev, ent, sdev->dev) != 0) |
|
|
|
if (ubsec_attach(sdev, ent, sdev->dev) != 0) |
|
|
|
goto err_disable_interrupt; |
|
|
|
goto err_out_disable; |
|
|
|
|
|
|
|
|
|
|
|
#ifdef UBSEC_DEBUG |
|
|
|
#ifdef UBSEC_DEBUG |
|
|
|
procdebug = create_proc_entry(DRV_MODULE_NAME, S_IRUSR, NULL); |
|
|
|
procdebug = create_proc_entry(DRV_MODULE_NAME, S_IRUSR, NULL); |
|
|
@ -534,15 +534,17 @@ __devinit ubsec_ssb_probe(struct ssb_device *sdev, |
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
|
|
err_disable_interrupt: |
|
|
|
err_out_disable: |
|
|
|
|
|
|
|
ssb_device_disable(sdev, 0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
err_out_free_irq: |
|
|
|
free_irq(sdev->irq, sdev); |
|
|
|
free_irq(sdev->irq, sdev); |
|
|
|
|
|
|
|
|
|
|
|
err_out_powerdown: |
|
|
|
err_out_powerdown: |
|
|
|
ssb_bus_may_powerdown(sdev->bus); |
|
|
|
ssb_bus_may_powerdown(sdev->bus); |
|
|
|
|
|
|
|
|
|
|
|
err_powerup: |
|
|
|
err_out: |
|
|
|
ssb_device_disable(sdev, 0); |
|
|
|
return err; |
|
|
|
return err;
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void __devexit ubsec_ssb_remove(struct ssb_device *sdev) { |
|
|
|
static void __devexit ubsec_ssb_remove(struct ssb_device *sdev) { |
|
|
@ -587,8 +589,8 @@ static void __devexit ubsec_ssb_remove(struct ssb_device *sdev) { |
|
|
|
sc->sc_queuea[i] = NULL; |
|
|
|
sc->sc_queuea[i] = NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ssb_bus_may_powerdown(sdev->bus); |
|
|
|
|
|
|
|
ssb_device_disable(sdev, 0); |
|
|
|
ssb_device_disable(sdev, 0); |
|
|
|
|
|
|
|
ssb_bus_may_powerdown(sdev->bus); |
|
|
|
ssb_set_drvdata(sdev, NULL); |
|
|
|
ssb_set_drvdata(sdev, NULL); |
|
|
|
|
|
|
|
|
|
|
|
#ifdef UBSEC_DEBUG |
|
|
|
#ifdef UBSEC_DEBUG |
|
|
|