From: Jeff Garzik <jeff@garzik.org>
To: Mikael Pettersson <mikpe@it.uu.se>
Cc: Tejun Heo <tj@kernel.org>, Peter Favrholdt <linux-ide@how.dk>,
linux-ide@vger.kernel.org
Subject: Re: [PATCH #upstream-fixes] sata_promise: request follow-up SRST
Date: Tue, 10 Feb 2009 16:13:32 -0500 [thread overview]
Message-ID: <4991EDFC.4010109@garzik.org> (raw)
In-Reply-To: <18833.47451.931683.294891@harpo.it.uu.se>
Mikael Pettersson wrote:
> Jeff Garzik writes:
> > Mikael Pettersson wrote:
> > > Jeff Garzik writes:
> > > > hrm.... at this point we have deviated massively from the standard
> > > > Promise method of hard reset...
> > > >
> > > > * set PMP port
> > > > * make hotplug irqs
> > > > * reset port# in PDC_GLOBAL_CTL
> > > > * pdc_reset_port()
> > > > * reset FPDMA -- probably a good idea even if not doing FPDMA
> > > > * clear SATA Error register (0xffffffff)
> > > > * clear errors-reported-from-link-layer register
> > > > * wait standard length of time for SATA connection
> > > > * clear hotplug bits
> > > > * set PMP port
> > > >
> > > > The PDC_GLOBAL_CTL bitbang is the most notable missing element in the
> > >
> > > I assume you meant the PCI control register (offset 0x48).
> > >
> > > > hard reset path, though we also miss clearing an apparently-important
> > > > error register as well. FPDMA reset would be a good idea I think, even
> > > > if not in use, mainly for paranoia's sake and because that's what
> > > > Promise's driver does.
> > >
> > > Here's a patch on top of 2.6.28-rc6 that should make sata_promise's
> > > reset sequences a closer match to what Promise's drivers do.
> > >
> > > - soft reset (pdc_reset_port):
> > > * wait for ATA engine to not be in packet command mode (2nd gen only)
> > > * write reset bit in PDC_CTLSTAT before the first read in the loop
> > > * for 2nd gen SATA follow up with FPDMA reset and clearing error status registers
> > > - hard reset (pdc_sata_hardreset):
> > > * wait for ATA engine to not be in packet command mode (2nd gen only)
> > > * reset ATA engine via the PCI control register
> > > * Tejun's change to use non-waiting hardreset + follow-up SRST
> > >
> > > I'm not changing the hotplug mask bits since they are taken care
> > > of by sata_promise's ->freeze() and ->thaw() operations. And I'm
> > > not writing the PMP port # because that's always zero (for now).
> > >
> > > Tested here on a SATAII150 TX2plus w/ two sata disks, some hdparm -y
> > > + smartctl tests which used to cause timeouts on one of those disks,
> > > and some parallel dd:s to stress things a little. No issues found.
> > > I'll test it on a 1st gen 20378 next week.
> > >
> > > Testers welcome.
> >
> > Any updates?
>
> Not really. I've kept the patch up to date for newer kernels, but
> there's been no testing by others that I know of. Do you want to
> include it in a testing branch?
I can at least make sure it is in #ALL and #NEXT, two meta-branches in
libata-dev.git that are forwarded to akpm's -mm tree and linux-next,
respectively, for wider public testing.
We can give it more-public testing and hopefully get a bit more feedback.
And you can always post to linux-kernel and linux-ide requesting
testers... that's something even non-programmers can do. Something
like "Request for SATA Promise testing" would surely get at least a few
responses...
Jeff
next prev parent reply other threads:[~2009-02-10 21:13 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-13 21:21 FYI: BUG in SATA Promise 300 TX4 (2.6.24 - 2.6.27-3) w/Linux Linda Walsh
2008-11-16 6:04 ` Tejun Heo
2008-11-16 11:08 ` Mikael Pettersson
2008-11-16 14:24 ` Tejun Heo
2008-11-16 16:48 ` Brad Campbell
2008-11-17 2:01 ` Tejun Heo
2008-11-16 17:34 ` Peter Favrholdt
2008-11-16 17:39 ` Peter Favrholdt
2008-11-17 2:01 ` Tejun Heo
2008-11-17 11:47 ` Peter Favrholdt
2008-11-18 1:11 ` Tejun Heo
2008-11-18 18:03 ` Peter Favrholdt
2008-11-19 1:55 ` Tejun Heo
2008-11-20 10:22 ` Peter Favrholdt
2008-11-20 11:10 ` Mikael Pettersson
2008-11-21 4:42 ` Tejun Heo
2008-11-21 4:56 ` [PATCH #upstream-fixes] sata_promise: request follow-up SRST Tejun Heo
2008-11-22 16:30 ` Mikael Pettersson
2008-11-23 22:38 ` Peter Favrholdt
2008-11-25 13:00 ` Peter Favrholdt
2008-11-26 2:46 ` Tejun Heo
2008-11-26 8:12 ` Peter Favrholdt
2008-11-26 23:07 ` Peter Favrholdt
2008-11-25 17:27 ` Jeff Garzik
2008-11-25 21:17 ` Mikael Pettersson
2008-11-29 21:50 ` Mikael Pettersson
2008-11-30 15:06 ` Peter Favrholdt
2009-02-10 4:30 ` Jeff Garzik
2009-02-10 17:28 ` Mikael Pettersson
2009-02-10 21:13 ` Jeff Garzik [this message]
2009-02-23 12:17 ` [PATCH #upstream-fixes] sata_promise: request follow-up SRST - it works Peter Favrholdt
-- strict thread matches above, loose matches on Subject: below --
2009-09-25 5:24 [PATCH #upstream-fixes] sata_promise: request follow-up SRST Walter Hutchins
2009-09-26 2:57 ` Robert Hancock
2009-09-26 18:42 ` Walter Hutchins
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=4991EDFC.4010109@garzik.org \
--to=jeff@garzik.org \
--cc=linux-ide@how.dk \
--cc=linux-ide@vger.kernel.org \
--cc=mikpe@it.uu.se \
--cc=tj@kernel.org \
/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).