[PATCH resend 3/4] powerpc: Add EXPORT_SYMBOL for symbols required by fs_enet and cpm_uart
Vitaly Bordug
vitb at kernel.crashing.org
Sat Nov 24 10:46:24 EST 2007
On Thu, 22 Nov 2007 17:54:03 +0100
Jochen Friedrich wrote:
> 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.
>
I think this is not required. We are having very gross setup_immap
function, where just using global area pointer - this should be replaced
with parent node traverse to figure out proper immr reg.
I will likely have a look at this problem. Additionally, I must say what we are having
is unpleasant enough, and EXPORT_...ing global memmapped pointers, we'll open the way to ugly
hacks which nobody want to. Let's cure the disease, not its effects.
> 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
>
> Signed-off-by: Jochen Friedrich <jochen at scram.de>
> Acked-by: Scott Wood <scottwood at freescale.com>
> ---
> arch/powerpc/sysdev/commproc.c | 3 +++
> arch/powerpc/sysdev/cpm2_common.c | 3 +++
> 2 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/arch/powerpc/sysdev/commproc.c
> b/arch/powerpc/sysdev/commproc.c index f6a6378..d5a0dcf 100644
> --- a/arch/powerpc/sysdev/commproc.c
> +++ b/arch/powerpc/sysdev/commproc.c
> @@ -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
> /*
> diff --git a/arch/powerpc/sysdev/cpm2_common.c
> b/arch/powerpc/sysdev/cpm2_common.c index 859362f..4ed5df6 100644
> --- a/arch/powerpc/sysdev/cpm2_common.c
> +++ b/arch/powerpc/sysdev/cpm2_common.c
> @@ -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.
--
Sincerely, Vitaly
More information about the Linuxppc-dev
mailing list