From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
To: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Cc: linux-mips@linux-mips.org, linux-ide@vger.kernel.org,
bzolnier@gmail.com, ralf@linux-mips.org
Subject: Re: [PATCH 1/2] ide: Add tx4939ide driver
Date: Wed, 17 Sep 2008 01:15:55 +0400 [thread overview]
Message-ID: <48D0220B.4090601@ru.mvista.com> (raw)
In-Reply-To: <20080913.213226.106262199.anemo@mba.ocn.ne.jp>
Hello.
Atsushi Nemoto wrote:
>>> Well, let me explain a bit. The datasheed say I should wait _both_
>>> XFERINT and HOST interrupt. So, if only one of them was asserted, I
>>> mask it and wait another one. But on the error case, only HOST was
>>> asserted and XFERINT was never asserted. Then I could not exit from
>>> "waiting another one" state, until timeout.
>>>
>> Hmm, I got it: you decide whether it's worth waiting more for XFEREND
>> interrupt based on whether ERR is set or not. I suppose IDE_INT doesn't get
>> set in case the command gets endede with ERR set?
>>
>
> IIRC, yes. And anyway, the interrupt signal from this controller to
>
Thats wrong -- According t the spec. the bit should be set following any
assertion of INTRQ on IDE bus (possibly not at once though -- after
flushing FIFO). Well, no wonder with such description of the bits as:
INT_IDE (RWC) [Interrupt]
Is “1” when data transfer completes. This bit is cleared by writing “1”
to it.
When this bit is set to ‘1’, the following bits of the ATA Interrupt
Controller Register will be
reset: bits [15:8] (Mask Address Error INT, Mask Reach Multiple INT,
Mask DEV
Timing Error, Mask Ultra DMA DEV Terminate, Mask Timer INT, Mask Bus
Error, Mask
Data Transfer End, Mask Host INT), and bits [1:0] (Data Transfer End,
Host INT).
> CPU is not asserted because HOSTINT was masked by int_ctl register to
> wait for XFERINT interrupt.
>
> So, regardless of IDE_INT was set or not, no more interrupt raised to
> CPU.
>
Ah, it gets purposedly masked out...
> Many of strangeness of interrupt handling in this driver is based on
> the fact that the IDE_INT bit in DMA status register does not refrect
> the controllers interrupt status directly.
It also seems to reflect the wrong status, i.e. that of the XFEREND
interrupt...
> And the implementation of
> the IDE_INT bit is actually broken. Claring the IDE_INT bit also
> clears all mask bits in int_ctl registers. Usually this sort of
> behaviour is called "bug". ;)
>
Hm, I thought that was done on purpose to "accelerate" interrupt
handling or something... it can help indeed if you're not masking those
interrupts.
> ---
> Atsushi Nemoto
>
MBR, Sergei
next prev parent reply other threads:[~2008-09-16 21:16 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-09 16:08 [PATCH 1/2] ide: Add tx4939ide driver Atsushi Nemoto
2008-09-09 16:44 ` Alan Cox
2008-09-09 17:08 ` Sergei Shtylyov
2008-09-10 15:12 ` Atsushi Nemoto
2008-09-10 15:06 ` Atsushi Nemoto
2008-09-13 13:37 ` Atsushi Nemoto
2008-09-09 17:50 ` Sergei Shtylyov
2008-09-10 15:32 ` Atsushi Nemoto
2008-09-10 15:55 ` Sergei Shtylyov
2008-09-10 16:25 ` Sergei Shtylyov
2008-09-11 15:03 ` Atsushi Nemoto
2008-09-11 15:18 ` Sergei Shtylyov
2008-09-10 23:02 ` Sergei Shtylyov
2008-09-11 15:52 ` Atsushi Nemoto
2008-09-12 15:34 ` Sergei Shtylyov
2008-09-12 15:59 ` Atsushi Nemoto
2008-09-12 16:44 ` Sergei Shtylyov
2008-09-12 17:19 ` Sergei Shtylyov
2008-09-13 12:32 ` Atsushi Nemoto
2008-09-16 21:15 ` Sergei Shtylyov [this message]
2008-09-16 21:39 ` Sergei Shtylyov
2008-09-27 16:19 ` Bartlomiej Zolnierkiewicz
2008-09-27 22:09 ` Tejun Heo
2008-09-30 13:07 ` Atsushi Nemoto
2008-09-30 15:09 ` James Bottomley
2008-10-04 2:56 ` Tejun Heo
2008-10-07 12:09 ` Jens Axboe
2008-09-28 8:41 ` Ralf Baechle
2008-09-11 22:33 ` Sergei Shtylyov
2008-09-12 14:37 ` Atsushi Nemoto
2008-09-12 15:01 ` Sergei Shtylyov
2008-09-13 21:48 ` Sergei Shtylyov
2008-09-14 13:05 ` Atsushi Nemoto
2008-09-16 10:29 ` Sergei Shtylyov
2008-09-16 15:20 ` Atsushi Nemoto
2008-09-16 15:32 ` Sergei Shtylyov
2008-09-16 16:24 ` Sergei Shtylyov
2008-09-16 21:02 ` Sergei Shtylyov
2008-09-14 20:55 ` Sergei Shtylyov
2008-09-15 14:01 ` Atsushi Nemoto
2008-09-16 21:59 ` Sergei Shtylyov
2008-09-17 15:12 ` Atsushi Nemoto
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=48D0220B.4090601@ru.mvista.com \
--to=sshtylyov@ru.mvista.com \
--cc=anemo@mba.ocn.ne.jp \
--cc=bzolnier@gmail.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.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).