powerpc/cpm: Reintroduce global spi_pram struct (fixes build issue)
PATCH 1/3 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.)
--- arch/powerpc/include/asm/cpm.h | 24 ++++++++++++++++++++++++ arch/powerpc/sysdev/micropatch.c | 7 ++++--- drivers/spi/spi_mpc8xxx.c | 22 ---------------------- 3 files changed, 28 insertions(+), 25 deletions(-)
arch/powerpc/include/asm/cpm.h +24 -0
@@ -7,6 +7,30 @@#include <linux/of.h> /* +* SPI Parameter RAM common to QE and CPM. +*/ +struct spi_pram { +__be16 rbase;/* Rx Buffer descriptor base address */ +__be16 tbase;/* Tx Buffer descriptor base address */ +u8 rfcr;/* Rx function code */ +u8 tfcr;/* Tx function code */ +__be16 mrblr;/* Max receive buffer length */ +__be32 rstate;/* Internal */ +__be32 rdp;/* Internal */ +__be16 rbptr;/* Internal */ +__be16 rbc;/* Internal */ +__be32 rxtmp;/* Internal */ +__be32 tstate;/* Internal */ +__be32 tdp;/* Internal */ +__be16 tbptr;/* Internal */ +__be16 tbc;/* Internal */ +__be32 txtmp;/* Internal */ +__be32 res;/* Tx temp. */ +__be16 rpbase;/* Relocation pointer (CPM1 only) */ +__be16 res1;/* Reserved */ +}; + +/* * USB Controller pram common to QE and CPM. */ struct usb_ctlr {
arch/powerpc/sysdev/micropatch.c +4 -3
@@ -16,6 +16,7 @@#include <asm/page.h> #include <asm/pgtable.h> #include <asm/8xx_immap.h> +#include <asm/cpm.h> #include <asm/cpm1.h> /*
@@ -626,7 +627,7 @@ cpm_load_patch(cpm8xx_t *cp)volatile uint *dp;/* Dual-ported RAM. */ volatile cpm8xx_t *commproc;volatile iic_t *iip; -volatile spi_t *spp; +volatile struct spi_pram *spp;volatile smc_uart_t *smp;int i;
@@ -668,8 +669,8 @@ cpm_load_patch(cpm8xx_t *cp)/* Put SPI above the IIC, also 32-byte aligned. */ i = (RPBASE +sizeof (iic_t) +31 ) & ~31 ; - spp = (spi_t *)&commproc->cp_dparam[PROFF_SPI ]; - spp->spi_rpbase = i; + spp = (struct spi_pram *)&commproc->cp_dparam[PROFF_SPI ]; + spp->rpbase = i;# if defined(CONFIG_I2C_SPI_UCODE_PATCH ) commproc->cp_cpmcr1 =0x802a ;
drivers/spi/spi_mpc8xxx.c +0 -22
@@ -66,28 +66,6 @@ struct mpc8xxx_spi_reg {__be32 receive; }; -/* SPI Parameter RAM */ -struct spi_pram { -__be16 rbase;/* Rx Buffer descriptor base address */ -__be16 tbase;/* Tx Buffer descriptor base address */ -u8 rfcr;/* Rx function code */ -u8 tfcr;/* Tx function code */ -__be16 mrblr;/* Max receive buffer length */ -__be32 rstate;/* Internal */ -__be32 rdp;/* Internal */ -__be16 rbptr;/* Internal */ -__be16 rbc;/* Internal */ -__be32 rxtmp;/* Internal */ -__be32 tstate;/* Internal */ -__be32 tdp;/* Internal */ -__be16 tbptr;/* Internal */ -__be16 tbc;/* Internal */ -__be32 txtmp;/* Internal */ -__be32 res;/* Tx temp. */ -__be16 rpbase;/* Relocation pointer (CPM1 only) */ -__be16 res1;/* Reserved */ -}; -/* SPI Controller mode register definitions */ #define SPMODE_LOOP (1 << 30)#define SPMODE_CI_INACTIVEHIGH (1 << 29)
Signature · 1 line
1.7.0.5
Kumar Gala
AppliedQuoted 2 lines · Anton Vorontsov
spi_twas removed in commit644b2a680ccc51a9ec4d6beb12e9d47d2dee98e2("powerpc/cpm: Remove SPI defines and spi structs"), the commit =
assumed
Quoted 9 lines
that
spi_tisn't used anywhere outside of thespi_mpc8xxxdriver. But it appears that the struct is needed for micropatch code. So, let's reintroduce the struct.
=20
Fixes the following build issue:
=20
CCarch/powerpc/sysdev/micropatch.o
micropatch.c: In function 'cpm_load_patch':
micropatch.c:629: error: expected '=3D', ',', ';', 'asm' or =
'__attribute__' before '*' token
Quoted 1 line
micropatch.c:629: error: 'spp' undeclared (first use in this =
function)
Quoted 1 line
micropatch.c:629: error: (Each undeclared identifier is reported only =
once
Quoted 7 lines
micropatch.c:629: error: for each function it appears in.)
=20Reported-by LEROY Christophe <[email protected]>Reported-by Tony Breeds <[email protected]>Cc <[email protected]> [ .33, .34 ]Signed-off-by Anton Vorontsov <[email protected]>---
applied to merge
- k=