|
@@ -54,21 +54,22 @@ static int generic_set_mode(struct ata_link *link, struct ata_device **unused)
|
|
|
dma_enabled = ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
|
|
|
|
|
|
ata_link_for_each_dev(dev, link) {
|
|
|
- if (ata_dev_enabled(dev)) {
|
|
|
- /* We don't really care */
|
|
|
- dev->pio_mode = XFER_PIO_0;
|
|
|
- dev->dma_mode = XFER_MW_DMA_0;
|
|
|
- /* We do need the right mode information for DMA or PIO
|
|
|
- and this comes from the current configuration flags */
|
|
|
- if (dma_enabled & (1 << (5 + dev->devno))) {
|
|
|
- ata_id_to_dma_mode(dev, XFER_MW_DMA_0);
|
|
|
- dev->flags &= ~ATA_DFLAG_PIO;
|
|
|
- } else {
|
|
|
- ata_dev_printk(dev, KERN_INFO, "configured for PIO\n");
|
|
|
- dev->xfer_mode = XFER_PIO_0;
|
|
|
- dev->xfer_shift = ATA_SHIFT_PIO;
|
|
|
- dev->flags |= ATA_DFLAG_PIO;
|
|
|
- }
|
|
|
+ if (!ata_dev_enabled(dev))
|
|
|
+ continue;
|
|
|
+
|
|
|
+ /* We don't really care */
|
|
|
+ dev->pio_mode = XFER_PIO_0;
|
|
|
+ dev->dma_mode = XFER_MW_DMA_0;
|
|
|
+ /* We do need the right mode information for DMA or PIO
|
|
|
+ and this comes from the current configuration flags */
|
|
|
+ if (dma_enabled & (1 << (5 + dev->devno))) {
|
|
|
+ ata_id_to_dma_mode(dev, XFER_MW_DMA_0);
|
|
|
+ dev->flags &= ~ATA_DFLAG_PIO;
|
|
|
+ } else {
|
|
|
+ ata_dev_printk(dev, KERN_INFO, "configured for PIO\n");
|
|
|
+ dev->xfer_mode = XFER_PIO_0;
|
|
|
+ dev->xfer_shift = ATA_SHIFT_PIO;
|
|
|
+ dev->flags |= ATA_DFLAG_PIO;
|
|
|
}
|
|
|
}
|
|
|
return 0;
|