Hi all, On Tue, Oct 06, 2009 at 08:01:40AM +0200, Takashi Iwai wrote: > > As you describe, we implement it with self-reschedule workqueue, acting > > like a timer. > > Is there some advice to implement timer-like task, I tested with timer and > > it will crash the driver. > > Right, you can't call it in a softirq. > > A few problems, however: > - present variable should be in struct via_spec, instead of a static > variable in update_hp_jack_state(). I agree > - This mechanism is unconditionally invoked on VT1708 although, in > theory, you can have a hardware that doesn't need HP jack detection Yes, Logan/Li/Lydia: If we generate this kind of workaround with a timer, it should only be used on those particular chips that absolutely need it. > - Waking up each 100ms for the *whole* time is really bad regarding > the power-saving; can't it be optimized? I would personally actually suggest to simply not support headphone plug events in case you are using such a [buggy?] chipset that does not support them. I mean, what do you gain from that event? It's not something super-important. waking up unconditionally every 100ms is really a too high burden on the battery life. Another option might be to make it a module load time parameter, so people can choose if they actually want to pay the high power/batyery price for this small feature. -- - Harald Welte <laforge@xxxxxxxxxxxx> http://laforge.gnumonks.org/ ============================================================================ "Privacy in residential applications is a desirable marketing option." (ETSI EN 300 175-7 Ch. A6) _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel