From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: [Alsa-devel] Re: Help! HDSP firmware suddenly fails to load... Date: Wed, 26 Jan 2005 10:32:47 +0100 Message-ID: References: <1106621237.3554.27.camel@localhost.localdomain> <1106634961.14021.28.camel@cmn37.stanford.edu> <1106703090.15847.1384.camel@cmn37.stanford.edu> Mime-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen") Content-Type: multipart/mixed; boundary="Multipart_Wed_Jan_26_10:32:47_2005-1" Return-path: In-Reply-To: <1106703090.15847.1384.camel@cmn37.stanford.edu> Sender: planetccrma-admin@ccrma.Stanford.EDU Errors-To: planetccrma-admin@ccrma.Stanford.EDU List-Help: List-Post: List-Subscribe: , List-Unsubscribe: , List-Archive: To: Fernando Lopez-Lezcano Cc: "Michael E. Smith" , planetccrma@ccrma.Stanford.EDU, alsa-devel List-Id: alsa-devel@alsa-project.org --Multipart_Wed_Jan_26_10:32:47_2005-1 Content-Type: text/plain; charset=US-ASCII At 25 Jan 2005 17:31:30 -0800, Fernando Lopez-Lezcano wrote: > > On Mon, 2005-01-24 at 22:36, Fernando Lopez-Lezcano wrote: > > On Mon, 2005-01-24 at 18:47, Michael E. Smith wrote: > > > [MUNCH] > > > Both machines refuse to load the firmware similarly, but not quite the > > > same. To wit, the laptop (cardbus/digiface) consistantly produces the > > > above error, while the desktop (pci/digiface) does it once and then > > > doesn't see a card at all. > > > > > > It does, however, show up (on both machines) on an lspci listing. Also, > > > snd-hdsp shows up in lsmod. > > > > > > dmesg snippet: > > > > > > ALSA /usr/src/rpm/BUILD/alsa-driver-1.0.8/alsa-kernel/pci/rme9652/hdsp.c:647: > > > Hammerfall-DSP: no Digiface or Multiface connected! > > > ALSA /usr/src/rpm/BUILD/alsa-driver-1.0.8/alsa-kernel/pci/rme9652/hdsp.c:5086: > > > card initialization pending : waiting for firmware > > > > > > It would appear as though the firmware is attempting to be loaded > > > automatically at some point during user login (I can see from the lights > > > on the digiface), resulting in the error even before I attempt to load > > > it using hdsploader. > [MUNCH] > > I think it is alsa 1.0.8. From what I've read it has changed the way in > > which it loads (surprise!) firmware. It now uses the hotplug subsystem. > > Darn!. I thought it was working fine as some people have reported > > success with echoaudio cards (which now have a driver included in 1.0.8 > > and also require firmware downloads). Apparently not. > > Did you manage to do more tests? And/or get more information from dmesg > or /var/log/messages regarding the firmware load? > > I just installed a 9652 + DigiFace on a test machine and while I had > some problems the firmware was loaded and eventually the card worked > fine. This is, regretfully, on fc3 so there may be problems that are > specific to fc2 then. > > On the first try after a reboot the card, for some reason, does not come > up. I suspect a problem with udev... this is what I find in > /var/log/messages on that first try: > > ===== > eth0: VIA Networking Velocity Family Gigabit Ethernet Adapter > eth0: Ethernet Address: 00:50:8D:E9:46:F5 > ACPI: PCI interrupt 0000:00:09.0[A] -> GSI 17 (level, low) -> IRQ 17 > hm: ioapic cache empty for irq 17 (e:00000000/d:00010000) 0001a9b1 > ALSA > /usr/src/rpm/BUILD/alsa-driver-1.0.8/pci/rme9652/../../alsa-kernel/pci/rme9652/hdsp.c:662: loading firmware > ALSA > /usr/src/rpm/BUILD/alsa-driver-1.0.8/pci/rme9652/../../alsa-kernel/pci/rme9652/hdsp.c:700: finished firmware loading > ALSA > /usr/src/rpm/BUILD/alsa-driver-1.0.8/pci/rme9652/../../alsa-kernel/pci/rme9652/hdsp.c:5110: Firmware already loaded, initializing card. > ALSA /usr/src/rpm/BUILD/alsa-driver-1.0.8/acore/control.c:322: control > 3:0:0:IEC958 Playback Default:0 is already present > ALSA > /usr/src/rpm/BUILD/alsa-driver-1.0.8/pci/rme9652/../../alsa-kernel/pci/rme9652/hdsp.c:4879: Error creating ctl interface > RME Hammerfall DSP: probe of 0000:00:09.0 failed with error -16 > ===== Could you try the attached patch? Takashi --Multipart_Wed_Jan_26_10:32:47_2005-1 Content-Type: text/plain; charset=US-ASCII Index: alsa-kernel/pci/rme9652/hdsp.c =================================================================== RCS file: /suse/tiwai/cvs/alsa/alsa-kernel/pci/rme9652/hdsp.c,v retrieving revision 1.81 diff -u -r1.81 hdsp.c --- alsa-kernel/pci/rme9652/hdsp.c 14 Jan 2005 19:50:48 -0000 1.81 +++ alsa-kernel/pci/rme9652/hdsp.c 26 Jan 2005 09:31:43 -0000 @@ -4974,15 +4974,7 @@ if ((err = snd_hdsp_load_firmware_from_cache(hdsp)) < 0) return err; - - if (!(hdsp->state & HDSP_InitializationComplete)) { - snd_hdsp_initialize_channels(hdsp); - snd_hdsp_initialize_midi_flush(hdsp); - if ((err = snd_hdsp_create_alsa_devices(hdsp->card, hdsp)) < 0) { - snd_printk("error creating alsa devices\n"); - return err; - } - } + return 0; } #endif @@ -5082,12 +5074,19 @@ } if (!is_9652 && !is_9632 && hdsp_check_for_iobox (hdsp)) { +#ifdef HDSP_FW_LOADER + if ((err = hdsp_request_fw_loader(hdsp)) < 0) { + snd_printk(KERN_ERR "hdsp: can't load firmware\n"); + return err; + } +#else /* no iobox connected, we defer initialization */ snd_printk("card initialization pending : waiting for firmware\n"); if ((err = snd_hdsp_create_hwdep(card, hdsp)) < 0) { return err; } return 0; +#endif } if ((err = snd_hdsp_enable_io(hdsp)) != 0) { @@ -5096,8 +5095,10 @@ if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) { #ifdef HDSP_FW_LOADER - if ((err = hdsp_request_fw_loader(hdsp)) < 0) + if ((err = hdsp_request_fw_loader(hdsp)) < 0) { + snd_printk(KERN_ERR "hdsp: can't load firmware\n"); return err; + } #else snd_printk("card initialization pending : waiting for firmware\n"); if ((err = snd_hdsp_create_hwdep(card, hdsp)) < 0) { --Multipart_Wed_Jan_26_10:32:47_2005-1--