aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Brownell <david-b@pacbell.net>2008-02-06 04:38:13 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-06 13:41:11 -0500
commitb359fbc4582abf346fa6773b2bc1d63581fda582 (patch)
treed759a99e9aee0cc23f62cb41335069610b9dd027
parent8bacb219018a52e6f02a3cff6a7badf102ddfc44 (diff)
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>
-rw-r--r--drivers/spi/spi_s3c24xx.c12
-rw-r--r--drivers/spi/spi_s3c24xx_gpio.c12
-rw-r--r--include/asm-arm/arch-s3c2410/spi-gpio.h6
-rw-r--r--include/asm-arm/arch-s3c2410/spi.h6
4 files changed, 0 insertions, 36 deletions
diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c
index 89d6685a5ca4..6e834b8b9d27 100644
--- a/drivers/spi/spi_s3c24xx.c
+++ b/drivers/spi/spi_s3c24xx.c
@@ -237,10 +237,8 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
237{ 237{
238 struct s3c24xx_spi *hw; 238 struct s3c24xx_spi *hw;
239 struct spi_master *master; 239 struct spi_master *master;
240 struct spi_board_info *bi;
241 struct resource *res; 240 struct resource *res;
242 int err = 0; 241 int err = 0;
243 int i;
244 242
245 master = spi_alloc_master(&pdev->dev, sizeof(struct s3c24xx_spi)); 243 master = spi_alloc_master(&pdev->dev, sizeof(struct s3c24xx_spi));
246 if (master == NULL) { 244 if (master == NULL) {
@@ -348,16 +346,6 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
348 goto err_register; 346 goto err_register;
349 } 347 }
350 348
351 /* register all the devices associated */
352
353 bi = &hw->pdata->board_info[0];
354 for (i = 0; i < hw->pdata->board_size; i++, bi++) {
355 dev_info(hw->dev, "registering %s\n", bi->modalias);
356
357 bi->controller_data = hw;
358 spi_new_device(master, bi);
359 }
360
361 return 0; 349 return 0;
362 350
363 err_register: 351 err_register:
diff --git a/drivers/spi/spi_s3c24xx_gpio.c b/drivers/spi/spi_s3c24xx_gpio.c
index 109d82c1abc0..82ae7d7eca38 100644
--- a/drivers/spi/spi_s3c24xx_gpio.c
+++ b/drivers/spi/spi_s3c24xx_gpio.c
@@ -100,7 +100,6 @@ static int s3c2410_spigpio_probe(struct platform_device *dev)
100 struct spi_master *master; 100 struct spi_master *master;
101 struct s3c2410_spigpio *sp; 101 struct s3c2410_spigpio *sp;
102 int ret; 102 int ret;
103 int i;
104 103
105 master = spi_alloc_master(&dev->dev, sizeof(struct s3c2410_spigpio)); 104 master = spi_alloc_master(&dev->dev, sizeof(struct s3c2410_spigpio));
106 if (master == NULL) { 105 if (master == NULL) {
@@ -143,17 +142,6 @@ static int s3c2410_spigpio_probe(struct platform_device *dev)
143 if (ret) 142 if (ret)
144 goto err_no_bitbang; 143 goto err_no_bitbang;
145 144
146 /* register the chips to go with the board */
147
148 for (i = 0; i < sp->info->board_size; i++) {
149 dev_info(&dev->dev, "registering %p: %s\n",
150 &sp->info->board_info[i],
151 sp->info->board_info[i].modalias);
152
153 sp->info->board_info[i].controller_data = sp;
154 spi_new_device(master, sp->info->board_info + i);
155 }
156
157 return 0; 145 return 0;
158 146
159 err_no_bitbang: 147 err_no_bitbang:
diff --git a/include/asm-arm/arch-s3c2410/spi-gpio.h b/include/asm-arm/arch-s3c2410/spi-gpio.h
index ba1dca88d480..73803731142a 100644
--- a/include/asm-arm/arch-s3c2410/spi-gpio.h
+++ b/include/asm-arm/arch-s3c2410/spi-gpio.h
@@ -13,9 +13,6 @@
13#ifndef __ASM_ARCH_SPIGPIO_H 13#ifndef __ASM_ARCH_SPIGPIO_H
14#define __ASM_ARCH_SPIGPIO_H __FILE__ 14#define __ASM_ARCH_SPIGPIO_H __FILE__
15 15
16struct s3c2410_spigpio_info;
17struct spi_board_info;
18
19struct s3c2410_spigpio_info { 16struct s3c2410_spigpio_info {
20 unsigned long pin_clk; 17 unsigned long pin_clk;
21 unsigned long pin_mosi; 18 unsigned long pin_mosi;
@@ -23,9 +20,6 @@ struct s3c2410_spigpio_info {
23 20
24 int bus_num; 21 int bus_num;
25 22
26 unsigned long board_size;
27 struct spi_board_info *board_info;
28
29 void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs); 23 void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs);
30}; 24};
31 25
diff --git a/include/asm-arm/arch-s3c2410/spi.h b/include/asm-arm/arch-s3c2410/spi.h
index 4029a1a1ab40..7ca0ed97a6d0 100644
--- a/include/asm-arm/arch-s3c2410/spi.h
+++ b/include/asm-arm/arch-s3c2410/spi.h
@@ -13,15 +13,9 @@
13#ifndef __ASM_ARCH_SPI_H 13#ifndef __ASM_ARCH_SPI_H
14#define __ASM_ARCH_SPI_H __FILE__ 14#define __ASM_ARCH_SPI_H __FILE__
15 15
16struct s3c2410_spi_info;
17struct spi_board_info;
18
19struct s3c2410_spi_info { 16struct s3c2410_spi_info {
20 unsigned long pin_cs; /* simple gpio cs */ 17 unsigned long pin_cs; /* simple gpio cs */
21 18
22 unsigned long board_size;
23 struct spi_board_info *board_info;
24
25 void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol); 19 void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol);
26}; 20};
27 21