diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index 027bf43975920707ad27e3a545d1cf2be8240c4d..717e114ced524d96bbd89a91ac8b3042ab9a4e8f 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -620,8 +620,10 @@ static int set_multcount(ide_drive_t *drive, int arg)
 
 	if (drive->special.b.set_multmode)
 		return -EBUSY;
+
 	ide_init_drive_cmd (&rq);
-	rq.cmd_type = REQ_TYPE_ATA_CMD;
+	rq.cmd_type = REQ_TYPE_ATA_TASKFILE;
+
 	drive->mult_req = arg;
 	drive->special.b.set_multmode = 1;
 	(void) ide_do_drive_cmd (drive, &rq, ide_wait);
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
index b8c7e8134d885a50b1dd2052fb4ac96384213339..94046509f004a9666c83f0561ef89bf03435cd40 100644
--- a/drivers/ide/ide-taskfile.c
+++ b/drivers/ide/ide-taskfile.c
@@ -781,7 +781,7 @@ int ide_cmd_ioctl (ide_drive_t *drive, unsigned int cmd, unsigned long arg)
 		struct request rq;
 
 		ide_init_drive_cmd(&rq);
-		rq.cmd_type = REQ_TYPE_ATA_CMD;
+		rq.cmd_type = REQ_TYPE_ATA_TASKFILE;
 
 		return ide_do_drive_cmd(drive, &rq, ide_wait);
 	}
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 446b128501552c003b504dd3edc41cf44d1b4a97..97894abd9ebca93da51af65b7268a953e7969a47 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -880,7 +880,7 @@ int set_pio_mode(ide_drive_t *drive, int arg)
 		return -EBUSY;
 
 	ide_init_drive_cmd(&rq);
-	rq.cmd_type = REQ_TYPE_ATA_CMD;
+	rq.cmd_type = REQ_TYPE_ATA_TASKFILE;
 
 	drive->tune_req = (u8) arg;
 	drive->special.b.set_tune = 1;