From: Jeff Garzik <jgarzik@pobox.com>
To: Stan Hoeppner <stan@hardwarefreak.com>
Cc: Robert Hancock <hancockrwd@gmail.com>, linux-ide@vger.kernel.org
Subject: Re: kernel 2.6.31.1 + Sil 3512 + WDC WD5000AAKS-00V1A0 = no NCQ and UDMA5 instead of UDMA6
Date: Sat, 19 Dec 2009 18:29:19 -0500 [thread overview]
Message-ID: <4B2D61CF.2010901@pobox.com> (raw)
In-Reply-To: <4B2D5EA9.1040106@hardwarefreak.com>
On 12/19/2009 06:15 PM, Stan Hoeppner wrote:
> Robert Hancock put forth on 12/19/2009 12:16 PM:
>> On 12/18/2009 01:51 PM, Stan Hoeppner wrote:
>>> Robert Hancock put forth on 12/17/2009 11:00 PM:
>>>> On Thu, Dec 17, 2009 at 10:34 PM, Stan
>>>> Hoeppner<stan@hardwarefreak.com> wrote:
>>>
>>>>> So, how does this "phantom" UDMA setting affect either libata or
>>>>> sata_sil? If it effects nothing, why is it hanging around? Is this a
>>>>> backward compatibility thing for the kernel's benefit? I'm not a
>>>>> kernel
>>>>> hacker or programmer (yet), so please forgive my ignorant questions.
>>>>
>>>> It doesn't affect either the driver or the controller. Only the drive
>>>> may possibly care - that would be if there's a SATA-to-PATA bridge
>>>> involved (as some early SATA drives had internally, for example) and
>>>> there's an actual PATA bus that needs to be programmed properly for
>>>> speed. Other than that, it's basically vestigial.
>>>
>>> So in sata_sil.c version 2.4, the following are only present in the case
>>> one of these early drives with an onboard PATA-SATA bridge is connected?
>>>
>>> SIL_QUIRK_UDMA5MAX = (1<< 1),
>>>
>>> } sil_blacklist [] = {
>>>
>>> { "Maxtor 4D060H3", SIL_QUIRK_UDMA5MAX },
>>>
>>>
>>> static const struct ata_port_info sil_port_info[] = {
>>> /* sil_3512 */
>>> {
>>> .flags = SIL_DFL_PORT_FLAGS |
>>> SIL_FLAG_RERR_ON_DMA_ACT,
>>> .pio_mask = ATA_PIO4,
>>> .mwdma_mask = ATA_MWDMA2,
>>> .udma_mask = ATA_UDMA5,
>>> .port_ops =&sil_ops,
>>> },
>>>
>>> * 20040111 - Seagate drives affected by the Mod15Write bug are
>>> blacklisted
>>> * The Maxtor quirk is in the blacklist, but I'm keeping the
>>> original
>>> * pessimistic fix for the following reasons...
>>> * - There seems to be less info on it, only one device gleaned
>>> off the
>>> * Windows driver, maybe only one is affected. More info would be
>>> greatly
>>> * appreciated.
>>> * - But then again UDMA5 is hardly anything to complain about
>>>
>>> /* limit to udma5 */
>>> if (quirks& SIL_QUIRK_UDMA5MAX) {
>>> if (print_info)
>>> ata_dev_printk(dev, KERN_INFO, "applying
>>> Maxtor "
>>> "errata fix %s\n", model_num);
>>> dev->udma_mask&= ATA_UDMA5;
>>> return;
>>> }
>>>
>>>
>>> Might it be beneficial, if merely to keep people like myself from asking
>>> questions, to set the default for the 3512 to UDMA6 max instead of UDMA5
>>> max, and only set UDMA5 in the case of a blacklisted Maxtor? I'm sure
>>> I'm not the first person to see in dmesg that my drive is showing
>>> UDMA/133 capability but sata_sil is "limiting" the drive to UDMA/100.
>>> If this setting is merely window dressing for all but the oldest borked
>>> SATA1 drives with bridge chips, why not fix up this code so it at least
>>> "appears" the controller is matching the mode the new pure SATA drive is
>>> reporting?
>>
>> For whatever reason the sata_sil driver only indicates it supports
>> UDMA5, not UDMA6. So it appears that Maxtor quirk doesn't really do
>> anything, all drivers will only get programmed as UDMA5 max anyway.
>
> According to the source comments Jeff seems to hint that it's a conscious
> decision he made for sata_sil chips, although he doesn't elaborate as to all the
> "why's" in the comments. Jeff, would you shed more light on this please? It
> probably makes no difference in my case, I'm just curious.
Which source comments?
I do not recall why sata_sil is limited to udma5. udma5 limit does
predate the now-ancient conversion of udma_mask from 0x3f to ATA_UDMA5.
According to the SiI docs and sample code, it seems like udma6 is
supported by the hardware.
As you are guessing, s/ATA_UDMA5/ATA_UDMA6/ is unlikely to make any
measurable difference.
Jeff
next prev parent reply other threads:[~2009-12-19 23:29 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-17 14:16 kernel 2.6.31.1 + Sil 3512 + WDC WD5000AAKS-00V1A0 = no NCQ and UDMA5 instead of UDMA6 Stan Hoeppner
2009-12-17 18:01 ` Jeff Garzik
2009-12-18 2:22 ` Stan Hoeppner
2009-12-18 3:10 ` Jeff Garzik
2009-12-18 3:49 ` Stan Hoeppner
2009-12-18 4:05 ` Robert Hancock
2009-12-18 4:34 ` Stan Hoeppner
2009-12-18 5:00 ` Robert Hancock
2009-12-18 19:51 ` Stan Hoeppner
2009-12-19 18:16 ` Robert Hancock
2009-12-19 23:15 ` Stan Hoeppner
2009-12-19 23:29 ` Jeff Garzik [this message]
2009-12-20 0:08 ` Stan Hoeppner
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=4B2D61CF.2010901@pobox.com \
--to=jgarzik@pobox.com \
--cc=hancockrwd@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=stan@hardwarefreak.com \
/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;
as well as URLs for NNTP newsgroup(s).