diff options
author | Anton Vorontsov <avorontsov@mvista.com> | 2010-07-08 13:16:10 -0400 |
---|---|---|
committer | Kumar Gala <galak@kernel.crashing.org> | 2010-07-11 12:03:22 -0400 |
commit | 56825c88ff438f4dbb51a44591cc29e707fe783a (patch) | |
tree | 766611bf5fa245863eeabfbe011991bf9b3eaf5c | |
parent | e467e104bb7482170b79f516d2025e7cfcaaa733 (diff) |
powerpc/cpm: Reintroduce global spi_pram struct (fixes build issue)
spi_t was removed in commit 644b2a680ccc51a9ec4d6beb12e9d47d2dee98e2
("powerpc/cpm: Remove SPI defines and spi structs"), the commit assumed
that spi_t isn't used anywhere outside of the spi_mpc8xxx driver. But
it appears that the struct is needed for micropatch code. So, let's
reintroduce the struct.
Fixes the following build issue:
CC arch/powerpc/sysdev/micropatch.o
micropatch.c: In function 'cpm_load_patch':
micropatch.c:629: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
micropatch.c:629: error: 'spp' undeclared (first use in this function)
micropatch.c:629: error: (Each undeclared identifier is reported only once
micropatch.c:629: error: for each function it appears in.)
Reported-by: LEROY Christophe <christophe.leroy@c-s.fr>
Reported-by: Tony Breeds <tony@bakeyournoodle.com>
Cc: <stable@kernel.org> [ .33, .34 ]
Signed-off-by: Anton Vorontsov <avorontsov@mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/include/asm/cpm.h | 24 | ||||
-rw-r--r-- | arch/powerpc/sysdev/micropatch.c | 7 | ||||
-rw-r--r-- | drivers/spi/spi_mpc8xxx.c | 22 |
3 files changed, 28 insertions, 25 deletions
diff --git a/arch/powerpc/include/asm/cpm.h b/arch/powerpc/include/asm/cpm.h index 0835eb977ba9..e50323fe941f 100644 --- a/arch/powerpc/include/asm/cpm.h +++ b/arch/powerpc/include/asm/cpm.h | |||
@@ -7,6 +7,30 @@ | |||
7 | #include <linux/of.h> | 7 | #include <linux/of.h> |
8 | 8 | ||
9 | /* | 9 | /* |
10 | * SPI Parameter RAM common to QE and CPM. | ||
11 | */ | ||
12 | struct spi_pram { | ||
13 | __be16 rbase; /* Rx Buffer descriptor base address */ | ||
14 | __be16 tbase; /* Tx Buffer descriptor base address */ | ||
15 | u8 rfcr; /* Rx function code */ | ||
16 | u8 tfcr; /* Tx function code */ | ||
17 | __be16 mrblr; /* Max receive buffer length */ | ||
18 | __be32 rstate; /* Internal */ | ||
19 | __be32 rdp; /* Internal */ | ||
20 | __be16 rbptr; /* Internal */ | ||
21 | __be16 rbc; /* Internal */ | ||
22 | __be32 rxtmp; /* Internal */ | ||
23 | __be32 tstate; /* Internal */ | ||
24 | __be32 tdp; /* Internal */ | ||
25 | __be16 tbptr; /* Internal */ | ||
26 | __be16 tbc; /* Internal */ | ||
27 | __be32 txtmp; /* Internal */ | ||
28 | __be32 res; /* Tx temp. */ | ||
29 | __be16 rpbase; /* Relocation pointer (CPM1 only) */ | ||
30 | __be16 res1; /* Reserved */ | ||
31 | }; | ||
32 | |||
33 | /* | ||
10 | * USB Controller pram common to QE and CPM. | 34 | * USB Controller pram common to QE and CPM. |
11 | */ | 35 | */ |
12 | struct usb_ctlr { | 36 | struct usb_ctlr { |
diff --git a/arch/powerpc/sysdev/micropatch.c b/arch/powerpc/sysdev/micropatch.c index d8d602840757..18080f376e1a 100644 --- a/arch/powerpc/sysdev/micropatch.c +++ b/arch/powerpc/sysdev/micropatch.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <asm/page.h> | 16 | #include <asm/page.h> |
17 | #include <asm/pgtable.h> | 17 | #include <asm/pgtable.h> |
18 | #include <asm/8xx_immap.h> | 18 | #include <asm/8xx_immap.h> |
19 | #include <asm/cpm.h> | ||
19 | #include <asm/cpm1.h> | 20 | #include <asm/cpm1.h> |
20 | 21 | ||
21 | /* | 22 | /* |
@@ -626,7 +627,7 @@ cpm_load_patch(cpm8xx_t *cp) | |||
626 | volatile uint *dp; /* Dual-ported RAM. */ | 627 | volatile uint *dp; /* Dual-ported RAM. */ |
627 | volatile cpm8xx_t *commproc; | 628 | volatile cpm8xx_t *commproc; |
628 | volatile iic_t *iip; | 629 | volatile iic_t *iip; |
629 | volatile spi_t *spp; | 630 | volatile struct spi_pram *spp; |
630 | volatile smc_uart_t *smp; | 631 | volatile smc_uart_t *smp; |
631 | int i; | 632 | int i; |
632 | 633 | ||
@@ -668,8 +669,8 @@ cpm_load_patch(cpm8xx_t *cp) | |||
668 | /* Put SPI above the IIC, also 32-byte aligned. | 669 | /* Put SPI above the IIC, also 32-byte aligned. |
669 | */ | 670 | */ |
670 | i = (RPBASE + sizeof(iic_t) + 31) & ~31; | 671 | i = (RPBASE + sizeof(iic_t) + 31) & ~31; |
671 | spp = (spi_t *)&commproc->cp_dparam[PROFF_SPI]; | 672 | spp = (struct spi_pram *)&commproc->cp_dparam[PROFF_SPI]; |
672 | spp->spi_rpbase = i; | 673 | spp->rpbase = i; |
673 | 674 | ||
674 | # if defined(CONFIG_I2C_SPI_UCODE_PATCH) | 675 | # if defined(CONFIG_I2C_SPI_UCODE_PATCH) |
675 | commproc->cp_cpmcr1 = 0x802a; | 676 | commproc->cp_cpmcr1 = 0x802a; |
diff --git a/drivers/spi/spi_mpc8xxx.c b/drivers/spi/spi_mpc8xxx.c index ffa111a7e9d4..97ab0a81338a 100644 --- a/drivers/spi/spi_mpc8xxx.c +++ b/drivers/spi/spi_mpc8xxx.c | |||
@@ -66,28 +66,6 @@ struct mpc8xxx_spi_reg { | |||
66 | __be32 receive; | 66 | __be32 receive; |
67 | }; | 67 | }; |
68 | 68 | ||
69 | /* SPI Parameter RAM */ | ||
70 | struct spi_pram { | ||
71 | __be16 rbase; /* Rx Buffer descriptor base address */ | ||
72 | __be16 tbase; /* Tx Buffer descriptor base address */ | ||
73 | u8 rfcr; /* Rx function code */ | ||
74 | u8 tfcr; /* Tx function code */ | ||
75 | __be16 mrblr; /* Max receive buffer length */ | ||
76 | __be32 rstate; /* Internal */ | ||
77 | __be32 rdp; /* Internal */ | ||
78 | __be16 rbptr; /* Internal */ | ||
79 | __be16 rbc; /* Internal */ | ||
80 | __be32 rxtmp; /* Internal */ | ||
81 | __be32 tstate; /* Internal */ | ||
82 | __be32 tdp; /* Internal */ | ||
83 | __be16 tbptr; /* Internal */ | ||
84 | __be16 tbc; /* Internal */ | ||
85 | __be32 txtmp; /* Internal */ | ||
86 | __be32 res; /* Tx temp. */ | ||
87 | __be16 rpbase; /* Relocation pointer (CPM1 only) */ | ||
88 | __be16 res1; /* Reserved */ | ||
89 | }; | ||
90 | |||
91 | /* SPI Controller mode register definitions */ | 69 | /* SPI Controller mode register definitions */ |
92 | #define SPMODE_LOOP (1 << 30) | 70 | #define SPMODE_LOOP (1 << 30) |
93 | #define SPMODE_CI_INACTIVEHIGH (1 << 29) | 71 | #define SPMODE_CI_INACTIVEHIGH (1 << 29) |