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@xxxxxxxxx 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 - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html