linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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




      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).