[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: take 2: MI overrides of bus_dma(9), bus_space(9), pci(9)
On Thu, Apr 08, 2010 at 09:15:38AM +0200, Hans Petter Selasky wrote:
> On Thursday 08 April 2010 02:10:28 David Young wrote:
> > I would like for MI drivers to be able to override pci(9), bus_space(9),
> > and bus_dma(9) behavior for the purpose of handling exceptions, managing
> > bus resources, creating test harnesses, and counting events.
> > Matt Thomas nudged me in some private discussions to leave MD the
> > bus_space_tag_t and pci_chipset_tag_t, instead of embedding an MI tag,
> > and to let each architecture provide its own implementation of an
> > MI override functions for bus_space(9) and pci(9). Matt powerfully
> > influenced the look of the override API.
> If for example a PCI device is behind an USB interface, should the bus space
> methods take a mutex argument to allow sleeping which is due to the fact that
> USB cannot complete the I/O operation immediately?
bus_space_read_4() and family are called from interrupt context, where
sleeping is not allowed. I suppose that if the kernel can initiate
USB requests from interrupt context, and if the USB host controller
interrupts occur at a higher priority than any PCI interrupt handler,
bus_space_read_4() could spin-wait for a read to complete. Would it
even be worth the trouble to make it work?
Does a USB-to-PCI bridge exist?
David Young OJC Technologies
dyoung%ojctech.com@localhost Urbana, IL * (217) 278-3933
Main Index |
Thread Index |