info->dma = !hwif->dma_ops->dma_setup(drive);
 
        /* set up the controller registers */
-       ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_NSECT | IDE_TFLAG_OUT_LBAL |
-                          IDE_TFLAG_NO_SELECT_MASK, xferlen, info->dma);
+       ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_NSECT | IDE_TFLAG_OUT_LBAL,
+                          xferlen, info->dma);
 
        if (info->cd_flags & IDE_CD_FLAG_DRQ_INTERRUPT) {
                /* waiting for CDB interrupt, not DMA yet. */
 
        }
 
        memset(&task, 0, sizeof(task));
-       task.tf_flags = IDE_TFLAG_NO_SELECT_MASK;  /* FIXME? */
-       task.tf_flags |= (IDE_TFLAG_TF | IDE_TFLAG_DEVICE);
+       task.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
 
        if (drive->select.b.lba) {
                if (lba48) {
 
        if ((pc->flags & PC_FLAG_DMA_RECOMMENDED) && drive->using_dma)
                dma = !hwif->dma_ops->dma_setup(drive);
 
-       ide_pktcmd_tf_load(drive, IDE_TFLAG_NO_SELECT_MASK |
-                          IDE_TFLAG_OUT_DEVICE, bcount, dma);
+       ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_DEVICE, bcount, dma);
 
        if (dma) {
                /* Begin DMA, if necessary */
 
                HIHI = 0xFF;
 
        ide_set_irq(drive, 1);
-
-       if ((task->tf_flags & IDE_TFLAG_NO_SELECT_MASK) == 0)
-               SELECT_MASK(drive, 0);
+       SELECT_MASK(drive, 0);
 
        if (task->tf_flags & IDE_TFLAG_OUT_DATA) {
                u16 data = (tf->hob_data << 8) | tf->data;
 
        if ((pc->flags & PC_FLAG_DMA_RECOMMENDED) && drive->using_dma)
                dma_ok = !hwif->dma_ops->dma_setup(drive);
 
-       ide_pktcmd_tf_load(drive, IDE_TFLAG_NO_SELECT_MASK |
-                          IDE_TFLAG_OUT_DEVICE, bcount, dma_ok);
+       ide_pktcmd_tf_load(drive, IDE_TFLAG_OUT_DEVICE, bcount, dma_ok);
 
        if (dma_ok)
                /* Will begin DMA later */
 
                hwif->sg_mapped = 0;
        }
 
-       ide_pktcmd_tf_load(drive, IDE_TFLAG_NO_SELECT_MASK, bcount, dma);
+       ide_pktcmd_tf_load(drive, 0, bcount, dma);
 
        if (dma)
                pc->flags |= PC_FLAG_DMA_OK;
 
 
 enum {
        IDE_TFLAG_LBA48                 = (1 << 0),
-       IDE_TFLAG_NO_SELECT_MASK        = (1 << 1),
        IDE_TFLAG_FLAGGED               = (1 << 2),
        IDE_TFLAG_OUT_DATA              = (1 << 3),
        IDE_TFLAG_OUT_HOB_FEATURE       = (1 << 4),