|
@@ -618,19 +618,19 @@ static int __devinit p54spi_probe(struct spi_device *spi)
|
|
|
ret = spi_setup(spi);
|
|
|
if (ret < 0) {
|
|
|
dev_err(&priv->spi->dev, "spi_setup failed");
|
|
|
- goto err_free_common;
|
|
|
+ goto err_free;
|
|
|
}
|
|
|
|
|
|
ret = gpio_request(p54spi_gpio_power, "p54spi power");
|
|
|
if (ret < 0) {
|
|
|
dev_err(&priv->spi->dev, "power GPIO request failed: %d", ret);
|
|
|
- goto err_free_common;
|
|
|
+ goto err_free;
|
|
|
}
|
|
|
|
|
|
ret = gpio_request(p54spi_gpio_irq, "p54spi irq");
|
|
|
if (ret < 0) {
|
|
|
dev_err(&priv->spi->dev, "irq GPIO request failed: %d", ret);
|
|
|
- goto err_free_common;
|
|
|
+ goto err_free_gpio_power;
|
|
|
}
|
|
|
|
|
|
gpio_direction_output(p54spi_gpio_power, 0);
|
|
@@ -641,7 +641,7 @@ static int __devinit p54spi_probe(struct spi_device *spi)
|
|
|
priv->spi);
|
|
|
if (ret < 0) {
|
|
|
dev_err(&priv->spi->dev, "request_irq() failed");
|
|
|
- goto err_free_common;
|
|
|
+ goto err_free_gpio_irq;
|
|
|
}
|
|
|
|
|
|
irq_set_irq_type(gpio_to_irq(p54spi_gpio_irq), IRQ_TYPE_EDGE_RISING);
|
|
@@ -673,6 +673,12 @@ static int __devinit p54spi_probe(struct spi_device *spi)
|
|
|
return 0;
|
|
|
|
|
|
err_free_common:
|
|
|
+ free_irq(gpio_to_irq(p54spi_gpio_irq), spi);
|
|
|
+err_free_gpio_irq:
|
|
|
+ gpio_free(p54spi_gpio_irq);
|
|
|
+err_free_gpio_power:
|
|
|
+ gpio_free(p54spi_gpio_power);
|
|
|
+err_free:
|
|
|
p54_free_common(priv->hw);
|
|
|
return ret;
|
|
|
}
|