From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: Tejun Heo <htejun@gmail.com>
Cc: Jeff Garzik <jeff@garzik.org>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] pata_it821x: sync with IDE it821x driver
Date: Sat, 9 Jun 2007 22:09:10 +0200 [thread overview]
Message-ID: <200706092209.10636.bzolnier@gmail.com> (raw)
In-Reply-To: <466A417C.5090901@gmail.com>
Hello,
On Saturday 09 June 2007, Tejun Heo wrote:
> Hello,
>
> Bartlomiej Zolnierkiewicz wrote:
> > * (partially) fix DMA in RAID mode
> >
> > Code intended to check DMA status was checking DMA command register.
> > Moreover firmware seems to "forget" to set DMA capable bit for the
> > slave device (at least in RAID mode but without ITE RAID volumes) so
> > check device ID for DMA capable bit when deciding whether to use DMA
> > and remove DMA status check completely.
> >
> > Thanks to Pavol Šimo for the bugreport and testing the initial fix.
>
> Ah... This is the mysterious mwdma configuration in smart mode, right?
Yep.
> Thanks for fixing this.
>
> > This change unfortunately still doesn't fix DMA in RAID mode (which
> > works fine with IDE it821x) but Alan is working on the missing pieces
> > (pata_it821x vs libata EH issues).
>
> This is the lbal/nsect SRST problem, right?
I think so, due to lack of time I'm not following libata discussions closely.
> > @@ -258,8 +259,14 @@ static void it821x_passthru_set_piomode(
> > static const u8 pio_want[] = { ATA_66, ATA_66, ATA_66, ATA_66, ATA_ANY };
> >
> > struct it821x_dev *itdev = ap->private_data;
> > + struct ata_device *pair = ata_dev_pair(adev);
> > int unit = adev->devno;
> > - int mode_wanted = adev->pio_mode - XFER_PIO_0;
> > + int mode_wanted = adev->pio_mode;
> > +
> > + if (pair && adev->pio_mode > pair->pio_mode)
> > + mode_wanted = pair->pio_mode;
> > +
> > + mode_wanted -= XFER_PIO_0;
>
> I think this is better done by mode_filter callback which is guaranteed
> to be called before any actual mode configuration is performed and in
> device order (master then slave).
I was thinking about using ->mode_filter but since all other PATA host
drivers are doing PIO filtering in ->set_piomode methods and also since it
seemed that using ->mode_filter method would result in slightly more complex
code I opted for coherency / simplicity. However if you (or somebody else)
want to make a follow-up change to this driver (and preferably other PATA
host drivers ie. pata_sil680) to use ->mode_filter I'm also fine with that.
Thanks,
Bart
next prev parent reply other threads:[~2007-06-09 19:57 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-09 0:23 [PATCH] pata_it821x: sync with IDE it821x driver Bartlomiej Zolnierkiewicz
2007-06-09 5:58 ` Tejun Heo
2007-06-09 20:09 ` Bartlomiej Zolnierkiewicz [this message]
2007-06-10 4:50 ` Tejun Heo
2007-06-10 15:28 ` Alan Cox
2007-06-10 15:56 ` Alan Cox
2007-06-10 16:40 ` Bartlomiej Zolnierkiewicz
2007-06-10 17:44 ` Alan Cox
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=200706092209.10636.bzolnier@gmail.com \
--to=bzolnier@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=htejun@gmail.com \
--cc=jeff@garzik.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@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.