Skip to contentSkip to conversation

1616(M) cardbus improvements

PATCH In review Ctirad Fertr 3 participants 8 messages Nov 15, 2007 – Dec 13, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 1616(M) cardbus improvements

Hello,

this patch improves E-Mu 1616(M) cardbus support. It adds definitions of the new Microdock and 1010 cardbus registers (thanks again for descriptions James) and improves mixer for this card. Now you can use S/PDIF and ADAT on Mirodock and also use headpohone output on host cardbus card as another independent output.

------
Ctirad

include/emu10k1.h +18 -0
diff -ru a/include/emu10k1.h b/include/emu10k1.h
@@ -1299,6 +1299,16 @@
 #define EMU_DST_ALICE_I2S2_LEFT		0x0700	/* Alice2 I2S2 Left */
 #define EMU_DST_ALICE_I2S2_RIGHT	0x0701	/* Alice2 I2S2 Right */
 
+/* Additional destinations for 1616(M)/Microdock */
+#define EMU_DST_MDOCK_SPDIF_LEFT1       0x0112	/* Microdock S/PDIF OUT Left, 1st or 48kHz only */
+#define EMU_DST_MDOCK_SPDIF_LEFT2	0x0113	/* Microdock S/PDIF OUT Left, 2nd or 96kHz */
+#define EMU_DST_MDOCK_SPDIF_RIGHT1      0x0116  /* Microdock S/PDIF OUT Right, 1st or 48kHz only */
+#define EMU_DST_MDOCK_SPDIF_RIGHT2      0x0117  /* Microdock S/PDIF OUT Right, 2nd or 96kHz  */
+#define EMU_DST_MDOCK_ADAT       0x0118  /* Microdock S/PDIF ADAT 8 channel out +8 to +f */
+
+#define EMU_DST_MANA_DAC_LEFT	0x0300	/* Headphone jack on 1010 cardbus  ?44.1/48kHz only? */
+#define EMU_DST_MANA_DAC_RIGHT	0x0301	/* Headphone jack on 1010 cardbus ?44.1/48kHz only? */
+
 /************************************************************************************************/
 /* EMU1010m HANA Sources									*/
 /************************************************************************************************/
@@ -1452,6 +1462,14 @@
 #define EMU_SRC_HANA_SPDIF_LEFT2	0x0502	/* Hana SPDIF Left, 2nd or 96kHz */
 #define EMU_SRC_HANA_SPDIF_RIGHT1	0x0501	/* Hana SPDIF Right, 1st or 48kHz only */
 #define EMU_SRC_HANA_SPDIF_RIGHT2	0x0503	/* Hana SPDIF Right, 2nd or 96kHz */
+
+/* Additional inputs for 1616(M)/Microdock */
+#define EMU_SRC_MDOCK_SPDIF_LEFT1	0x0112	/* Microdock S/PDIF Left, 1st or 48kHz only */
+#define EMU_SRC_MDOCK_SPDIF_LEFT2	0x0113	/* Microdock S/PDIF Left, 2nd or 96kHz */
+#define EMU_SRC_MDOCK_SPDIF_RIGHT1	0x0116	/* Microdock S/PDIF Right, 1st or 48kHz only */
+#define EMU_SRC_MDOCK_SPDIF_RIGHT2	0x0117	/* Microdock S/PDIF Right, 2nd or 96kHz */
+#define EMU_SRC_MDOCK_ADAT	0x0118	/* Microdock ADAT 8 channel in +8 to +f */
+
 /* 0x600 and 0x700 no used */
 
 /* ------------------- STRUCTURES -------------------- */
pci/emu10k1/emumixer.c +205 -9

274 lines not on this page · raw message

pci/emu10k1/emu10k1_main.c +101 -73

186 lines not on this page · raw message

_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

#1 lore raw

At Fri, 16 Nov 2007 00:07:00 +0100,

Quoted 10 lines · Ctirad Fertr

Hello,

this patch improves E-Mu 1616(M) cardbus support. It adds definitions of the new Microdock and 1010 cardbus registers (thanks again for descriptions James) and improves mixer for this card. Now you can use S/PDIF and ADAT on Mirodock and also use headpohone output on host cardbus card as another independent output.

The changes look almost good to me. But, if I understand correctly, the input source put isn't changed properly for EMU1616.

The patch below is the revised version with bunch of coding style fixes (at the next time, try scripts/checkpatch.pl in linux kernel tree before submission).
Let me know if it works for you. I'll apply to ALSA tree after your confirmation.

Thanks,

Takashi

include/emu10k1.h +30 -0
diff -r 17223a4918b4 include/emu10k1.h
@@ -1299,6 +1299,23 @@
 #define EMU_DST_ALICE_I2S2_LEFT		0x0700	/* Alice2 I2S2 Left */
 #define EMU_DST_ALICE_I2S2_RIGHT	0x0701	/* Alice2 I2S2 Right */
 
