Loading drivers/spi/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ config SPI_ALTERA This is the driver for the Altera SPI Controller. config SPI_ALTERA_CORE tristate "Altera SPI Controller core code" tristate "Altera SPI Controller core code" if COMPILE_TEST select REGMAP help "The core code for the Altera SPI Controller" Loading drivers/spi/spi-zynq-qspi.c +4 −5 Original line number Diff line number Diff line Loading @@ -367,7 +367,7 @@ static int zynq_qspi_config_op(struct zynq_qspi *xqspi, struct spi_device *spi) } /** * zynq_qspi_setup - Configure the QSPI controller * zynq_qspi_setup_op - Configure the QSPI controller * @spi: Pointer to the spi_device structure * * Sets the operational mode of QSPI controller for the next QSPI transfer, baud Loading Loading @@ -528,18 +528,17 @@ static int zynq_qspi_exec_mem_op(struct spi_mem *mem, struct zynq_qspi *xqspi = spi_controller_get_devdata(mem->spi->master); int err = 0, i; u8 *tmpbuf; u8 opcode = op->cmd.opcode; dev_dbg(xqspi->dev, "cmd:%#x mode:%d.%d.%d.%d\n", opcode, op->cmd.buswidth, op->addr.buswidth, op->cmd.opcode, op->cmd.buswidth, op->addr.buswidth, op->dummy.buswidth, op->data.buswidth); zynq_qspi_chipselect(mem->spi, true); zynq_qspi_config_op(xqspi, mem->spi); if (op->cmd.nbytes) { if (op->cmd.opcode) { reinit_completion(&xqspi->data_completion); xqspi->txbuf = &opcode; xqspi->txbuf = (u8 *)&op->cmd.opcode; xqspi->rxbuf = NULL; xqspi->tx_bytes = op->cmd.nbytes; xqspi->rx_bytes = op->cmd.nbytes; Loading drivers/spi/spi.c +12 −6 Original line number Diff line number Diff line Loading @@ -47,10 +47,6 @@ static void spidev_release(struct device *dev) { struct spi_device *spi = to_spi_device(dev); /* spi controllers may cleanup for released devices */ if (spi->controller->cleanup) spi->controller->cleanup(spi); spi_controller_put(spi->controller); kfree(spi->driver_override); kfree(spi); Loading Loading @@ -558,6 +554,12 @@ static int spi_dev_check(struct device *dev, void *data) return 0; } static void spi_cleanup(struct spi_device *spi) { if (spi->controller->cleanup) spi->controller->cleanup(spi); } /** * spi_add_device - Add spi_device allocated with spi_alloc_device * @spi: spi_device to register Loading Loading @@ -622,11 +624,13 @@ int spi_add_device(struct spi_device *spi) /* Device may be bound to an active driver when this returns */ status = device_add(&spi->dev); if (status < 0) if (status < 0) { dev_err(dev, "can't add %s, status %d\n", dev_name(&spi->dev), status); else spi_cleanup(spi); } else { dev_dbg(dev, "registered child %s\n", dev_name(&spi->dev)); } done: mutex_unlock(&spi_add_lock); Loading Loading @@ -710,6 +714,8 @@ void spi_unregister_device(struct spi_device *spi) if (!spi) return; spi_cleanup(spi); if (spi->dev.of_node) { of_node_clear_flag(spi->dev.of_node, OF_POPULATED); of_node_put(spi->dev.of_node); Loading Loading
drivers/spi/Kconfig +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ config SPI_ALTERA This is the driver for the Altera SPI Controller. config SPI_ALTERA_CORE tristate "Altera SPI Controller core code" tristate "Altera SPI Controller core code" if COMPILE_TEST select REGMAP help "The core code for the Altera SPI Controller" Loading
drivers/spi/spi-zynq-qspi.c +4 −5 Original line number Diff line number Diff line Loading @@ -367,7 +367,7 @@ static int zynq_qspi_config_op(struct zynq_qspi *xqspi, struct spi_device *spi) } /** * zynq_qspi_setup - Configure the QSPI controller * zynq_qspi_setup_op - Configure the QSPI controller * @spi: Pointer to the spi_device structure * * Sets the operational mode of QSPI controller for the next QSPI transfer, baud Loading Loading @@ -528,18 +528,17 @@ static int zynq_qspi_exec_mem_op(struct spi_mem *mem, struct zynq_qspi *xqspi = spi_controller_get_devdata(mem->spi->master); int err = 0, i; u8 *tmpbuf; u8 opcode = op->cmd.opcode; dev_dbg(xqspi->dev, "cmd:%#x mode:%d.%d.%d.%d\n", opcode, op->cmd.buswidth, op->addr.buswidth, op->cmd.opcode, op->cmd.buswidth, op->addr.buswidth, op->dummy.buswidth, op->data.buswidth); zynq_qspi_chipselect(mem->spi, true); zynq_qspi_config_op(xqspi, mem->spi); if (op->cmd.nbytes) { if (op->cmd.opcode) { reinit_completion(&xqspi->data_completion); xqspi->txbuf = &opcode; xqspi->txbuf = (u8 *)&op->cmd.opcode; xqspi->rxbuf = NULL; xqspi->tx_bytes = op->cmd.nbytes; xqspi->rx_bytes = op->cmd.nbytes; Loading
drivers/spi/spi.c +12 −6 Original line number Diff line number Diff line Loading @@ -47,10 +47,6 @@ static void spidev_release(struct device *dev) { struct spi_device *spi = to_spi_device(dev); /* spi controllers may cleanup for released devices */ if (spi->controller->cleanup) spi->controller->cleanup(spi); spi_controller_put(spi->controller); kfree(spi->driver_override); kfree(spi); Loading Loading @@ -558,6 +554,12 @@ static int spi_dev_check(struct device *dev, void *data) return 0; } static void spi_cleanup(struct spi_device *spi) { if (spi->controller->cleanup) spi->controller->cleanup(spi); } /** * spi_add_device - Add spi_device allocated with spi_alloc_device * @spi: spi_device to register Loading Loading @@ -622,11 +624,13 @@ int spi_add_device(struct spi_device *spi) /* Device may be bound to an active driver when this returns */ status = device_add(&spi->dev); if (status < 0) if (status < 0) { dev_err(dev, "can't add %s, status %d\n", dev_name(&spi->dev), status); else spi_cleanup(spi); } else { dev_dbg(dev, "registered child %s\n", dev_name(&spi->dev)); } done: mutex_unlock(&spi_add_lock); Loading Loading @@ -710,6 +714,8 @@ void spi_unregister_device(struct spi_device *spi) if (!spi) return; spi_cleanup(spi); if (spi->dev.of_node) { of_node_clear_flag(spi->dev.of_node, OF_POPULATED); of_node_put(spi->dev.of_node); Loading