Interrupt 0x12 resource conflict

Hello!

I am trying to register to interrupt line 18 for for the virtual device like this:
[Standard.NTx86]
%aimisc_legacy.DeviceDesc%=aimisc_Device_legacy, Root\AIMISCDEVICEHWID ;

[aimisc_Device_legacy.NT]
CopyFiles=Drivers_Dir
LogConfig=AIMISC.LC0, AIMISC.LC1

[AIMISC.LC0]
ConfigPriority=DESIRED
IRQConfig=LS:18

[AIMISC.LC1]
ConfigPriority=NORMAL
IRQConfig=LS:18

That interrupt line is already shared between 2 devices on the system. The registration fails. The following is written in the device manager:
The error message says: Interrupt Request 0x0000012 used by ACPI x86-based PC.
BUT it is also used in other devices (so as I understand the interrupt line can be shared)

Here is the image of an error message:
http://pasteboard.co/LmRhVgBYk.jpg

Thanks a lot!
Dima.

On Mar 19, 2017, at 10:19 AM, xxxxx@gmail.com wrote:

I am trying to register to interrupt line 18 for for the virtual device like this:

That interrupt line is already shared between 2 devices on the system. The registration fails. The following is written in the device manager:
The error message says: Interrupt Request 0x0000012 used by ACPI x86-based PC.
BUT it is also used in other devices (so as I understand the interrupt line can be shared)

I’m totally confused by this. If this is a simple virtual device without hardware, then what the hell good does reserving an interrupt line do? A virtual device can’t fire a physical IRQ, so there will never be anything to respond to. And if this is intended to be used inside a virtual machine, you can create a genuine fake (there’s a phrase) piece of hardware that legitimately requests an IRQ, or at least tweak your DSDT to do the same thing.

Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim,

thanks for the answer and sorry about confusing you.

There is a REAL PHYSICAL device on the system that fires that interrupt. So the intention is that the virtual device will RESPOND to that interrupt.

That virtual device will not be used in a virtual machine.

I am trying to do exactly what Linux request_irq function does.

Regards,
Dima.

xxxxx@gmail.com wrote:

There is a REAL PHYSICAL device on the system that fires that interrupt. So the intention is that the virtual device will RESPOND to that interrupt.

Well, then, it’s not a virtual device at all. It’s a real driver for a
real device.

I am trying to do exactly what Linux request_irq function does.

How is the physical device connected? Through what bus? With most
buses, the operating system already knows what resources you need. When
your driver is loaded, your driver will automatically be assigned the
memory regions and IRQs. If it is a motherboard device, then the IRQ
assignment should be described in the ACPI DSDT, and again your driver
would be assigned the IRQ automatically.

If you are writing a driver that is not the primary driver for the
device, then you don’t get the IRQ. You have to work with the primary
driver, and use some kind of notification scheme.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.