linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: albertl@mail.com
Cc: Mikael Pettersson <mikpe@it.uu.se>,
	alan@lxorguk.ukuu.org.uk, jeff@garzik.org,
	linux-ide@vger.kernel.org
Subject: Re: [PATCH 2.6.23-rc3] pata_pdc2027x: PLL detection fixes
Date: Fri, 24 Aug 2007 20:24:55 +0400	[thread overview]
Message-ID: <46CF0657.3080004@ru.mvista.com> (raw)
In-Reply-To: <46CABEAC.3070203@tw.ibm.com>

Hello.

Albert Lee wrote:

>>>b) puts more work [the enter test mode stuff] in between the start
>>>   and and sampling points, reducing the precision of the PLL
>>>   detection; I actually observed quite noticeable differences
>>>   in detected PLL frequency based on whether the start was sampled
>>>   before or after the test mode enter code

>>   I'd think this differnce is negligible with 100 ms delay. But why not
>>-- shouldn't harm indeed (except it's better to read a stable counter
>>before than unstable one after entering test mode)?

>>>>>  The fix is to move the read of the start value to after
>>>>>  test mode is started, but before the mdelay() in test mode.

>>>>   This is not an issue, so no fix is needed.

>>>>>  This also improves the precision of the PLL detection.

>>>>   BTW, looks like we don't even need to bother reading the darn
>>>>counter beforehand: bit 1 of the indexed register 1 (the same used to
>>>>enter/exit test mode by twiddling its bit 6) when being cleared
>>>>should reset the counter to 0 

>>   Or maybe to 0x7fff?  I can't remember already -- never seen those
>>infamous Promise papers, and I was testing this code looong ago
>>already... :-)

> I've tested reloading the pata_pdc2027x module before.
> The counter seems not cleared when leaving the test mode.

     I never saud that. Counter should be cleared by resetting "test mode" bit.
But I'm seeing the cause of misinteprettion: one may think that bit 1 is used 
to clear counters but I meant to say that clearing bit 1 of that ssme register 
should clear the counters...

>>>>>2. The code to compute the number of PLL decrements during the
>>>>>  mdelay() in test mode fails to consider that the PLL counter
>>>>>  only is 30 bits wide. If there is a wraparound, it will compute
>>>>>  an incorrect and much too large value. On the PowerMac, the
>>>>>  start count is zero, the end count is a large 30-bit value, so
>>>>>  wraparound occurs and an out of bounds PLL clock is detected.

>>>>>  The fix is to mask the (start - end) computation to 30 bits.

>>>>   Yeah, that's what I've done for the old IDE driver...

>>>Except that due to what may be a typo pdc202xx_new masks to
>>>26 bits, not 30.

>>   Indeed! :-<
>>   Thanks for noticing -- this is a typo, of course... And it's a pity
>>that Albert failed to notice it when he last touched that driver...

> I was too blind to notice the wrong 26-bit mask. :(

> Fortunately with the 10ms delay used by the IDE pdc202xx_new driver,
> (start_count - end_count) is smaller than the 26-bit mask. So it
> doesn't actually damage anything.

    Yeah, I thought so.

>>>I was going to address that if/when this patch
>>>goes in.

>>   Please do, I'm too short of time.  But I guess the difference was
>>never that large, so the clipped mask worked...
>>   I wonder if the true reason of the former issue which was attibuted
>>mdelay() being imprecise...

> mdelay() is actually imprecise on my x86 PC. This can be measured by
> doing some do_gettimeofday() tests. It's quite precise when tested on
> ppc64...

    Hm...

> --
> albert

    Don't overquote, please. ;-)

MBR, Sergei


  reply	other threads:[~2007-08-24 16:22 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-19 17:17 [PATCH 2.6.23-rc3] pata_pdc2027x: PLL detection fixes Mikael Pettersson
2007-08-19 17:51 ` Sergei Shtylyov
2007-08-19 19:47   ` Jeff Garzik
2007-08-24 16:29     ` Sergei Shtylyov
2007-08-21 10:30   ` Albert Lee
2007-08-24 16:24     ` Sergei Shtylyov [this message]
2007-08-24 18:31       ` Bartlomiej Zolnierkiewicz
2007-08-24 18:44         ` Sergei Shtylyov
  -- strict thread matches above, loose matches on Subject: below --
2007-08-18 20:58 Mikael Pettersson
2007-08-18 21:25 ` Jeff Garzik
2007-08-19  0:14   ` Albert Lee
2007-08-19  0:53     ` Jeff Garzik
2007-08-19  1:03       ` Albert Lee
2007-08-19  0:01 ` Albert Lee
2007-08-19 16:13 ` Sergei Shtylyov
2007-08-23  9:32 ` Jeff Garzik

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=46CF0657.3080004@ru.mvista.com \
    --to=sshtylyov@ru.mvista.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=albertl@mail.com \
    --cc=jeff@garzik.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=mikpe@it.uu.se \
    /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).