From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v3 03/16] gpu: host1x: Introduce support for wide opcodes Date: Fri, 1 Feb 2019 14:28:24 +0100 Message-ID: <20190201132837.12327-4-thierry.reding@gmail.com> References: <20190201132837.12327-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190201132837.12327-1-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: linux-tegra@vger.kernel.org, Dmitry Osipenko , dri-devel@lists.freedesktop.org, Mikko Perttunen List-Id: linux-tegra@vger.kernel.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClRoZSBDRE1BIHB1c2gg YnVmZmVyIGNhbiBjdXJyZW50bHkgb25seSBoYW5kbGUgb3Bjb2RlcyB0aGF0IHRha2UgYQpzaW5n bGUgd29yZCBwYXJhbWV0ZXIuIEhvd2V2ZXIsIHRoZSBob3N0MXggaW1wbGVtZW50YXRpb24gb24g VGVncmExODYKYW5kIGxhdGVyIHN1cHBvcnRzIG9wY29kZXMgdGhhdCByZXF1aXJlIG11bHRpcGxl IHdvcmRzIGFzIHBhcmFtZXRlcnMuCgpVbmZvcnR1bmF0ZWx5IHRoZSB3YXkgdGhlIHB1c2ggYnVm ZmVyIGlzIHN0cnVjdHVyZWQsIHRoZXNlIHdpZGUgb3Bjb2RlcwpjYW5ub3Qgc2ltcGx5IGJlIGNv bXBvc2VkIG9mIHR3byByZWd1bGFyIG9wY29kZXMgYmVjYXVzZSB0aGF0IGNvdWxkCnJlc3VsdCBp biB0aGUgd2lkZSBvcGNvZGUgYmVpbmcgc3BsaXQgYWNyb3NzIHRoZSBlbmQgb2YgdGhlIHB1c2gg YnVmZmVyCmFuZCB0aGUgZmluYWwgUkVTVEFSVCBvcGNvZGUgcmVxdWlyZWQgdG8gd3JhcCB0aGUg cHVzaCBidWZmZXIgYXJvdW5kCndvdWxkIGJyZWFrIHRoZSB3aWRlIG9wY29kZS4KCk9uZSB3YXkg dG8gZml4IHRoaXMgd291bGQgYmUgdG8gcmVtb3ZlIHRoZSBjb25jZXB0IG9mIHNsb3RzIHRvIHNp bXBsaWZ5CnB1c2ggYnVmZmVyIG9wZXJhdGlvbnMuIEhvd2V2ZXIsIHRoYXQncyBub3QgZW50aXJl bHkgdHJpdmlhbCBhbmQgc2hvdWxkCmJlIGRvbmUgaW4gYSBzZXBhcmF0ZSBwYXRjaC4gRm9yIG5v dywgc2ltcGx5IHVzZSBhIGRpZmZlcmVudCBmdW5jdGlvbgp0byBwdXNoIGZvdXItd29yZCBvcGNv ZGVzIGludG8gdGhlIHB1c2ggYnVmZmVyLiBUZWNobmljYWxseSBvbmx5IHRocmVlCndvcmRzIGFy ZSBwdXNoZWQsIHdpdGggdGhlIGZvdXJ0aCB3b3JkIHVzZWQgYXMgcGFkZGluZyB0byBwcmVzZXJ2 ZSB0aGUKMi13b3JkIGFsaWdubWVudCByZXF1aXJlZCBieSB0aGUgc2xvdHMgYWJzdHJhY3Rpb24u IFRoZSBmb3VydGggd29yZCBpcwphbHdheXMgYSBOT1Agb3Bjb2RlLgoKQWRkaXRpb25hbCBjYXJl IG11c3QgYmUgdGFrZW4gd2hlbiB0aGUgZW5kIG9mIHRoZSBwdXNoIGJ1ZmZlciBpcwpyZWFjaGVk LiBJZiBhIGZvdXItd29yZCBvcGNvZGUgZG9lc24ndCBmaXQgaW50byB0aGUgcHVzaCBidWZmZXIg d2l0aG91dApiZWluZyBzcGxpdCBieSB0aGUgYm91bmRhcnksIE5PUCBvcGNvZGVzIHdpbGwgYmUg aW50cm9kdWNlZCBhbmQgdGhlIG5ldwp3aWRlIG9wY29kZSBwbGFjZWQgYXQgdGhlIGJlZ2lubmlu ZyBvZiB0aGUgcHVzaCBidWZmZXIuCgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJl ZGluZ0BudmlkaWEuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2hvc3QxeC9jZG1hLmMgICAgIHwgOTIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2hvc3QxeC9j ZG1hLmggICAgIHwgIDIgKwogaW5jbHVkZS90cmFjZS9ldmVudHMvaG9zdDF4LmggfCAyNiArKysr KysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvaG9zdDF4L2NkbWEuYyBiL2RyaXZlcnMvZ3B1L2hvc3QxeC9jZG1hLmMKaW5k ZXggOTFkZjUxZTYzMWIyLi5lMmQxMDZmYTNjMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2hv c3QxeC9jZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvaG9zdDF4L2NkbWEuYwpAQCAtMjE3LDYgKzIx Nyw0NSBAQCB1bnNpZ25lZCBpbnQgaG9zdDF4X2NkbWFfd2FpdF9sb2NrZWQoc3RydWN0IGhvc3Qx eF9jZG1hICpjZG1hLAogCXJldHVybiAwOwogfQogCisvKgorICogU2xlZXAgKGlmIG5lY2Vzc2Fy eSkgdW50aWwgdGhlIHB1c2ggYnVmZmVyIGhhcyBlbm91Z2ggZnJlZSBzcGFjZS4KKyAqCisgKiBN dXN0IGJlIGNhbGxlZCB3aXRoIHRoZSBjZG1hIGxvY2sgaGVsZC4KKyAqLworaW50IGhvc3QxeF9j ZG1hX3dhaXRfcHVzaGJ1ZmZlcl9zcGFjZShzdHJ1Y3QgaG9zdDF4ICpob3N0MXgsCisJCQkJICAg ICAgc3RydWN0IGhvc3QxeF9jZG1hICpjZG1hLAorCQkJCSAgICAgIHVuc2lnbmVkIGludCBuZWVk ZWQpCit7CisJd2hpbGUgKHRydWUpIHsKKwkJc3RydWN0IHB1c2hfYnVmZmVyICpwYiA9ICZjZG1h LT5wdXNoX2J1ZmZlcjsKKwkJdW5zaWduZWQgaW50IHNwYWNlOworCisJCXNwYWNlID0gaG9zdDF4 X3B1c2hidWZmZXJfc3BhY2UocGIpOworCQlpZiAoc3BhY2UgPj0gbmVlZGVkKQorCQkJYnJlYWs7 CisKKwkJdHJhY2VfaG9zdDF4X3dhaXRfY2RtYShkZXZfbmFtZShjZG1hX3RvX2NoYW5uZWwoY2Rt YSktPmRldiksCisJCQkJICAgICAgIENETUFfRVZFTlRfUFVTSF9CVUZGRVJfU1BBQ0UpOworCisJ CWhvc3QxeF9od19jZG1hX2ZsdXNoKGhvc3QxeCwgY2RtYSk7CisKKwkJLyogSWYgc29tZWJvZHkg aGFzIG1hbmFnZWQgdG8gYWxyZWFkeSBzdGFydCB3YWl0aW5nLCB5aWVsZCAqLworCQlpZiAoY2Rt YS0+ZXZlbnQgIT0gQ0RNQV9FVkVOVF9OT05FKSB7CisJCQltdXRleF91bmxvY2soJmNkbWEtPmxv Y2spOworCQkJc2NoZWR1bGUoKTsKKwkJCW11dGV4X2xvY2soJmNkbWEtPmxvY2spOworCQkJY29u dGludWU7CisJCX0KKworCQljZG1hLT5ldmVudCA9IENETUFfRVZFTlRfUFVTSF9CVUZGRVJfU1BB Q0U7CisKKwkJbXV0ZXhfdW5sb2NrKCZjZG1hLT5sb2NrKTsKKwkJZG93bigmY2RtYS0+c2VtKTsK KwkJbXV0ZXhfbG9jaygmY2RtYS0+bG9jayk7CisJfQorCisJcmV0dXJuIDA7Cit9CiAvKgogICog U3RhcnQgdGltZXIgdGhhdCB0cmFja3MgdGhlIHRpbWUgc3BlbnQgYnkgdGhlIGpvYi4KICAqIE11 c3QgYmUgY2FsbGVkIHdpdGggdGhlIGNkbWEgbG9jayBoZWxkLgpAQCAtNTA5LDYgKzU0OCw1OSBA QCB2b2lkIGhvc3QxeF9jZG1hX3B1c2goc3RydWN0IGhvc3QxeF9jZG1hICpjZG1hLCB1MzIgb3Ax LCB1MzIgb3AyKQogCWhvc3QxeF9wdXNoYnVmZmVyX3B1c2gocGIsIG9wMSwgb3AyKTsKIH0KIAor LyoKKyAqIFB1c2ggZm91ciB3b3JkcyBpbnRvIHR3byBjb25zZWN1dGl2ZSBwdXNoIGJ1ZmZlciBz bG90cy4gTm90ZSB0aGF0IGV4dHJhCisgKiBjYXJlIG5lZWRzIHRvIGJlIHRha2VuIG5vdCB0byBz cGxpdCB0aGUgdHdvIHNsb3RzIGFjcm9zcyB0aGUgZW5kIG9mIHRoZQorICogcHVzaCBidWZmZXIu IE90aGVyd2lzZSB0aGUgUkVTVEFSVCBvcGNvZGUgYXQgdGhlIGVuZCBvZiB0aGUgcHVzaCBidWZm ZXIKKyAqIHRoYXQgZW5zdXJlcyBwcm9jZXNzaW5nIHdpbGwgcmVzdGFydCBhdCB0aGUgYmVnaW5u aW5nIHdpbGwgYnJlYWsgdXAgdGhlCisgKiBmb3VyIHdvcmRzLgorICoKKyAqIEJsb2NrcyBhcyBu ZWNlc3NhcnkgaWYgdGhlIHB1c2ggYnVmZmVyIGlzIGZ1bGwuCisgKi8KK3ZvaWQgaG9zdDF4X2Nk bWFfcHVzaF93aWRlKHN0cnVjdCBob3N0MXhfY2RtYSAqY2RtYSwgdTMyIG9wMSwgdTMyIG9wMiwK KwkJCSAgIHUzMiBvcDMsIHUzMiBvcDQpCit7CisJc3RydWN0IGhvc3QxeF9jaGFubmVsICpjaGFu bmVsID0gY2RtYV90b19jaGFubmVsKGNkbWEpOworCXN0cnVjdCBob3N0MXggKmhvc3QxeCA9IGNk bWFfdG9faG9zdDF4KGNkbWEpOworCXN0cnVjdCBwdXNoX2J1ZmZlciAqcGIgPSAmY2RtYS0+cHVz aF9idWZmZXI7CisJdW5zaWduZWQgaW50IG5lZWRlZCA9IDIsIGV4dHJhID0gMCwgaTsKKwl1bnNp Z25lZCBpbnQgc3BhY2UgPSBjZG1hLT5zbG90c19mcmVlOworCisJaWYgKGhvc3QxeF9kZWJ1Z190 cmFjZV9jbWRidWYpCisJCXRyYWNlX2hvc3QxeF9jZG1hX3B1c2hfd2lkZShkZXZfbmFtZShjaGFu bmVsLT5kZXYpLCBvcDEsIG9wMiwKKwkJCQkJICAgIG9wMywgb3A0KTsKKworCS8qIGNvbXB1dGUg bnVtYmVyIG9mIGV4dHJhIHNsb3RzIG5lZWRlZCBmb3IgcGFkZGluZyAqLworCWlmIChwYi0+cG9z ICsgMTYgPiBwYi0+c2l6ZSkgeworCQlleHRyYSA9IChwYi0+c2l6ZSAtIHBiLT5wb3MpIC8gODsK KwkJbmVlZGVkICs9IGV4dHJhOworCX0KKworCWhvc3QxeF9jZG1hX3dhaXRfcHVzaGJ1ZmZlcl9z cGFjZShob3N0MXgsIGNkbWEsIG5lZWRlZCk7CisJc3BhY2UgPSBob3N0MXhfcHVzaGJ1ZmZlcl9z cGFjZShwYik7CisKKwljZG1hLT5zbG90c19mcmVlID0gc3BhY2UgLSBuZWVkZWQ7CisJY2RtYS0+ c2xvdHNfdXNlZCArPSBuZWVkZWQ7CisKKwkvKgorCSAqIE5vdGUgdGhhdCB3ZSByZWx5IG9uIHRo ZSBmYWN0IHRoYXQgdGhpcyBpcyBvbmx5IHVzZWQgdG8gc3VibWl0IHdpZGUKKwkgKiBnYXRoZXIg b3Bjb2Rlcywgd2hpY2ggY29uc2lzdCBvZiAzIHdvcmRzLCBhbmQgdGhleSBhcmUgcGFkZGVkIHdp dGgKKwkgKiBhIE5PUCB0byBhdm9pZCBoYXZpbmcgdG8gZGVhbCB3aXRoIGZyYWN0aW9uYWwgc2xv dHMgKGEgc2xvdCBhbHdheXMKKwkgKiByZXByZXNlbnRzIDIgd29yZHMpLiBUaGUgZm91cnRoIG9w Y29kZSBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiB3aWxsCisJICogdGhlcmVmb3JlIGFsd2F5cyBi ZSBhIE5PUC4KKwkgKgorCSAqIFRoaXMgd29ya3MgYXJvdW5kIGEgc2xpZ2h0IGFtYmlndWl0eSB3 aGVuIGl0IGNvbWVzIHRvIG9wY29kZXMuIEZvcgorCSAqIGFsbCBjdXJyZW50IGhvc3QxeCBpbmNh cm5hdGlvbnMgdGhlIE5PUCBvcGNvZGUgdXNlcyB0aGUgZXhhY3Qgc2FtZQorCSAqIGVuY29kaW5n ICgweDIwMDAwMDAwKSwgc28gd2UgY291bGQgaGFyZC1jb2RlIHRoZSB2YWx1ZSBoZXJlLCBidXQg YQorCSAqIG5ldyBpbmNhcm5hdGlvbiBtYXkgY2hhbmdlIGl0IGFuZCBicmVhayB0aGF0IGFzc3Vt cHRpb24uCisJICovCisJZm9yIChpID0gMDsgaSA8IGV4dHJhOyBpKyspCisJCWhvc3QxeF9wdXNo YnVmZmVyX3B1c2gocGIsIG9wNCwgb3A0KTsKKworCWhvc3QxeF9wdXNoYnVmZmVyX3B1c2gocGIs IG9wMSwgb3AyKTsKKwlob3N0MXhfcHVzaGJ1ZmZlcl9wdXNoKHBiLCBvcDMsIG9wNCk7Cit9CisK IC8qCiAgKiBFbmQgYSBjZG1hIHN1Ym1pdAogICogS2ljayBvZmYgRE1BLCBhZGQgam9iIHRvIHRo ZSBzeW5jIHF1ZXVlLCBhbmQgYSBudW1iZXIgb2Ygc2xvdHMgdG8gYmUgZnJlZWQKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2hvc3QxeC9jZG1hLmggYi9kcml2ZXJzL2dwdS9ob3N0MXgvY2RtYS5o CmluZGV4IGU5N2UxN2I4MjM3MC4uZWJmNmM2YTA2NTQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9ob3N0MXgvY2RtYS5oCisrKyBiL2RyaXZlcnMvZ3B1L2hvc3QxeC9jZG1hLmgKQEAgLTkwLDYg KzkwLDggQEAgaW50IGhvc3QxeF9jZG1hX2luaXQoc3RydWN0IGhvc3QxeF9jZG1hICpjZG1hKTsK IGludCBob3N0MXhfY2RtYV9kZWluaXQoc3RydWN0IGhvc3QxeF9jZG1hICpjZG1hKTsKIGludCBo b3N0MXhfY2RtYV9iZWdpbihzdHJ1Y3QgaG9zdDF4X2NkbWEgKmNkbWEsIHN0cnVjdCBob3N0MXhf am9iICpqb2IpOwogdm9pZCBob3N0MXhfY2RtYV9wdXNoKHN0cnVjdCBob3N0MXhfY2RtYSAqY2Rt YSwgdTMyIG9wMSwgdTMyIG9wMik7Cit2b2lkIGhvc3QxeF9jZG1hX3B1c2hfd2lkZShzdHJ1Y3Qg aG9zdDF4X2NkbWEgKmNkbWEsIHUzMiBvcDEsIHUzMiBvcDIsCisJCQkgICB1MzIgb3AzLCB1MzIg b3A0KTsKIHZvaWQgaG9zdDF4X2NkbWFfZW5kKHN0cnVjdCBob3N0MXhfY2RtYSAqY2RtYSwgc3Ry dWN0IGhvc3QxeF9qb2IgKmpvYik7CiB2b2lkIGhvc3QxeF9jZG1hX3VwZGF0ZShzdHJ1Y3QgaG9z dDF4X2NkbWEgKmNkbWEpOwogdm9pZCBob3N0MXhfY2RtYV9wZWVrKHN0cnVjdCBob3N0MXhfY2Rt YSAqY2RtYSwgdTMyIGRtYWdldCwgaW50IHNsb3QsCmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNl L2V2ZW50cy9ob3N0MXguaCBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2hvc3QxeC5oCmluZGV4IGEz N2VmNzMwOTJlNS4uM2QzNDBiNmYxZWEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL3RyYWNlL2V2ZW50 cy9ob3N0MXguaAorKysgYi9pbmNsdWRlL3RyYWNlL2V2ZW50cy9ob3N0MXguaApAQCAtODAsNiAr ODAsMzIgQEAgVFJBQ0VfRVZFTlQoaG9zdDF4X2NkbWFfcHVzaCwKIAkJX19lbnRyeS0+bmFtZSwg X19lbnRyeS0+b3AxLCBfX2VudHJ5LT5vcDIpCiApOwogCitUUkFDRV9FVkVOVChob3N0MXhfY2Rt YV9wdXNoX3dpZGUsCisJVFBfUFJPVE8oY29uc3QgY2hhciAqbmFtZSwgdTMyIG9wMSwgdTMyIG9w MiwgdTMyIG9wMywgdTMyIG9wNCksCisKKwlUUF9BUkdTKG5hbWUsIG9wMSwgb3AyLCBvcDMsIG9w NCksCisKKwlUUF9TVFJVQ1RfX2VudHJ5KAorCQlfX2ZpZWxkKGNvbnN0IGNoYXIgKiwgbmFtZSkK KwkJX19maWVsZCh1MzIsIG9wMSkKKwkJX19maWVsZCh1MzIsIG9wMikKKwkJX19maWVsZCh1MzIs IG9wMykKKwkJX19maWVsZCh1MzIsIG9wNCkKKwkpLAorCisJVFBfZmFzdF9hc3NpZ24oCisJCV9f ZW50cnktPm5hbWUgPSBuYW1lOworCQlfX2VudHJ5LT5vcDEgPSBvcDE7CisJCV9fZW50cnktPm9w MiA9IG9wMjsKKwkJX19lbnRyeS0+b3AzID0gb3AzOworCQlfX2VudHJ5LT5vcDQgPSBvcDQ7CisJ KSwKKworCVRQX3ByaW50aygibmFtZT0lcywgb3AxPSUwOHgsIG9wMj0lMDh4LCBvcDM9JTA4eCBv cDQ9JTA4eCIsCisJCV9fZW50cnktPm5hbWUsIF9fZW50cnktPm9wMSwgX19lbnRyeS0+b3AyLCBf X2VudHJ5LT5vcDMsCisJCV9fZW50cnktPm9wNCkKKyk7CisKIFRSQUNFX0VWRU5UKGhvc3QxeF9j ZG1hX3B1c2hfZ2F0aGVyLAogCVRQX1BST1RPKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBob3N0 MXhfYm8gKmJvLAogCQkJdTMyIHdvcmRzLCB1MzIgb2Zmc2V0LCB2b2lkICpjbWRidWYpLAotLSAK Mi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK