Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b359fbc4 authored by David Brownell's avatar David Brownell Committed by Linus Torvalds
Browse files

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: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 8bacb219
Loading
Loading
Loading
Loading
+0 −12
Original line number Diff line number Diff line
@@ -237,10 +237,8 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
{
	struct s3c24xx_spi *hw;
	struct spi_master *master;
	struct spi_board_info *bi;
	struct resource *res;
	int err = 0;
	int i;

	master = spi_alloc_master(&pdev->dev, sizeof(struct s3c24xx_spi));
	if (master == NULL) {
@@ -348,16 +346,6 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
		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;

 err_register:
+0 −12
Original line number Diff line number Diff line
@@ -100,7 +100,6 @@ static int s3c2410_spigpio_probe(struct platform_device *dev)
	struct spi_master	*master;
	struct s3c2410_spigpio  *sp;
	int ret;
	int i;

	master = spi_alloc_master(&dev->dev, sizeof(struct s3c2410_spigpio));
	if (master == NULL) {
@@ -143,17 +142,6 @@ static int s3c2410_spigpio_probe(struct platform_device *dev)
	if (ret)
		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;

 err_no_bitbang:
+0 −6
Original line number Diff line number Diff line
@@ -13,9 +13,6 @@
#ifndef __ASM_ARCH_SPIGPIO_H
#define __ASM_ARCH_SPIGPIO_H __FILE__

struct s3c2410_spigpio_info;
struct spi_board_info;

struct s3c2410_spigpio_info {
	unsigned long		 pin_clk;
	unsigned long		 pin_mosi;
@@ -23,9 +20,6 @@ struct s3c2410_spigpio_info {

	int			 bus_num;

	unsigned long		 board_size;
	struct spi_board_info	*board_info;

	void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs);
};

+0 −6
Original line number Diff line number Diff line
@@ -13,15 +13,9 @@
#ifndef __ASM_ARCH_SPI_H
#define __ASM_ARCH_SPI_H __FILE__

struct s3c2410_spi_info;
struct spi_board_info;

struct s3c2410_spi_info {
	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);
};