All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock
@ 2024-04-28  9:37 Oswald Buddenhagen
  2024-04-28  9:37 ` [PATCH v2 1/4] ALSA: emu10k1: simplify E-MU card FPGA reset sequence Oswald Buddenhagen
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Oswald Buddenhagen @ 2024-04-28  9:37 UTC (permalink / raw)
  To: linux-sound; +Cc: Takashi Iwai, Jaroslav Kysela, Pietro Caruso

---
v2:
- split off from more critical part of the series
- re-ordered two commits to reduce diff churn
---
This patch series needs to be applied on top of the patch titled "ALSA:
emu10k1: make E-MU FPGA writes potentially more reliable".

Oswald Buddenhagen (4):
  ALSA: emu10k1: simplify E-MU card FPGA reset sequence
  ALSA: emu10k1: make snd_emu1010_load_firmware_entry() void
  ALSA: emu10k1: move snd_emu1010_load_firmware_entry() to io.c
  ALSA: emu10k1: move code for entering E-MU card FPGA programming mode

 include/sound/emu10k1.h          |  1 +
 sound/pci/emu10k1/emu10k1_main.c | 75 ++------------------------------
 sound/pci/emu10k1/io.c           | 53 ++++++++++++++++++++++
 3 files changed, 57 insertions(+), 72 deletions(-)


base-commit: ed93395844979f6bf2e1fbfcda38d1718289b426
prerequisite-patch-id: 5a07270251912fd31f913bda4de46fd8321d7960
prerequisite-patch-id: 573260da563ac3c9ba18383044a52f2cb00c1096
prerequisite-patch-id: 6268ce55ab58f0cffb3a3a19cac962780731affe
prerequisite-patch-id: a7ede4bf7174c7b93861dc58125fbf7debabebd8
prerequisite-patch-id: 8572ac7b03d12a9d8ad49ffe7a599e5ad89cd267
prerequisite-patch-id: 6f08dff99ebc501ac93d7e1c28f707ade2384b12
-- 
2.44.0.701.g2cf7baacf3.dirty


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2 1/4] ALSA: emu10k1: simplify E-MU card FPGA reset sequence
  2024-04-28  9:37 [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock Oswald Buddenhagen
@ 2024-04-28  9:37 ` Oswald Buddenhagen
  2024-04-28  9:37 ` [PATCH v2 2/4] ALSA: emu10k1: make snd_emu1010_load_firmware_entry() void Oswald Buddenhagen
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Oswald Buddenhagen @ 2024-04-28  9:37 UTC (permalink / raw)
  To: linux-sound; +Cc: Takashi Iwai, Jaroslav Kysela, Pietro Caruso

Firstly, it is pointless to explicitly disable the power to the dock
prior to resetting the FPGA, as the latter will do the former anyway.

Secondly, it doesn't make much sense to check whether the FPGA is
already programmed. It's much simpler to just presume it is, and issue
the self-reset command. If it isn't, the effect isn't worse than the
checks themselves. As a side effect, we lose the info if the reset
fails, but there is no plausible way how that could happen unless the
card burns out while operating, and in that case we'll detect a firmware
upload failure a bit later anyway.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
---
 sound/pci/emu10k1/emu10k1_main.c | 25 +++----------------------
 1 file changed, 3 insertions(+), 22 deletions(-)

diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index 8ccc0178360c..353dd3b61c61 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -864,28 +864,9 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
 
 	snd_emu1010_fpga_lock(emu);
 
-	/* Disable 48Volt power to Audio Dock */
-	snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_PWR, 0);
-
-	/* ID, should read & 0x7f = 0x55. (Bit 7 is the IRQ bit) */
-	snd_emu1010_fpga_read(emu, EMU_HANA_ID, &reg);
-	dev_dbg(emu->card->dev, "reg1 = 0x%x\n", reg);
-	if ((reg & 0x3f) == 0x15) {
-		/* FPGA netlist already present so clear it */
-		/* Return to programming mode */
-
-		snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG, EMU_HANA_FPGA_CONFIG_HANA);
-	}
-	snd_emu1010_fpga_read(emu, EMU_HANA_ID, &reg);
-	dev_dbg(emu->card->dev, "reg2 = 0x%x\n", reg);
-	if ((reg & 0x3f) == 0x15) {
-		/* FPGA failed to return to programming mode */
-		dev_info(emu->card->dev,
-			 "emu1010: FPGA failed to return to programming mode\n");
-		return -ENODEV;
-	}
-	dev_info(emu->card->dev, "emu1010: EMU_HANA_ID = 0x%x\n", reg);
-
+	dev_info(emu->card->dev, "emu1010: Loading Hana Firmware\n");
+	snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG,
+			       EMU_HANA_FPGA_CONFIG_HANA);
 	err = snd_emu1010_load_firmware(emu, 0, &emu->firmware);
 	if (err < 0) {
 		dev_info(emu->card->dev, "emu1010: Loading Firmware failed\n");
-- 
2.44.0.701.g2cf7baacf3.dirty


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/4] ALSA: emu10k1: make snd_emu1010_load_firmware_entry() void
  2024-04-28  9:37 [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock Oswald Buddenhagen
  2024-04-28  9:37 ` [PATCH v2 1/4] ALSA: emu10k1: simplify E-MU card FPGA reset sequence Oswald Buddenhagen
