linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET] ata_piix: improve combined mode handling
@ 2006-02-28 16:25 Tejun Heo
  2006-02-28 16:25 ` [PATCH 1/6] libata: seperate out ata_class_present() Tejun Heo
                   ` (8 more replies)
  0 siblings, 9 replies; 17+ messages in thread
From: Tejun Heo @ 2006-02-28 16:25 UTC (permalink / raw)
  To: jgarzik, jfs, 0602, linux-ide, htejun

Hello, all.

This patchset is against the current upstream[1] + kill illegal
kfree() patch[2].

This patchset improves combined handling of ata_piix.  Proper port map
is implemented such that ata_piix knows exactly how PIIX SATA ports
are mapped to ATA devices.  This patchset also should fix device
detection problem which seems to be caused by honoring present bits
while the datasheet declares them reserved on 6300ESB.  (Jean & 0602,
can you guys please test this patchset?)

I couldn't find datasheets for ESB2 and ICH8, so I assumed ESB2 is
similar to ICH6, ICH8 to ICH6 and ICH8M to ICH6M.  Is this correct?

Jeff, I'm trying to implement SCR access on ICH6/7's on top of these
changes and have a question about libata-bmdma.c::ata_pci_init_one().
ata_piix needs its own version of this function as it should try to
map ABAR for SCR (and fall back if it fails), so I'm trying to factor
functions out of ata_pci_init_one() and call them from ata_piix.

ata_pci_init_one() currently uses two separate probe_ent for each port
if the controller is in legacy mode, which makes the ports use
separate host_set and thus separate spin locks.  Do they need to use
separate spinlocks?  Or are there other reasons legacy initialization
is done this way?

Oh.. Another question.  When you were talking about getting PCS bits
wrong before [3], were you talking about port map (like port 1 and 3
map to primary master/slave) or is there something else PCS + MAP
doesn't cover?

Thanks.

--
tejun

[1] cccc65a3b60edaf721cdee5a14f68ba009341822
[2] http://article.gmane.org/gmane.linux.ide/8324



^ permalink raw reply	[flat|nested] 17+ messages in thread
* [PATCHSET] ata_piix: improve combined mode handling
@ 2007-02-02  7:09 Tejun Heo
  0 siblings, 0 replies; 17+ messages in thread
From: Tejun Heo @ 2007-02-02  7:09 UTC (permalink / raw)
  To: jeff, alan, ric, edmudama, linux-ide, htejun

Subject: [PATCHSET] put some intelligence into speed down sequence

Hello,

The current EH speed down code is more of a feature demonstration and
goes through rdiculously many meaningless steps when condition is met.
This patchset tries to put some intelligence into speed down sequence.
The goal is to achieve reasonable number of speed down steps
reasonably spaced from one another and consider NCQ, cable type and
the current protocol when determining speed down steps, while not
bloating the code too much with nitty gritty details.

Roughly, the rules are...

1. If NCQ and protocol/timeout/unknown dev errors occur, turn off NCQ

2. If excessive transfer errors occur, speed down within the current
   transfer mode (UDMA/MWDMA/PIO).  If UDMA, it's first adjusted down
   a step, if error conditions persist, 40c limit is applied.  Speed
   down is done only twice.

3. If PATA && used up all DMA speed down steps && a LOT of
   transmission/unknown errors occur, switch to PIO.  So, we never
   automatically step down to PIO on SATA.  This is intended.  Some
   SATA hdd even seems to have problem with PIO data transfer
   commands.

The last patch makes ahci report HSM violation error on spurious
completion of NCQ commands, thus causing NCQ off after several such
incidents.  These drives should be blacklisted for DMA eventually.

This patchset is against...

  upstream (eb0e63cca36a3389f0ccab4584f6d479b983fad5)
+ [1] pata_platform-fix-devres-conversion
+ [2] libata-convert-to-iomap

Ric, I guess this resolves the to-do item from you which has been
sitting in my mailbox for way too long.  What do you think about the
rules?

Thanks.

--
tejun



^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2007-02-02  7:09 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-28 16:25 [PATCHSET] ata_piix: improve combined mode handling Tejun Heo
2006-02-28 16:25 ` [PATCH 1/6] libata: seperate out ata_class_present() Tejun Heo
2006-03-03 20:40   ` Jeff Garzik
2006-02-28 16:25 ` [PATCH 4/6] ata_piix: implement proper port map Tejun Heo
2006-02-28 16:25 ` [PATCH 6/6] ata_piix: don't scan non-existent device Tejun Heo
2006-03-03 20:43   ` Jeff Garzik
2006-02-28 16:25 ` [PATCH 5/6] ata_piix: reimplement piix_sata_probe() Tejun Heo
2006-02-28 16:25 ` [PATCH 3/6] ata_piix: add a couple of flags Tejun Heo
2006-03-03 20:33   ` Jeff Garzik
2006-03-05  5:28     ` [PATCH] ata_piix: rename PIIX_FLAG_IGN_PRESENT to PIIX_FLAG_IGNORE_PCS Tejun Heo
2006-03-05  5:36       ` Jeff Garzik
2006-02-28 16:25 ` [PATCH 2/6] ata_piix: finer-grained port_info Tejun Heo
2006-02-28 18:17 ` [PATCHSET] ata_piix: improve combined mode handling Jeff Garzik
2006-03-01  5:16   ` Tejun Heo
2006-03-03 17:37 ` Jeff Garzik
2006-03-03 20:53 ` Jeff Garzik
  -- strict thread matches above, loose matches on Subject: below --
2007-02-02  7:09 Tejun Heo

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