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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.