OLPC weekly update 10/06

This week for OLPC, I’ve been looking at power management of SD cards, as this follows on from some work done last week, working around wireless card firmware bugs by resetting the card. It also falls into part of my work on upstreaming all OLPC’s kernel work.

OLPC’s kernel includes a hacky rfkill driver for power saving, where we use an rfkill interface to cut power to the SD card. This idea was (rightly) criticised by Linux SD/MMC layer developers, who pointed out that it should instead be done with the new SD/MMC runtime power management functionality, which allows driver writers to power on/off the card at will. Our wireless driver (libertas) should just power down the card when the network interface is down.

However, the new runtime power management functionality of the SD/MMC layer doesn’t work with our wireless card. After removing power, it fails to power it on again. With help from upstream I’ve been investigating this, comparing it to our known-working rfkill codepath which could reliably manage power state, and we’re now close to solving this properly.

I’ve also written the appropriate libertas code to perform power management as was suggested, which seems to be working nicely, on top of fixes in the MMC/SD runtime power management layer.


Leave a Reply

You must be logged in to post a comment.