Some uli controllers have stuck SIMPLEX bit which can't be cleared with ata_pci_clear_simplex(), but the controller is capable of doing DMAs on both channels simultaneously. Ignore it. Signed-off-by: Tejun Heo <htejun@xxxxxxxxx> diff --git a/drivers/ata/sata_uli.c b/drivers/ata/sata_uli.c index 5c603ca..62b9269 100644 --- a/drivers/ata/sata_uli.c +++ b/drivers/ata/sata_uli.c @@ -226,6 +226,13 @@ static int uli_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) probe_ent->private_data = hpriv; + /* these chips have stuck dummy simplex bit, ignore it */ + if (probe_ent->_host_flags & ATA_HOST_SIMPLEX) { + dev_printk(KERN_INFO, &pdev->dev, + "BMDMA simplex set, ignored\n"); + probe_ent->_host_flags &= ~ATA_HOST_SIMPLEX; + } + switch (board_idx) { case uli_5287: hpriv->scr_cfg_addr[0] = ULI5287_BASE; - 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