--- linux-2.6-panto.git/drivers/serial/cpm_uart/cpm_uart_core.c 2005-08-04 21:59:50.998040784 +0300 +++ linux-2.6-panto-test.git/drivers/serial/cpm_uart/cpm_uart_core.c 2005-08-04 21:48:19.087227216 +0300 @@ -261,7 +261,7 @@ } /* get pointer */ - cp = (unsigned char *)cpm2cpu_addr(bdp->cbd_bufaddr); + cp = cpm2cpu_addr(bdp->cbd_bufaddr); /* loop through the buffer */ while (i-- > 0) { @@ -606,6 +606,7 @@ bdp = pinfo->tx_cur; p = cpm2cpu_addr(bdp->cbd_bufaddr); + *p++ = xmit->buf[xmit->tail]; bdp->cbd_datlen = 1; bdp->cbd_sc |= BD_SC_READY; @@ -1030,10 +1031,7 @@ * If the buffer address is in the CPM DPRAM, don't * convert it. */ - if ((uint) (bdp->cbd_bufaddr) > (uint) CPM_ADDR) - cp = (unsigned char *) (bdp->cbd_bufaddr); - else - cp = cpm2cpu_addr(bdp->cbd_bufaddr); + cp = cpm2cpu_addr(bdp->cbd_bufaddr); *cp = *s; @@ -1050,10 +1048,7 @@ while ((bdp->cbd_sc & BD_SC_READY) != 0) ; - if ((uint) (bdp->cbd_bufaddr) > (uint) CPM_ADDR) - cp = (unsigned char *) (bdp->cbd_bufaddr); - else - cp = cpm2cpu_addr(bdp->cbd_bufaddr); + cp = cpm2cpu_addr(bdp->cbd_bufaddr); *cp = 13; bdp->cbd_datlen = 1; --- linux-2.6-panto.git/drivers/serial/cpm_uart/cpm_uart_cpm1.c 2005-08-04 21:59:51.003040024 +0300 +++ linux-2.6-panto-test.git/drivers/serial/cpm_uart/cpm_uart_cpm1.c 2005-08-04 21:50:24.744124464 +0300 @@ -83,6 +83,7 @@ { volatile cpm8xx_t *cp = cpmp; + (void)cp; /* fix warning */ #if defined (CONFIG_MPC885ADS) /* Enable SMC1 transceivers */ { @@ -110,6 +111,8 @@ void smc2_lineif(struct uart_cpm_port *pinfo) { volatile cpm8xx_t *cp = cpmp; + + (void)cp; /* fix warning */ #if defined (CONFIG_MPC885ADS) cp->cp_pepar |= 0x00000c00; cp->cp_pedir &= ~0x00000c00; @@ -185,6 +188,8 @@ memsz = L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize) + L1_CACHE_ALIGN(pinfo->tx_nrfifos * pinfo->tx_fifosize); if (is_con) { + /* was hostalloc but changed cause it blows away the */ + /* large tlb mapping when pinning the kernel area */ mem_addr = (u8 *) cpm_dpram_addr(cpm_dpalloc(memsz, 8)); dma_addr = 0; } else