On Tue, 2011-04-05 at 14:33 +0200, John Crispin wrote: > +#include <lantiq_soc.h> > +#include <lantiq_platform.h> > + > +/* > + * The NOR flash is connected to the same external bus unit (EBU) as PCI. > + * To make PCI work we need to enable the endianess swapping for the address > + * written to the EBU. This endianess swapping works for PCI correctly but > + * fails for attached NOR devices. To workaround this we need to use a complex > + * map. The workaround involves swapping all addresses whilste probing the chip. > + * Once probing is complete we stop swapping the addresses but swizzle the > + * unlock addresses to ensure that access to the NOR device works correctly. > + */ > + > +static int ltq_mtd_probing; Disclamer: I do not really understand the PCI/swapping issue, even though you wrote a comment about this, but still.... ... I'm worried about this global variable. If you have multiple instances of such NOR flash, then you theoretically may have a situation when one of them is being probed, while another is being used for real. And this single global switch will break the one which is used for real. IOW, the right solution would be to have per-chip flag, not a global flag. -- Best Regards, Artem Bityutskiy (ÐÑÑÑÐ ÐÐÑÑÑÐÐÐ)