Hi Wolfgang, On Fri, Apr 1, 2011 at 10:25 PM, Wolfgang Denk <w...@denx.de> wrote: > Dear Lei Wen, > > In message <AANLkTi=q-cj-q5inqiqpeddkh1dxuar1h_5wenaes...@mail.gmail.com> you > wrote: >> >> >> > I don't think so. You still use just a single writel() call then. To >> >> > leave the other bits untouched, you would have to perform a readl() >> >> > first, then insert one data byte, and then write it back. Your patch >> >> > does not do that. >> >> >> >> My original patch is like below, so where it call writel?... >> >> +#elif (CONFIG_SYS_NS16550_REG_SIZE == 1) || (CONFIG_SYS_NS16550_REG_SIZE >> >> == -1) >> >> +#ifdef CONFIG_SYS_NS16550_PORT_MAPPED >> >> +#define serial_out(x, y) outb(x, y) >> >> +#define serial_in(y) inb(y) >> >> +#else >> >> +#define serial_out(x, y) writeb(x, y) >> >> +#define serial_in(y) readb(y) >> > >> > If you use writeb() [as the current driver would do as well}, then how >> > do you expect to set this bit 8 (which is in the next byte) to 0 as >> > you claim you have to? >> >> As I explain, if set CONFIG_SYS_NS16550_REG_SIZE to 4, and >> set CONFIG_SYS_NS16550_MAX_REG_SIZE also to 4, then the serial_out >> becomes writel. :) > > Right - which is exactly what I said, and which you denied. > > I give up, I have other things to do as well.
Just a question to clarify... What your point I denied, that is really confused me... I think in this thread, I explain to you, my patch could recover what original CONFIG_SYS_NS16550_REG_SIZE means... Since you reject, I have nothing else to say... Best regards, Lei _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot