Two drivers, one physical device: How to deal with that?
jhb at freebsd.org
Wed Jan 21 06:19:09 PST 2009
On Monday 29 December 2008 7:35:21 pm Jeff Roberson wrote:
> On Mon, 29 Dec 2008, Andre Albsmeier wrote:
> > Hello,
> > I have written a driver which attaches to the host bridge in
> > order to periodically read the appropriate registers and
> > inform the user about ECC errors (ECC-Monitor). No I have
> > run across a mainboard where the host bridge is already
> > taken by the agp driver. Of course, I can detach the agp
> > driver and attach myself and everything is working but
> > what is if someone does not want to loose the agp
> > functionality?
> > How does one deal with the case when two separate drivers
> > have to access the same device (the host bridge in my case)?
> > I assume, the correct way would be to join the AGP and
> > ECC functionality in one driver but maybe there are other
> > tricks I am not aware of?
> Well I don't think it would be correct to merge two conceptually seperate
> drivers into one just to share the same device. It sounds like the right
> solution is to make a generic layer the attaches to the host bridge and
> arbitrates access to it. Then allow other device to find and communicate
> with this generic layer. For the host bridge this doesn't have to be
> particularly fancy.
This is already the case in 7.0 and later where hostb(4) always attaches to
host bridges and agp(4) attaches to the hostb(4) devices.
More information about the freebsd-arch