ALSA: hda: Poll jack events for LS7A HD-Audio
authorHuacai Chen <chenhuacai@loongson.cn>
Fri, 15 Nov 2024 15:06:53 +0000 (23:06 +0800)
committerTakashi Iwai <tiwai@suse.de>
Mon, 18 Nov 2024 13:40:01 +0000 (14:40 +0100)
LS7A HD-Audio disable interrupts and use polling mode due to hardware
drawbacks. As a result, unsolicited jack events are also unusable. If
we want to support headphone hotplug, we need to also poll jack events.

Here we use 1500ms as the poll interval if no module parameter specify
it.

Cc: stable@vger.kernel.org
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Link: https://patch.msgid.link/20241115150653.2819100-1-chenhuacai@loongson.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_intel.c

index 6e27177..4a62440 100644 (file)
@@ -1859,6 +1859,8 @@ static int azx_first_init(struct azx *chip)
                bus->polling_mode = 1;
                bus->not_use_interrupts = 1;
                bus->access_sdnctl_in_dword = 1;
+               if (!chip->jackpoll_interval)
+                       chip->jackpoll_interval = msecs_to_jiffies(1500);
        }
 
        err = pcim_iomap_regions(pci, 1 << 0, "ICH HD audio");