All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Mark Lord <liml@rtr.ca>
Cc: IDE/ATA development list <linux-ide@vger.kernel.org>,
	Jeff Garzik <jgarzik@pobox.com>
Subject: Re: [PATCH 2/5] sata_mv clean up mv_stop_edma usage
Date: Wed, 02 Apr 2008 10:59:42 +0900	[thread overview]
Message-ID: <47F2E88E.4000401@gmail.com> (raw)
In-Reply-To: <47F17510.7060902@rtr.ca>

Hello, Mark.

Mark Lord wrote:
> -    /* now properly wait for the eDMA to stop */
> -    for (i = 1000; i > 0; i--) {
> -        reg = readl(port_mmio + EDMA_CMD_OFS);
> +    /* Wait for the chip to confirm eDMA is off. */
> +    for (i = 10000; i > 0; i--) {
> +        u32 reg = readl(port_mmio + EDMA_CMD_OFS);
>         if (!(reg & EDMA_EN))
> -            break;
> -
> -        udelay(100);
> -    }
> -
> -    if (reg & EDMA_EN) {
> -        ata_port_printk(ap, KERN_ERR, "Unable to stop eDMA\n");
> -        err = -EIO;
> +            return 0;
> +        udelay(10);

Unless the hardware calls for really short polling interval, I think 
it's generally better to limit polling with jiffies and using msleep() 
instead of delays.

Also, mv_stop_edma() skips actual operation if EDMA_EN isn't set, which 
I think is the correct way to do it in hot paths but I think it's better 
to stop the edma engine unconditionally prior to reset as that's where 
we try to bring the controller back into senses.

Thanks.

-- 
tejun

  reply	other threads:[~2008-04-02  1:59 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-31 23:27 [PATCH 0/5] sata_mv cleanups Mark Lord
2008-03-31 23:33 ` [PATCH 1/5] sata_mv cosmetic fixes Mark Lord
2008-04-04  7:56   ` Jeff Garzik
2008-03-31 23:34 ` [PATCH 2/5] sata_mv clean up mv_stop_edma usage Mark Lord
2008-04-02  1:59   ` Tejun Heo [this message]
2008-04-02 19:33     ` Mark Lord
2008-04-02 19:42       ` Jeff Garzik
2008-04-02 19:47         ` Mark Lord
2008-04-03  0:47           ` Tejun Heo
2008-04-04  7:59   ` Jeff Garzik
2008-03-31 23:35 ` [PATCH 3/5] sata_mv fix ifctl handling Mark Lord
2008-03-31 23:35 ` [PATCH 4/5] sata_mv new mv_sata_hardreset handler Mark Lord
2008-04-02  2:31   ` Tejun Heo
2008-04-02 19:33     ` Mark Lord
2008-04-02 19:51     ` Mark Lord
2008-04-03  0:49       ` Tejun Heo
2008-04-03  2:48         ` Mark Lord
2008-04-03  3:15           ` Tejun Heo
2008-04-03 14:01             ` Mark Lord
2008-04-03 14:04               ` Mark Lord
2008-04-03 14:09                 ` Tejun Heo
2008-04-03 14:21                   ` Mark Lord
2008-04-03 14:35                     ` Tejun Heo
2008-04-03 15:05                       ` Mark Lord
2008-04-03 14:05               ` Tejun Heo
2008-03-31 23:36 ` [PATCH 5/5] sata_mv remove mv_phy_reset and mv_postreset Mark Lord
2008-04-04  8:02   ` Jeff Garzik
2008-04-04 14:25     ` Mark Lord
2008-04-11  0:21     ` [PATCH] sata_mv rework hardreset sequence Mark Lord
2008-04-16  1:17       ` Mark Lord

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=47F2E88E.4000401@gmail.com \
    --to=htejun@gmail.com \
    --cc=jgarzik@pobox.com \
    --cc=liml@rtr.ca \
    --cc=linux-ide@vger.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 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.