Re: [alsa-devel] plans for fireworks driver
After realizing that the ffado-mixer also didn't work on my AF12, I found that echo firmware > 4.8 broke ffado for the AF12 & AF8:
http://subversion.ffado.org/ticket/360
Interestingly though, I have been running 5.7 for a couple years using the snd-fireworks driver with no problems. I have no use for the mixer on the AF12 after I initially set it up way before the firmware problem came about, so I never noticed anything was wrong. Your driver now discovers the AF12 fine:
$ cat /proc/asound/card1/efc_hardware flags: 0x11 guid_hi: 0x14860F guid_lo: 0xC44A84A6 type: 0xAF12 version: 0x0 vendor_name: Echo Digital Audio model_name: AudioFire12 supported_clock: 0x5 nb_1394_playback_channels: 0xC nb_1394_capture_channels: 0xC nb_phys_audio_out: 0xC nb_phys_audio_in: 0xC nb_out_groups: 0x1 out_group[0x0]: type 0x0, count 0x12 out_group[0x1]: type 0x0, count 0x0 out_group[0x2]: type 0x0, count 0x0 out_group[0x3]: type 0x0, count 0x0 out_group[0x4]: type 0x0, count 0x0 out_group[0x5]: type 0x0, count 0x0 out_group[0x6]: type 0x0, count 0x0 out_group[0x7]: type 0x0, count 0x0 nb_in_groups: 0x1 out_group[0x0]: type 0x0, count 0x12 out_group[0x1]: type 0x0, count 0x0 out_group[0x2]: type 0x0, count 0x0 out_group[0x3]: type 0x0, count 0x0 out_group[0x4]: type 0x0, count 0x0 out_group[0x5]: type 0x0, count 0x0 out_group[0x6]: type 0x0, count 0x0 out_group[0x7]: type 0x0, count 0x0 nb_midi_out: 0x1 nb_midi_in: 0x1 max_sample_rate: 0x2EE00 min_sample_rate: 0x7D00 dsp_version: 0x4080000 arm_version: 0x4080000 mixer_playback_channels: 0xC mixer_capture_channels: 0xC fpga_version: 0x0 nb_1394_playback_channels_2x: 0xC nb_1394_capture_channels_2x: 0xC nb_1394_playback_channels_4x: 0xC nb_1394_capture_channels_4x: 0xC
Interestingly though, I've been running
On 03/09/2013 09:11 PM, Takashi Sakamoto wrote:
Hi Doug,
Thanks for your checking my source.
The latest change, which prompted me to write this email in the first place, was the removal of __devinit and friends from kernel 3.8.
Oh, it's my fault... __devXXX macros are removed from Linux tree since Dec 2012. For Linux 3.8-rc4 or later my module needs your patch but i's inconvenient. I realized it but have been forgeting...
I remove them with this commit. Now you can build my module without your patch. https://github.com/takaswie/snd-firewire-improve/commit/77742d3f68e98e94ff99...
...and the AF2
Thank you. I add your log in the end of README. https://github.com/takaswie/snd-firewire-improve/commit/52beb73fa1e248a8eec9...
It discovers the AF2, but not the AF12. Here is the log from the AF12: Mar 9 15:47:11 iggy kernel: [63134.769274] ALSA fireworks_command.c:313 EFC Failed [0/1]: 0
H'm... It looks to fail to get the number of hardware metering channels when proving my module. To investigating this, anyway, I need the hardware information of AF12...
Would you try this patch for AF12? This patch disable to get hardware metering channels during module proving process.
--- a/fireworks/fireworks.c +++ b/fireworks/fireworks.c @@ -329,11 +329,6 @@ static int snd_efw_probe(struct device *dev) if (err < 0) goto error_card;
/* get the number of hardware meters */
err = snd_efw_get_hardware_meters_count(efw);
if (err < 0)
goto error_card;
efw->syt_interval = 8; for (i = 0; i < MAX_MIDI_OUTPUTS; i += 1)
Thanks
Takashi Sakamoto o-takashi@sakamocchi.jp
(Mar 10 2013 05:52), Doug McLain wrote:
Attached is a patch of my hack to build your source of Fedora 18 with kernel 3.8. As I mentioned in the last email, I have had to do various little hacks to the other snd-fireworks module source over the past few years as chnages were made to the kernel API. The latest change, which prompted me to write this email in the first place, was the removal of __devinit and friends from kernel 3.8. So now its built, installed, and running. It discovers the AF2, but not the AF12. Here is the log from the AF12:
Mar 9 15:47:06 iggy kernel: [63129.761604] firewire_core 0000:01:0b.0: phy config: new root=ffc2, gap_count=7 Mar 9 15:47:11 iggy kernel: [63134.769274] ALSA fireworks_command.c:313 EFC Failed [0/1]: 0 Mar 9 15:47:11 iggy kernel: [63134.769289] snd-fireworks: probe of fw2.0 failed with error -5 Mar 9 15:47:11 iggy kernel: [63134.769293] firewire_core 0000:01:0b.0: created device fw2: GUID 0014860fc44a84a6, S400
...and the AF2 $ cat /proc/asound/card0/efc_hardware flags: 0xA1 guid_hi: 0x148606 guid_lo: 0x9D5BD6CA type: 0xAF2 version: 0x0 vendor_name: Echo Digital Audio model_name: AudioFire2 supported_clock: 0x9 nb_1394_playback_channels: 0x6 nb_1394_capture_channels: 0x4 nb_phys_audio_out: 0x6 nb_phys_audio_in: 0x4 nb_out_groups: 0x3 out_group[0x0]: type 0x0, count 0x2 out_group[0x1]: type 0x5, count 0x2 out_group[0x2]: type 0x1, count 0x2 out_group[0x3]: type 0x0, count 0x0 out_group[0x4]: type 0x0, count 0x0 out_group[0x5]: type 0x0, count 0x0 out_group[0x6]: type 0x0, count 0x0 out_group[0x7]: type 0x0, count 0x0 nb_in_groups: 0x2 out_group[0x0]: type 0x0, count 0x2 out_group[0x1]: type 0x5, count 0x2 out_group[0x2]: type 0x1, count 0x2 out_group[0x3]: type 0x0, count 0x0 out_group[0x4]: type 0x0, count 0x0 out_group[0x5]: type 0x0, count 0x0 out_group[0x6]: type 0x0, count 0x0 out_group[0x7]: type 0x0, count 0x0 nb_midi_out: 0x1 nb_midi_in: 0x1 max_sample_rate: 0x17700 min_sample_rate: 0x7D00 dsp_version: 0x0 arm_version: 0x4080000 mixer_playback_channels: 0x6 mixer_capture_channels: 0x4 fpga_version: 0x3000200 nb_1394_playback_channels_2x: 0x6 nb_1394_capture_channels_2x: 0x4 nb_1394_playback_channels_4x: 0x6 nb_1394_capture_channels_4x: 0x4
-D
On 03/09/2013 07:30 AM, Takashi Sakamoto wrote:
Dear Doug,
I'm a newcomer of ALSA project and currently working for snd-fireworks. Then I have a favour of you. (My first name is the same one that ALSA core developer has. But I'm newcomer Takashi)
Unfortunatelly my post isn't delivered by mailman of alsa-devel@alsa-project.org. But I'm not a professional for mailman or SMTP so it takes a bit time that I debut in alsa-devel...
Well, my source is here. https://github.com/takaswie/snd-firewire-improve
It's a bit worse to you because current source has a lack of some functions that Clemens' snd-fireworks has.
- playback is available, capture is not. Additionally 2ch are
available (under investigating...)
- MIDI is not available
The reason is snd-firewire-lib.ko has these functions. Currently I'm working for them.
But the implementation of hardware control is almost done:
- Hardware metering/monitoring/mixing are visible via procfs, but not
configurable
- sampling rate, digital mode, digital format and clock source are
changeable via alsamixer
Hardware metering/monitoring/mixing will also be available via alsamixer after I've investigated the suitable way in ALSA's control component API.
My favor of you is "building and installing my module and give me hardware information of your AF2 and AF12". I'm working with Ubuntu and utilize DKMS for debugging my module. You can see an instruction in README.
If your Fireworks is identified by your system, there is /proc/asound/cardX/efc_hardware. If you "cat" this file, my module submit a command to your device to get hardware information and print the value. My module decide available functions refering it so it's very important.
This is the output of my device, for your information: $ cat /proc/asound/card2/efc_hardware flags: 0x625 guid_hi: 0x14860A guid_lo: 0x5B6BDB9B type: 0xAF9 version: 0x0 vendor_name: Echo Digital Audio model_name: AudioFirePre8 supported_clock: 0x1D nb_1394_playback_channels: 0x10 nb_1394_capture_channels: 0x10 nb_phys_audio_out: 0x10 nb_phys_audio_in: 0x10 nb_out_groups: 0x2 out_group[0x0]: type 0x0, count 0x8 out_group[0x1]: type 0x3, count 0x8 out_group[0x2]: type 0x0, count 0x0 out_group[0x3]: type 0x0, count 0x0 out_group[0x4]: type 0x0, count 0x0 out_group[0x5]: type 0x0, count 0x0 out_group[0x6]: type 0x0, count 0x0 out_group[0x7]: type 0x0, count 0x0 nb_in_groups: 0x2 out_group[0x0]: type 0x0, count 0x8 out_group[0x1]: type 0x3, count 0x8 out_group[0x2]: type 0x0, count 0x0 out_group[0x3]: type 0x0, count 0x0 out_group[0x4]: type 0x0, count 0x0 out_group[0x5]: type 0x0, count 0x0 out_group[0x6]: type 0x0, count 0x0 out_group[0x7]: type 0x0, count 0x0 nb_midi_out: 0x1 nb_midi_in: 0x1 max_sample_rate: 0x17700 min_sample_rate: 0x7D00 dsp_version: 0x0 arm_version: 0x5050000 mixer_playback_channels: 0x10 mixer_capture_channels: 0x10 fpga_version: 0x4010100 nb_1394_playback_channels_2x: 0xC nb_1394_capture_channels_2x: 0xC nb_1394_playback_channels_4x: 0xA nb_1394_capture_channels_4x: 0xA
Kind Regards
Takashi Sakamoto o-takashi@sakamocchi.jp
(2013年03月09日 06:49), Doug McLain wrote:
I have been building and using the fireworks driver from alsa-kprivate/fireworks for a few years now with my AF2 and AF12. The driver works great for me, although every so often after a kernel update, compilation breaks and I have to hack at it a little bit to get it to build again.
Are there any plans to include this driver into the kernel?
Hi Doug,
I note that your system cannot communicate to your device via FFADO because the device is already used by my module. You can execute "modprobe -r snd-fireworks" if you want to use FFADO.
Interestingly though, I have been running 5.7 for a couple years using the snd-fireworks driver with no problems. I have no use for the mixer on the AF12 after I initially set it up way before the firmware problem came about, so I never noticed anything was wrong. Your driver now discovers the AF12 fine:
Mmm, interesting... I want to investigate after implementation of multichannel playback and capture.
Anyway I commit your log. https://github.com/takaswie/snd-firewire-improve/commit/d6431ad8719401134061...
Your driver now discovers the AF12 fine:
Then I hope you to try playback.I reccomend below process: 1. use alsamixer to change sampling rate that you hope 2. use jackd in usual way, or aplay with plughw interface 3. hear 1/2ch or not
Thanks
Takashi Sakamoto o-takashi@sakamocchi.jp
(2013年03月10日 16:28), Doug McLain wrote:
After realizing that the ffado-mixer also didn't work on my AF12, I found that echo firmware > 4.8 broke ffado for the AF12 & AF8:
http://subversion.ffado.org/ticket/360
Interestingly though, I have been running 5.7 for a couple years using the snd-fireworks driver with no problems. I have no use for the mixer on the AF12 after I initially set it up way before the firmware problem came about, so I never noticed anything was wrong. Your driver now discovers the AF12 fine:
$ cat /proc/asound/card1/efc_hardware flags: 0x11 guid_hi: 0x14860F guid_lo: 0xC44A84A6 type: 0xAF12 version: 0x0 vendor_name: Echo Digital Audio model_name: AudioFire12 supported_clock: 0x5 nb_1394_playback_channels: 0xC nb_1394_capture_channels: 0xC nb_phys_audio_out: 0xC nb_phys_audio_in: 0xC nb_out_groups: 0x1 out_group[0x0]: type 0x0, count 0x12 out_group[0x1]: type 0x0, count 0x0 out_group[0x2]: type 0x0, count 0x0 out_group[0x3]: type 0x0, count 0x0 out_group[0x4]: type 0x0, count 0x0 out_group[0x5]: type 0x0, count 0x0 out_group[0x6]: type 0x0, count 0x0 out_group[0x7]: type 0x0, count 0x0 nb_in_groups: 0x1 out_group[0x0]: type 0x0, count 0x12 out_group[0x1]: type 0x0, count 0x0 out_group[0x2]: type 0x0, count 0x0 out_group[0x3]: type 0x0, count 0x0 out_group[0x4]: type 0x0, count 0x0 out_group[0x5]: type 0x0, count 0x0 out_group[0x6]: type 0x0, count 0x0 out_group[0x7]: type 0x0, count 0x0 nb_midi_out: 0x1 nb_midi_in: 0x1 max_sample_rate: 0x2EE00 min_sample_rate: 0x7D00 dsp_version: 0x4080000 arm_version: 0x4080000 mixer_playback_channels: 0xC mixer_capture_channels: 0xC fpga_version: 0x0 nb_1394_playback_channels_2x: 0xC nb_1394_capture_channels_2x: 0xC nb_1394_playback_channels_4x: 0xC nb_1394_capture_channels_4x: 0xC
Interestingly though, I've been running
I note that your system cannot communicate to your device via FFADO because the device is already used by my module. You can execute "modprobe -r snd-fireworks" if you want to use FFADO.
That's not true. The ffado tools (the mixer, the discovery & diagnostic tools, etc) work fine whether or not the alsa module is loaded, and whether or not jack is running on the device. The problem with the AF12 and your driver was whatever the problem is with ffado and AF firmware > 4.8. Somehow the Clemens snd-fireworks driver was unaffected. I dont know enough about the driver and hardware to understand why, but I'm sure you will figure it out. I'm glad to see progress on this driver so do not hesitate to ask for anything.
Then I hope you to try playback.I reccomend below process:
- use alsamixer to change sampling rate that you hope
- use jackd in usual way, or aplay with plughw interface
- hear 1/2ch or not
Alsamixer successfully changes SR and clock source. I started jack and played back and edited an ardour session with no problems. As you said earlier, capture doesn't work. the ports are there but no signal. Once that works Ill start using this driver full time.
-D
Doug,
Then I hope you to try playback.I reccomend below process:
- use alsamixer to change sampling rate that you hope
- use jackd in usual way, or aplay with plughw interface
- hear 1/2ch or not
Alsamixer successfully changes SR and clock source. I started jack and played back and edited an ardour session with no problems. As you said earlier, capture doesn't work. the ports are there but no signal. Once that works Ill start using this driver full time.
I'm glad to hear it. I believe you can playback with any sampling rate, 32.0 - 96.0 kHz for AudioFire2, 32.0 - 192.0 kHz for AudioFire12.
But I cannot hear all of channels which I send. My AudioFirePre8 can playback 16ch (differed in current sampling rate). When I playback 16ch with aplay or jackd, I can hear only 1/2ch physical output...
I hope you to confirm this on your devices.
Currently my driver fully utilize ALSA's snd-firewire-lib.ko to transmitting (and receiving) stream. But snd-firewire-lib.ko has no codes for receiving (=PCM capturing). I'm under working for this.
Thanks
Takashi Sakamoto o-takashi@sakamocchi.jp
(Mar 10 2013 18:30), Doug McLain wrote:
I note that your system cannot communicate to your device via FFADO because the device is already used by my module. You can execute "modprobe -r snd-fireworks" if you want to use FFADO.
That's not true. The ffado tools (the mixer, the discovery & diagnostic tools, etc) work fine whether or not the alsa module is loaded, and whether or not jack is running on the device. The problem with the AF12 and your driver was whatever the problem is with ffado and AF firmware > 4.8. Somehow the Clemens snd-fireworks driver was unaffected. I dont know enough about the driver and hardware to understand why, but I'm sure you will figure it out. I'm glad to see progress on this driver so do not hesitate to ask for anything.
Then I hope you to try playback.I reccomend below process:
- use alsamixer to change sampling rate that you hope
- use jackd in usual way, or aplay with plughw interface
- hear 1/2ch or not
Alsamixer successfully changes SR and clock source. I started jack and played back and edited an ardour session with no problems. As you said earlier, capture doesn't work. the ports are there but no signal. Once that works Ill start using this driver full time.
-D
participants (2)
-
Doug McLain
-
Takashi Sakamoto