spi: revert master->setup function removal for altera and nuc900
Commit 24778be
"spi: convert drivers to use bits_per_word_mask" removed
what appeared to be redundant code from many drivers. However, it
appears that in the spi-bitbang case, these functions are required by
the spi-bitbang core, even if they don't do anything. Restore them.
For 3.12, the spi-bitbang core should be adjusted not to require these
callbacks to exist if they don't need to do anything.
This is the equivalent of Michal Simek's patch "spi/xilinx: Revert
master->setup function removal", applied to other affected drivers.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
committed by
Mark Brown
parent
ed893559c9
commit
103ccee4ef
@@ -103,6 +103,16 @@ static void altera_spi_chipsel(struct spi_device *spi, int value)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int altera_spi_setupxfer(struct spi_device *spi, struct spi_transfer *t)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int altera_spi_setup(struct spi_device *spi)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline unsigned int hw_txbyte(struct altera_spi *hw, int count)
|
static inline unsigned int hw_txbyte(struct altera_spi *hw, int count)
|
||||||
{
|
{
|
||||||
if (hw->tx) {
|
if (hw->tx) {
|
||||||
@@ -221,6 +231,7 @@ static int altera_spi_probe(struct platform_device *pdev)
|
|||||||
master->bus_num = pdev->id;
|
master->bus_num = pdev->id;
|
||||||
master->num_chipselect = 16;
|
master->num_chipselect = 16;
|
||||||
master->mode_bits = SPI_CS_HIGH;
|
master->mode_bits = SPI_CS_HIGH;
|
||||||
|
master->setup = altera_spi_setup;
|
||||||
|
|
||||||
hw = spi_master_get_devdata(master);
|
hw = spi_master_get_devdata(master);
|
||||||
platform_set_drvdata(pdev, hw);
|
platform_set_drvdata(pdev, hw);
|
||||||
@@ -229,6 +240,7 @@ static int altera_spi_probe(struct platform_device *pdev)
|
|||||||
hw->bitbang.master = spi_master_get(master);
|
hw->bitbang.master = spi_master_get(master);
|
||||||
if (!hw->bitbang.master)
|
if (!hw->bitbang.master)
|
||||||
return err;
|
return err;
|
||||||
|
hw->bitbang.setup_transfer = altera_spi_setupxfer;
|
||||||
hw->bitbang.chipselect = altera_spi_chipsel;
|
hw->bitbang.chipselect = altera_spi_chipsel;
|
||||||
hw->bitbang.txrx_bufs = altera_spi_txrx;
|
hw->bitbang.txrx_bufs = altera_spi_txrx;
|
||||||
|
|
||||||
|
@@ -174,6 +174,17 @@ static void nuc900_spi_gobusy(struct nuc900_spi *hw)
|
|||||||
spin_unlock_irqrestore(&hw->lock, flags);
|
spin_unlock_irqrestore(&hw->lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int nuc900_spi_setupxfer(struct spi_device *spi,
|
||||||
|
struct spi_transfer *t)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int nuc900_spi_setup(struct spi_device *spi)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static inline unsigned int hw_txbyte(struct nuc900_spi *hw, int count)
|
static inline unsigned int hw_txbyte(struct nuc900_spi *hw, int count)
|
||||||
{
|
{
|
||||||
return hw->tx ? hw->tx[count] : 0;
|
return hw->tx ? hw->tx[count] : 0;
|
||||||
@@ -366,8 +377,10 @@ static int nuc900_spi_probe(struct platform_device *pdev)
|
|||||||
master->num_chipselect = hw->pdata->num_cs;
|
master->num_chipselect = hw->pdata->num_cs;
|
||||||
master->bus_num = hw->pdata->bus_num;
|
master->bus_num = hw->pdata->bus_num;
|
||||||
hw->bitbang.master = hw->master;
|
hw->bitbang.master = hw->master;
|
||||||
|
hw->bitbang.setup_transfer = nuc900_spi_setupxfer;
|
||||||
hw->bitbang.chipselect = nuc900_spi_chipsel;
|
hw->bitbang.chipselect = nuc900_spi_chipsel;
|
||||||
hw->bitbang.txrx_bufs = nuc900_spi_txrx;
|
hw->bitbang.txrx_bufs = nuc900_spi_txrx;
|
||||||
|
hw->bitbang.master->setup = nuc900_spi_setup;
|
||||||
|
|
||||||
hw->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
hw->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
if (hw->res == NULL) {
|
if (hw->res == NULL) {
|
||||||
|
Reference in New Issue
Block a user