On Tue, Jan 31, 2023 at 12:08:53PM +0000, Mark Brown wrote:
On Mon, Jan 30, 2023 at 10:16:06PM -0800, Guenter Roeck wrote:
On 1/30/23 19:58, David Rau wrote:
Thanks for the kind feedback. Would you please let me know what kinds of environment such error appears you ever meet? Ex: da7219_aad->gnd_switch_delay = ?
We are seeing the problem on various Chromebooks.
Never mind, though. I really don't have time to keep arguing about this. I would have assumed that it is obvious that a long msleep() in an interrupt handler is not appropriate, but obviously I was wrong.
This is a threaded interrupt handler so it's a bit less clear that it's meaningfully different to just disabling the interrupt for debounce or whatever. Not to say it's ideal.
I'll see if I can implement a downstream fix.
If you implement something I don't see a reason not to post it upstream.
I had a look into the code, and concluded that it is too complex for anyone who doesn't know it to find a proper fix. For example, for an outsider it is not conceivable (or explained) why the ground switch is enabled only to be disabled immediately afterwards if a jack was removed.
This is now the top crash reason on affected Chromebooks (so far I identified Asus C424, HP SeaStar, and HP StingRay) with this patch applied. I am inclined to revert it from all ChromeOS kernel branches. At least for us the cure for the problem is much worse than the problem itself.
Guenter