Hello, Jeff clarified most things. Just few more things. Mikael Pettersson wrote: > Which SErrror bits are standard? > It is true that some of the SError bits are diagnostic rather than > actual error indicators, as Promise's driver only checks a subset > of them. I'll fix that. Pretty much most of them. Just take a look at SError section in serialATA spec. libata EH decodes most of error and some of diagnostic bits in ata_eh_analyze_serror(). > ATA_DMA_CNT_ERR is when a DMA FIS data size differs from total DMA S/G size. > I think AC_ERR_ATA_BUS is the correct choice for this one too. AC_ERR_ATA_BUS is a bit special in that if it happens repeatedly it will trigger transfer speed adjustment pretty quickly. The error should be set iff the error is a transmission error on the wire which is likely to be fixed by slowing down the transfer rate. Maybe it should have been named AC_ERR_ATA_TRANSMISSION or something. As Jeff pointed out, AC_ERR_HSM is usually used when we can receive the FIS correctly but it doesn't make sense. This is usually caused by driver error or seriously brain damaged firmware. :-) Thanks. -- tejun - 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