#2277: Wireless does not work with the 2.6.29 kernel ---------------------+------------------------------------------------------ Reporter: arhuaco | Owner: openmoko-devel Type: defect | Status: new Priority: normal | Milestone: stable-kernel-2009.1 Component: unknown | Version: Severity: normal | Keywords: Haspatch: 0 | Blockedby: Estimated: | Patchreview: Blocking: | Reproducible: sometimes ---------------------+------------------------------------------------------
Comment(by budfive): I have a possible fix for the ifconfig down/up bug described above (https://docs.openmoko.org/trac/ticket/2277#comment:14). The driver does most of its initialization in ar6000_init(), which is called when the module is loaded. Most of this initialization is undone by ar6000_close(), called at "ifconfig down". Noteably, ar6000_open() does NOT reinitialize the driver. Since this is the function called by "ifconfig up", the driver is hosed by "ifconfig down; ifconfig up". A potential fix is to castrate ar6000_close() so that the driver can still work even if ar6000_open() doesn't do much. The cleanup still needs to happen when the module is removed. I'm about to attach a patch that does this. With this patch, the driver works and the automatic network scripts work. One obvious potential downside with this is that since we're no longer cleaning up at "ifconfig down", an inactive driver can still use power needlessly. I did some tests, and while I do see this extra power usage, it looks like it's inconsequential: {{{ *** ar6000_close castrated | phone off doing nothing | 101mA | | insmod ar6000.ko | 103mA | | ifconfig eth0 up | 103mA | | ifconfig eth0 down | 103mA | | connect (ifconfig up, iwconfig, udhcpc, etc) | 105mA | | ifconfig eth0 down | 105mA | | rmmod | 100mA | *** ar6000_close unmodified | ifconfig eth0 up | 103mA | | ifconfig eth0 down | 102mA | | rmmod | 101mA | | unbind | 96mA | }}} All readings were made by using the built-in coloumb counter, and each number is good to about +- 2mA. It looks like the missing cleanup code in the modified version costs us about 3mA or 3% of the total power usage. If this is the case, I would argue we have a fix. It also looks like we really should unbind (echo "s3c2440-sdi" > /sys/bus/platform/drivers/s3c2440-sdi/unbind) the driver when not in use, since that's where the most of the power-savings lie. Do these numbers seem reasonable? -- Ticket URL: <https://docs.openmoko.org/trac/ticket/2277#comment:18> docs.openmoko.org <http://docs.openmoko.org/trac/> openmoko trac _______________________________________________ devel mailing list devel@lists.openmoko.org https://lists.openmoko.org/mailman/listinfo/devel