Hi ALSA maintainers!
I'm requesting support for the Pioneer DJM-900nexus USB audio interface (VID:PID 08e4:0158).
BACKGROUND: The DJM-900nexus is the predecessor to the DJM-900NXS2, which is already supported in the kernel (quirks-table.h, mixer_quirks.c).
CURRENT BEHAVIOR: - Device enumerates successfully (lsusb shows 08e4:0158) - snd-usb-audio loads but probe fails with "cannot find UAC_HEADER" - Kernel logs: "snd-usb-audio 3-4:1.0: probe with driver snd-usb-audio failed with error -22" - Falls back to MIDI-only: "Quirk or no altset; falling back to MIDI 1.0" - No ALSA PCM devices created despite isochronous endpoints being present
DEVICE DETAILS: - Works correctly on Windows with Pioneer's driver - USB descriptor shows vendor-specific audio streaming interface (Interface 0, Class 0xFF) - Alternate Setting 1 has isochronous endpoints (EP5 OUT 0x05, EP6 IN 0x86) for audio - MIDI interface (Interface 2) works correctly on Linux
TESTING PERFORMED: - Attempted adding to new_id: echo "08e4 0158" > /sys/bus/usb/drivers/snd-usb-audio/new_id Result: Driver attempted probe but still failed with "cannot find UAC_HEADER" - Multiple replug/reload cycles - no change
REQUESTED FIX: Add quirk entry for 08e4:0158 (DJM-900nexus) following the pattern of the existing DJM-900NXS2 (2b73:000a) support. Based on the descriptor layout, this device should need similar vendor-specific handling.
The fix should involve adding USB_DEVICE_VENDOR_SPEC(0x08e4, 0x0158) entry in sound/usb/quirks-table.h with appropriate audio format definitions for: - Interface 0, Alternate Setting 1 - Playback: EP 0x05 (OUT) - Capture: EP 0x86 (IN) - Format: S24_3LE, 48kHz stereo (2 channels) - Also include MIDI on Interface 2
I've attached a proposed patch based on the DJM-900NXS2 quirk pattern.
SUPPORTING DATA ATTACHED: - djm-900nexus-quirk.patch - Proposed kernel patch - djm-dmesg.log - Kernel probe failure logs - djm-asound-cards.txt - Current ALSA state - djm-arecord.txt - arecord -l output
ENVIRONMENT: - Kernel: 6.17.10-300.fc43.x86_64 (Fedora 43) - Device firmware: bcdDevice=10.05
Since the newer DJM-900NXS2 already has full support, I believe adding support for the original nexus should be straightforward. The devices are very similar in functionality.
I'm happy to test any patches or provide additional information/traces as needed.
Thank you for considering this request!
Kind regards,
f