As usual, error trigger and debug message patch.
diff --git a/drivers/scsi/sata_sil24.c b/drivers/scsi/sata_sil24.c --- a/drivers/scsi/sata_sil24.c +++ b/drivers/scsi/sata_sil24.c @@ -421,6 +421,46 @@ static int sil24_qc_issue(struct ata_que struct sil24_port_priv *pp = ap->private_data; dma_addr_t paddr = pp->cmd_block_dma + qc->tag * sizeof(*pp->cmd_block); +#if 0 + static unsigned err_cnt; + err_cnt++; + if (err_cnt > 500 && err_cnt % 30 == 0) { + struct sil24_cmd_block *cb = pp->cmd_block + qc->tag; + struct sil24_prb *prb = &cb->prb; + u8 *fis = prb->fis; + printk("SIL24%u: FAILING %p: %08x %08x %08x %08x %08x\n", + ap->id, qc->scsicmd, + ((unsigned *)fis)[0], ((unsigned *)fis)[1], + ((unsigned *)fis)[2], ((unsigned *)fis)[3], + ((unsigned *)fis)[4]); + fis[4] = 0xff; + fis[5] = 0xff; + fis[6] = 0xff; + fis[8] = 0xff; + fis[9] = 0xff; + fis[10] = 0xff; + } +#endif + +#if 0 + { + struct sil24_cmd_block *cb = pp->cmd_block + qc->tag; + struct sil24_prb *prb = &cb->prb; + u32 *fis = (u32 *)prb->fis; + printk("SIL24%u: FIS %p: %08x %08x %08x %08x %08x\n", + ap->id, qc->scsicmd, + fis[0], fis[1], fis[2], fis[3], fis[4]); + } +#endif + +#if 1 + static unsigned skip_cnt; + skip_cnt++; + if (skip_cnt > 500 && skip_cnt % 100 == 0) { + printk("AHCI: SKIPPING %02u\n", qc->tag); + return 0; + } +#endif writel((u32)paddr, pp->port + PORT_CMD_ACTIVATE); return 0; } - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html