sb600/sb700 ohci experimental patch

John Baldwin jhb at FreeBSD.org
Mon Sep 28 14:11:06 UTC 2009


On Monday 28 September 2009 9:55:44 am Andriy Gapon wrote:
> on 28/09/2009 14:48 John Baldwin said the following:
> > I don't think you can do this because it is a "feature" to not disable SMM if 
> > ohci(4) is not loaded so that a USB keyboard works when the USB driver isn't 
> > loaded via PS/2 emulation, even when the OS is running.
> 
> Very good point.
> 
> > I am curious if we 
> > really need to do the handover for each controller or if disabling it for 
> > ohci0 effectively disables it for all controllers?  What do other OS's do?
> > 
> 
> Don't have an answer about other OSes.
> But OHCI controllers have individual "used by SMM" bits and taking over one
> controller doesn't affect the bits of the other controllers - they remain set.
> Not that it means that SMM code actually keeps on controlling them.
> 
> Actually, just checked - Linux also does it per controller:
> http://lxr.linux.no/#linux+v2.6.31/drivers/usb/host/ohci-hcd.c#L495

Hmm, it seems Linux now disables SMM for USB controllers (ohci, ehci, and uhci)
via PCI quirks rather than doing it in the device drivers themselves, which
matches your original suggestion.  I'm not sure how best to fix that while also
allowing USB to work w/o drivers loaded.

-- 
John Baldwin


More information about the freebsd-current mailing list