On Thu, 2010-12-16 at 03:51 -0800, Paul Stewart wrote: > So, I'm trying to balance two fairly nasty problems here. On one end > we have the problem before any changes where the device is not shut > down when it legitimately should be -- we ifdown the device while scanning > but the device in ath9k is not set to "idle". See, I contend that statement -- we actually *turn off* the device with stop(), so it shouldn't matter. > Fixing the problem in ath9k > alone causes a separate problem. If you stop the driver from mac80211's > pm.c, ath9k would set the device ps_idle, when mac80211 does not > consider the device to to be idle. Thus, when we resume from suspend, > the device stays quiescent (mac80211 has no reason to believe it needs > to do anything special to be able to tx, receive beacons, etc.) How so? After resume, mac80211 will invoke start(), add interfaces and stations back, and then invoke drv_config with all flags in "changed" set. Therefore, at this point, the device should be reset. Where's this not working? I think the problem might be that ath9k is expecting mac80211 to perfectly nest calls to idle/non-idle, even across suspend/resume and device shutdown. I don't think that's feasible at all. johannes -- 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