1616(M) cardbus improvements
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
@@ -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
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.
Signed-off-by Ctirad Fertr <[email protected]>
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
@@ -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
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.
Signed-off-by Ctirad Fertr <[email protected]>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.plin 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
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.
Signed-off-by Ctirad Fertr <[email protected]>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.plin 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.
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.plin 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_modeltype instead of digits. "if (emu_model== 3)" is no good style.
OK. I'll do it.
---
Ctirad
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.plin 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
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
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