From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC v4 07/25] drm: Begin an API for in-kernel clients Date: Sat, 14 Apr 2018 13:53:00 +0200 Message-ID: <20180414115318.14500-8-noralf@tronnes.org> References: <20180414115318.14500-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180414115318.14500-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= List-Id: dri-devel@lists.freedesktop.org VGhpcyB0aGUgYmVnaW5uaW5nIG9mIGFuIEFQSSBmb3IgaW4ta2VybmVsIGNsaWVudHMuCkZpcnN0 IG91dCBpcyBhIGRpc3BsYXkgcmVwcmVzZW50YXRpb24gdGhhdCB3aWxsIGJlIHVzZWQgYnkgZHJt X2ZiX2hlbHBlcgppbiBvcmRlciB0byBtb3ZlIG91dCBpdHMgbW9kZSBzZXR0aW5nIGNvZGUuCgpT aWduZWQtb2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZHJt X2NsaWVudC5jIHwgMTE5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGluY2x1ZGUvZHJtL2RybV9jbGllbnQuaCAgICAgfCAgNDQgKysrKysrKysrKysrKysrKwog MyBmaWxlcyBjaGFuZ2VkLCAxNjQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50LmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBpbmNsdWRlL2RybS9kcm1fY2xpZW50LmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5kZXggOWQ2NjY1N2VhMTE3 Li5kMjVhZmExMzZkOGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTE4LDcgKzE4LDcgQEAgZHJtLXkgICAgICAg Oj0JZHJtX2F1dGgubyBkcm1fYnVmcy5vIGRybV9jYWNoZS5vIFwKIAkJZHJtX2VuY29kZXIubyBk cm1fbW9kZV9vYmplY3QubyBkcm1fcHJvcGVydHkubyBcCiAJCWRybV9wbGFuZS5vIGRybV9jb2xv cl9tZ210Lm8gZHJtX3ByaW50Lm8gXAogCQlkcm1fZHVtYl9idWZmZXJzLm8gZHJtX21vZGVfY29u ZmlnLm8gZHJtX3ZibGFuay5vIFwKLQkJZHJtX3N5bmNvYmoubyBkcm1fbGVhc2UubworCQlkcm1f c3luY29iai5vIGRybV9sZWFzZS5vIGRybV9jbGllbnQubwogCiBkcm0tJChDT05GSUdfRFJNX0xJ Ql9SQU5ET00pICs9IGxpYi9kcm1fcmFuZG9tLm8KIGRybS0kKENPTkZJR19EUk1fVk0pICs9IGRy bV92bS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NsaWVudC5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jbGllbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjdjMzFhNmVmYjJmNAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fY2xpZW50LmMKQEAgLTAsMCArMSwxMTkgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wCisvKgorICogQ29weXJpZ2h0IDIwMTggTm9yYWxmIFRyw7hubmVzCisgKgorICog Rm9yIHBhcnRzIGNvcGllZCBmcm9tIGRybV9mYl9oZWxwZXI6CisgKiBDb3B5cmlnaHQgKGMpIDIw MDYtMjAwOSBSZWQgSGF0IEluYy4KKyAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA4IEludGVsIENv cnBvcmF0aW9uCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcgRGF2ZSBBaXJsaWUgPGFpcmxpZWRAbGlu dXguaWU+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKworI2luY2x1ZGUgPGRybS9k cm1fY2xpZW50Lmg+CisjaW5jbHVkZSA8ZHJtL2RybV9jb25uZWN0b3IuaD4KKyNpbmNsdWRlIDxk cm0vZHJtX2NydGMuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2RldmljZS5oPgorI2luY2x1ZGUgPGRy bS9kcm1fbW9kZXMuaD4KKworLyoqCisgKiBkcm1fY2xpZW50X2Rpc3BsYXlfY3JlYXRlKCkgLSBD cmVhdGUgZGlzcGxheSBzdHJ1Y3R1cmUKKyAqIEBkZXY6IERSTSBkZXZpY2UKKyAqCisgKiBUaGlz IGZ1bmN0aW9uIGNyZWF0ZXMgYSBkaXNwbGF5IHN0cnVjdHVyZSBmb3IgY2xpZW50cyBiYWNrZWQg YnkgYW4gYXJyYXkgb2YKKyAqICZkcm1fbW9kZV9zZXQsIG9uZSBwZXIgQ1JUQy4KKyAqCisgKiBS ZXR1cm5zOgorICogQSAmZHJtX2NsaWVudF9kaXNwbGF5IG9yIGFuIGVycm9yIHBvaW50ZXIgb24g YWxsb2NhdGlvbiBmYWlsdXJlLgorICovCitzdHJ1Y3QgZHJtX2NsaWVudF9kaXNwbGF5ICpkcm1f Y2xpZW50X2Rpc3BsYXlfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJdW5zaWdu ZWQgaW50IG51bV9jcnRjID0gZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YzsKKwlzdHJ1Y3QgZHJt X2NsaWVudF9kaXNwbGF5ICpkaXNwbGF5OworCXN0cnVjdCBkcm1fbW9kZV9zZXQgKm1vZGVzZXQ7 CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXVuc2lnbmVkIGludCBpID0gMDsKKworCWRpc3Bs YXkgPSBremFsbG9jKHNpemVvZigqZGlzcGxheSksIEdGUF9LRVJORUwpOworCWlmICghZGlzcGxh eSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwkvKiBBZGQgTlVMTCB0ZXJtaW5hdGlu ZyBlbnRyeSB0byBlbmFibGUgaW5kZXggbGVzcyBpdGVyYXRpb24gKi8KKwlkaXNwbGF5LT5tb2Rl c2V0cyA9IGtjYWxsb2MobnVtX2NydGMgKyAxLCBzaXplb2YoKmRpc3BsYXktPm1vZGVzZXRzKSwg R0ZQX0tFUk5FTCk7CisJaWYgKCFkaXNwbGF5LT5tb2Rlc2V0cykgeworCQlrZnJlZShkaXNwbGF5 KTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJfQorCisJZGlzcGxheS0+ZGV2ID0gZGV2 OworCWRpc3BsYXktPm1vZGVzZXRfY291bnQgPSBudW1fY3J0YzsKKworCWRybV9mb3JfZWFjaF9j cnRjKGNydGMsIGRldikKKwkJZGlzcGxheS0+bW9kZXNldHNbaSsrXS5jcnRjID0gY3J0YzsKKwor CWRybV9jbGllbnRfZGlzcGxheV9mb3JfZWFjaF9tb2Rlc2V0KG1vZGVzZXQsIGRpc3BsYXkpIHsK KwkJLyogT25lIGNvbm5lY3RvciBwZXIgY3J0YyBleGNlcHQgZm9yIHRoZSBjbG9uZWQgY2FzZSAq LworCQltb2Rlc2V0LT5jb25uZWN0b3JzID0ga2NhbGxvYygyLCBzaXplb2YoKm1vZGVzZXQtPmNv bm5lY3RvcnMpLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFtb2Rlc2V0LT5jb25uZWN0b3JzKQorCQkJ Z290byBlcnJfZnJlZTsKKwl9CisKKwlyZXR1cm4gZGlzcGxheTsKKworZXJyX2ZyZWU6CisJZHJt X2NsaWVudF9kaXNwbGF5X2ZyZWUoZGlzcGxheSk7CisKKwlyZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9kaXNwbGF5X2NyZWF0ZSk7CisKKy8qKgor ICogZHJtX2NsaWVudF9kaXNwbGF5X2ZyZWUoKSAtIEZyZWUgZGlzcGxheSBzdHJ1Y3R1cmUKKyAq IEBkaXNwbGF5OiBDbGllbnQgZGlzcGxheQorICoKKyAqIFRoaXMgZnVuY3Rpb24gZnJlZXMgdGhl IHN0cnVjdHVyZSBhbGxvY2F0ZWQgYnkgZHJtX2NsaWVudF9kaXNwbGF5X2NyZWF0ZSgpLgorICog SXQgYWxzbyBkZXN0cm95cyBkaXNwbGF5IG1vZGVzIGFuZCBwdXRzIGNvbm5lY3RvcnMuCisgKi8K K3ZvaWQgZHJtX2NsaWVudF9kaXNwbGF5X2ZyZWUoc3RydWN0IGRybV9jbGllbnRfZGlzcGxheSAq ZGlzcGxheSkKK3sKKwlzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0OworCXVuc2lnbmVkIGlu dCBpOworCisJaWYgKCFkaXNwbGF5KQorCQlyZXR1cm47CisKKwlkcm1fY2xpZW50X2Rpc3BsYXlf Zm9yX2VhY2hfbW9kZXNldChtb2Rlc2V0LCBkaXNwbGF5KSB7CisJCWlmIChtb2Rlc2V0LT5tb2Rl KQorCQkJZHJtX21vZGVfZGVzdHJveShkaXNwbGF5LT5kZXYsIG1vZGVzZXQtPm1vZGUpOworCisJ CWZvciAoaSA9IDA7IGkgPCBtb2Rlc2V0LT5udW1fY29ubmVjdG9yczsgaSsrKQorCQkJZHJtX2Nv bm5lY3Rvcl9wdXQobW9kZXNldC0+Y29ubmVjdG9yc1tpXSk7CisJCWtmcmVlKG1vZGVzZXQtPmNv bm5lY3RvcnMpOworCX0KKwlrZnJlZShkaXNwbGF5LT5tb2Rlc2V0cyk7CisJa2ZyZWUoZGlzcGxh eSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfZGlzcGxheV9mcmVlKTsKKworLyoqCisg KiBkcm1fY2xpZW50X2Rpc3BsYXlfZmluZF9tb2Rlc2V0KCkgLSBGaW5kIG1vZGVzZXQgbWF0Y2hp bmcgYSBDUlRDCisgKiBAZGlzcGxheTogQ2xpZW50IGRpc3BsYXkKKyAqIEBjcnRjOiBDUlRDCisg KgorICogVGhpcyBmdW5jdGlvbiBsb29rcyB1cCB0aGUgQGRpc3BsYXkgbW9kZXNldCBjb25uZWN0 ZWQgdG8gQGNydGMuCisgKgorICogUmV0dXJuczoKKyAqIEEgJmRybV9tb2RlX3NldCBvciBOVUxM LgorICovCitzdHJ1Y3QgZHJtX21vZGVfc2V0ICoKK2RybV9jbGllbnRfZGlzcGxheV9maW5kX21v ZGVzZXQoc3RydWN0IGRybV9jbGllbnRfZGlzcGxheSAqZGlzcGxheSwgc3RydWN0IGRybV9jcnRj ICpjcnRjKQoreworCXN0cnVjdCBkcm1fbW9kZV9zZXQgKm1vZGVzZXQ7CisKKwlkcm1fY2xpZW50 X2Rpc3BsYXlfZm9yX2VhY2hfbW9kZXNldChtb2Rlc2V0LCBkaXNwbGF5KQorCQlpZiAobW9kZXNl dC0+Y3J0YyA9PSBjcnRjKQorCQkJcmV0dXJuIG1vZGVzZXQ7CisKKwlyZXR1cm4gTlVMTDsKK30K K0VYUE9SVF9TWU1CT0woZHJtX2NsaWVudF9kaXNwbGF5X2ZpbmRfbW9kZXNldCk7CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9kcm1fY2xpZW50LmggYi9pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iNmEwNTc4MDI3NjkKLS0t IC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9kcm1fY2xpZW50LmgKQEAgLTAsMCArMSw0NCBA QAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKworI2lmbmRlZiBfRFJN X0NMSUVOVF9IXworI2RlZmluZSBfRFJNX0NMSUVOVF9IXworCitzdHJ1Y3QgZHJtX2NydGM7Citz dHJ1Y3QgZHJtX2RldmljZTsKK3N0cnVjdCBkcm1fbW9kZV9zZXQ7CisKKy8qKgorICogc3RydWN0 IGRybV9jbGllbnRfZGlzcGxheSAtIERSTSBjbGllbnQgZGlzcGxheQorICovCitzdHJ1Y3QgZHJt X2NsaWVudF9kaXNwbGF5IHsKKwkvKioKKwkgKiBAZGV2OgorCSAqCisJICogRFJNIGRldmljZS4K KwkgKi8KKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OworCisJLyoqCisJICogQG1vZGVzZXRzOgor CSAqCisJICogUGVyIENSVEMgYXJyYXkgb2YgbW9kZXNldCBjb25maWd1cmF0aW9ucy4KKwkgKi8K KwlzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0czsKKworCS8qKgorCSAqIEBtb2Rlc2V0X2Nv dW50OgorCSAqCisJICogTnVtYmVyIG9mIG1vZGVzZXRzCisJICovCisJdW5zaWduZWQgaW50IG1v ZGVzZXRfY291bnQ7Cit9OworCitzdHJ1Y3QgZHJtX2NsaWVudF9kaXNwbGF5ICpkcm1fY2xpZW50 X2Rpc3BsYXlfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwordm9pZCBkcm1fY2xpZW50 X2Rpc3BsYXlfZnJlZShzdHJ1Y3QgZHJtX2NsaWVudF9kaXNwbGF5ICpkaXNwbGF5KTsKK3N0cnVj dCBkcm1fbW9kZV9zZXQgKgorZHJtX2NsaWVudF9kaXNwbGF5X2ZpbmRfbW9kZXNldChzdHJ1Y3Qg ZHJtX2NsaWVudF9kaXNwbGF5ICpkaXNwbGF5LCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOworCisj ZGVmaW5lIGRybV9jbGllbnRfZGlzcGxheV9mb3JfZWFjaF9tb2Rlc2V0KG1vZGVzZXQsIGRpc3Bs YXkpIFwKKwlmb3IgKG1vZGVzZXQgPSBkaXNwbGF5LT5tb2Rlc2V0czsgbW9kZXNldC0+Y3J0Yzsg bW9kZXNldCsrKQorCisjZW5kaWYKLS0gCjIuMTUuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==