From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Jeff Garzik <jeff@garzik.org>,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] pata_it821x: sync with IDE it821x driver
Date: Sun, 10 Jun 2007 18:40:40 +0200 [thread overview]
Message-ID: <200706101840.40460.bzolnier@gmail.com> (raw)
In-Reply-To: <20070610165638.2db56f04@the-village.bc.nu>
Hi Alan!
On Sunday 10 June 2007, Alan Cox wrote:
> > @@ -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;
>
> NAK this too
OK, I'm able to understand the meaning of "NAK" [1] but "this too"?
[1] http://ozlabs.org/~rusty/index.cgi/2007/05/04
;)
> Please see it821x_program.
>
> it821x_passthru_set_piomode computes the required mode and the preferred
> clock for the mode
> it821x_clock_strategy the computes the best clock to use
> it821x_program the programs the device
>
> Whenever we issue a command it821x_passthru_dev_select then does a timing
> mode switch and loads the PIO timing before doing the dev_select. The
> same is also done when doing a qc_issue_prot so each qc_issue will have
> the right timings loaded for the device.
>
> So if you've got a problem case your diagnosis isn't one that makes a lot
> of sense, and the fix is clearly wrong but I've not seen most of the
> discussion between you and whoever you worked with to judge why.
>
> One obvious possibility is that we are not currently doing timing
> clipping for the address setup and merge for the 8bit timings. However
> the docs I have strongly imply that the IT821x PIO/MWDMA timing register
> is for data cycles only.
>
> The other would be that there is some kind of pattern of interaction
> between the ATA midlayer and the driver causing the wrong timings to get
> loaded at some point.
>
> Your "fix" would happen to work for both of these cases, but is wrong for
> both of them.
>
> If the register is switching all the timings then the fix is to switch
> the PIO timing loaded to the lowest of the two initially (in _program)
> and flip it back to the correct value at the start of the data transfer
> sequence. We can then flip it back next qc_issue or indeed at the end of
> the data xfer
>
> If we've got an interaction problem then we need proper traces with
> LIBATA debug turned right up so we can fix the actual case where the
> switching occurs wrongly.
PIO fix was directly ported from my it821x.c patch. I now see that thanks
to it821x_passthru_dev_select() it is not really needeed in pata_it821x.c.
OTOH DMA fixes are pata_it821x.c unique, I will respin the patch.
Bart
next prev parent reply other threads:[~2007-06-10 16:47 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
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 [this message]
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=200706101840.40460.bzolnier@gmail.com \
--to=bzolnier@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--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.