[PATCH] ARM: S3C64XX: Tidy up common code in s3c64xx_spi_set_info()

Ben Dooks ben-linux at fluff.org
Thu Jan 21 00:21:06 EST 2010


The s3c64xx_spi_set_info() sets one of two platform data structures depending
on which controller is being specified. Change to taking a pointer to the
relevant platform data structure and then having one set of code to place
the data into the area being pointed to.

Cc: Jassi Brar <jassi.brar at samsung.com>
Signed-off-by: Ben Dooks <ben-linux at fluff.org>
---
 arch/arm/plat-s3c64xx/dev-spi.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/arch/arm/plat-s3c64xx/dev-spi.c b/arch/arm/plat-s3c64xx/dev-spi.c
index 6b6d7af..ca10388 100644
--- a/arch/arm/plat-s3c64xx/dev-spi.c
+++ b/arch/arm/plat-s3c64xx/dev-spi.c
@@ -18,6 +18,7 @@
 #include <mach/gpio.h>
 
 #include <plat/spi-clocks.h>
+
 #include <plat/s3c64xx-spi.h>
 #include <plat/gpio-bank-c.h>
 #include <plat/gpio-cfg.h>
@@ -154,6 +155,8 @@ EXPORT_SYMBOL(s3c64xx_device_spi1);
 
 void __init s3c64xx_spi_set_info(int cntrlr, int src_clk_nr, int num_cs)
 {
+	struct s3c64xx_spi_info *pd;
+
 	/* Reject invalid configuration */
 	if (!num_cs || src_clk_nr < 0
 			|| src_clk_nr > S3C64XX_SPI_SRCCLK_48M) {
@@ -163,18 +166,18 @@ void __init s3c64xx_spi_set_info(int cntrlr, int src_clk_nr, int num_cs)
 
 	switch (cntrlr) {
 	case 0:
-		s3c64xx_spi0_pdata.num_cs = num_cs;
-		s3c64xx_spi0_pdata.src_clk_nr = src_clk_nr;
-		s3c64xx_spi0_pdata.src_clk_name = spi_src_clks[src_clk_nr];
+		pd = &s3c64xx_spi0_pdata;
 		break;
 	case 1:
-		s3c64xx_spi1_pdata.num_cs = num_cs;
-		s3c64xx_spi1_pdata.src_clk_nr = src_clk_nr;
-		s3c64xx_spi1_pdata.src_clk_name = spi_src_clks[src_clk_nr];
+		pd = &s3c64xx_spi1_pdata;
 		break;
 	default:
 		printk(KERN_ERR "%s: Invalid SPI controller(%d)\n",
 							__func__, cntrlr);
 		return;
 	}
+
+	pd->num_cs = num_cs;
+	pd->src_clk_nr = src_clk_nr;
+	pd->src_clk_name = spi_src_clks[src_clk_nr];
 }
-- 
1.6.0.4




More information about the linux-arm-kernel mailing list