On 11/22/07, Jochen Friedrich <[EMAIL PROTECTED]> wrote: > This patch moves the CPM command handling into commproc.c > for CPM1 and cpm2_common.c. This is yet another preparation > to get rid of drivers accessing the CPM via the global cpmp. > > Signed-off-by: Jochen Friedrich <[EMAIL PROTECTED]> > --- > arch/powerpc/sysdev/commproc.c | 20 ++++++++++++++++++++ > arch/powerpc/sysdev/cpm2_common.c | 17 +++++++++++++++++ > drivers/net/fs_enet/mac-fcc.c | 10 +--------- > drivers/net/fs_enet/mac-scc.c | 11 +---------- > drivers/serial/cpm_uart/cpm_uart_cpm1.c | 6 +----- > drivers/serial/cpm_uart/cpm_uart_cpm2.c | 8 +------- > include/asm-powerpc/cpm.h | 1 + > 7 files changed, 42 insertions(+), 31 deletions(-) > > diff --git a/arch/powerpc/sysdev/commproc.c b/arch/powerpc/sysdev/commproc.c > index f6a6378..2bddbde 100644 > --- a/arch/powerpc/sysdev/commproc.c > +++ b/arch/powerpc/sysdev/commproc.c > @@ -240,6 +240,26 @@ void __init cpm_reset(void) > #endif > } > > +#define MAX_CR_CMD_LOOPS 10000 > + > +int cpm_command(u32 command, u8 opcode) > +{ > + int i; > + > + if (command & 0xffffff0f) > + return -EINVAL; > + > + out_be16(&cpmp->cp_cpcr, command | CPM_CR_FLG | (opcode << 8)); > + for (i = 0; i < MAX_CR_CMD_LOOPS; i++) > + if ((in_be16(&cpmp->cp_cpcr) & CPM_CR_FLG) == 0) > + return 0; > + > + printk(KERN_ERR "%s(): Not able to issue CPM command\n", > + __FUNCTION__); > + return -EIO;
Do these need to be protected with a spin lock? Cheers, g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. [EMAIL PROTECTED] (403) 399-0195 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev