{
struct spi_controller *ctlr;
struct spi_mux_priv *priv;
- int ret;
- ctlr = spi_alloc_host(&spi->dev, sizeof(*priv));
+ ctlr = devm_spi_alloc_host(&spi->dev, sizeof(*priv));
if (!ctlr)
return -ENOMEM;
priv->mux = devm_mux_control_get(&spi->dev, NULL);
if (IS_ERR(priv->mux)) {
- ret = dev_err_probe(&spi->dev, PTR_ERR(priv->mux),
- "failed to get control-mux\n");
- goto err_put_ctlr;
+ return dev_err_probe(&spi->dev, PTR_ERR(priv->mux),
+ "failed to get control-mux\n");
}
priv->current_cs = SPI_MUX_NO_CS;
ctlr->must_async = true;
ctlr->defer_optimize_message = true;
- ret = devm_spi_register_controller(&spi->dev, ctlr);
- if (ret)
- goto err_put_ctlr;
-
- return 0;
-
-err_put_ctlr:
- spi_controller_put(ctlr);
-
- return ret;
+ return devm_spi_register_controller(&spi->dev, ctlr);
}
static const struct spi_device_id spi_mux_id[] = {