From: Rene Herman <rene.herman@keyaccess.nl>
To: David Brownell <david-b@pacbell.net>
Cc: "Lev A. Melnikovsky" <melnikovsky@mail.ru>,
Alessandro Suardi <alessandro.suardi@gmail.com>,
Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: ehci-hcd affects hda speed
Date: Tue, 18 Mar 2008 02:23:57 +0100 [thread overview]
Message-ID: <47DF19AD.405@keyaccess.nl> (raw)
In-Reply-To: <200803171700.26274.david-b@pacbell.net>
[-- Attachment #1: Type: text/plain, Size: 2166 bytes --]
On 18-03-08 01:00, David Brownell wrote:
> On Monday 17 March 2008, Rene Herman wrote:
>> + case PCI_VENDOR_ID_VIA:
>> + if (pdev->device == 0x3104 && pdev->revision >= 0x60) {
>
> Unless you have specific docs from VIA saying that this register
> isn't revision-specific (at least in the sense that all revisions
> after 0x60 define that bit in that way), this should probably be a
> switch on pdev->revision and just include the known-safe revisions.
I'm looking at a VIA datasheet which says the revision ID for the "VT6212 /
VT6212L PCI USB2.0 Controller" is simply 0x60. The VT61212L I myself owned
advertised a revision ID of 0x63 and Lev's VT6212L advertises 0x65.
The thing is -- you don't necesarily immediately notice this problem. I
noticed it earlier on an old system, as did Lev, but even if on a modern
system you may not immediately see an IDE throughput drop, you may still
have a sucky system.
With 0x60 documented and 0x63 and 0x65 confirmed as VT6212L, I'd personally
still go with >= 0x60 and assume either backwards-compatibility or a "don't
care" definition if some later revision were to not define this hack.
> At one point I had a table mapping those revision codes to
> specific VIA chips. Too bad I didn't keep it. ISTR that the
> VT6212 has a newer revision code than the vt8235 southbridge,
> and probably not as new as the vt8237 one...
Some googling seems to indicate that:
VT6202 = 0x5x (0x50, 0x51 at least)
VT6212 = 0x6x (0x60, 0x61, 0x63, 0x65 at least)
VT8235 = 0x82
VT8237 = 0x86
VT*800 = 0x90 (KM800Pro, VN800, K8N800, ...)
Do you want one with 0x6x? I feel it's very likely that everyone on anything
later will then still have a sucky system. Tons of people with VT8235/VT8237
around (although not me). Any quick test available for them?
> But otherwise, yes -- that's the kind of patch I'd sign off on
> after making this comment a bit more informative about how
> that 1 usec sleep time creates an amount of PCI bus hogging.
Version with 0x6x and the somewhat more expansive comment. I'd like to be
able to test VT8235/VT8237 first though...
Still totally untested ofcourse.
Rene
[-- Attachment #2: vt6212_ehci_sleep_time.diff --]
[-- Type: text/plain, Size: 1177 bytes --]
commit fd96c2b26339f21a66504cb3f36579bb312a8f3b
Author: Rene Herman <rene.herman@gmail.com>
Date: Tue Mar 18 00:02:16 2008 +0100
USB: VIA VT6212(L) 10us EHCI sleep time select.
The VIA VT6212(L) uses a 1us EHCI sleep time by default which hogs
the bus bad. Use the 10us EHCI spec value instead as suggested by
Lev A. Melnikovsky.
CC: Lev A. Melnikovsky <melnikovsky@mail.ru>
Signed-off-by: Rene Herman <rene.herman@gmail.com>
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
index 3ba0166..bdc8af9 100644
--- a/drivers/usb/host/ehci-pci.c
+++ b/drivers/usb/host/ehci-pci.c
@@ -152,6 +152,20 @@ static int ehci_pci_setup(struct usb_hcd *hcd)
break;
}
break;
+ case PCI_VENDOR_ID_VIA:
+ if (pdev->device == 0x3104 && (pdev->revision & 0xf0) == 0x60) {
+ u8 tmp;
+ /*
+ * The VT6212 defaults to a 1us EHCI sleep time which
+ * hogs the bus badly. Setting bit 5 of 0x4B sets the
+ * sleep time to the EHCI standard 10us.
+ */
+ pci_read_config_byte(pdev, 0x4b, &tmp);
+ if (tmp & 0x20)
+ break;
+ pci_write_config_byte(pdev, 0x4b, tmp | 0x20);
+ }
+ break;
}
ehci_reset(ehci);
next prev parent reply other threads:[~2008-03-18 1:23 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-04 22:27 ehci-hcd affects hda speed Lev A. Melnikovsky
2008-03-05 16:19 ` Rene Herman
2008-03-05 20:03 ` Alessandro Suardi
2008-03-05 21:03 ` David Brownell
2008-03-06 16:25 ` Alessandro Suardi
2008-03-06 20:10 ` Lev A. Melnikovsky
2008-03-10 10:11 ` Lev A. Melnikovsky
2008-03-15 22:46 ` Lev A. Melnikovsky
2008-03-17 16:15 ` Alessandro Suardi
2008-03-17 21:06 ` David Brownell
[not found] ` <47DC596A.4010800@keyaccess.nl>
[not found] ` <200803171400.40045.david-b@pacbell.net>
2008-03-17 23:23 ` Rene Herman
2008-03-17 23:26 ` Rene Herman
2008-03-18 0:00 ` David Brownell
2008-03-18 0:24 ` Lev A. Melnikovsky
2008-03-18 1:27 ` Rene Herman
2008-03-18 1:45 ` David Brownell
2008-03-18 1:23 ` Rene Herman [this message]
2008-03-18 1:55 ` David Brownell
2008-03-18 3:13 ` Rene Herman
2008-03-19 23:47 ` Lev A. Melnikovsky
2008-03-20 0:31 ` Rene Herman
2008-03-20 5:08 ` Alessandro Suardi
2008-03-20 11:35 ` Rene Herman
2008-03-20 21:01 ` Alessandro Suardi
2008-04-15 19:56 ` Lev A. Melnikovsky
2008-04-15 20:02 ` Oliver Neukum
2008-04-15 20:41 ` Lev A. Melnikovsky
2008-04-16 5:38 ` Oliver Neukum
2008-04-16 22:23 ` Lev A. Melnikovsky
2008-04-17 8:20 ` Oliver Neukum
2008-04-15 20:24 ` Rene Herman
2008-04-15 20:32 ` Rene Herman
2008-04-15 23:17 ` David Brownell
2008-04-16 22:44 ` Lev A. Melnikovsky
2008-03-18 22:02 ` Alessandro Suardi
2008-03-18 22:09 ` Rene Herman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47DF19AD.405@keyaccess.nl \
--to=rene.herman@keyaccess.nl \
--cc=alessandro.suardi@gmail.com \
--cc=david-b@pacbell.net \
--cc=linux-kernel@vger.kernel.org \
--cc=melnikovsky@mail.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox