Re: [PATCH] ALSA: hda: Poll jack events for LS7A HD-Audio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Huacai,

在 2024-11-15 23:06,Huacai Chen 写道:
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.

A little late since Takashi Iwai already queued this patch, but for the sake of the record, I have tested this patch and found that it resolved the issue where hot-plugged (plugged in after boot) headphones were not detected on the following boards:

- Loongson XA61200
- Loongson XA612A0
- Loongson Loongson-3A5000-HV-7A2000-1w-V0.1-EVB
- ASUS XC-LS3A6M

Hooray.

But I would also like to note that this issue was only reproducible on Loongson (or Loongson-drived, in the case of that ASUS board) firmware. However, with the XA61200 board, when using Byosoft's firmware (https://github.com/loongson/Firmware/blob/main/6000Series/PC/XA61200/Byosoft_3A6000_7A2000_CRB_R0103.bin), audio jack hot-plugging works with or without this patch. So I do suspect that there are still a firmware issue at play.

Bottom line - this patch should have fixed audio jack hot-plugging for most users.

Best Regards,
Mingcong Bai


Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx>
---
 sound/pci/hda/hda_intel.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index b4540c5cd2a6..5060d5428caf 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1867,6 +1867,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");




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux