All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Cc: albertl@mail.com, 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 22:44:17 +0400	[thread overview]
Message-ID: <46CF2701.4090904@ru.mvista.com> (raw)
In-Reply-To: <200708242031.08399.bzolnier@gmail.com>

Hello.

Bartlomiej Zolnierkiewicz 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.

     I meant to say "shouldn't".

>>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'm a bit lost in this discussion.

> Do we need some of these pata_pdc2027x fixes in pdc202xx_new or not?

    Mikael alredy has a patch fixing the clipped mask for end_time and 
start_time difference -- 0x3fffffff ISO of 0x3ffffff.

> Thanks,
> Bart

MBR, Sergei

  reply	other threads:[~2007-08-24 18:41 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
2007-08-24 18:31       ` Bartlomiej Zolnierkiewicz
2007-08-24 18:44         ` Sergei Shtylyov [this message]
  -- 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=46CF2701.4090904@ru.mvista.com \
    --to=sshtylyov@ru.mvista.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=albertl@mail.com \
    --cc=bzolnier@gmail.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 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.