linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET] libata: implement presence detection using polling IDENTIFY for ata_piix
@ 2006-09-30  6:46 Tejun Heo
  2006-09-30  6:46 ` [PATCH 1/6] ata_piix: clean up port flags Tejun Heo
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Tejun Heo @ 2006-09-30  6:46 UTC (permalink / raw)
  To: nabiki, kaos, stevenm, jfs, 0602, jgarzik, akpm, alan, linux-ide,
	htejun

Hello, all.

I've been thinking about device misdetection and phantom device
problems on piix for some time now.  Various controllers show
different behaviors and even chips sharing the same PCI ID act
differently.  Some of the symptoms are intermittent making it
difficult to debug.

In addition, a few days ago, there was a new bug report from
a.bono@libero.it saying ICH4-M showed phantom device problem.  That's
an old old IDE controller which must have worked well for a very long
time.

I think that it's just best to do what IDE and old libata used to do -
ignore PCS (other than turning on enable bits) and honor reset
signature and TF r/w test while using polling PIO for IDENTIFY and
detect phantom devices.  This formula had been working for years and
there is no good reason to cause more pain to ICH users, which are a
LOT, to find reliable non-polling device detection mechanism, which
might not even exist.

So, this patchset.  It implements device detection via polling
IDENTIFY.  When no device present, !BSY && !DRQ status is seen while
trying to read the IDENTIFY block.  If a LLD specifies
ATA_FLAG_DETECT_POLLING, IDENTIFY command is issued using polling PIO
and the HSM marks AC_ERR_NODEV_HINT if !BSY && !DRQ is met.  Then the
probing logic marks the device non-existent silently and continues
probing.

This patchset contains 6 patches.

#01-03	: prep for ATA_FLAG_DETECT_POLLING implementation
#04	: implement ATA_DETECT_POLLING
#05	: apply ATA_DETECT_POLLING to ata_piix
#06	: kill unnecessary parts from ata_piix

This patchset is against

  upstream (2d2744fc8be620a2dc469cf48349e3e704119f1b)

This patchset collides with the following patch.

  [1] implement-ATA_FLAG_SETXFER_POLLING-and-use-it-in-pata_via

I'll reimplement the above patch to not impact qc_issue fast path and
thus can be put off.

Please test this patchset.  If you don't feel comfortable with handling
patch series, this patchset is also available as...

* Git tree

  http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=detect-polling
  git://htj.dyndns.org/libata-tj detect-polling

* Kernel source tarball

  http://htj.dyndns.org/linux-libata-dev-upstream-DETECT_POLLING.tar.bz2

Thanks.

-- 
tejun

[1] http://article.gmane.org/gmane.linux.ide/13248



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

end of thread, other threads:[~2006-11-01  5:36 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-30  6:46 [PATCHSET] libata: implement presence detection using polling IDENTIFY for ata_piix Tejun Heo
2006-09-30  6:46 ` [PATCH 1/6] ata_piix: clean up port flags Tejun Heo
2006-11-01  4:55   ` Jeff Garzik
2006-11-01  5:12     ` Tejun Heo
2006-11-01  5:19       ` Jeff Garzik
2006-11-01  5:35   ` Jeff Garzik
2006-09-30  6:46 ` [PATCH 3/6] libata: convert @post_reset to @flags in ata_dev_read_id() Tejun Heo
2006-11-01  5:36   ` Jeff Garzik
2006-09-30  6:46 ` [PATCH 2/6] libata: unexport ata_dev_revalidate() Tejun Heo
2006-09-30  6:46 ` [PATCH 4/6] libata: implement presence detection via polling IDENTIFY Tejun Heo
2006-09-30  6:46 ` [PATCH 6/6] ata_piix: strip now unneded MAP related stuff Tejun Heo
2006-09-30  6:46 ` [PATCH 5/6] ata_piix: apply device detection via polling IDENTIFY Tejun Heo
2006-09-30  8:59 ` [PATCHSET] libata: implement presence detection using polling IDENTIFY for ata_piix Alessandro Bono
2006-09-30  9:09   ` Alessandro Bono

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