Jump to content

How can I assign different IRQs for EUSB and USBE?


Riley Freeman
 Share

2 posts in this topic

Recommended Posts

Update: This isn't the fix I'm looking for it seems. I was able to disable the second USB controller in the BIOS, leaving EUSB with 17 all to itself but the errors still occured. Back to the drawing board...

 

 

 

 

I'm trying to troubleshoot Native Instruments' buggy USB audio drivers here. Basically after they added 64-bit support they introduced issues that appear in the prefpane as "USB Streaming Errors". Checking the console I found a corresponding log entry each time the error count increased:

 

de_caiaq_driver_NIUSBAudioEngine(0xffffff823f90f000): unable to submit irp for writing (0xe00002ee (UNDEFINED))

 

I'm thinking there's an issue with IRQs at play. The interface is attached to EUSB and according to IORegExp EUSB and USBE are both using 17. I'm hoping that by assigning a different IRQ to one of these it may fix the driver. But I'm not sure how to go about this.

 

Here's my EUSB DSDT entry. Can anyone show me how to assign, say, IRQ 3 to it?

 

Device (EUSB)
	 {
		 Name (_ADR, 0x001D0000)
		 Name (_S4D, 0x02)
		 Name (_S3D, 0x02)
		 Name (_S2D, 0x02)
		 Name (_S1D, 0x02)
		 Method (_DSM, 4, NotSerialized)
		 {
			 Store (Package (0x02)
				 {
					 "AAPL,clock-id",
					 Buffer (One)
					 {
						 0x01
					 }
				 }, Local0)
			 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
			 Return (Local0)
		 }

Link to comment
Share on other sites

  • 3 months later...

17 is a shared IRQ under the APIC controller, and since DSDT is remapping ACPI tables you probably don't want to map this to a nonshared IRQ here.  Usually what I do is start upstream and reset any existing allocation table in the system bios/efi of your motherboard and disable any unused components (com/parallel style {censored} if you don't use it.

 

Also are you SURE you don't have any other devices connected to the same root device?  Intel's USB controllers are a little funny, if you have a 1.0 or 1.1 device sharing with your NI audio device, you'll get a bridge adapter to separate out the high speed device and it LOOKS like they're not on separate busses but you'll notice the 1.0/1.1 devices will still fall under the primary enhanced controller in the device tree.  System profiler should obviously make it easy to see devices and where they connect in the 'tree'.  Bridge devices always appear 'under' the main enhanced controller when a slower device is present with a 2.0 device, and they 'bridge' the faster device(s) causing issues in my experience.

 

What I do is use quality hubs (there are generic ones that I've found to be IDEAL, Multi-TTM chips and 1 amp per port), then I take note of ALL of my device speeds.  Any 1.0/1.1 devices either get directly attached to the system (Novation Nocturn & my keyboard seem to work best this way) or are all on a hub so they're sharing the same port.  Suddenly you'll notice the non-"enhanced" controllers are getting used!  Now you should be able to find a port for your NI audio device that doesn't put it as sharing with any other device on that device tree. 

 

You can btw find this info under WIndows as well using a utility called USBDevView from nirsoft or I actually prefer MS's code Example from VisualStudio called USBView which has been nicely compiled for us by Uwe Sieber and provided for download on his site.

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...