From mboxrd@z Thu Jan 1 00:00:00 1970 From: Qiang Yu Subject: [PATCH RFC 23/24] drm/lima: add context related functions Date: Fri, 18 May 2018 17:28:14 +0800 Message-ID: <20180518092815.25280-24-yuq825@gmail.com> References: <20180518092815.25280-1-yuq825@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180518092815.25280-1-yuq825@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org Cc: Simon Shields , Marek Vasut , Connor Abbott , Neil Armstrong , Andrei Paulau <7134956@gmail.com>, Vasily Khoruzhick , Qiang Yu , Erico Nunes List-Id: devicetree@vger.kernel.org U2lnbmVkLW9mZi1ieTogUWlhbmcgWXUgPHl1cTgyNUBnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9n cHUvZHJtL2xpbWEvbGltYV9jdHguYyB8IDE0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9jdHguaCB8ICA1MSArKysrKysrKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgMTk0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX2N0eC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2xpbWEvbGltYV9jdHguaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9s aW1hL2xpbWFfY3R4LmMgYi9kcml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX2N0eC5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNzI0Mzg2MTc2MGI0Ci0tLSAvZGV2L251 bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGltYV9jdHguYwpAQCAtMCwwICsxLDE0MyBA QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IExpbWEgUHJvamVjdAorICoKKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgor ICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJl LCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgor ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug c2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykg T1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhF UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRX QVJFLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisKKyNpbmNsdWRlICJsaW1hX2Rl dmljZS5oIgorI2luY2x1ZGUgImxpbWFfY3R4LmgiCisKK2ludCBsaW1hX2N0eF9jcmVhdGUoc3Ry dWN0IGxpbWFfZGV2aWNlICpkZXYsIHN0cnVjdCBsaW1hX2N0eF9tZ3IgKm1nciwgdTMyICppZCkK K3sKKwlzdHJ1Y3QgbGltYV9jdHggKmN0eDsKKwlpbnQgaSwgZXJyOworCisJY3R4ID0ga3phbGxv YyhzaXplb2YoKmN0eCksIEdGUF9LRVJORUwpOworCWlmICghY3R4KQorCQlyZXR1cm4gLUVOT01F TTsKKwljdHgtPmRldiA9IGRldjsKKwlrcmVmX2luaXQoJmN0eC0+cmVmY250KTsKKworCWZvciAo aSA9IDA7IGkgPCBsaW1hX3BpcGVfbnVtOyBpKyspIHsKKwkJZXJyID0gbGltYV9zY2hlZF9jb250 ZXh0X2luaXQoZGV2LT5waXBlICsgaSwgY3R4LT5jb250ZXh0ICsgaSwgJmN0eC0+Z3VpbHR5KTsK KwkJaWYgKGVycikKKwkJCWdvdG8gZXJyX291dDA7CisJfQorCisJaWRyX3ByZWxvYWQoR0ZQX0tF Uk5FTCk7CisJc3Bpbl9sb2NrKCZtZ3ItPmxvY2spOworCWVyciA9IGlkcl9hbGxvYygmbWdyLT5o YW5kbGVzLCBjdHgsIDEsIDAsIEdGUF9BVE9NSUMpOworCXNwaW5fdW5sb2NrKCZtZ3ItPmxvY2sp OworCWlkcl9wcmVsb2FkX2VuZCgpOworCWlmIChlcnIgPCAwKQorCQlnb3RvIGVycl9vdXQwOwor CisJKmlkID0gZXJyOworCXJldHVybiAwOworCitlcnJfb3V0MDoKKwlmb3IgKGktLTsgaSA+PSAw OyBpLS0pCisJCWxpbWFfc2NoZWRfY29udGV4dF9maW5pKGRldi0+cGlwZSArIGksIGN0eC0+Y29u dGV4dCArIGkpOworCWtmcmVlKGN0eCk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHZvaWQg bGltYV9jdHhfZG9fcmVsZWFzZShzdHJ1Y3Qga3JlZiAqcmVmKQoreworCXN0cnVjdCBsaW1hX2N0 eCAqY3R4ID0gY29udGFpbmVyX29mKHJlZiwgc3RydWN0IGxpbWFfY3R4LCByZWZjbnQpOworCWlu dCBpOworCisJZm9yIChpID0gMDsgaSA8IGxpbWFfcGlwZV9udW07IGkrKykKKwkJbGltYV9zY2hl ZF9jb250ZXh0X2ZpbmkoY3R4LT5kZXYtPnBpcGUgKyBpLCBjdHgtPmNvbnRleHQgKyBpKTsKKwlr ZnJlZShjdHgpOworfQorCitpbnQgbGltYV9jdHhfZnJlZShzdHJ1Y3QgbGltYV9jdHhfbWdyICpt Z3IsIHUzMiBpZCkKK3sKKwlzdHJ1Y3QgbGltYV9jdHggKmN0eDsKKworCXNwaW5fbG9jaygmbWdy LT5sb2NrKTsKKwljdHggPSBpZHJfcmVtb3ZlKCZtZ3ItPmhhbmRsZXMsIGlkKTsKKwlzcGluX3Vu bG9jaygmbWdyLT5sb2NrKTsKKworCWlmIChjdHgpIHsKKwkJa3JlZl9wdXQoJmN0eC0+cmVmY250 LCBsaW1hX2N0eF9kb19yZWxlYXNlKTsKKwkJcmV0dXJuIDA7CisJfQorCXJldHVybiAtRUlOVkFM OworfQorCitzdHJ1Y3QgbGltYV9jdHggKmxpbWFfY3R4X2dldChzdHJ1Y3QgbGltYV9jdHhfbWdy ICptZ3IsIHUzMiBpZCkKK3sKKwlzdHJ1Y3QgbGltYV9jdHggKmN0eDsKKworCXNwaW5fbG9jaygm bWdyLT5sb2NrKTsKKwljdHggPSBpZHJfZmluZCgmbWdyLT5oYW5kbGVzLCBpZCk7CisJaWYgKGN0 eCkKKwkJa3JlZl9nZXQoJmN0eC0+cmVmY250KTsKKwlzcGluX3VubG9jaygmbWdyLT5sb2NrKTsK KwlyZXR1cm4gY3R4OworfQorCit2b2lkIGxpbWFfY3R4X3B1dChzdHJ1Y3QgbGltYV9jdHggKmN0 eCkKK3sKKwlrcmVmX3B1dCgmY3R4LT5yZWZjbnQsIGxpbWFfY3R4X2RvX3JlbGVhc2UpOworfQor Cit2b2lkIGxpbWFfY3R4X21ncl9pbml0KHN0cnVjdCBsaW1hX2N0eF9tZ3IgKm1ncikKK3sKKyAg ICAgICAgc3Bpbl9sb2NrX2luaXQoJm1nci0+bG9jayk7CisJaWRyX2luaXQoJm1nci0+aGFuZGxl cyk7Cit9CisKK3ZvaWQgbGltYV9jdHhfbWdyX2Zpbmkoc3RydWN0IGxpbWFfY3R4X21nciAqbWdy KQoreworCXN0cnVjdCBsaW1hX2N0eCAqY3R4OworCXN0cnVjdCBpZHIgKmlkcDsKKwl1aW50MzJf dCBpZDsKKworCWlkcCA9ICZtZ3ItPmhhbmRsZXM7CisKKwlpZHJfZm9yX2VhY2hfZW50cnkoaWRw LCBjdHgsIGlkKSB7CisJICAgICAgICBrcmVmX3B1dCgmY3R4LT5yZWZjbnQsIGxpbWFfY3R4X2Rv X3JlbGVhc2UpOworCX0KKworCWlkcl9kZXN0cm95KCZtZ3ItPmhhbmRsZXMpOworfQorCitzdHJ1 Y3QgZG1hX2ZlbmNlICpsaW1hX2N0eF9nZXRfbmF0aXZlX2ZlbmNlKHN0cnVjdCBsaW1hX2N0eF9t Z3IgKm1nciwKKwkJCQkJICAgIHUzMiBjdHgsIHUzMiBwaXBlLCB1MzIgc2VxKQoreworCXN0cnVj dCBsaW1hX2N0eCAqYzsKKwlzdHJ1Y3QgZG1hX2ZlbmNlICpyZXQ7CisKKwlpZiAocGlwZSA+PSBs aW1hX3BpcGVfbnVtKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKworCWMgPSBsaW1hX2N0 eF9nZXQobWdyLCBjdHgpOworCWlmICghYykKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT0VOVCk7CisK KwlyZXQgPSBsaW1hX3NjaGVkX2NvbnRleHRfZ2V0X2ZlbmNlKGMtPmNvbnRleHQgKyBwaXBlLCBz ZXEpOworCisJbGltYV9jdHhfcHV0KGMpOworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbGltYS9saW1hX2N0eC5oIGIvZHJpdmVycy9ncHUvZHJtL2xpbWEvbGlt YV9jdHguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjU5MWY2NDUz Mjc3MgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9saW1hL2xpbWFfY3R4LmgK QEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE4IExpbWEgUHJv amVjdAorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8g ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNv ZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlS SUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElO R1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisjaWZuZGVmIF9fTElNQV9DVFhfSF9fCisjZGVmaW5l IF9fTElNQV9DVFhfSF9fCisKKyNpbmNsdWRlIDxsaW51eC9pZHIuaD4KKworI2luY2x1ZGUgImxp bWFfZGV2aWNlLmgiCisKK3N0cnVjdCBsaW1hX2N0eCB7CisJc3RydWN0IGtyZWYgcmVmY250Owor CXN0cnVjdCBsaW1hX2RldmljZSAqZGV2OworCXN0cnVjdCBsaW1hX3NjaGVkX2NvbnRleHQgY29u dGV4dFtsaW1hX3BpcGVfbnVtXTsKKwlhdG9taWNfdCBndWlsdHk7Cit9OworCitzdHJ1Y3QgbGlt YV9jdHhfbWdyIHsKKwlzcGlubG9ja190IGxvY2s7CisJc3RydWN0IGlkciBoYW5kbGVzOworfTsK KworaW50IGxpbWFfY3R4X2NyZWF0ZShzdHJ1Y3QgbGltYV9kZXZpY2UgKmRldiwgc3RydWN0IGxp bWFfY3R4X21nciAqbWdyLCB1MzIgKmlkKTsKK2ludCBsaW1hX2N0eF9mcmVlKHN0cnVjdCBsaW1h X2N0eF9tZ3IgKm1nciwgdTMyIGlkKTsKK3N0cnVjdCBsaW1hX2N0eCAqbGltYV9jdHhfZ2V0KHN0 cnVjdCBsaW1hX2N0eF9tZ3IgKm1nciwgdTMyIGlkKTsKK3ZvaWQgbGltYV9jdHhfcHV0KHN0cnVj dCBsaW1hX2N0eCAqY3R4KTsKK3ZvaWQgbGltYV9jdHhfbWdyX2luaXQoc3RydWN0IGxpbWFfY3R4 X21nciAqbWdyKTsKK3ZvaWQgbGltYV9jdHhfbWdyX2Zpbmkoc3RydWN0IGxpbWFfY3R4X21nciAq bWdyKTsKKworc3RydWN0IGRtYV9mZW5jZSAqbGltYV9jdHhfZ2V0X25hdGl2ZV9mZW5jZShzdHJ1 Y3QgbGltYV9jdHhfbWdyICptZ3IsCisJCQkJCSAgICB1MzIgY3R4LCB1MzIgcGlwZSwgdTMyIHNl cSk7CisKKyNlbmRpZgotLSAKMi4xNy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK