emu1010k firmware does not properly load in 13.04 with kernel 3.8.0

Bug #1174325 reported by Eriks Dobelis
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Expired
Low
Unassigned

Bug Description

emu1010k firmware does not load in 13.04 with kernel 3.8.0.
With kernel 12.10, kernel 3.5 it was working, but to make it properly load after hibernation I had to compile it into kernel with:
CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE="emu/emu1010b.fw emu/micro_dock.fw emu/hana.fw"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"

With 3.8.0 it neither loads from the start, nor after hibernation even with above lines compiled into kernel. Log files don't show error, but repeat msg on loading firmware. Once in few seconds everything freezes momentarily. If I switch off the dock, then it does not freeze (and obviously card does not work).
If I boot into Windows and reboot into Ubuntu, card works ok (as Windows probably load firmware, I didn't switch off the external dock during reboot).

I have found somewhat similar bug in ArchLinux for kernel 3.8.6 and related soundcard: https://bugs.archlinux.org/task/34865 , which was said to be fixed in 3.8.8.

From dmesg grepping on emu:

[ 18.761448] emu1010: Special config.
[ 18.761565] emu1010: EMU_HANA_ID = 0x3f
[ 18.761567] emu1010: firmware file = emu/emu1010b.fw, size = 0x11bdc
[ 20.886648] emu1010: Hana Firmware loaded
[ 20.886695] emu1010: Hana version: 1.6
[ 20.886752] emu1010: Card options = 0x8
[ 20.886776] emu1010: Card options = 0x8
[ 20.887270] emu1010: Card options3 = 0x8

and later:

[ 21.902321] emu1010: Loading Audio Dock Firmware
[ 24.015264] emu1010: EMU_HANA+DOCK_IRQ_STATUS = 0x0
[ 24.015290] emu1010: EMU_HANA+DOCK_ID = 0x15
[ 24.015291] emu1010: Audio Dock Firmware loaded
[ 25.033274] emu1010: Loading Audio Dock Firmware
[ 27.178915] emu1010: EMU_HANA+DOCK_IRQ_STATUS = 0x0
[ 27.178939] emu1010: EMU_HANA+DOCK_ID = 0x15
[ 27.178940] emu1010: Audio Dock Firmware loaded
[ 28.196237] emu1010: Loading Audio Dock Firmware
[ 30.336768] emu1010: EMU_HANA+DOCK_IRQ_STATUS = 0x0
[ 30.336793] emu1010: EMU_HANA+DOCK_ID = 0x15
[ 30.336793] emu1010: Audio Dock Firmware loaded
etc., etc.

Revision history for this message
Nick Cages (awagekus+ubuntu) wrote :

I have exactly the same problem.

One thing to note is that if you read the dmesg log without grepping, there is a line right after every "emu1010: Audio Dock Firmware loaded" line stating the Audio Dock version is "0.0", meaning that the module is failing to read both major and minor version numbers.

Also, I found a work around that at least works for me.
1. Reboot to kernel 3.5.x using GRUB
    The firmware should load without problem
    (although nothing else works because everything is built against 3.8 kernel)
2. Don't turn off the micro dock and reboot back to kernel 3.8

It seems that as long as I don't turn off the dock, it keeps working even after system reboot/shutdowns.

Revision history for this message
Eriks Dobelis (eriks00) wrote :

I have emu 1616m PCI card.

Apparently booting 3.5.x achieves something similar as booting Windows.

This is how dmesg looks after I have booted Windows, rebooted into Ubuntu with kernel 3.8. As I wrote, in such case everything works. Interestingly Card options is 0x4 instead of 0x8. And there are no lines with audio dock firmware loading.

[ 18.169454] emu1010: Special config.
[ 18.169572] emu1010: EMU_HANA_ID = 0x3f
[ 18.169573] emu1010: firmware file = emu/emu1010b.fw, size = 0x11bdc
[ 20.310378] emu1010: Hana Firmware loaded
[ 20.310424] emu1010: Hana version: 1.6
[ 20.310481] emu1010: Card options = 0x4
[ 20.310504] emu1010: Card options = 0x4
[ 20.311001] emu1010: Card options3 = 0x4

Is there some tool to manually control loading of the firmware? Any debugging info that could be switched on? Anybody has tried 3.8.8 or 3.9 with Ubuntu 13.04?

Revision history for this message
Eriks Dobelis (eriks00) wrote :

Nick, can you post dmesg when you boot into 3.5?

Revision history for this message
Eriks Dobelis (eriks00) wrote :

I briefly looked into code. I found out that options seem to be correct:
#define EMU_HANA_OPTION_DOCK_ONLINE 0x04 /* Audio Dock online and FPGA configured */
#define EMU_HANA_OPTION_DOCK_OFFLINE 0x08 /* Audio Dock online and FPGA not configured */

Also, EMU_HANA+DOCK_ID = 0x15 is the only value that is considered as success after trying to load microdock firmware.

On EMU_HANA+DOCK_IRQ_STATUS = 0x0 I have no idea what shall it be normally at this point. These are the values from header file:
#define EMU_HANA_IRQ_WCLK_CHANGED 0x01
#define EMU_HANA_IRQ_ADAT 0x02
#define EMU_HANA_IRQ_DOCK 0x04
#define EMU_HANA_IRQ_DOCK_LOST 0x08

Not being able to read dock major and minor rev does not sound good. Apparently firmware is not loaded successfully. No further ideas where to look.

Revision history for this message
Eriks Dobelis (eriks00) wrote :
Revision history for this message
Eriks Dobelis (eriks00) wrote :

I applied the patch to Ubuntu kernel 3.8 and the problem seems to be gone, at least it booted once.

Revision history for this message
Eriks Dobelis (eriks00) wrote :

I've been using it for couple of days without problems. Recommend for anyone experiencing the same problem.

Revision history for this message
penalvch (penalvch) wrote :

Eriks Dobelis, thank you for reporting this bug to Ubuntu. Raring reached EOL on January 27, 2014.
See this document for currently supported Ubuntu releases: https://wiki.ubuntu.com/Releases

Is this an issue in a supported release? If so, could you please execute the following command, as it will automatically gather debugging information, in a terminal:
apport-collect 1174325

affects: ubuntu → linux (Ubuntu)
Changed in linux (Ubuntu):
importance: Undecided → Low
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for linux (Ubuntu) because there has been no activity for 60 days.]

Changed in linux (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.