spi: s3c drivers shouldn't care about spi_board_info
The two S3C SPI master drivers got merged without much review, so I just noticed that they're doing something that the SPI core code is responsible for, rather than any adapter driver: they try to register SPI devices. This removes that support from those drivers so they act normally. Interestingly, none of the current boards are affected. So it's a net code shrink with no loss of functionality. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: Ben Dooks <ben-linux@fluff.org> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
8bacb21901
commit
b359fbc458
@ -237,10 +237,8 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
|
|||||||
{
|
{
|
||||||
struct s3c24xx_spi *hw;
|
struct s3c24xx_spi *hw;
|
||||||
struct spi_master *master;
|
struct spi_master *master;
|
||||||
struct spi_board_info *bi;
|
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
int i;
|
|
||||||
|
|
||||||
master = spi_alloc_master(&pdev->dev, sizeof(struct s3c24xx_spi));
|
master = spi_alloc_master(&pdev->dev, sizeof(struct s3c24xx_spi));
|
||||||
if (master == NULL) {
|
if (master == NULL) {
|
||||||
@ -348,16 +346,6 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
|
|||||||
goto err_register;
|
goto err_register;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* register all the devices associated */
|
|
||||||
|
|
||||||
bi = &hw->pdata->board_info[0];
|
|
||||||
for (i = 0; i < hw->pdata->board_size; i++, bi++) {
|
|
||||||
dev_info(hw->dev, "registering %s\n", bi->modalias);
|
|
||||||
|
|
||||||
bi->controller_data = hw;
|
|
||||||
spi_new_device(master, bi);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_register:
|
err_register:
|
||||||
|
@ -100,7 +100,6 @@ static int s3c2410_spigpio_probe(struct platform_device *dev)
|
|||||||
struct spi_master *master;
|
struct spi_master *master;
|
||||||
struct s3c2410_spigpio *sp;
|
struct s3c2410_spigpio *sp;
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
|
||||||
|
|
||||||
master = spi_alloc_master(&dev->dev, sizeof(struct s3c2410_spigpio));
|
master = spi_alloc_master(&dev->dev, sizeof(struct s3c2410_spigpio));
|
||||||
if (master == NULL) {
|
if (master == NULL) {
|
||||||
@ -143,17 +142,6 @@ static int s3c2410_spigpio_probe(struct platform_device *dev)
|
|||||||
if (ret)
|
if (ret)
|
||||||
goto err_no_bitbang;
|
goto err_no_bitbang;
|
||||||
|
|
||||||
/* register the chips to go with the board */
|
|
||||||
|
|
||||||
for (i = 0; i < sp->info->board_size; i++) {
|
|
||||||
dev_info(&dev->dev, "registering %p: %s\n",
|
|
||||||
&sp->info->board_info[i],
|
|
||||||
sp->info->board_info[i].modalias);
|
|
||||||
|
|
||||||
sp->info->board_info[i].controller_data = sp;
|
|
||||||
spi_new_device(master, sp->info->board_info + i);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_no_bitbang:
|
err_no_bitbang:
|
||||||
|
@ -13,9 +13,6 @@
|
|||||||
#ifndef __ASM_ARCH_SPIGPIO_H
|
#ifndef __ASM_ARCH_SPIGPIO_H
|
||||||
#define __ASM_ARCH_SPIGPIO_H __FILE__
|
#define __ASM_ARCH_SPIGPIO_H __FILE__
|
||||||
|
|
||||||
struct s3c2410_spigpio_info;
|
|
||||||
struct spi_board_info;
|
|
||||||
|
|
||||||
struct s3c2410_spigpio_info {
|
struct s3c2410_spigpio_info {
|
||||||
unsigned long pin_clk;
|
unsigned long pin_clk;
|
||||||
unsigned long pin_mosi;
|
unsigned long pin_mosi;
|
||||||
@ -23,9 +20,6 @@ struct s3c2410_spigpio_info {
|
|||||||
|
|
||||||
int bus_num;
|
int bus_num;
|
||||||
|
|
||||||
unsigned long board_size;
|
|
||||||
struct spi_board_info *board_info;
|
|
||||||
|
|
||||||
void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs);
|
void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -13,15 +13,9 @@
|
|||||||
#ifndef __ASM_ARCH_SPI_H
|
#ifndef __ASM_ARCH_SPI_H
|
||||||
#define __ASM_ARCH_SPI_H __FILE__
|
#define __ASM_ARCH_SPI_H __FILE__
|
||||||
|
|
||||||
struct s3c2410_spi_info;
|
|
||||||
struct spi_board_info;
|
|
||||||
|
|
||||||
struct s3c2410_spi_info {
|
struct s3c2410_spi_info {
|
||||||
unsigned long pin_cs; /* simple gpio cs */
|
unsigned long pin_cs; /* simple gpio cs */
|
||||||
|
|
||||||
unsigned long board_size;
|
|
||||||
struct spi_board_info *board_info;
|
|
||||||
|
|
||||||
void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol);
|
void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user