}
/* Allocate host with space for data */
- host = spi_alloc_host(dev, sizeof(struct pl022));
+ host = devm_spi_alloc_host(dev, sizeof(struct pl022));
if (host == NULL) {
dev_err(&adev->dev, "probe - cannot alloc SPI host\n");
return -ENOMEM;
status = amba_request_regions(adev, NULL);
if (status)
- goto err_no_ioregion;
+ return status;
pl022->phybase = adev->res.start;
pl022->virtbase = devm_ioremap(dev, adev->res.start,
err_no_clk:
err_no_ioremap:
amba_release_regions(adev);
- err_no_ioregion:
- spi_controller_put(host);
+
return status;
}
if (!pl022)
return;
- spi_controller_get(pl022->host);
-
spi_unregister_controller(pl022->host);
/*
pl022_dma_remove(pl022);
amba_release_regions(adev);
-
- spi_controller_put(pl022->host);
}
#ifdef CONFIG_PM_SLEEP