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 <[EMAIL PROTECTED]>

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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to