* Can multiple device drivers *share* a PCI bridge?
@ 2001-04-26 17:27 Friedrich Steven E CONT CNIN
2001-04-26 21:10 ` H. Peter Anvin
0 siblings, 1 reply; 2+ messages in thread
From: Friedrich Steven E CONT CNIN @ 2001-04-26 17:27 UTC (permalink / raw)
To: Linux Kernel List (E-mail)
I have 5 IP modules (Industry Pak I/O) that plug onto an IP carrier. The
carrier has a bridge that gets found via vendor ID/device ID, but the *sub*
devices don't show up as distinct pci devices. I'm using the *new*
approach, i.e., defining a pci_device_id struct that has been initialized
with vendirID/deviceID pairs I'm supporting.
When my module loads, the kernel calls my probe routine. If my probe
routine returns 0, then this pci device is essentially locked to my device
driver. How can I share that pci device with multiple drivers? My current
thoughts are to simply make a *unified* driver that supports the various IP
modules. That unified driver is not a general solution, but it would be ok
for this project. I'm curious about how to develop a general solution to
this problem. I believe any user of these IP modules would want to be able
to mix-n-match IP modules at will, merely adding device drivers, not having
a unified driver.
Steven Friedrich
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Can multiple device drivers *share* a PCI bridge?
2001-04-26 17:27 Can multiple device drivers *share* a PCI bridge? Friedrich Steven E CONT CNIN
@ 2001-04-26 21:10 ` H. Peter Anvin
0 siblings, 0 replies; 2+ messages in thread
From: H. Peter Anvin @ 2001-04-26 21:10 UTC (permalink / raw)
To: linux-kernel
Followup to: <AF6E1CA59D6AD1119C3A00A0C9893C9A04F57136@cninexchsrv01.crane.navy.mil>
By author: Friedrich Steven E CONT CNIN <friedrich_s@crane.navy.mil>
In newsgroup: linux.dev.kernel
>
> I have 5 IP modules (Industry Pak I/O) that plug onto an IP carrier. The
> carrier has a bridge that gets found via vendor ID/device ID, but the *sub*
> devices don't show up as distinct pci devices. I'm using the *new*
> approach, i.e., defining a pci_device_id struct that has been initialized
> with vendirID/deviceID pairs I'm supporting.
>
> When my module loads, the kernel calls my probe routine. If my probe
> routine returns 0, then this pci device is essentially locked to my device
> driver. How can I share that pci device with multiple drivers? My current
> thoughts are to simply make a *unified* driver that supports the various IP
> modules. That unified driver is not a general solution, but it would be ok
> for this project. I'm curious about how to develop a general solution to
> this problem. I believe any user of these IP modules would want to be able
> to mix-n-match IP modules at will, merely adding device drivers, not having
> a unified driver.
>
A properly designed device should have a separate PCI function (with
its own VID/DID) for each of the subdevices. That's what the PCI
functions are all about. Your device is doing something nonstandard,
so you need a shim device to handle its nonstandard decoding.
-hpa
--
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2001-04-26 21:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-04-26 17:27 Can multiple device drivers *share* a PCI bridge? Friedrich Steven E CONT CNIN
2001-04-26 21:10 ` H. Peter Anvin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox