From: Jeff Garzik <jeff@garzik.org>
To: Petr Vandrovec <petr@vandrovec.name>
Cc: linux-ide@vger.kernel.org
Subject: Re: [PATCH] sata_sil and PMP...
Date: Fri, 31 Aug 2007 13:39:30 -0400 [thread overview]
Message-ID: <46D85252.3060301@garzik.org> (raw)
In-Reply-To: <20070823062740.GA16458@vana.vc.cvut.cz>
Petr Vandrovec wrote:
> Hello,
> maybe I should have trusted SiliconImage... But, well, it is not true that
> you cannot use PMP with Sil 3512 and 3114. You can, if you try hard enough.
> Patch below tries hard enough ;-) Unfortunately it has few drawbacks:
>
> (1) Hardware ignores PMP field in received frames, so when D2H FIS arrives
> from device not selected, you have last chance to record what's current
> device state.
>
> (2) When NIEN bit is set on device, every interrupt source seems to be
> disabled. Not good when interlocked FIS arrives while bus is resetted,
> which happens almost always...
>
> (3) And due to all this interrupts are always left enabled on the device,
> and driver just tries to provide some more compatible view to remaining
> parts of libata.
>
> Driver as is below works with Sil 3726 port multiplier with couple devices
> attached. I did not test it without port multiplier (I think it will
> break) as card I have has only eSATA ports and I currently do not
> have eSATA non-PMP enclosure around.
>
> So patch is definitely not intended for merge, and most probably it would
> have to be separate driver anyway as I have some doubts about compatibility
> between interrupts being always enabled and various ATI clones. So this
> is more or less just FYI, unless you believe that it is possible to get
> this patch to some mergeable shape. I have some doubts, so I've ordered
> 3124 based card. Maybe I should have done that week ago...
>
> On other side driver works with PMP as well as AHCI driver (i.e. full
> SDB_NOTIFY support, but command based switching and no NCQ - I think I
> could implement NCQ if I would try hard enough via interlocked FIS, but
> it does not look like worth of effort).
>
> Anyway, here it goes. Good night.
Quite impressive, I must say :)
It is similar to how NCQ is implemented in sata_nv ('SW NCQ'), and how I
am contemplating support for ATAPI on a few controllers that do not
support it.
With regards to interrupts, sata_sil provides hardware registers to mask
and monitor the interrupt condition, so I don't see much danger in
interrupts always being enabled. EH will need to mess with interrupt
delivery on a per-port granularity, but that's probably about it.
Jeff
prev parent reply other threads:[~2007-08-31 17:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-23 6:27 [PATCH] sata_sil and PMP Petr Vandrovec
2007-08-31 17:39 ` Jeff Garzik [this message]
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=46D85252.3060301@garzik.org \
--to=jeff@garzik.org \
--cc=linux-ide@vger.kernel.org \
--cc=petr@vandrovec.name \
/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).