Patch "ALSA: emu10k1: fix E-MU dock initialization" has been added to the 6.8-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    ALSA: emu10k1: fix E-MU dock initialization

to the 6.8-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     alsa-emu10k1-fix-e-mu-dock-initialization.patch
and it can be found in the queue-6.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a4f617eac9288b9a7a40cd257b62aa81094cd035
Author: Oswald Buddenhagen <oswald.buddenhagen@xxxxxx>
Date:   Sun Apr 28 11:37:15 2024 +0200

    ALSA: emu10k1: fix E-MU dock initialization
    
    [ Upstream commit e8289fd3fa65d60cf04dab6f7845eda352c04ea6 ]
    
    A side effect of making the dock monitoring interrupt-driven was that
    we'd be very quick to program a freshly connected dock. However, for
    unclear reasons, the dock does not work when we do that - despite the
    FPGA netlist upload going just fine. We work around this by adding a
    delay before programming the dock; for safety, the value is several
    times as much as was determined empirically.
    
    Note that a badly timed dock hot-plug would have triggered the problem
    even before the referenced commit - but now it would happen 100% instead
    of about 3% of the time, thus making it impossible to work around by
    re-plugging.
    
    Fixes: fbb64eedf5a3 ("ALSA: emu10k1: make E-MU dock monitoring interrupt-driven")
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=218584
    Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@xxxxxx>
    Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
    Message-ID: <20240428093716.3198666-6-oswald.buddenhagen@xxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index 86eaf5963502c..ade90c7ecd922 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -737,6 +737,12 @@ static void snd_emu1010_load_dock_firmware(struct snd_emu10k1 *emu)
 	u32 tmp, tmp2;
 	int err;
 
+	// The docking events clearly arrive prematurely - while the
+	// Dock's FPGA seems to be successfully programmed, the Dock
+	// fails to initialize subsequently if we don't give it some
+	// time to "warm up" here.
+	msleep(200);
+
 	dev_info(emu->card->dev, "emu1010: Loading Audio Dock Firmware\n");
 	/* Return to Audio Dock programming mode */
 	snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG,




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux