/* Usually drivers set the DMA timing at the point the set_dmamode call is made. IT821x however requires we load new timings on the transitions in some cases.  */
static void it821x_passthru_bmdma_start(struct ata_queued_cmd *qc)
/* Usually drivers set the DMA timing at the point the set_dmamode call is made. IT821x however requires we load new timings on the transitions in some cases.  */
static void it821x_passthru_bmdma_start(struct ata_queued_cmd *qc)
{
	struct ata_port *ap = qc->ap;
	struct ata_device *adev = qc->dev;
	struct it821x_dev *itdev = ap->private_data;
	int unit = adev->devno;
	if (itdev->mwdma[unit] != MWDMA_OFF)
		it821x_program(ap, adev, itdev->mwdma[unit]);
	else if (itdev->udma[unit] != UDMA_OFF && itdev->timing10)
		it821x_program_udma(ap, adev, itdev->udma[unit]);
	ata_bmdma_start(qc);
}