Click to See Complete Forum and Search --> : snd_ioctl32 what does it do?


pjo123
02-26-2005, 08:58 AM
Hi

I have a piece of software (X-Plane) that produces absolutely no sound when the module snd_ioctl32 is installed.

removing this module, everything works OK.

I've informed the X-plane developer of my problem, but wondered what this file is actually needed for, as the sound appears to be working on every other piece of software I've tried, without this module being present.

The dmesg error I get with this module installed is:
kernel: ioctl32(X-Plane-806-ath:6257): Unknown cmd fd(8) cmd(c0384642){00} arg(ffffcec4) on /dev/nvidiactl

best

Phil

SuSE 9.2 64Bit
Gforce 6800 256MB
SB live 5.1
AMD 64 3400+

bwkaz
02-26-2005, 09:39 AM
From sound/core/ioctl32/ioctl32.c in the kernel source tree:

32bit -> 64bit ioctl wrapper for control API ...whatever that means. It looks like it's only applicable to 64-bit kernels perhaps? If that's true, and you have a 32-bit processor, leave it out.

Otherwise, it's possible that there are two different ALSA interfaces, where the old one is called "the 32-bit interface", and the new one is "the 64-bit interface". This module would then map from one interface to the other. If that's true, and if everything works without that module, then leave it out.

The dmesg error I get with this module installed is:
kernel: ioctl32(X-Plane-806-ath:6257): Unknown cmd fd(8) cmd(c0384642){00} arg(ffffcec4) on /dev/nvidiactl Um, why is this wrapper intercepting ioctl() calls on one of nVidia's device files?!?! Those are used for video, not sound. Something is definitely not right there... (As if you didn't already know that. ;))

I would bet that this module is not compatible with nVidia's, although I can't seem to find any useful information on Google, so I don't know for sure.

pjo123
02-26-2005, 12:51 PM
Thanks.

best

Phil

pjo123
02-26-2005, 05:58 PM
Originally posted by bwkaz
Um, why is this wrapper intercepting ioctl() calls on one of nVidia's device files?!?! Those are used for video, not sound. Something is definitely not right there... (As if you didn't already know that. ;))

I've noticed in SuSE's Hardware info that both the soundcard and the graphics card are using the same IRQ. Could this be something to do with this problem?

If so, how do I change the IRQ of one of the devices. Both according to the hardware monitor are on IRQ 169.

best

Phil

pjo123
02-26-2005, 06:42 PM
I'll answer that one myself :-)

I moved the sound card to a different pci slot and they now have different IRQ's.

But the problems still there.

best

Phil

bwkaz
02-26-2005, 06:54 PM
Originally posted by pjo123
Both according to the hardware monitor are on IRQ 169. That's a trick... ;)

With a "legacy" XT-PIC interrupt controller, IRQ numbers can only go up to 15. With APIC interrupt controllers, interrupts can go up to 31. But I've never seen them get as high as 169... ;)

Anyway, yes, due to the way PCI INTx pins are mapped to IRQ numbers by the PCI bus wiring and the PCI controller, you can usually move a card to a different IRQ by moving it to a different slot. But as you saw, that probably doesn't help with the ioctl() interceptions, because ioctl() is a function called by programs (in your case, either the nVidia OpenGL driver, or the nVidia X driver) to talk to kernel modules over device files.

Anyway, just a bunch of FYI. :) I'm still pretty sure that that module isn't needed, especially if you can run fine without it.

pjo123
02-26-2005, 09:06 PM
Thanks.

I thought the IRQ no's were odd, but I'm not joking, that's what SuSE says :-)


Part of my `lspci -v`

0000:00:0d.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a)
Subsystem: Creative Labs: Unknown device 100a
Flags: bus master, medium devsel, latency 64, IRQ 177
I/O ports at ec00
Capabilities: [dc] Power Management version 1

0000:00:0d.1 Input device controller: Creative Labs SB Live! MIDI/Game Port (rev 0a)
Subsystem: Creative Labs Gameport Joystick
Flags: bus master, medium devsel, latency 64
I/O ports at b000
Capabilities: [dc] Power Management version 1

0000:00:0e.0 Multimedia controller: Philips Semiconductors SAA7130 Video Broadcast Decoder (rev 01)
Subsystem: Unknown device 18d0:2100
Flags: bus master, medium devsel, latency 64, IRQ 185
Memory at f7e00000 (32-bit, non-prefetchable)
Capabilities: [40] Power Management version 1

0000:00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)
Subsystem: Asustek Computer, Inc. A7V600 motherboard
Flags: bus master, medium devsel, latency 64, IRQ 193

0000:01:00.0 VGA compatible controller: nVidia Corporation NV40 [GeForce 6800 GT] (rev a1) (prog-if 00 [VGA])
Subsystem: Unknown device 1682:2103
Flags: bus master, 66Mhz, medium devsel, latency 248, IRQ 209
Memory at f5000000 (32-bit, non-prefetchable) [size=f7800000]
Memory at e0000000 (32-bit, prefetchable) [size=256M]
Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Expansion ROM at 00020000 [disabled]
Capabilities: [60] Power Management version 2
Capabilities: [44] AGP version 3.0

bwkaz
02-27-2005, 03:35 PM
Hmm... what motherboard chipset is this?

I never thought of this: that limit might be quite a bit higher with whatever chipsets support Athlon 64 CPUs. Alternately, it might be a feature of PCI-X, though I doubt that. Do you have either?

pjo123
02-27-2005, 04:06 PM
It's a ASUS K8V mb.

Socket 754 for AMD Athlon 64
Chipset: VIA K8T800, VIA VT8237
Industry standard: PCI 2.2, USB 2.0/1.1

Doesn't have PCI-X

Under expansion ports in the MB manual, it shows the IRQ's going from 0 - 15 so maybe it's something to do with how the 64bit SuSE displays things?

pjo123
02-27-2005, 07:37 PM
While compiling the kernel, I noticed the following that was ticked. Maybe that's whats showing the high IRQ's?

Message Signaled Interrupts (MSI and MSI-X) (PCI_MSI)

This allows device drivers to enable MSI (Message Signaled
Interrupts). Message Signaled Interrupts enable a device to
generate an interrupt using an inbound Memory Write on its
PCI bus instead of asserting a device IRQ pin.

bwkaz
02-27-2005, 07:48 PM
Maybe -- I don't have any 64-bit hardware, so I'm not quite sure how it works (if it's different from 32-bit variants or not).

je_fro
03-14-2005, 08:25 AM
0000:02:09.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5703X Gigabi t Ethernet (rev 02)
Subsystem: Tyan Computer: Unknown device 2885
Flags: bus master, 66Mhz, medium devsel, latency 64, IRQ 193
Memory at fa6f0000 (64-bit, non-prefetchable) [size=fa6e0000]
Expansion ROM at 00010000 [disabled]
Capabilities: [40] PCI-X non-bridge device.
Capabilities: [48] Power Management version 2
Capabilities: [50] Vital Product Data
Capabilities: [58] Message Signalled Interrupts: 64bit+ Queue=0/3 Enable




I think IRQ's that high are due to ACPI being enabled.