On Wed, Jan 16, 2019 at 05:39:02PM +0800, Min Guo wrote: > Hi Bin, > > On Tue, 2019-01-15 at 14:38 -0600, Bin Liu wrote: > > Hi Min, > > > > very close, thanks. > > Below I tried to explain a further cleanup in musb_clearb/w() and > > musb_get/set_toggle() implementation. Please let me know if it is not > > clear. > > > > Basically, we don't need musb_default_clearb/w(), just assign the > > musb_io function pointers to musb_readb/w(). > > > > Then the mtk platform musb_clearb/w() calls musb_readb/w() and > > musb_writeb/w() to handle W1C. > > Sorry to bother you again, I encounter a problem when prepare the patch. no problem at all. > The define of musb_clearb/w and musb_readb/w are difference as follow, > and cannot be directly assigned: > u8/u16 (*readb/w)(const void __iomem *addr, unsigned offset) > void (*clearb/w)(void __iomem *addr, unsigned int offset)) > > if modify clearb/w as: > u8/u16 (*clearb/w)(const void __iomem *addr, unsigned int offset)) > then musb_clear needs writeb/w the const addr. > Can I delete const in (*readb/w)? yes, please create a separate patch for it, and for readl() as well, and stating it is for implementing clearing W1C registers. Regards, -Bin.