ide: add support for CFA specified transfer modes (take 3)
[deliverable/linux.git] / drivers / ide / ide-dma.c
index f9c91752f275d8340a2ae3c2b15449084b9bcd7f..a0b8cab1d9a682249200fce35bc5ea5c8223079f 100644 (file)
@@ -261,6 +261,14 @@ static unsigned int ide_get_mode_mask(ide_drive_t *drive, u8 base, u8 req_mode)
                break;
        case XFER_MW_DMA_0:
                mask = id[ATA_ID_MWDMA_MODES];
+
+               /* Also look for the CF specific MWDMA modes... */
+               if (ata_id_is_cfa(id) && (id[ATA_ID_CFA_MODES] & 0x38)) {
+                       u8 mode = ((id[ATA_ID_CFA_MODES] & 0x38) >> 3) - 1;
+
+                       mask |= ((2 << mode) - 1) << 3;
+               }
+
                if (port_ops && port_ops->mdma_filter)
                        mask &= port_ops->mdma_filter(drive);
                else
This page took 0.043459 seconds and 5 git commands to generate.