Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d364c7f5 authored by Bartlomiej Zolnierkiewicz's avatar Bartlomiej Zolnierkiewicz
Browse files

ide: use ide_complete_cmd() for REQ_UNPARK_HEADS



* Fixup ->tf_flags in ide_do_park_unpark() to match their current use.

* Use ide_complete_cmd() for REQ_UNPARK_HEADS.

While at it:

* No need to read Error register for PM requests in task_no_data_intr().

Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent e7fedc3c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -74,11 +74,11 @@ ide_startstop_t ide_do_park_unpark(ide_drive_t *drive, struct request *rq)
		tf->lbal = 0x4c;
		tf->lbam = 0x4e;
		tf->lbah = 0x55;
		cmd.tf_flags |= IDE_TFLAG_CUSTOM_HANDLER;
		cmd.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
	} else		/* cmd == REQ_UNPARK_HEADS */
		tf->command = ATA_CMD_CHK_POWER;

	cmd.tf_flags |= IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
	cmd.tf_flags |= IDE_TFLAG_CUSTOM_HANDLER;
	cmd.protocol = ATA_PROT_NODATA;

	cmd.rq = rq;
+5 −5
Original line number Diff line number Diff line
@@ -149,15 +149,15 @@ static ide_startstop_t task_no_data_intr(ide_drive_t *drive)
	if (custom && tf->command == ATA_CMD_SET_MULTI)
		drive->mult_count = drive->mult_req;

	if (custom == 0 || tf->command == ATA_CMD_IDLEIMMEDIATE) {
	if (custom == 0 || tf->command == ATA_CMD_IDLEIMMEDIATE ||
	    tf->command == ATA_CMD_CHK_POWER) {
		struct request *rq = hwif->rq;
		u8 err = ide_read_error(drive);

		if (blk_pm_request(rq))
			ide_complete_pm_rq(drive, rq);
		else {
			if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE ||
			    tf->command == ATA_CMD_IDLEIMMEDIATE)
			u8 err = ide_read_error(drive);

			ide_complete_cmd(drive, cmd, stat, err);
			ide_complete_rq(drive, err);
		}