Re: sharing interrupt between PCI device
From: Robert Hancock
Date: Tue Nov 11 2008 - 13:49:22 EST
Altobelli, David wrote:
On Mon, Nov 10, 2008 at 4:01 PM, Nobin Mathew <nobin.mathew@xxxxxxxxx> wrote:
Yes USB Virtual Controller has input devices like keyboard and mouse
(routed through hpilo card (remote console)), so those things stops
working when we remove hpilo driver.
That is not quite correct. Nothing is routed through hpilo.
The problem is that there is a shared hardware resource in iLO function 2 (hpilo),
and it is used by iLO function 4 (uhci_hcd kdb/mouse). When hpilo is unloaded,
the pci_device_disable() call removes the ability for this function to act as a
busmaster, which stops the uhci_hcd from functioning correctly.
Reloading hpilo will enable the remote console again.
Removing the pci_disable_device() "fixes" the problem, but doing that worries me.
I suspect that removing the pci_disable_device in that driver is
probably the best solution. It's not really mandatory to disable the
device in all cases, we have other devices that have similar issues and
so can't be disabled. As long as it can't generate interrupts or
otherwise affect the system after the module is unloaded (but it sounds
like it doesn't use interrupts anyway).
It's not really a good hardware design (mucking with one PCI function on
the device shouldn't disable functionality on other functions), but what
can you do..
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/