struct spi_controller *host;
struct spi_lp8841_rtc *data;
- host = spi_alloc_host(&pdev->dev, sizeof(*data));
+ host = devm_spi_alloc_host(&pdev->dev, sizeof(*data));
if (!host)
return -ENOMEM;
platform_set_drvdata(pdev, host);
ret = PTR_ERR_OR_ZERO(data->iomem);
if (ret) {
dev_err(&pdev->dev, "failed to get IO address\n");
- goto err_put_host;
+ return ret;
}
/* register with the SPI framework */
ret = devm_spi_register_controller(&pdev->dev, host);
if (ret) {
dev_err(&pdev->dev, "cannot register spi host\n");
- goto err_put_host;
+ return ret;
}
- return ret;
-
-
-err_put_host:
- spi_controller_put(host);
-
- return ret;
+ return 0;
}
MODULE_ALIAS("platform:" DRIVER_NAME);