linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Garzik <jeff@garzik.org>
To: Tejun Heo <tj@kernel.org>, Mikael Pettersson <mikpe@it.uu.se>
Cc: Peter Favrholdt <linux-ide@how.dk>, linux-ide@vger.kernel.org
Subject: Re: [PATCH #upstream-fixes] sata_promise: request follow-up SRST
Date: Tue, 25 Nov 2008 12:27:40 -0500	[thread overview]
Message-ID: <492C358C.7030403@garzik.org> (raw)
In-Reply-To: <49263F80.2060607@kernel.org>

Tejun Heo wrote:
> sata_promise hardreset doesn't seem to be able to acquire the initial
> D2H Reg FIS after hardreset leading to hardreset timeouts.  Request
> follow-up SRST.
> 
>  http://article.gmane.org/gmane.linux.ide/36186
> 
> Signed-off-by: Tejun Heo <tj@kernel.org>
> ---
> Peter, can you please test this one too?  It's essentially the same
> code just slightly prettier.  Mikael, what do you think about this?
> 
> Jeff, please commit only after Peter's verification and Mikael's ACK.
> 
> Thanks.
> 
>  drivers/ata/sata_promise.c |    7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
> index ba9a257..917038a 100644
> --- a/drivers/ata/sata_promise.c
> +++ b/drivers/ata/sata_promise.c
> @@ -710,7 +710,12 @@ static int pdc_sata_hardreset(struct ata_link *link, unsigned int *class,
>  			      unsigned long deadline)
>  {
>  	pdc_reset_port(link->ap);
> -	return sata_sff_hardreset(link, class, deadline);
> +
> +	/* sata_promise can't reliably acquire the first D2H Reg FIS
> +	 * after hardreset.  Do non-waiting hardreset and request
> +	 * follow-up SRST.
> +	 */
> +	return sata_std_hardreset(link, class, deadline);

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

	Jeff




  parent reply	other threads:[~2008-11-25 17:27 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 [this message]
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
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=492C358C.7030403@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).