+/* Additional destinations for 1616(M)/Microdock */
+/* Microdock S/PDIF OUT Left, 1st or 48kHz only */
+#define EMU_DST_MDOCK_SPDIF_LEFT1	0x0112
+/* Microdock S/PDIF OUT Left, 2nd or 96kHz */
+#define EMU_DST_MDOCK_SPDIF_LEFT2	0x0113
+/* Microdock S/PDIF OUT Right, 1st or 48kHz only */
+#define EMU_DST_MDOCK_SPDIF_RIGHT1	0x0116
+/* Microdock S/PDIF OUT Right, 2nd or 96kHz  */
+#define EMU_DST_MDOCK_SPDIF_RIGHT2	0x0117
+/* Microdock S/PDIF ADAT 8 channel out +8 to +f */
+#define EMU_DST_MDOCK_ADAT		0x0118
+
+/* Headphone jack on 1010 cardbus? 44.1/48kHz only? */
+#define EMU_DST_MANA_DAC_LEFT		0x0300
+/* Headphone jack on 1010 cardbus? 44.1/48kHz only? */
+#define EMU_DST_MANA_DAC_RIGHT		0x0301
+
 /************************************************************************************************/
 /* EMU1010m HANA Sources									*/
 /************************************************************************************************/
@@ -1452,6 +1469,19 @@
 #define EMU_SRC_HANA_SPDIF_LEFT2	0x0502	/* Hana SPDIF Left, 2nd or 96kHz */
 #define EMU_SRC_HANA_SPDIF_RIGHT1	0x0501	/* Hana SPDIF Right, 1st or 48kHz only */
 #define EMU_SRC_HANA_SPDIF_RIGHT2	0x0503	/* Hana SPDIF Right, 2nd or 96kHz */
+
+/* Additional inputs for 1616(M)/Microdock */
+/* Microdock S/PDIF Left, 1st or 48kHz only */
+#define EMU_SRC_MDOCK_SPDIF_LEFT1	0x0112
+/* Microdock S/PDIF Left, 2nd or 96kHz */
+#define EMU_SRC_MDOCK_SPDIF_LEFT2	0x0113
+/* Microdock S/PDIF Right, 1st or 48kHz only */
+#define EMU_SRC_MDOCK_SPDIF_RIGHT1	0x0116
+/* Microdock S/PDIF Right, 2nd or 96kHz */
+#define EMU_SRC_MDOCK_SPDIF_RIGHT2	0x0117
+/* Microdock ADAT 8 channel in +8 to +f */
+#define EMU_SRC_MDOCK_ADAT		0x0118
+
 /* 0x600 and 0x700 no used */
 
 /* ------------------- STRUCTURES -------------------- */
pci/emu10k1/emu10k1_main.c +108 -73

187 lines not on this page · raw message

pci/emu10k1/emumixer.c +244 -27

367 lines not on this page · raw message

#2 lore raw

At Tue, 27 Nov 2007 17:43:05 +0100,

Quoted 24 lines · I wrote:

At Fri, 16 Nov 2007 00:07:00 +0100,

Quoted 10 lines · Ctirad Fertr

Hello,

this patch improves E-Mu 1616(M) cardbus support. It adds definitions of the new Microdock and 1010 cardbus registers (thanks again for descriptions James) and improves mixer for this card. Now you can use S/PDIF and ADAT on Mirodock and also use headpohone output on host cardbus card as another independent output.

The changes look almost good to me. But, if I understand correctly, the input source put isn't changed properly for EMU1616.

The patch below is the revised version with bunch of coding style fixes (at the next time, try scripts/checkpatch.pl in linux kernel tree before submission).
Let me know if it works for you. I'll apply to ALSA tree after your confirmation.

Quoted 3 lines

Thanks,

Takashi

Oh, BTW, it'd be also appreciated if you can write an additional patch to add enum definitions for each emu_model type instead of digits. "if (emu_model == 3)" is no good style.

Thanks,

Takashi

#3 lore raw
In reply to Takashi Iwai
Quoted 22 lines · Takashi Iwai

At Fri, 16 Nov 2007 00:07:00 +0100,

Quoted 9 lines · Ctirad Fertr

Hello,

this patch improves E-Mu 1616(M) cardbus support. It adds definitions of the new Microdock and 1010 cardbus registers (thanks again for descriptions James) and improves mixer for this card. Now you can use S/PDIF and ADAT on Mirodock and also use headpohone output on host cardbus card as another independent output.

The changes look almost good to me. But, if I understand correctly, the input source put isn't changed properly for EMU1616.

