Shane Huang wrote: > There is an issue in ATI SB600/SB700 SATA that PxSERR.E should not be > set on some conditions, which will lead to many SATA ODD error messages. > commit 55a61604cd1354e1783364e1c901034f2f474b7d is the workaround. > Since SB800 fixed this HW issue, IGN_SERR_INTERNAL should be withdrawn > for SB800. > > Signed-off-by: Shane Huang <shane.huang@xxxxxxx> > > diff -ruN c/drivers/ata/ahci.c d/drivers/ata/ahci.c > --- c/drivers/ata/ahci.c 2008-11-07 11:23:24.000000000 +0800 > +++ d/drivers/ata/ahci.c 2008-11-07 11:23:28.000000000 +0800 > @@ -105,7 +105,7 @@ > board_ahci_ign_iferr = 2, > board_ahci_sb600 = 3, > board_ahci_mv = 4, > - board_ahci_sb700 = 5, > + board_ahci_sb700 = 5, /* for SB700 and SB800 */ > board_ahci_mcp65 = 6, > board_ahci_nopmp = 7, > > @@ -439,7 +439,7 @@ > .udma_mask = ATA_UDMA6, > .port_ops = &ahci_ops, > }, > - /* board_ahci_sb700 */ > + /* board_ahci_sb700, for SB700 and SB800 */ > { > AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL), > .flags = AHCI_FLAG_COMMON, > @@ -2610,6 +2610,10 @@ > (pdev->revision == 0xa1 || pdev->revision == 0xa2)) > hpriv->flags |= AHCI_HFLAG_NO_MSI; > > + /* SB800 does NOT need the workaround to ignore SERR_INTERNAL */ > + if (board_id == board_ahci_sb700 && pdev->revision >= 0x40) > + hpriv->flags &= ~AHCI_HFLAG_IGN_SERR_INTERNAL; > + > if ((hpriv->flags & AHCI_HFLAG_NO_MSI) || pci_enable_msi(pdev)) > pci_intx(pdev, 1); Great, but please use separate board_ahci_* entry. ie. board_ahci_sb700_ign_serr for the ones with the problem and board_ahci_sb700 for other sb700s and sb800s. 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