Madwifi is a crap, but #define KSEG1ADDR(addr) (addr) and only difference is in pointer type cast sc->aps_sc.sc_iobase = (void __iomem *) dev->mem_start; in my case it would be something like this: sc->aps_sc.sc_iobase = dev->mem_start; and it works. 2011/2/15 Jiri Slaby <jirislaby@xxxxxxxxx>: > Please don't prune CCs. > > On 02/15/2011 09:12 PM, Nikolay Ledovskikh wrote: >> Dear Jiri, >> >> Should I resubmit the patch with another changelog? > > Yes, definitely. > >> 1. mem = res->start; >> Â Â That is what madwifi driver does >> >> Â Â dev->mem_start = KSEG1ADDR(res->start); >> Â Â dev->mem_end = KSEG1ADDR(res->end); >> Â Â sc->aps_sc.sc_iobase = (void __iomem *) dev->mem_start; > > That's something completely different to what you did. This assignment > makes sense to me. But still prefer ioremap. Doesn't it work for you? > > I'm no mips guy, sorry. > >> 2. >> Â Â I set sc->dev to NULL and setup save pointer to real device >> structure using SET_IEEE80211_DEV. >> Â Â Now it's saved in wiphy structure and then used to get >> platform_device pointer. >> Â Â I set sc->dev to NULL according to madwifi sources which look following >> Â Â Â Â sc->aps_sc.sc_bdev = NULL; (if_ath_ahb.c) >> Â Â and use this value in dma mapping functions. > > Don't get inspired by madwifi sources, it's crap. The question is if you > have to do that to avoid the oops. > >> Â Â Looks like addresses mapped already and we shouldn't do ioremap once >> more?! > > Maybe the address you got from the platform side was already ored by > KSEG1... > > regards, > -- > js > -- Best regards, Nikolay Ledovskikh. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html