diff options
Diffstat (limited to 'drivers/spi/spi-fsl-dspi.c')
| -rw-r--r-- | drivers/spi/spi-fsl-dspi.c | 18 | 
1 files changed, 10 insertions, 8 deletions
| diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c index 91c6affe139c..127323a4b27c 100644 --- a/drivers/spi/spi-fsl-dspi.c +++ b/drivers/spi/spi-fsl-dspi.c @@ -174,17 +174,17 @@ static const struct fsl_dspi_devtype_data devtype_data[] = {  		.fifo_size		= 16,  	},  	[LS2080A] = { -		.trans_mode		= DSPI_DMA_MODE, +		.trans_mode		= DSPI_XSPI_MODE,  		.max_clock_factor	= 8,  		.fifo_size		= 4,  	},  	[LS2085A] = { -		.trans_mode		= DSPI_DMA_MODE, +		.trans_mode		= DSPI_XSPI_MODE,  		.max_clock_factor	= 8,  		.fifo_size		= 4,  	},  	[LX2160A] = { -		.trans_mode		= DSPI_DMA_MODE, +		.trans_mode		= DSPI_XSPI_MODE,  		.max_clock_factor	= 8,  		.fifo_size		= 4,  	}, @@ -1273,11 +1273,14 @@ static int dspi_probe(struct platform_device *pdev)  	void __iomem *base;  	bool big_endian; -	ctlr = spi_alloc_master(&pdev->dev, sizeof(struct fsl_dspi)); +	dspi = devm_kzalloc(&pdev->dev, sizeof(*dspi), GFP_KERNEL); +	if (!dspi) +		return -ENOMEM; + +	ctlr = spi_alloc_master(&pdev->dev, 0);  	if (!ctlr)  		return -ENOMEM; -	dspi = spi_controller_get_devdata(ctlr);  	dspi->pdev = pdev;  	dspi->ctlr = ctlr; @@ -1414,7 +1417,7 @@ poll_mode:  	if (dspi->devtype_data->trans_mode != DSPI_DMA_MODE)  		ctlr->ptp_sts_supported = true; -	platform_set_drvdata(pdev, ctlr); +	platform_set_drvdata(pdev, dspi);  	ret = spi_register_controller(ctlr);  	if (ret != 0) { @@ -1437,8 +1440,7 @@ out_ctlr_put:  static int dspi_remove(struct platform_device *pdev)  { -	struct spi_controller *ctlr = platform_get_drvdata(pdev); -	struct fsl_dspi *dspi = spi_controller_get_devdata(ctlr); +	struct fsl_dspi *dspi = platform_get_drvdata(pdev);  	/* Disconnect from the SPI framework */  	spi_unregister_controller(dspi->ctlr); |