ASPM was a dark magic when I first started looking at it. Some of it is still dark but what I was able to understand with the help of colleagues at work I've managed to stash here for now: http://wireless.kernel.org/en/users/Documentation/ASPM Then enabling ASPM was also quite a challenge and I always had to go back and revisit the procedures, so to help with that instead I wrote a script to do this for you correctly: http://kernel.org/pub/linux/kernel/people/mcgrof/aspm/enable-aspm Its sha1sum is: f5804fdab512065f219e55addf78c6654f1fc045 If any of that looks confusing refer to the documentation above. There's a TODO there, so I'll get to the different items when I can but if you like feel free to send me patches as well: TODO: patches are welcomed to me until we submit to to PCI Utilities upstream. This can be improved by in this order: * Accept arguments for endpoint and root complex address, and desired ASPM settings * Look for your ASPM capabilities by quering your LnkCap register first. Use these values to let you select whether you want to enable only L1 or L1 & L0s * Searching for your root complex for you * Search for your PCI device by using the driver * Disable your driver and ask to reboot ? * Rewrite in C * Write ncurses interface [ wishlist ] * Write GTK/QT interface [ wishlist ] * Submit upstream as aspm.c to the PCI Utilities, which are maintained by Martin Mares <mj@xxxxxx> Luis -- 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