Re: [2.6.24-rc1 regression] AC adapter state does not change after resume

From: Andrey Borzenkov
Date: Wed Oct 31 2007 - 00:09:25 EST


On Wednesday 31 October 2007, Alexey Starikovskiy wrote:
> Andrey Borzenkov wrote:
> > I suspect new ACPI AC adapter code but have to add some printk's to be
> > sure.
> >
> > To reproduce - plug in AC cord, suspend, unplug, resume - kpowersave and
> > sysfs still show AC adapter online. Or other way round.
> >
> > -andrey
>
> Please check if this patch helps.
>

It does not even compile :)

On serious note (after adding forward declaration) - patch half works. It does
make "online" return true value (which confirms that underlying ACPI works
correctly) but HAL still does not notice it.

The problem is, with power_supply interface HAL does not use polling, it
relies on CHANGE event. This event is apparently never generated if AC
adapter state changes on resume. So the obvious fix is to compare AC state
before and after suspend in ->resume function and generate synthetic CHANGE
event if something has changed.

This will also make superfluous polling redundant.

Attachment: signature.asc
Description: This is a digitally signed message part.