On Tuesday 09 October 2007, Johannes Berg wrote: > On Mon, 2007-10-08 at 23:08 +0200, Ivo van Doorn wrote: > > > The only difference currently in rt2x00 is for rt2500usb. The initialization > > of the IFS and EIFS register is different. > > Ok so that's something we have to do in G-mode-compatible-with-B as > well. Well it might not even be needed at all. The IFS is also passed on as argument by mac80211 when it configures the TX rings. The EIFS register is something different, all other Ralink devices have only 1 value for the EIFS. I am not even sure how the device will react when the same value is set for rt2500usb. > > And is mac80211 doing that correctly at this time? > > I'm not entirely sure. Are you setting the IFS/EIFS from any other > place? :) I don't think it is doing that correctly. Well in the drivers the following is done: rt2500pci: - config_duration() sets EIFS in the register - write_tx_desc() sets IFS in the package descriptor rt2500usb: - config_phymode() sets EIFS and IFS in the registers. - write_tx_desc() sets IFS in the package descriptor Note that both config_duration() and config_phymode() are called by rt2x00lib when mac80211 uses the config() callback function. Note that the fact that the IFS is set twice for rt2500usb might suggest the documentation for the register is incorrect and perhaps the purpose of the register is completely different. I guess it requires some experimentation to see if initializing those 2 registers differently has any effect. (And if it doesn't, then rt2500usb doesn't require to know whether it is operating in B or G mode at all). Ivo - 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