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

Commit 95064379 authored by Tejun Heo's avatar Tejun Heo Committed by Jeff Garzik
Browse files

[PATCH] libata: create pio/atapi task queueing wrappers



Wrap pio/atapi task queueing in correspondingly named functions.  This
change doesn't change anything.  It's preparation for follow-up
pio-task/eh sync patch.

Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
parent a72ec4ce
Loading
Loading
Loading
Loading
+24 −6
Original line number Diff line number Diff line
@@ -1072,6 +1072,24 @@ static unsigned int ata_pio_modes(const struct ata_device *adev)
	   timing API will get this right anyway */
}

static inline void
ata_queue_packet_task(struct ata_port *ap)
{
	queue_work(ata_wq, &ap->packet_task);
}

static inline void
ata_queue_pio_task(struct ata_port *ap)
{
	queue_work(ata_wq, &ap->pio_task);
}

static inline void
ata_queue_delayed_pio_task(struct ata_port *ap, unsigned long delay)
{
	queue_delayed_work(ata_wq, &ap->pio_task, delay);
}

void ata_qc_complete_internal(struct ata_queued_cmd *qc)
{
	struct completion *waiting = qc->private_data;
@@ -3414,7 +3432,7 @@ static void ata_pio_task(void *_data)
	}

	if (timeout)
		queue_delayed_work(ata_wq, &ap->pio_task, timeout);
		ata_queue_delayed_pio_task(ap, timeout);
	else if (!qc_completed)
		goto fsm_start;
}
@@ -3737,26 +3755,26 @@ unsigned int ata_qc_issue_prot(struct ata_queued_cmd *qc)
		ata_qc_set_polling(qc);
		ata_tf_to_host(ap, &qc->tf);
		ap->hsm_task_state = HSM_ST;
		queue_work(ata_wq, &ap->pio_task);
		ata_queue_pio_task(ap);
		break;

	case ATA_PROT_ATAPI:
		ata_qc_set_polling(qc);
		ata_tf_to_host(ap, &qc->tf);
		queue_work(ata_wq, &ap->packet_task);
		ata_queue_packet_task(ap);
		break;

	case ATA_PROT_ATAPI_NODATA:
		ap->flags |= ATA_FLAG_NOINTR;
		ata_tf_to_host(ap, &qc->tf);
		queue_work(ata_wq, &ap->packet_task);
		ata_queue_packet_task(ap);
		break;

	case ATA_PROT_ATAPI_DMA:
		ap->flags |= ATA_FLAG_NOINTR;
		ap->ops->tf_load(ap, &qc->tf);	 /* load tf registers */
		ap->ops->bmdma_setup(qc);	    /* set up bmdma */
		queue_work(ata_wq, &ap->packet_task);
		ata_queue_packet_task(ap);
		break;

	default:
@@ -4187,7 +4205,7 @@ static void atapi_packet_task(void *_data)

		/* PIO commands are handled by polling */
		ap->hsm_task_state = HSM_ST;
		queue_work(ata_wq, &ap->pio_task);
		ata_queue_pio_task(ap);
	}

	return;