From: Sylvain Munaut Note that this support has "known" problem but theses are believed to be due to hardware issues. Signed-off-by: Sylvain Munaut Acked-by: Tom Rini Signed-off-by: Andrew Morton --- 25-akpm/arch/ppc/boot/simple/mpc52xx_tty.c | 13 +++++++------ 25-akpm/arch/ppc/platforms/lite5200.c | 7 +++---- 25-akpm/arch/ppc/platforms/mpc5200.c | 2 +- 25-akpm/arch/ppc/syslib/mpc52xx_pic.c | 23 +++++++++-------------- 25-akpm/arch/ppc/syslib/mpc52xx_setup.c | 26 +++++++++++++------------- 25-akpm/drivers/serial/mpc52xx_uart.c | 12 ++++++------ 6 files changed, 39 insertions(+), 44 deletions(-) diff -puN arch/ppc/boot/simple/mpc52xx_tty.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx arch/ppc/boot/simple/mpc52xx_tty.c --- 25/arch/ppc/boot/simple/mpc52xx_tty.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx 2005-03-16 00:37:24.000000000 -0800 +++ 25-akpm/arch/ppc/boot/simple/mpc52xx_tty.c 2005-03-16 00:37:24.000000000 -0800 @@ -33,18 +33,19 @@ #error "MPC52xx_PF_CONSOLE_PORT not defined" #endif -static struct mpc52xx_psc *psc = (struct mpc52xx_psc *)MPC52xx_CONSOLE; +static struct mpc52xx_psc __iomem *psc = + (struct mpc52xx_psc __iomem *) MPC52xx_CONSOLE; /* The decrementer counts at the system bus clock frequency * divided by four. The most accurate time base is connected to the * rtc. We read the decrementer change during one rtc tick (one second) * and multiply by 4 to get the system bus clock frequency. */ -int +static int mpc52xx_ipbfreq(void) { - struct mpc52xx_rtc *rtc = (struct mpc52xx_rtc*)MPC52xx_RTC; - struct mpc52xx_cdm *cdm = (struct mpc52xx_cdm*)MPC52xx_CDM; + struct mpc52xx_rtc __iomem *rtc = (struct mpc52xx_rtc __iomem *)MPC52xx_RTC; + struct mpc52xx_cdm __iomem *cdm = (struct mpc52xx_cdm __iomem *)MPC52xx_CDM; int current_time, previous_time; int tbl_start, tbl_end; int xlbfreq, ipbfreq; @@ -67,7 +68,7 @@ mpc52xx_ipbfreq(void) unsigned long serial_init(int ignored, void *ignored2) { - struct mpc52xx_gpio *gpio = (struct mpc52xx_gpio *)MPC52xx_GPIO; + struct mpc52xx_gpio __iomem *gpio = (struct mpc52xx_gpio __iomem *)MPC52xx_GPIO; int divisor; int mode1; int mode2; @@ -117,7 +118,7 @@ serial_init(int ignored, void *ignored2) void serial_putc(void *ignored, const char c) { - serial_init(0, 0); + serial_init(0, NULL); while (!(in_be16(&psc->mpc52xx_psc_status) & MPC52xx_PSC_SR_TXEMP)) ; out_8(&psc->mpc52xx_psc_buffer_8, c); diff -puN arch/ppc/platforms/lite5200.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx arch/ppc/platforms/lite5200.c --- 25/arch/ppc/platforms/lite5200.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx 2005-03-16 00:37:24.000000000 -0800 +++ 25-akpm/arch/ppc/platforms/lite5200.c 2005-03-16 00:37:24.000000000 -0800 @@ -55,7 +55,7 @@ EXPORT_SYMBOL(__res); /* For modules */ * driver ( eg drivers/serial/mpc52xx_uart.c for the PSC in uart mode ) */ -struct ocp_def board_ocp[] = { +static struct ocp_def board_ocp[] = { { .vendor = OCP_VENDOR_FREESCALE, .function = OCP_FUNC_PSC_UART, @@ -92,15 +92,14 @@ lite5200_map_irq(struct pci_dev *dev, un static void __init lite5200_setup_cpu(void) { + struct mpc52xx_intr __iomem *intr; struct mpc52xx_xlb __iomem *xlb; - struct mpc52xx_intr *intr; u32 intr_ctrl; /* Map zones */ xlb = ioremap(MPC52xx_XLB,sizeof(struct mpc52xx_xlb)); - intr = (struct mpc52xx_intr *) - ioremap(MPC52xx_INTR,sizeof(struct mpc52xx_intr)); + intr = ioremap(MPC52xx_INTR,sizeof(struct mpc52xx_intr)); if (!xlb || !intr) { printk("lite5200.c: Error while mapping XLB/INTR during " diff -puN arch/ppc/platforms/mpc5200.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx arch/ppc/platforms/mpc5200.c --- 25/arch/ppc/platforms/mpc5200.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx 2005-03-16 00:37:24.000000000 -0800 +++ 25-akpm/arch/ppc/platforms/mpc5200.c 2005-03-16 00:37:24.000000000 -0800 @@ -17,7 +17,7 @@ #include -struct ocp_fs_i2c_data mpc5200_i2c_def = { +static struct ocp_fs_i2c_data mpc5200_i2c_def = { .flags = FS_I2C_CLOCK_5200, }; diff -puN arch/ppc/syslib/mpc52xx_pic.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx arch/ppc/syslib/mpc52xx_pic.c --- 25/arch/ppc/syslib/mpc52xx_pic.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx 2005-03-16 00:37:24.000000000 -0800 +++ 25-akpm/arch/ppc/syslib/mpc52xx_pic.c 2005-03-16 00:37:24.000000000 -0800 @@ -33,8 +33,8 @@ #include -static struct mpc52xx_intr *intr; -static struct mpc52xx_sdma *sdma; +static struct mpc52xx_intr __iomem *intr; +static struct mpc52xx_sdma __iomem *sdma; static void mpc52xx_ic_disable(unsigned int irq) @@ -166,14 +166,11 @@ mpc52xx_ic_end(unsigned int irq) } static struct hw_interrupt_type mpc52xx_ic = { - "MPC52xx", - NULL, /* startup(irq) */ - NULL, /* shutdown(irq) */ - mpc52xx_ic_enable, /* enable(irq) */ - mpc52xx_ic_disable, /* disable(irq) */ - mpc52xx_ic_disable_and_ack, /* disable_and_ack(irq) */ - mpc52xx_ic_end, /* end(irq) */ - 0 /* set_affinity(irq, cpumask) SMP. */ + .typename = " MPC52xx ", + .enable = mpc52xx_ic_enable, + .disable = mpc52xx_ic_disable, + .ack = mpc52xx_ic_disable_and_ack, + .end = mpc52xx_ic_end, }; void __init @@ -183,10 +180,8 @@ mpc52xx_init_irq(void) u32 intr_ctrl; /* Remap the necessary zones */ - intr = (struct mpc52xx_intr *) - ioremap(MPC52xx_INTR, sizeof(struct mpc52xx_intr)); - sdma = (struct mpc52xx_sdma *) - ioremap(MPC52xx_SDMA, sizeof(struct mpc52xx_sdma)); + intr = ioremap(MPC52xx_INTR, sizeof(struct mpc52xx_intr)); + sdma = ioremap(MPC52xx_SDMA, sizeof(struct mpc52xx_sdma)); if ((intr==NULL) || (sdma==NULL)) panic("Can't ioremap PIC/SDMA register for init_irq !"); diff -puN arch/ppc/syslib/mpc52xx_setup.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx arch/ppc/syslib/mpc52xx_setup.c --- 25/arch/ppc/syslib/mpc52xx_setup.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx 2005-03-16 00:37:24.000000000 -0800 +++ 25-akpm/arch/ppc/syslib/mpc52xx_setup.c 2005-03-16 00:37:24.000000000 -0800 @@ -39,7 +39,8 @@ static int core_mult[] = { /* CPU Frequ void mpc52xx_restart(char *cmd) { - struct mpc52xx_gpt* gpt0 = (struct mpc52xx_gpt*) MPC52xx_GPTx(0); + struct mpc52xx_gpt __iomem *gpt0 = + (struct mpc52xx_gpt __iomem *) MPC52xx_GPTx(0); local_irq_disable(); @@ -102,7 +103,7 @@ mpc52xx_map_io(void) #endif static void -mpc52xx_psc_putc(struct mpc52xx_psc * psc, unsigned char c) +mpc52xx_psc_putc(struct mpc52xx_psc __iomem *psc, unsigned char c) { while (!(in_be16(&psc->mpc52xx_psc_status) & MPC52xx_PSC_SR_TXRDY)); @@ -112,8 +113,9 @@ mpc52xx_psc_putc(struct mpc52xx_psc * ps void mpc52xx_progress(char *s, unsigned short hex) { - struct mpc52xx_psc *psc = (struct mpc52xx_psc *)MPC52xx_CONSOLE; char c; + struct mpc52xx_psc __iomem *psc = + (struct mpc52xx_psc __iomem *)MPC52xx_CONSOLE; while ((c = *s++) != 0) { if (c == '\n') @@ -138,11 +140,11 @@ mpc52xx_find_end_of_memory(void) * else get size from sdram config registers */ if (ramsize == 0) { - struct mpc52xx_mmap_ctl *mmap_ctl; + struct mpc52xx_mmap_ctl __iomem *mmap_ctl; u32 sdram_config_0, sdram_config_1; /* Temp BAT2 mapping active when this is called ! */ - mmap_ctl = (struct mpc52xx_mmap_ctl*) MPC52xx_MMAP_CTL; + mmap_ctl = (struct mpc52xx_mmap_ctl __iomem *) MPC52xx_MMAP_CTL; sdram_config_0 = in_be32(&mmap_ctl->sdram0); sdram_config_1 = in_be32(&mmap_ctl->sdram1); @@ -169,13 +171,11 @@ mpc52xx_calibrate_decr(void) /* if bootloader didn't pass bus frequencies, calculate them */ if (xlbfreq == 0) { /* Get RTC & Clock manager modules */ - struct mpc52xx_rtc *rtc; - struct mpc52xx_cdm *cdm; + struct mpc52xx_rtc __iomem *rtc; + struct mpc52xx_cdm __iomem *cdm; - rtc = (struct mpc52xx_rtc*) - ioremap(MPC52xx_RTC, sizeof(struct mpc52xx_rtc)); - cdm = (struct mpc52xx_cdm*) - ioremap(MPC52xx_CDM, sizeof(struct mpc52xx_cdm)); + rtc = ioremap(MPC52xx_RTC, sizeof(struct mpc52xx_rtc)); + cdm = ioremap(MPC52xx_CDM, sizeof(struct mpc52xx_cdm)); if ((rtc==NULL) || (cdm==NULL)) panic("Can't ioremap RTC/CDM while computing bus freq"); @@ -212,8 +212,8 @@ mpc52xx_calibrate_decr(void) __res.bi_pcifreq = pcifreq; /* Release mapping */ - iounmap((void*)rtc); - iounmap((void*)cdm); + iounmap(rtc); + iounmap(cdm); } divisor = 4; diff -puN drivers/serial/mpc52xx_uart.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx drivers/serial/mpc52xx_uart.c --- 25/drivers/serial/mpc52xx_uart.c~ppc32-add-pci-bus-support-for-freescale-mpc52xx 2005-03-16 00:37:24.000000000 -0800 +++ 25-akpm/drivers/serial/mpc52xx_uart.c 2005-03-16 00:37:24.000000000 -0800 @@ -86,7 +86,7 @@ static struct uart_port mpc52xx_uart_por * the console_init */ -#define PSC(port) ((struct mpc52xx_psc *)((port)->membase)) +#define PSC(port) ((struct mpc52xx_psc __iomem *)((port)->membase)) /* Forward declaration of the interruption handling routine */ @@ -190,7 +190,7 @@ mpc52xx_uart_break_ctl(struct uart_port static int mpc52xx_uart_startup(struct uart_port *port) { - struct mpc52xx_psc *psc = PSC(port); + struct mpc52xx_psc __iomem *psc = PSC(port); /* Reset/activate the port, clear and enable interrupts */ out_8(&psc->command,MPC52xx_PSC_RST_RX); @@ -217,7 +217,7 @@ mpc52xx_uart_startup(struct uart_port *p static void mpc52xx_uart_shutdown(struct uart_port *port) { - struct mpc52xx_psc *psc = PSC(port); + struct mpc52xx_psc __iomem *psc = PSC(port); /* Shut down the port, interrupt and all */ out_8(&psc->command,MPC52xx_PSC_RST_RX); @@ -231,7 +231,7 @@ static void mpc52xx_uart_set_termios(struct uart_port *port, struct termios *new, struct termios *old) { - struct mpc52xx_psc *psc = PSC(port); + struct mpc52xx_psc __iomem *psc = PSC(port); unsigned long flags; unsigned char mr1, mr2; unsigned short ctr; @@ -562,7 +562,7 @@ static void __init mpc52xx_console_get_options(struct uart_port *port, int *baud, int *parity, int *bits, int *flow) { - struct mpc52xx_psc *psc = PSC(port); + struct mpc52xx_psc __iomem *psc = PSC(port); unsigned char mr1; /* Read the mode registers */ @@ -592,7 +592,7 @@ static void mpc52xx_console_write(struct console *co, const char *s, unsigned int count) { struct uart_port *port = &mpc52xx_uart_ports[co->index]; - struct mpc52xx_psc *psc = PSC(port); + struct mpc52xx_psc __iomem *psc = PSC(port); unsigned int i, j; /* Disable interrupts */ _