mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
crypto: crypto4xx - get irq and ioremap resource first
These functions can return -EPROBE_DEFER and require no special setup other than the platform_device which is already provided. Avoids doing extra work when not needed. Signed-off-by: Rosen Penev <rosenp@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
e1df9bb6dc
commit
93cc48a000
|
|
@ -1206,9 +1206,19 @@ static int crypto4xx_probe(struct platform_device *ofdev)
|
|||
struct device *dev = &ofdev->dev;
|
||||
struct crypto4xx_core_device *core_dev;
|
||||
struct device_node *np;
|
||||
void __iomem *ce_base;
|
||||
int irq;
|
||||
u32 pvr;
|
||||
bool is_revb = true;
|
||||
|
||||
irq = platform_get_irq(ofdev, 0);
|
||||
if (irq < 0)
|
||||
return irq;
|
||||
|
||||
ce_base = devm_platform_ioremap_resource(ofdev, 0);
|
||||
if (IS_ERR(ce_base))
|
||||
return PTR_ERR(ce_base);
|
||||
|
||||
np = of_find_compatible_node(NULL, NULL, "amcc,ppc460ex-crypto");
|
||||
if (np) {
|
||||
mtdcri(SDR0, PPC460EX_SDR0_SRST,
|
||||
|
|
@ -1251,9 +1261,7 @@ static int crypto4xx_probe(struct platform_device *ofdev)
|
|||
if (!core_dev->dev)
|
||||
return -ENOMEM;
|
||||
|
||||
core_dev->dev->ce_base = devm_platform_ioremap_resource(ofdev, 0);
|
||||
if (IS_ERR(core_dev->dev->ce_base))
|
||||
return PTR_ERR(core_dev->dev->ce_base);
|
||||
core_dev->dev->ce_base = ce_base;
|
||||
|
||||
/*
|
||||
* Older version of 460EX/GT have a hardware bug.
|
||||
|
|
@ -1291,11 +1299,7 @@ static int crypto4xx_probe(struct platform_device *ofdev)
|
|||
(unsigned long) dev);
|
||||
|
||||
/* Register for Crypto isr, Crypto Engine IRQ */
|
||||
core_dev->irq = platform_get_irq(ofdev, 0);
|
||||
if (core_dev->irq < 0) {
|
||||
rc = core_dev->irq;
|
||||
goto err_tasklet;
|
||||
}
|
||||
core_dev->irq = irq;
|
||||
rc = request_irq(core_dev->irq,
|
||||
is_revb ? crypto4xx_ce_interrupt_handler_revb :
|
||||
crypto4xx_ce_interrupt_handler,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user