diff mbox

[v1,08/23] ata: sata_dwc_460ex: don't call ata_sff_qc_issue() on DMA commands

Message ID 1461262544-115408-9-git-send-email-andriy.shevchenko@linux.intel.com
State Not Applicable
Delegated to: David Miller
Headers show

Commit Message

Andy Shevchenko April 21, 2016, 6:15 p.m. UTC
ata_sff_qc_issue() can't handle DMA commands and thus we have to avoid it for
them. Do call ata_bmdma_qc_issue() instead for this case.

Suggested-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/ata/sata_dwc_460ex.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

David Laight April 22, 2016, 11:32 a.m. UTC | #1
RnJvbTogQW5keSBTaGV2Y2hlbmtvDQo+IFNlbnQ6IDIxIEFwcmlsIDIwMTYgMTk6MTUNCj4gYXRh
X3NmZl9xY19pc3N1ZSgpIGNhbid0IGhhbmRsZSBETUEgY29tbWFuZHMgYW5kIHRodXMgd2UgaGF2
ZSB0byBhdm9pZCBpdCBmb3INCj4gdGhlbS4gRG8gY2FsbCBhdGFfYm1kbWFfcWNfaXNzdWUoKSBp
bnN0ZWFkIGZvciB0aGlzIGNhc2UuDQo+IA0KPiBTdWdnZXN0ZWQtYnk6IENocmlzdGlhbiBMYW1w
YXJ0ZXIgPGNodW5rZWV5QGdvb2dsZW1haWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBBbmR5IFNo
ZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGxpbnV4LmludGVsLmNvbT4NCj4gLS0tDQo+ICBk
cml2ZXJzL2F0YS9zYXRhX2R3Y180NjBleC5jIHwgNiArKysrLS0NCj4gIDEgZmlsZSBjaGFuZ2Vk
LCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJp
dmVycy9hdGEvc2F0YV9kd2NfNDYwZXguYyBiL2RyaXZlcnMvYXRhL3NhdGFfZHdjXzQ2MGV4LmMN
Cj4gaW5kZXggMDM4ZTVmYi4uODQ1YzM1ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9hdGEvc2F0
YV9kd2NfNDYwZXguYw0KPiArKysgYi9kcml2ZXJzL2F0YS9zYXRhX2R3Y180NjBleC5jDQo+IEBA
IC0xMDYxLDEwICsxMDYxLDEyIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgc2F0YV9kd2NfcWNfaXNz
dWUoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYykNCj4gIAkJCV9fZnVuY19fLCB0YWcsIHFjLT5h
cC0+bGluay5zYWN0aXZlLCBzYWN0aXZlKTsNCj4gDQo+ICAJCWFwLT5vcHMtPnNmZl90Zl9sb2Fk
KGFwLCAmcWMtPnRmKTsNCj4gLQkJc2F0YV9kd2NfZXhlY19jb21tYW5kX2J5X3RhZyhhcCwgJnFj
LT50ZiwgcWMtPnRhZywNCj4gKwkJc2F0YV9kd2NfZXhlY19jb21tYW5kX2J5X3RhZyhhcCwgJnFj
LT50ZiwgdGFnLA0KPiAgCQkJCQkgICAgIFNBVEFfRFdDX0NNRF9JU1NVRURfUEVORCk7DQo+ICsJ
fSBlbHNlIGlmIChhdGFfaXNfZG1hKHFjLT50Zi5wcm90b2NvbCkpIHsNCj4gKwkJcmV0dXJuIGF0
YV9ibWRtYV9xY19pc3N1ZShxYyk7DQo+ICAJfSBlbHNlIHsNCj4gLQkJYXRhX3NmZl9xY19pc3N1
ZShxYyk7DQo+ICsJCXJldHVybiBhdGFfc2ZmX3FjX2lzc3VlKHFjKTsNCj4gIAl9DQo+ICAJcmV0
dXJuIDA7DQo+ICB9DQoNCkknZCBudWtlIHRob3NlICdlbHNlIGlmJywgdGhleSBtYWtlIGl0IHZl
cnkgaGFyZCB0byByZWFkLg0KSSBUaGluayB0aGUgY29kZSBpczoNCg0KCQlzYXRhX2R3Y19leGVj
X2NvbW1hbmRfYnlfdGFnKC4uLik7DQoJCXJldHVybiAwOw0KCX0NCg0KCWlmIChhdGFfaXNfZG1h
KHFjLT50Zi5wcm90b2NvbCkpDQoJCXJldHVybiBhdGFfYm1kbWFfcWNfaXNzdWUocWMpOw0KDQoJ
cmV0dXJuIGF0YV9zZmZfcWNfaXNzdWUocWMpOw0KfQ0KDQoJRGF2aWQNCg0K
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/ata/sata_dwc_460ex.c b/drivers/ata/sata_dwc_460ex.c
index 038e5fb..845c35d 100644
--- a/drivers/ata/sata_dwc_460ex.c
+++ b/drivers/ata/sata_dwc_460ex.c
@@ -1061,10 +1061,12 @@  static unsigned int sata_dwc_qc_issue(struct ata_queued_cmd *qc)
 			__func__, tag, qc->ap->link.sactive, sactive);
 
 		ap->ops->sff_tf_load(ap, &qc->tf);
-		sata_dwc_exec_command_by_tag(ap, &qc->tf, qc->tag,
+		sata_dwc_exec_command_by_tag(ap, &qc->tf, tag,
 					     SATA_DWC_CMD_ISSUED_PEND);
+	} else if (ata_is_dma(qc->tf.protocol)) {
+		return ata_bmdma_qc_issue(qc);
 	} else {
-		ata_sff_qc_issue(qc);
+		return ata_sff_qc_issue(qc);
 	}
 	return 0;
 }