The patch below is the revised version with bunch of coding style fixes (at the next time, try scripts/checkpatch.pl in linux kernel tree before submission).
Let me know if it works for you. I'll apply to ALSA tree after your confirmation.

Quoted 4 lines

Thanks,

Takashi

Thank you Takashi, I have not had time to look at this patch.

#4 lore raw
In reply to Takashi Iwai

Dne Tuesday 27 of November 2007 17:43:05 jste napsal(a):

Quoted 2 lines

The changes look almost good to me. But, if I understand correctly, the input source put isn't changed properly for EMU1616.

No, it's correct, because emu1010_input_dst[] structure is generic for all EMU PCI cards.

Quoted 3 lines

The patch below is the revised version with bunch of coding style fixes (at the next time, try scripts/checkpatch.pl in linux kernel tree before submission).

I will do that next time. Thank you.

Quoted 2 lines

Let me know if it works for you. I'll apply to ALSA tree after your confirmation.

I works very well :)

Unfortunatelly, now I found that driver (or host card) reload causes kernel ooops on 2.6.23 (2.6.22 is unaffected). This is NOT related to my patch. It crashes even with 1.0.15 version. This is bad :( It crashes immeditely after a firmware for the host card is loaded. Can someone confirm that?

Quoted 3 lines

Oh, BTW, it'd be also appreciated if you can write an additional patch to add enum definitions for each emu_model type instead of digits. "if (emu_model == 3)" is no good style.

OK. I'll do it.

---
Ctirad

#5 lore raw

At Mon, 3 Dec 2007 00:33:25 +0100,

Quoted 7 lines · Ctirad Fertr

Dne Tuesday 27 of November 2007 17:43:05 jste napsal(a):

Quoted 2 lines

The changes look almost good to me. But, if I understand correctly, the input source put isn't changed properly for EMU1616.

No, it's correct, because emu1010_input_dst[] structure is generic for all EMU PCI cards.

OK, but is emu1010_src_regs used for EMU1616 input, too? Then the value range would be incorrect for input_source, because the same info callback is used for both input and output that gives items = 49 for emu1616.

In my patch, I modified the input put callback to use emu1616_src_regs. Check if it's a wrong implementation.

Quoted 9 lines
Quoted 3 lines

The patch below is the revised version with bunch of coding style fixes (at the next time, try scripts/checkpatch.pl in linux kernel tree before submission).

I will do that next time. Thank you.

Quoted 2 lines

Let me know if it works for you. I'll apply to ALSA tree after your confirmation.

Quoted 6 lines

I works very well :)

Unfortunatelly, now I found that driver (or host card) reload causes kernel ooops on 2.6.23 (2.6.22 is unaffected). This is NOT related to my patch. It crashes even with 1.0.15 version. This is bad :( It crashes immeditely after a firmware for the host card is loaded. Can someone confirm that?

Try HG version whether the same problem occurs. Many bugs related with emu10k1 have been done after 1.0.15.

If this still happens, please paste the Oops log to see more details.

thanks,

Takashi

#6 lore raw

Dne Monday 03 of December 2007 10:29:38 jste napsal(a):

Quoted 2 lines

In my patch, I modified the input put callback to use emu1616_src_regs. Check if it's a wrong implementation.

Oh, you are right. I forgot to add 1616 related code here. Funny I didn't noticed any problem in regular use, because I use just analog inputs for capture (no difference between 1820 and 1616) and the internal routing worked as expected :-)
Thanks for correcting.

Quoted 8 lines
Quoted 5 lines

Unfortunatelly, now I found that driver (or host card) reload causes kernel ooops on 2.6.23 (2.6.22 is unaffected). This is NOT related to my patch. It crashes even with 1.0.15 version. This is bad :( It crashes immeditely after a firmware for the host card is loaded. Can someone confirm that?

Try HG version whether the same problem occurs. Many bugs related with emu10k1 have been done after 1.0.15.

It seems it was caused by mix of latest driver/headres and older alsa-lib/alsa-utils. After upgrade of all components to the latest HG it is stable again. The pure 1.0.15 is stable as well with 2.6.13. It was just false alarm, fortunatelly.

-----
Ctirad

#7 lore raw

At Tue, 4 Dec 2007 00:43:25 +0100,

Quoted 11 lines · Ctirad Fertr

Dne Monday 03 of December 2007 10:29:38 jste napsal(a):

Quoted 2 lines

In my patch, I modified the input put callback to use emu1616_src_regs. Check if it's a wrong implementation.

Oh, you are right. I forgot to add 1616 related code here. Funny I didn't noticed any problem in regular use, because I use just analog inputs for capture (no difference between 1820 and 1616) and the internal routing worked as expected :-)
Thanks for correcting.

OK. Now applied to ALSA HG tree. Thanks!

Takashi