воскресенье

[Bug 2163215] Re: Fix SDCA jack detection race and reprobe issues on Dell Slate Max platform with CirrusLogic audio solution

** Changed in: linux-oem-6.17 (Ubuntu Noble) Status: In Progress => Fix Committed -- You received this bug notification because you are subscribed to linux in Ubuntu. Matching subscriptions: Bgg, Bmail, Nb https://bugs.launchpad.net/bugs/2163215 Title: Fix SDCA jack detection race and reprobe issues on Dell Slate Max platform with CirrusLogic audio solution Status in HWE Next: New Status in linux package in Ubuntu: New Status in linux-oem-6.17 package in Ubuntu: New Status in linux source package in Noble: Invalid Status in linux-oem-6.17 source package in Noble: Fix Committed Status in linux source package in Resolute: In Progress Status in linux-oem-6.17 source package in Resolute: Invalid Bug description: [Impact] On Dell Slate Max systems with SoundWire Device Class Audio (SDCA) hardware, there is a race condition when setting up jack detection. Plug headset first, sound can output and headset Mic is workable. But after cold boot/reboot, audio device is keep but no sound output from headset, headset Mic also no function. Hot plug headset can recovery. [Fix] Reorganize SDCA IRQ registration and lifecycle management to run at the correct time and avoid races. The fixes do this by adding a new component-level callback that runs after all ALSA controls are created. This ensures the jack detection IRQs are registered only when the controls are ready. Upstream commits (first appeared in v7.2-rc6): - 3e81e2fb2163 ASoC: Add a component fixup_controls callback - b8f71f16134f ASoC: SDCA: Switch to fixup_controls callback for IRQ registration - bf1b7821f853 ASoC: SDCA: Move kcontrol search out of IRQ - 050406cbd676 ASoC: SDCA: Populate IRQ data earlier - 0880082c27b6 ASoC: SDCA: Remove devm from primary IRQ cleanup - f18e97fa7f12 ASoC: SDCA: Add sdca_irq_cleanup_late() - 4ecef577d1ce ASoC: SDCA: Rename sdca_irq_allocate() to include devm [Test Plan] Boot the system, plug headphones in and out, and check if audio switches correctly. 1. Boot the system with headphones unplugged. 2. Plug headphones in and check the jack state: $ evtest (or check alsamixer/sound settings) 3. Unplug headphones and verify sound switches back. 4. Reload the SoundWire driver modules or trigger suspend/resume to force card teardown and reprobe: $ sudo rtcwake -m mem -s 15 Or reload the SoundWire modules: $ sudo modprobe -r snd_sof_intel_sdw $ sudo modprobe snd_sof_intel_sdw Without these patches: - On boot, headphones might show up as connected when they are not, or sound might not switch correctly when plugged in. - After suspend/resume or reloading modules, jack detection stops working, or the system crashes/shows warnings due to stale pointers. With these patches: - Headphones and speaker paths are always set correctly on boot. - Jack detection and audio routing work correctly after suspend/resume and driver reloads. [Where problems could occur] Could break SDCA jack detection and SoundWire audio class drivers. If the new fixup_controls callback has a bug, jack IRQs will not be registered. Jack detection could stop working completely. If the cached kcontrol search gets a wrong pointer, the kernel will crash with a NULL pointer dereference when the IRQ handler runs. [Other Info] All seven patches are upstream in v7.2-rc6. To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/2163215/+subscriptions

Комментариев нет:

Отправить комментарий