Skip to contentSkip to conversation

powerpc: Add EXPORT_SYMBOL for symbols required by fs_enet and cpm_uart

PATCH In review Jochen Friedrich 3 participants 4 messages Nov 11, 2007 – Nov 12, 2007 PowerPC

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 powerpc: Add EXPORT_SYMBOL for symbols required by fs_enet and cpm_uart

fs_enet and cpm_uart need symbols from commproc.c (for CPM1) or cpm2_common.c. Add EXPORT_SYMBOL for cpmp, cpm_setbrg and cpm2_immr, so the drivers can be compiled as modules.

Building modules, stage 2.
MODPOST 5 modules
ERROR: "cpm2_immr" [drivers/net/fs_enet/fs_enet.ko] undefined!
ERROR: "cpmp" [drivers/net/fs_enet/fs_enet.ko] undefined! make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

---

arch/powerpc/sysdev/commproc.c    |    3 +++
arch/powerpc/sysdev/cpm2_common.c |    3 +++
2 files changed, 6 insertions(+), 0 deletions(-)
arch/powerpc/sysdev/commproc.c +0 -0
index f6a6378..d5a0dcf 100644
@@ -51,6 +51,8 @@ static void m8xx_cpm_dpinit(void);

static uint host_buffer; /* One page of host buffer */
static uint host_end; /* end + 1 */
cpm8xx_t __iomem *cpmp; /* Pointer to comm processor space */ +EXPORT_SYMBOL(cpmp);
+
immap_t __iomem *mpc8xx_immr;
static cpic8xx_t __iomem *cpic_reg;

@@ -302,6 +304,7 @@ cpm_setbrg(uint brg, uint rate)

		out_be32(bp, (((BRG_UART_CLK_DIV16 / rate) - 1) << 1) |
		             CPM_BRG_EN | CPM_BRG_DIV16);
}

+EXPORT_SYMBOL(cpm_setbrg);

#ifndef CONFIG_PPC_CPM_NEW_BINDING
/*

arch/powerpc/sysdev/cpm2_common.c +0 -0
index 859362f..4ed5df6 100644
@@ -51,11 +51,13 @@ static void cpm2_dpinit(void);

#endif

cpm_cpm2_t __iomem *cpmp; /* Pointer to comm processor space */ +EXPORT_SYMBOL(cpmp);

/* We allocate this here because it is used almost exclusively for
* the communication processor devices.
*/
cpm2_map_t __iomem *cpm2_immr; +EXPORT_SYMBOL(cpm2_immr);

#define CPM_MAP_SIZE (0x40000) /* 256k - the PQ3 reserve this amount
of space for CPM as it is larger
@@ -117,6 +119,7 @@ cpm_setbrg(uint brg, uint rate)

	cpm2_unmap(bp);
}

+EXPORT_SYMBOL(cpm_setbrg);

/* This function is used to set high speed synchronous baud rate
* clocks.

Signature · 1 line
1.5.3.5
#1 lore raw
Quoted 7 lines · Jochen Friedrich
arch/powerpc/sysdev/commproc.c +0 -0
@@ -51,6 +51,8 @@ static void m8xx_cpm_dpinit(void);

static uint host_buffer; /* One page of host buffer */
static uint host_end; /* end + 1 */
cpm8xx_t __iomem *cpmp; /* Pointer to comm processor space */ +EXPORT_SYMBOL(cpmp);

Sorry, but this is a nightmare waiting to happen. Please define proper accessors instead. (And get rid of the typedef while you're at it)

#2 lore raw
Quoted 11 lines · Christoph Hellwig
Quoted 7 lines · Jochen Friedrich
arch/powerpc/sysdev/commproc.c +0 -0
@@ -51,6 +51,8 @@ static void m8xx_cpm_dpinit(void);

static uint host_buffer; /* One page of host buffer */
static uint host_end; /* end + 1 */
cpm8xx_t __iomem *cpmp; /* Pointer to comm processor space */ +EXPORT_SYMBOL(cpmp);

Sorry, but this is a nightmare waiting to happen. Please define proper accessors instead.

We have proper accessors: in_be32, out_be16, etc.

Now, is the huge struct encompassing all of immr space a bad idea? Sure. Are we working towards getting rid of it? Yes. Is that a reason to keep modules from working in the meantime? No.

Quoted 1 line

(And get rid of the typedef while you're at it)

Again, changing all the users is a bit beyond the scope of this patch.

-Scott

Acked-by on v1 1/1
#3 lore raw
In reply to Jochen Friedrich
Quoted 4 lines · Jochen Friedrich

fs_enet and cpm_uart need symbols from commproc.c (for CPM1) or cpm2_common.c. Add EXPORT_SYMBOL for cpmp, cpm_setbrg and cpm2_immr, so the drivers can be compiled as modules.

Quoted 8 lines

Building modules, stage 2.
MODPOST 5 modules
ERROR: "cpm2_immr" [drivers/net/fs_enet/fs_enet.ko] undefined!
ERROR: "cpmp" [drivers/net/fs_enet/fs_enet.ko] undefined! make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2