]> Pileus Git - ~andy/linux/blobdiff - drivers/spi/spi-bcm2835.c
usb: ohci-at91: fix irq and iomem resource retrieval
[~andy/linux] / drivers / spi / spi-bcm2835.c
index 52c81481c5c77408e90e22bbf2580e8041cf4a2c..3ed666fe840a0cdbaf1a2a2c6cd75670dd25fb48 100644 (file)
@@ -217,7 +217,7 @@ static int bcm2835_spi_start_transfer(struct spi_device *spi,
                cs |= spi->chip_select;
        }
 
-       INIT_COMPLETION(bs->done);
+       reinit_completion(&bs->done);
        bs->tx_buf = tfr->tx_buf;
        bs->rx_buf = tfr->rx_buf;
        bs->len = tfr->len;
@@ -358,7 +358,7 @@ static int bcm2835_spi_probe(struct platform_device *pdev)
        bcm2835_wr(bs, BCM2835_SPI_CS,
                   BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
 
-       err = spi_register_master(master);
+       err = devm_spi_register_master(&pdev->dev, master);
        if (err) {
                dev_err(&pdev->dev, "could not register SPI master: %d\n", err);
                goto out_free_irq;
@@ -381,14 +381,12 @@ static int bcm2835_spi_remove(struct platform_device *pdev)
        struct bcm2835_spi *bs = spi_master_get_devdata(master);
 
        free_irq(bs->irq, master);
-       spi_unregister_master(master);
 
        /* Clear FIFOs, and disable the HW block */
        bcm2835_wr(bs, BCM2835_SPI_CS,
                   BCM2835_SPI_CS_CLEAR_RX | BCM2835_SPI_CS_CLEAR_TX);
 
        clk_disable_unprepare(bs->clk);
-       spi_master_put(master);
 
        return 0;
 }