From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [4/6] dma: tegra: add accurate reporting of dma state From: Ben Dooks Message-Id: <20181031160309.20408-5-ben.dooks@codethink.co.uk> Date: Wed, 31 Oct 2018 16:03:07 +0000 To: dan.j.williams@intel.com, vkoul@kernel.org Cc: ldewangan@nvidia.com, dmaengine@vger.kernel.org, linux-tegra@vger.kernel.org, Ben Dooks List-ID: VGhlIHR4X3N0YXR1cyBjYWxsYmFjayBkb2VzIG5vdCByZXBvcnQgdGhlIHN0YXRlIG9mIHRoZSB0 cmFuc2ZlcgpiZXlvbmQgY29tcGxldGUgc2VnbWVudHMuIFRoaXMgY2F1c2VzIHByb2JsZW1zIHdp dGggdXNlcnMgc3VjaCBhcwpBTFNBIHdoZW4gYXBwbGljYXRpb25zIHdhbnQgdG8ga25vdyBhY2N1 cmF0ZWx5IGhvdyBtdWNoIGRhdGEgaGFzCmJlZW4gbW92ZWQuCgpUaGlzIHBhdGNoIGFkZGVzIGEg ZnVuY3Rpb24gdGVncmFfZG1hX3VwZGF0ZV9yZXNpZHVhbCgpIHRvIHF1ZXJ5CnRoZSBoYXJkd2Fy ZSBhbmQgbW9kaWZ5IHRoZSByZXNpZHVhbCBpbmZvcm1hdGlvbiBhY2NvcmRpbmx5LiBJdAp0YWtl cyBpbnRvIGFjY291bnQgYW55IGhhcmR3YXJlIGlzc3VlcyB3aGVuIHRyeWluZyB0byByZWFkIHRo ZQpzdGF0ZSwgc3VjaCBhcyBkZWxheXMgYmV0d2VlbiBmaW5pc2hpbmcgYSBidWZmZXIgYW5kIHNp Z25hbGxpbmcKdGhlIGludGVycnVwdC4KClNpZ25lZC1vZmYtYnk6IEJlbiBEb29rcyA8YmVuLmRv b2tzQGNvZGV0aGluay5jby51az4KLS0tCiBkcml2ZXJzL2RtYS90ZWdyYTIwLWFwYi1kbWEuYyB8 IDk0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg ODcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Rt YS90ZWdyYTIwLWFwYi1kbWEuYyBiL2RyaXZlcnMvZG1hL3RlZ3JhMjAtYXBiLWRtYS5jCmluZGV4 IDRmN2QxZTU3NmQwMy4uM2ZhM2ExYWM0ZjU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS90ZWdy YTIwLWFwYi1kbWEuYworKysgYi9kcml2ZXJzL2RtYS90ZWdyYTIwLWFwYi1kbWEuYwpAQCAtODAy LDEyICs4MDIsOTYgQEAgc3RhdGljIGludCB0ZWdyYV9kbWFfdGVybWluYXRlX2FsbChzdHJ1Y3Qg ZG1hX2NoYW4gKmRjKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IHRlZ3Jh X2RtYV91cGRhdGVfcmVzaWR1YWwoc3RydWN0IHRlZ3JhX2RtYV9jaGFubmVsICp0ZGMsCisJCQkJ CSAgICAgIHN0cnVjdCB0ZWdyYV9kbWFfc2dfcmVxICpzZ19yZXEsCisJCQkJCSAgICAgIHN0cnVj dCB0ZWdyYV9kbWFfZGVzYyAqZG1hX2Rlc2MsCisJCQkJCSAgICAgIHVuc2lnbmVkIGludCByZXNp ZHVhbCkKK3sKKwl1bnNpZ25lZCBsb25nIHN0YXR1cyA9IDB4MDsKKwl1bnNpZ25lZCBsb25nIHdj b3VudDsKKwl1bnNpZ25lZCBsb25nIGFoYnB0cjsKKwl1bnNpZ25lZCBsb25nIHRtcCA9IDB4MDsK Kwl1bnNpZ25lZCBpbnQgcmVzdWx0OworCWludCByZXRyaWVzID0gVEVHUkFfQVBCRE1BX0JVUlNU X0NPTVBMRVRFX1RJTUUgKiAxMDsKKwlpbnQgZG9uZTsKKworCS8qIGlmIHdlJ3JlIG5vdCB0aGUg Y3VycmVudCByZXF1ZXN0LCB0aGVuIGRvbid0IGFsdGVyIHRoZSByZXNpZHVhbCAqLworCWlmIChz Z19yZXEgIT0gbGlzdF9maXJzdF9lbnRyeSgmdGRjLT5wZW5kaW5nX3NnX3JlcSwKKwkJCQkgICAg ICAgc3RydWN0IHRlZ3JhX2RtYV9zZ19yZXEsIG5vZGUpKSB7CisJCXJlc3VsdCA9IHJlc2lkdWFs OworCQlhaGJwdHIgPSAweGZmZmZmZmZmOworCQlnb3RvIGRvbmU7CisJfQorCisJLyogbG9vcCB1 bnRpbCB3ZSBoYXZlIGEgcmVsaWFibGUgcmVzdWx0IGZvciByZXNpZHVhbCAqLworCWRvIHsKKwkJ YWhicHRyID0gdGRjX3JlYWQodGRjLCBURUdSQV9BUEJETUFfQ0hBTl9BSEJQVFIpOworCQlzdGF0 dXMgPSB0ZGNfcmVhZCh0ZGMsIFRFR1JBX0FQQkRNQV9DSEFOX1NUQVRVUyk7CisJCXRtcCA9ICB0 ZGNfcmVhZCh0ZGMsIDB4MDgpOwkvKiB0b3RhbCBjb3VudCBmb3IgZGVidWcgKi8KKworCQkvKiBj aGVjayBzdGF0dXMsIGlmIGNoYW5uZWwgaXNuJ3QgYnVzeSB0aGVuIHNraXAgKi8KKwkJaWYgKCEo c3RhdHVzICYgVEVHUkFfQVBCRE1BX1NUQVRVU19CVVNZKSkgeworCQkJcmVzdWx0ID0gcmVzaWR1 YWw7CisJCQlicmVhazsKKwkJfQorCisJCS8qIGlmIHdlJ3ZlIGdvdCBhbiBpbnRlcnJ1cHQgcGVu ZGluZyBvbiB0aGUgY2hhbm5lbCwgZG9uJ3QKKwkJICogdHJ5IGFuZCBkZWFsIHdpdGggdGhlIHJl c2lkdWUgYXMgdGhlIGhhcmR3YXJlIGhhcyBsaWtlbHkKKwkJICogbW92ZWQgb24gdG8gdGhlIG5l eHQgYnVmZmVyLiByZXR1cm4gYWxsIGRhdGEgbW92ZWQuCisJCSAqLworCQlpZiAoc3RhdHVzICYg VEVHUkFfQVBCRE1BX1NUQVRVU19JU0VfRU9DKSB7CisJCQlyZXN1bHQgPSByZXNpZHVhbCAtIHNn X3JlcS0+cmVxX2xlbjsKKwkJCWJyZWFrOworCQl9CisKKwkJaWYgKHRkYy0+dGRtYS0+Y2hpcF9k YXRhLT5zdXBwb3J0X3NlcGFyYXRlX3djb3VudF9yZWcpCisJCQl3Y291bnQgPSB0ZGNfcmVhZCh0 ZGMsIFRFR1JBX0FQQkRNQV9DSEFOX1dPUkRfVFJBTlNGRVIpOworCQllbHNlCisJCQl3Y291bnQg PSBzdGF0dXM7CisKKwkJLyogSWYgdGhlIHJlcXVlc3QgaXMgYXQgdGhlIGZ1bGwgcG9pbnQsIHRo ZW4gdGhlcmUgaXMgYQorCQkgKiBjaGFuY2UgdGhhdCB3ZSBoYXZlIHJlYWQgdGhlIHN0YXR1cyBy ZWdpc3RlciBpbiB0aGUKKwkJICogbWlkZGxlIG9mIHRoZSBoYXJkd2FyZSByZWxvYWRpbmcgdGhl IG5leHQgYnVmZmVyLgorCQkgKgorCQkgKiBUaGUgc2VxdWVuY2Ugc2VlbXMgdG8gYmUgYXQgdGhl IGVuZCBvZiB0aGUgYnVmZmVyLCB0bworCQkgKiBsb2FkIHRoZSBuZXcgd29yZCBjb3VudCBiZWZv cmUgcmFpc2luZyB0aGUgRU9DIGZsYWcgKG9yCisJCSAqIGNoYW5naW5nIHRoZSBwaW5nLXBvbmcg ZmxhZyB3aGljaCBjb3VsZCBoYXZlIGFsc28gYmVlbgorCQkgKiB1c2VkIHRvIGRldGVybWluZSBh IG5ldyBidWZmZXIpLiBUaGlzICBtZWFucyB0aGVyZSBpcyBhCisJCSAqIHNtYWxsIHdpbmRvdyB3 aGVyZSB3ZSBjYW5ub3QgZGV0ZXJtaW5lIHplcm8tZG9uZSBmb3IgdGhlCisJCSAqIGN1cnJlbnQg YnVmZmVyLCBvciBtb3ZlZCB0byBuZXh0IGJ1ZmZlci4KKwkJICoKKwkJICogSWYgZG9uZSBzaG93 cyAwLCB0aGVuIHJldHJ5IHRoZSBsb2FkLCBhcyBpdCBtYXkgaGl0IHRoZQorCQkgKiBhYm92ZSBo YXJkd2FyZSByYWNlLiBXZSB3aWxsIGVpdGhlciBnZXQgYSBuZXcgdmFsdWUgd2hpY2gKKwkJICog aXMgZnJvbSB0aGUgZmlyc3QgYnVmZmVyLCBvciB3ZSBnZXQgYW4gRU9DIChuZXcgYnVmZmVyKQor CQkgKiBvciBib3RoIGEgbmV3IHZhbHVlIGFuZCBhbiBFT0MuLi4KKwkJICovCisJCWRvbmUgPSBn ZXRfY3VycmVudF94ZmVycmVkX2NvdW50KHRkYywgc2dfcmVxLCB3Y291bnQpOworCQlpZiAoZG9u ZSAhPSAwKSB7CisJCQlyZXN1bHQgPSByZXNpZHVhbCAtIGRvbmU7CisJCQlicmVhazsKKwkJfQor CisJCW5kZWxheSgxMDApOworCX0gd2hpbGUgKC0tcmV0cmllcyA+IDApOworCisJaWYgKHJldHJp ZXMgPD0gMCkgeworCQlkZXZfZXJyKHRkYzJkZXYodGRjKSwgInRpbWVvdXQgd2FpdGluZyBmb3Ig ZG1hIGxvYWRcbiIpOworCQlyZXN1bHQgPSByZXNpZHVhbDsKKwl9CisKK2RvbmU6CQorCWRldl9k YmcodGRjMmRldih0ZGMpLCAicmVzaWR1YWw6IHJlcSAlMDhseCwgYWhiQCUwOGx4LCB3Y291bnQg JTA4bHgsIGRvbmUgJWRcbiIsCisJCSBzZ19yZXEtPmNoX3JlZ3MuYWhiX3B0ciwgYWhicHRyLCB3 Y291bnQsIGRvbmUpOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGVudW0gZG1hX3N0 YXR1cyB0ZWdyYV9kbWFfdHhfc3RhdHVzKHN0cnVjdCBkbWFfY2hhbiAqZGMsCiAJZG1hX2Nvb2tp ZV90IGNvb2tpZSwgc3RydWN0IGRtYV90eF9zdGF0ZSAqdHhzdGF0ZSkKIHsKIAlzdHJ1Y3QgdGVn cmFfZG1hX2NoYW5uZWwgKnRkYyA9IHRvX3RlZ3JhX2RtYV9jaGFuKGRjKTsKIAlzdHJ1Y3QgdGVn cmFfZG1hX2Rlc2MgKmRtYV9kZXNjOwotCXN0cnVjdCB0ZWdyYV9kbWFfc2dfcmVxICpzZ19yZXE7 CisJc3RydWN0IHRlZ3JhX2RtYV9zZ19yZXEgKnNnX3JlcSA9IE5VTEw7CiAJZW51bSBkbWFfc3Rh dHVzIHJldDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXVuc2lnbmVkIGludCByZXNpZHVhbDsK QEAgLTg0Myw2ICs5MjcsNyBAQCBzdGF0aWMgZW51bSBkbWFfc3RhdHVzIHRlZ3JhX2RtYV90eF9z dGF0dXMoc3RydWN0IGRtYV9jaGFuICpkYywKIAkJcmVzaWR1YWwgPSBkbWFfZGVzYy0+Ynl0ZXNf cmVxdWVzdGVkIC0KIAkJCSAgIChkbWFfZGVzYy0+Ynl0ZXNfdHJhbnNmZXJyZWQgJQogCQkJICAg IGRtYV9kZXNjLT5ieXRlc19yZXF1ZXN0ZWQpOworCQlyZXNpZHVhbCA9IHRlZ3JhX2RtYV91cGRh dGVfcmVzaWR1YWwodGRjLCBzZ19yZXEsIGRtYV9kZXNjLCByZXNpZHVhbCk7CiAJCWRtYV9zZXRf cmVzaWR1ZSh0eHN0YXRlLCByZXNpZHVhbCk7CiAJfQogCkBAIC0xNDM2LDEyICsxNTIxLDcgQEAg c3RhdGljIGludCB0ZWdyYV9kbWFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK IAkJQklUKERNQV9TTEFWRV9CVVNXSURUSF80X0JZVEVTKSB8CiAJCUJJVChETUFfU0xBVkVfQlVT V0lEVEhfOF9CWVRFUyk7CiAJdGRtYS0+ZG1hX2Rldi5kaXJlY3Rpb25zID0gQklUKERNQV9ERVZf VE9fTUVNKSB8IEJJVChETUFfTUVNX1RPX0RFVik7Ci0JLyoKLQkgKiBYWFggVGhlIGhhcmR3YXJl IGFwcGVhcnMgdG8gc3VwcG9ydAotCSAqIERNQV9SRVNJRFVFX0dSQU5VTEFSSVRZX0JVUlNULWxl dmVsIHJlcG9ydGluZywgYnV0IGl0J3MKLQkgKiBvbmx5IHVzZWQgYnkgdGhpcyBkcml2ZXIgZHVy aW5nIHRlZ3JhX2RtYV90ZXJtaW5hdGVfYWxsKCkKLQkgKi8KLQl0ZG1hLT5kbWFfZGV2LnJlc2lk dWVfZ3JhbnVsYXJpdHkgPSBETUFfUkVTSURVRV9HUkFOVUxBUklUWV9TRUdNRU5UOworCXRkbWEt PmRtYV9kZXYucmVzaWR1ZV9ncmFudWxhcml0eSA9IERNQV9SRVNJRFVFX0dSQU5VTEFSSVRZX0JV UlNUOwogCXRkbWEtPmRtYV9kZXYuZGV2aWNlX2NvbmZpZyA9IHRlZ3JhX2RtYV9zbGF2ZV9jb25m aWc7CiAJdGRtYS0+ZG1hX2Rldi5kZXZpY2VfdGVybWluYXRlX2FsbCA9IHRlZ3JhX2RtYV90ZXJt aW5hdGVfYWxsOwogCXRkbWEtPmRtYV9kZXYuZGV2aWNlX3R4X3N0YXR1cyA9IHRlZ3JhX2RtYV90 eF9zdGF0dXM7Cg==