@ 2024-04-28  9:37 ` Oswald Buddenhagen
  2024-04-28  9:37 ` [PATCH v2 3/4] ALSA: emu10k1: move snd_emu1010_load_firmware_entry() to io.c Oswald Buddenhagen
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Oswald Buddenhagen @ 2024-04-28  9:37 UTC (permalink / raw)
  To: linux-sound; +Cc: Takashi Iwai, Jaroslav Kysela, Pietro Caruso

There is only one call site, and there we already know that we actually
have a firmware.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
---
 sound/pci/emu10k1/emu10k1_main.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index 353dd3b61c61..ec010971a220 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -652,17 +652,14 @@ static int snd_emu10k1_cardbus_init(struct snd_emu10k1 *emu)
 	return 0;
 }
 
-static int snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu,
+static void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu,
 				     const struct firmware *fw_entry)
 {
 	int n, i;
 	u16 reg;
 	u8 value;
 	__always_unused u16 write_post;
 
-	if (!fw_entry)
-		return -EIO;
-
 	/* The FPGA is a Xilinx Spartan IIE XC2S50E */
 	/* On E-MU 0404b it is a Xilinx Spartan III XC3S50 */
 	/* GPIO7 -> FPGA PGMN
@@ -694,8 +691,6 @@ static int snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu,
 	outw(0x10, emu->port + A_GPIO);
 	write_post = inw(emu->port + A_GPIO);
 	spin_unlock_irq(&emu->emu_lock);
-
-	return 0;
 }
 
 /* firmware file names, per model, init-fw and dock-fw (optional) */
@@ -729,7 +724,8 @@ static int snd_emu1010_load_firmware(struct snd_emu10k1 *emu, int dock,
 			return err;
 	}
 
-	return snd_emu1010_load_firmware_entry(emu, *fw);
+	snd_emu1010_load_firmware_entry(emu, *fw);
+	return 0;
 }
 
 static void snd_emu1010_load_dock_firmware(struct snd_emu10k1 *emu)
