kernel 2.6.15: cpm_uart driver broken?
Dan Malek
dan at embeddedalley.com
Thu Apr 20 05:42:05 EST 2006
On Apr 19, 2006, at 3:24 PM, Kenneth Poole wrote:
>
> /* get pointer */
> - cp = cpm2cpu_addr(bdp->cbd_bufaddr);
> + cp = (unsigned char *)pinfo->mem_addr +
> (bdp->cbd_bufaddr - pinfo->dma_addr);
Ummm, no. Keep the cpm2cpu_addr() and pass it
some driver data structure pointer so it does the computes,
or better, keep the phys/virt addresses in a handy data
structure you can easily access and work with offsets within
the different address spaces. The test of addr >= CPM_ADDR
is critically important to early boot and kgdb support
and can't be removed.
> - bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr);
> + bdp->cbd_bufaddr = dma_addr;
This kind of initialization is broken, too. You have to test
that memory address and return the proper space.
Thanks.
-- Dan
More information about the Linuxppc-embedded
mailing list