From owner-freebsd-current@FreeBSD.ORG Thu Jun 12 06:15:19 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E0B9837B405 for ; Thu, 12 Jun 2003 06:15:19 -0700 (PDT) Received: from parmenides.zen.co.uk (parmenides.zen.co.uk [212.23.8.69]) by mx1.FreeBSD.org (Postfix) with SMTP id 5F5E243FAF for ; Thu, 12 Jun 2003 06:15:18 -0700 (PDT) (envelope-from tony@ubik.demon.co.uk) Received: (qmail 13215 invoked from network); 12 Jun 2003 13:15:14 -0000 Received: from protagoras.zen.co.uk (212.23.8.61) by parmenides.zen.co.uk with QMQP; 12 Jun 2003 13:15:14 -0000 Received: from dsl-217-155-183-134.zen.co.uk (HELO ubik.demon.co.uk) (217.155.183.134) by protagoras.zen.co.uk with SMTP; 12 Jun 2003 13:15:14 -0000 X-Zen-Trace: 217.155.183.134 Message-ID: Date: Thu, 12 Jun 2003 13:14:17 +0000 To: Craig Boston , current@FreeBSD.org From: Anthony Naggs References: <1055260269.91337.127.camel@owen1492.uf.corelab.com> <20030611224538.GB10822@genius.tao.org.uk> <20030612002139.GT26807@cicely12.cicely.de> <200306112244.10466.craig@xfoil.gank.org> In-Reply-To: <200306112244.10466.craig@xfoil.gank.org> MIME-Version: 1.0 X-Mailer: Turnpike Integrated Version 5.01 U cc: Bernd Walter cc: Josef Karthauser cc: ticso@cicely.de Subject: Re: *IT WORKS* Re: CardBus USB 2.0 Controller (NEC uPD) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jun 2003 13:15:20 -0000 In article <200306112244.10466.craig@xfoil.gank.org>, Craig Boston writes >Believe it or not, after futzing with the debugger for hours, reading the OHCI >spec, and trying to figure out why writing to the control registers works >exactly as it should but the card seems to ignore the ED list, I decided to >try something completely crazy and put the line > >pci_enable_busmaster(self); > >near the top of ohci_attach() in ohci_pci.c > >...and it worked! I believe my first words upon seeing "ums0: " >were "You have GOT to be kidding me." Great news. >I'm attaching a (trivial) patch for the lazy :) Be advised, this is far from >a general solution as it probably breaks some (many?) PCI-based controllers >that don't support bus mastering. Sorry, I don't understand this comment. All OHCI, UHCI & EHCI USB controllers need PCI bus mastering in order to read & update their various lists of pending & completed transfers. Without bus mastering the system CPU has to do all this stuff in an interrupt handler. This can be quite a heavy cpu load, and is not attractive on a PC. (I've outlined this before, on hackers@. E.g. the ScanLogic SL811 needs an interrupt for every packet transfer, and Philips PHCI devices [e.g. ISP1160] needs a whole frame's worth of data to read & written every ms.) Cheers, Tony