-- 
2.44.0.701.g2cf7baacf3.dirty


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 3/4] ALSA: emu10k1: move snd_emu1010_load_firmware_entry() to io.c
  2024-04-28  9:37 [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock Oswald Buddenhagen
  2024-04-28  9:37 ` [PATCH v2 1/4] ALSA: emu10k1: simplify E-MU card FPGA reset sequence Oswald Buddenhagen
  2024-04-28  9:37 ` [PATCH v2 2/4] ALSA: emu10k1: make snd_emu1010_load_firmware_entry() void Oswald Buddenhagen
@ 2024-04-28  9:37 ` Oswald Buddenhagen
  2024-04-28  9:37 ` [PATCH v2 4/4] ALSA: emu10k1: move code for entering E-MU card FPGA programming mode Oswald Buddenhagen
  2024-04-28 18:16 ` [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock Takashi Iwai
  4 siblings, 0 replies; 6+ messages in thread
From: Oswald Buddenhagen @ 2024-04-28  9:37 UTC (permalink / raw)
  To: linux-sound; +Cc: Takashi Iwai, Jaroslav Kysela, Pietro Caruso

It is a low-level I/O access function, so io.c is the natural place for
it.

While we're moving the code, reduce the scope of some variables, use
compound assignment operators, and add/adjust some comments.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
---
 include/sound/emu10k1.h          |  1 +
 sound/pci/emu10k1/emu10k1_main.c | 41 ---------------------------
 sound/pci/emu10k1/io.c           | 48 ++++++++++++++++++++++++++++++++
 3 files changed, 49 insertions(+), 41 deletions(-)

diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index 234b5baea69c..2856f4717c93 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -1843,6 +1843,7 @@ void snd_emu1010_fpga_link_dst_src_write(struct snd_emu10k1 *emu, u32 dst, u32 s
 u32 snd_emu1010_fpga_link_dst_src_read(struct snd_emu10k1 *emu, u32 dst);
 int snd_emu1010_get_raw_rate(struct snd_emu10k1 *emu, u8 src);
 void snd_emu1010_update_clock(struct snd_emu10k1 *emu);
+void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu, const struct firmware *fw_entry);
 unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc);
 void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb);
 void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb);
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index ec010971a220..c8aa4143ac4f 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -652,47 +652,6 @@ static int snd_emu10k1_cardbus_init(struct snd_emu10k1 *emu)
 	return 0;
 }
 
-static void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu,
-				     const struct firmware *fw_entry)
-{
-	int n, i;
-	u16 reg;
-	u8 value;
-	__always_unused u16 write_post;
-
-	/* The FPGA is a Xilinx Spartan IIE XC2S50E */
-	/* On E-MU 0404b it is a Xilinx Spartan III XC3S50 */
-	/* GPIO7 -> FPGA PGMN
-	 * GPIO6 -> FPGA CCLK
-	 * GPIO5 -> FPGA DIN
-	 * FPGA CONFIG OFF -> FPGA PGMN
-	 */
-	spin_lock_irq(&emu->emu_lock);
-	outw(0x00, emu->port + A_GPIO); /* Set PGMN low for 100uS. */
-	write_post = inw(emu->port + A_GPIO);
-	udelay(100);
-	outw(0x80, emu->port + A_GPIO); /* Leave bit 7 set during netlist setup. */
-	write_post = inw(emu->port + A_GPIO);
-	udelay(100); /* Allow FPGA memory to clean */
-	for (n = 0; n < fw_entry->size; n++) {
-		value = fw_entry->data[n];
-		for (i = 0; i < 8; i++) {
-			reg = 0x80;
-			if (value & 0x1)
-				reg = reg | 0x20;
-			value = value >> 1;
-			outw(reg, emu->port + A_GPIO);
-			write_post = inw(emu->port + A_GPIO);
-			outw(reg | 0x40, emu->port + A_GPIO);
-			write_post = inw(emu->port + A_GPIO);
-		}
-	}
-	/* After programming, set GPIO bit 4 high again. */
-	outw(0x10, emu->port + A_GPIO);
-	write_post = inw(emu->port + A_GPIO);
-	spin_unlock_irq(&emu->emu_lock);
-}
-
 /* firmware file names, per model, init-fw and dock-fw (optional) */
 static const char * const firmware_names[5][2] = {
 	[EMU_MODEL_EMU1010] = {
diff --git a/sound/pci/emu10k1/io.c b/sound/pci/emu10k1/io.c
index f4a1c2d4b078..fafa299efa5c 100644
--- a/sound/pci/emu10k1/io.c
+++ b/sound/pci/emu10k1/io.c
@@ -422,6 +422,54 @@ void snd_emu1010_update_clock(struct snd_emu10k1 *emu)
 	snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_LEDS_2, leds);
 }
 
+void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu,
+				     const struct firmware *fw_entry)
+{
+	__always_unused u16 write_post;
+
+	// On E-MU 1010 rev1 the FPGA is a Xilinx Spartan IIE XC2S50E.
+	// On E-MU 0404b it is a Xilinx Spartan III XC3S50.
+	// The wiring is as follows:
+	// GPO7 -> FPGA input & 1K resistor -> FPGA /PGMN <- FPGA output
+	//   In normal operation, the active low reset line is held up by
+	//   an FPGA output, while the GPO pin performs its duty as control
+	//   register access strobe signal. Writing the respective bit to
+	//   EMU_HANA_FPGA_CONFIG puts the FPGA output into high-Z mode, at
+	//   which point the GPO pin can control the reset line through the
+	//   resistor.
+	// GPO6 -> FPGA CCLK & FPGA input
+	// GPO5 -> FPGA DIN (dual function)
+
+	// Assert reset line for 100uS
+	outw(0x00, emu->port + A_GPIO);
+	write_post = inw(emu->port + A_GPIO);
+	udelay(100);
+	outw(0x80, emu->port + A_GPIO);
+	write_post = inw(emu->port + A_GPIO);
+	udelay(100);  // Allow FPGA memory to clean
+
+	// Upload the netlist. Keep reset line high!
+	for (int n = 0; n < fw_entry->size; n++) {
+		u8 value = fw_entry->data[n];
+		for (int i = 0; i < 8; i++) {
+			u16 reg = 0x80;
+			if (value & 1)
+				reg |= 0x20;
+			value >>= 1;
+			outw(reg, emu->port + A_GPIO);
+			write_post = inw(emu->port + A_GPIO);
+			outw(reg | 0x40, emu->port + A_GPIO);
+			write_post = inw(emu->port + A_GPIO);
+		}
+	}
+
+	// After programming, set GPIO bit 4 high again.
+	// This appears to be a config word that the rev1 Hana
+	// firmware reads; weird things happen without this.
+	outw(0x10, emu->port + A_GPIO);
+	write_post = inw(emu->port + A_GPIO);
+}
+
 void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb)
 {
 	unsigned long flags;
-- 
2.44.0.701.g2cf7baacf3.dirty


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 4/4] ALSA: emu10k1: move code for entering E-MU card FPGA programming mode
  2024-04-28  9:37 [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock Oswald Buddenhagen
                   ` (2 preceding siblings ...)
  2024-04-28  9:37 ` [PATCH v2 3/4] ALSA: emu10k1: move snd_emu1010_load_firmware_entry() to io.c Oswald Buddenhagen
@ 2024-04-28  9:37 ` Oswald Buddenhagen
  2024-04-28 18:16 ` [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock Takashi Iwai
  4 siblings, 0 replies; 6+ messages in thread
From: Oswald Buddenhagen @ 2024-04-28  9:37 UTC (permalink / raw)
  To: linux-sound; +Cc: Takashi Iwai, Jaroslav Kysela, Pietro Caruso

... into snd_emu1010_load_firmware_entry(). This makes it clearer that
these steps belong together tightly, as implied by prior commits.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
---
 include/sound/emu10k1.h          | 2 +-
 sound/pci/emu10k1/emu10k1_main.c | 7 +------
 sound/pci/emu10k1/io.c           | 7 ++++++-
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index 2856f4717c93..b83862259eec 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -1843,7 +1843,7 @@ void snd_emu1010_fpga_link_dst_src_write(struct snd_emu10k1 *emu, u32 dst, u32 s
 u32 snd_emu1010_fpga_link_dst_src_read(struct snd_emu10k1 *emu, u32 dst);
 int snd_emu1010_get_raw_rate(struct snd_emu10k1 *emu, u8 src);
 void snd_emu1010_update_clock(struct snd_emu10k1 *emu);
-void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu, const struct firmware *fw_entry);
+void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu, int dock, const struct firmware *fw_entry);
 unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc);
 void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb);
 void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb);
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index c8aa4143ac4f..5b8a5ba825bd 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -683,7 +683,7 @@ static int snd_emu1010_load_firmware(struct snd_emu10k1 *emu, int dock,
 			return err;
 	}
 
-	snd_emu1010_load_firmware_entry(emu, *fw);
+	snd_emu1010_load_firmware_entry(emu, dock, *fw);
 	return 0;
 }
 
@@ -699,9 +699,6 @@ static void snd_emu1010_load_dock_firmware(struct snd_emu10k1 *emu)
 	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,
-			       EMU_HANA_FPGA_CONFIG_AUDIODOCK);
 	err = snd_emu1010_load_firmware(emu, 1, &emu->dock_fw);
 	if (err < 0)
 		return;
@@ -820,8 +817,6 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
 	snd_emu1010_fpga_lock(emu);
 
 	dev_info(emu->card->dev, "emu1010: Loading Hana Firmware\n");
-	snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG,
-			       EMU_HANA_FPGA_CONFIG_HANA);
 	err = snd_emu1010_load_firmware(emu, 0, &emu->firmware);
 	if (err < 0) {
 		dev_info(emu->card->dev, "emu1010: Loading Firmware failed\n");
diff --git a/sound/pci/emu10k1/io.c b/sound/pci/emu10k1/io.c
index fafa299efa5c..b60ab5671e00 100644
--- a/sound/pci/emu10k1/io.c
+++ b/sound/pci/emu10k1/io.c
@@ -422,7 +422,7 @@ void snd_emu1010_update_clock(struct snd_emu10k1 *emu)
 	snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_LEDS_2, leds);
 }
 
-void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu,
+void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu, int dock,
 				     const struct firmware *fw_entry)
 {
 	__always_unused u16 write_post;
@@ -440,6 +440,11 @@ void snd_emu1010_load_firmware_entry(struct snd_emu10k1 *emu,
 	// GPO6 -> FPGA CCLK & FPGA input
 	// GPO5 -> FPGA DIN (dual function)
 
+	// If the FPGA is already programmed, return it to programming mode
+	snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG,
+			       dock ? EMU_HANA_FPGA_CONFIG_AUDIODOCK :
+				      EMU_HANA_FPGA_CONFIG_HANA);
+
 	// Assert reset line for 100uS
 	outw(0x00, emu->port + A_GPIO);
 	write_post = inw(emu->port + A_GPIO);
-- 
2.44.0.701.g2cf7baacf3.dirty


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock
  2024-04-28  9:37 [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock Oswald Buddenhagen
                   ` (3 preceding siblings ...)
  2024-04-28  9:37 ` [PATCH v2 4/4] ALSA: emu10k1: move code for entering E-MU card FPGA programming mode Oswald Buddenhagen
@ 2024-04-28 18:16 ` Takashi Iwai
  4 siblings, 0 replies; 6+ messages in thread
From: Takashi Iwai @ 2024-04-28 18:16 UTC (permalink / raw)
  To: Oswald Buddenhagen
  Cc: linux-sound, Takashi Iwai, Jaroslav Kysela, Pietro Caruso

On Sun, 28 Apr 2024 11:37:13 +0200,
Oswald Buddenhagen wrote:
> 
> ---
> v2:
> - split off from more critical part of the series
> - re-ordered two commits to reduce diff churn
> ---
> This patch series needs to be applied on top of the patch titled "ALSA:
> emu10k1: make E-MU FPGA writes potentially more reliable".

Applied to for-next branch (on top of the previous set).


Takashi

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-04-28 18:16 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-28  9:37 [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock Oswald Buddenhagen
2024-04-28  9:37 ` [PATCH v2 1/4] ALSA: emu10k1: simplify E-MU card FPGA reset sequence Oswald Buddenhagen
2024-04-28  9:37 ` [PATCH v2 2/4] ALSA: emu10k1: make snd_emu1010_load_firmware_entry() void Oswald Buddenhagen
2024-04-28  9:37 ` [PATCH v2 3/4] ALSA: emu10k1: move snd_emu1010_load_firmware_entry() to io.c Oswald Buddenhagen
2024-04-28  9:37 ` [PATCH v2 4/4] ALSA: emu10k1: move code for entering E-MU card FPGA programming mode Oswald Buddenhagen
2024-04-28 18:16 ` [PATCH v2 0/4] ALSA: emu10k1: more improvements related to uploading firmware to the E-MU dock Takashi Iwai

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.