From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC 6/7] drm: Add kms library for shmem backed GEM Date: Wed, 12 Jul 2017 15:46:04 +0200 Message-ID: <1499867165-60925-7-git-send-email-noralf@tronnes.org> References: <1499867165-60925-1-git-send-email-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F7B96E408 for ; Wed, 12 Jul 2017 13:46:23 +0000 (UTC) In-Reply-To: <1499867165-60925-1-git-send-email-noralf@tronnes.org> 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 List-Id: dri-devel@lists.freedesktop.org VGhpcyBhZGRzIGttcyBoZWxwZXJzIGZvciB0aGUgc2htZW0gZ2VtIGxpYnJhcnkuCgpTaWduZWQt b2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vS2NvbmZpZyAgICAgICAgICAgICAgIHwgIDExICsrKwogZHJpdmVycy9ncHUvZHJt L01ha2VmaWxlICAgICAgICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX3No bWVtX2hlbHBlci5jIHwgMTY4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGlu Y2x1ZGUvZHJtL2RybV9mYl9zaG1lbV9oZWxwZXIuaCAgICAgfCAgMTggKysrKwogNCBmaWxlcyBj aGFuZ2VkLCAxOTggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1 L2RybS9kcm1fZmJfc2htZW1faGVscGVyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2Ry bS9kcm1fZmJfc2htZW1faGVscGVyLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vS2Nv bmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCmluZGV4IDhlNzA5YzIuLjRjOTAxMGQgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9L Y29uZmlnCkBAIC0xNTEsNiArMTUxLDE3IEBAIGNvbmZpZyBEUk1fR0VNX1NITUVNX0hFTFBFUgog CWhlbHAKIAkgIENob29zZSB0aGlzIGlmIHlvdSBuZWVkIHRoZSBHRU0gU0hNRU0gaGVscGVyIGZ1 bmN0aW9ucwogCitjb25maWcgRFJNX0tNU19TSE1FTV9IRUxQRVIKKwlib29sCisJZGVwZW5kcyBv biBEUk0KKwlzZWxlY3QgRFJNX0dFTV9TSE1FTV9IRUxQRVIKKwlzZWxlY3QgRFJNX0tNU19GQl9I RUxQRVIKKwlzZWxlY3QgRkJfU1lTX0ZJTExSRUNUCisJc2VsZWN0IEZCX1NZU19DT1BZQVJFQQor CXNlbGVjdCBGQl9TWVNfSU1BR0VCTElUCisJaGVscAorCSAgQ2hvb3NlIHRoaXMgaWYgeW91IG5l ZWQgdGhlIEtNUyBTSE1FTSBoZWxwZXIgZnVuY3Rpb25zCisKIGNvbmZpZyBEUk1fVk0KIAlib29s CiAJZGVwZW5kcyBvbiBEUk0gJiYgTU1VCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5kZXggNTk4YzI0Ny4uNzA2MDM3YyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9NYWtlZmlsZQpAQCAtNDAsNiArNDAsNyBAQCBkcm1fa21zX2hlbHBlci0kKENPTkZJR19EUk1f UEFORUxfQlJJREdFKSArPSBicmlkZ2UvcGFuZWwubwogZHJtX2ttc19oZWxwZXItJChDT05GSUdf RFJNX0xPQURfRURJRF9GSVJNV0FSRSkgKz0gZHJtX2VkaWRfbG9hZC5vCiBkcm1fa21zX2hlbHBl ci0kKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKSArPSBkcm1fZmJfaGVscGVyLm8KIGRybV9r bXNfaGVscGVyLSQoQ09ORklHX0RSTV9LTVNfQ01BX0hFTFBFUikgKz0gZHJtX2ZiX2NtYV9oZWxw ZXIubworZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX0tNU19TSE1FTV9IRUxQRVIpICs9IGRy bV9mYl9zaG1lbV9oZWxwZXIubwogZHJtX2ttc19oZWxwZXItJChDT05GSUdfRFJNX0RQX0FVWF9D SEFSREVWKSArPSBkcm1fZHBfYXV4X2Rldi5vCiAKIG9iai0kKENPTkZJR19EUk1fS01TX0hFTFBF UikgKz0gZHJtX2ttc19oZWxwZXIubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9m Yl9zaG1lbV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfc2htZW1faGVscGVyLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRjZjI0ZgotLS0gL2Rldi9udWxs CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfc2htZW1faGVscGVyLmMKQEAgLTAsMCArMSwx NjggQEAKKy8qCisgKiBkcm0ga21zL2ZiIHNobWVtIChzaGFyZWQgbWVtb3J5KSBoZWxwZXIgZnVu Y3Rpb25zCisgKgorICogQ29weXJpZ2h0IChDKSAyMDE3IE5vcmFsZiBUcsO4bm5lcworICoKKyAq IEJhc2VkIG9uIGRybV9mYl9jbWFfaGVscGVyLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorCisjaW5jbHVkZSA8ZHJtL2Ry bVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1f Z2VtX3NobWVtX2hlbHBlci5oPgorI2luY2x1ZGUgPGRybS9kcm1fZmJfZ2VtX2hlbHBlci5oPgor I2luY2x1ZGUgPGRybS9kcm1fZmJfc2htZW1faGVscGVyLmg+CisKKyNpZmRlZiBDT05GSUdfREVC VUdfRlMKK3N0YXRpYyB2b2lkIGRybV9mYl9zaG1lbV9kZXNjcmliZShzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwgc3RydWN0IHNlcV9maWxlICptKQoreworCXN0cnVjdCBkcm1fZmJfZ2VtICpm Yl9nZW0gPSB0b19mYl9nZW0oZmIpOworCXN0cnVjdCBkcm1fZ2VtX3NobWVtX29iamVjdCAqb2Jq OworCWludCBpOworCisJc2VxX3ByaW50ZihtLCAiW0ZCOiVkXSAlZHglZEAlNC40c1xuIiwgZmIt PmJhc2UuaWQsIGZiLT53aWR0aCwgZmItPmhlaWdodCwKKwkJCShjaGFyICopJmZiLT5mb3JtYXQt PmZvcm1hdCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZmItPmZvcm1hdC0+bnVtX3BsYW5lczsgaSsr KSB7CisJCW9iaiA9IHRvX2RybV9nZW1fc2htZW1fb2JqKGZiX2dlbS0+b2JqW2ldKTsKKwkJc2Vx X3ByaW50ZihtLCAiICAgJWQ6IG9mZnNldD0lZCBwaXRjaD0lZCwgb2JqOiAiLAorCQkJCWksIGZi LT5vZmZzZXRzW2ldLCBmYi0+cGl0Y2hlc1tpXSk7CisJCWRybV9nZW1fc2htZW1fZGVzY3JpYmUo b2JqLCBtKTsKKwl9Cit9CisKKy8qKgorICogZHJtX2ZiX3NobWVtX2RlYnVnZnNfc2hvdygpIC0g SGVscGVyIHRvIGxpc3Qgc2htZW0gZnJhbWVidWZmZXIgb2JqZWN0cworICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW4gZGVidWdmcy4KKyAqIEBtOiBvdXRwdXQgZmlsZQorICogQGFy ZzogcHJpdmF0ZSBkYXRhIGZvciB0aGUgY2FsbGJhY2sKKyAqLworaW50IGRybV9mYl9zaG1lbV9k ZWJ1Z2ZzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICphcmcpCit7CisJc3RydWN0IGRy bV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRlOwor CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2OworCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiOworCisJbXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5mYl9sb2Nr KTsKKwlkcm1fZm9yX2VhY2hfZmIoZmIsIGRldikKKwkJZHJtX2ZiX3NobWVtX2Rlc2NyaWJlKGZi LCBtKTsKKwltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuZmJfbG9jayk7CisKKwlyZXR1 cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGRybV9mYl9zaG1lbV9kZWJ1Z2ZzX3Nob3cpOwor I2VuZGlmCisKK3N0YXRpYyBpbnQgZHJtX2ZiX3NobWVtX21tYXAoc3RydWN0IGZiX2luZm8gKmZi aSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit7CisJc3RydWN0IGRybV9mYl9oZWxwZXIg KmhlbHBlciA9IGZiaS0+cGFyOworCXN0cnVjdCBkcm1fZmJfZ2VtICpmYl9nZW0gPSB0b19mYl9n ZW0oaGVscGVyLT5mYik7CisKKwlyZXR1cm4gZHJtX2dlbV9zaG1lbV9wcmltZV9tbWFwKGZiX2dl bS0+b2JqWzBdLCB2bWEpOworfQorCitzdGF0aWMgaW50IGRybV9mYl9oZWxwZXJfZmJfb3Blbihz dHJ1Y3QgZmJfaW5mbyAqZmJpLCBpbnQgdXNlcikKK3sKKwlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAq aGVscGVyID0gZmJpLT5wYXI7CisKKwlpZiAoIXRyeV9tb2R1bGVfZ2V0KGhlbHBlci0+ZGV2LT5k cml2ZXItPmZvcHMtPm93bmVyKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIGludCBkcm1fZmJfaGVscGVyX2ZiX3JlbGVhc2Uoc3RydWN0IGZiX2luZm8gKmZi aSwgaW50IHVzZXIpCit7CisJc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciA9IGZiaS0+cGFy OworCisJbW9kdWxlX3B1dChoZWxwZXItPmRldi0+ZHJpdmVyLT5mb3BzLT5vd25lcik7CisKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBmYl9vcHMgZHJtX2ZiX2hlbHBlcl9mYl9vcHMg PSB7CisJLm93bmVyCQk9IFRISVNfTU9EVUxFLAorCURSTV9GQl9IRUxQRVJfREVGQVVMVF9PUFMs CisJLmZiX29wZW4JPSBkcm1fZmJfaGVscGVyX2ZiX29wZW4sCisJLmZiX3JlbGVhc2UJPSBkcm1f ZmJfaGVscGVyX2ZiX3JlbGVhc2UsCisJLmZiX3JlYWQJPSBkcm1fZmJfaGVscGVyX3N5c19yZWFk LAorCS5mYl93cml0ZQk9IGRybV9mYl9oZWxwZXJfc3lzX3dyaXRlLAorCS5mYl9maWxscmVjdAk9 IGRybV9mYl9oZWxwZXJfc3lzX2ZpbGxyZWN0LAorCS5mYl9jb3B5YXJlYQk9IGRybV9mYl9oZWxw ZXJfc3lzX2NvcHlhcmVhLAorCS5mYl9pbWFnZWJsaXQJPSBkcm1fZmJfaGVscGVyX3N5c19pbWFn ZWJsaXQsCisJLmZiX21tYXAJPSBkcm1fZmJfc2htZW1fbW1hcCwKK307CisKKy8qKgorICogZHJt X2ZiX3NobWVtX2ZiZGV2X3Byb2JlIC0KKyAqIEBoZWxwZXI6IGZiZGV2IGVtdWxhdGlvbiBzdHJ1 Y3R1cmUKKyAqIEBzaXplczogZmJkZXYgZGVzY3JpcHRpb24KKyAqIEBmYl9mdW5jczogRnJhbWVi dWZmZXIgaGVscGVyIGZ1bmN0aW9ucworICoKKyAqIERyaXZlcnMgY2FuIHVzZSB0aGlzIGluIHRo ZWlyICZkcm1fZmJfaGVscGVyX2Z1bmNzLT5mYl9wcm9iZSBmdW5jdGlvbi4KKyAqCisgKiBSZXR1 cm5zOgorICogMCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJl LgorICovCitpbnQgZHJtX2ZiX3NobWVtX2ZiZGV2X3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVy ICpoZWxwZXIsCisJCQkgICAgIHN0cnVjdCBkcm1fZmJfaGVscGVyX3N1cmZhY2Vfc2l6ZSAqc2l6 ZXMsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgKmZiX2Z1bmNz KQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBoZWxwZXItPmRldjsKKwlzdHJ1Y3QgZHJt X21vZGVfZmJfY21kMiBtb2RlX2NtZDsKKwlzdHJ1Y3QgZHJtX2dlbV9zaG1lbV9vYmplY3QgKm9i ajsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbTsKKwlzdHJ1Y3QgZHJtX2ZiX2dlbSAqZmJf Z2VtOworCXZvaWQgKnNoYWRvdyA9IE5VTEw7CisJc2l6ZV90IHNpemU7CisJaW50IHJldDsKKwor CXNpemUgPSBkcm1fZmJfaGVscGVyX21vZGVfY21kKCZtb2RlX2NtZCwgc2l6ZXMpOworCisJb2Jq ID0gZHJtX2dlbV9zaG1lbV9jcmVhdGUoZGV2LCBzaXplKTsKKwlpZiAoSVNfRVJSKG9iaikpCisJ CXJldHVybiBQVFJfRVJSKG9iaik7CisKKwlnZW0gPSAmb2JqLT5iYXNlOworCWZiX2dlbSA9IGRy bV9mYl9nZW1fYWxsb2MoZGV2LCAmbW9kZV9jbWQsICZnZW0sIDEsIGZiX2Z1bmNzKTsKKwlpZiAo SVNfRVJSKGZiX2dlbSkpIHsKKwkJZGV2X2VycihkZXYtPmRldiwgIkZhaWxlZCB0byBhbGxvY2F0 ZSBEUk0gZnJhbWVidWZmZXIuXG4iKTsKKwkJZHJtX2dlbV9vYmplY3RfcHV0X3VubG9ja2VkKCZv YmotPmJhc2UpOworCQlyZXR1cm4gUFRSX0VSUihmYl9nZW0pOworCX0KKworCXJldCA9IGRybV9n ZW1fc2htZW1fdm1hcChvYmopOworCWlmIChyZXQpCisJCWdvdG8gZXJyb3I7CisKKwlpZiAoZmJf ZnVuY3MtPmRpcnR5KSB7CisJCXNoYWRvdyA9IHZ6YWxsb2Moc2l6ZSk7CisJCWlmICghc2hhZG93 KSB7CisJCQlyZXQgPSAtRU5PTUVNOworCQkJZ290byBlcnJvcjsKKwkJfQorCQloZWxwZXItPmRl ZmlvX3ZhZGRyID0gb2JqLT52YWRkcjsKKwl9CisKKwlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbXBs ZV9mYl9wcm9iZShoZWxwZXIsIHNpemVzLCAmZmJfZ2VtLT5iYXNlLAorCQkJCQkgICAgJmRybV9m Yl9oZWxwZXJfZmJfb3BzLAorCQkJCQkgICAgc2hhZG93ID8gc2hhZG93IDogb2JqLT52YWRkciwg MCwKKwkJCQkJICAgIHNpemUpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIGVycm9yOworCisJcmV0 dXJuIDA7CisKK2Vycm9yOgorCXZmcmVlKHNoYWRvdyk7CisJZHJtX2ZyYW1lYnVmZmVyX3JlbW92 ZSgmZmJfZ2VtLT5iYXNlKTsKKworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9m Yl9zaG1lbV9mYmRldl9wcm9iZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZmJfc2ht ZW1faGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZmJfc2htZW1faGVscGVyLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM1NzEzMQotLS0gL2Rldi9udWxsCisrKyBiL2lu Y2x1ZGUvZHJtL2RybV9mYl9zaG1lbV9oZWxwZXIuaApAQCAtMCwwICsxLDE4IEBACisjaWZuZGVm IF9fRFJNX0ZCX1NITUVNX0hFTFBFUl9IX18KKyNkZWZpbmUgX19EUk1fRkJfU0hNRU1fSEVMUEVS X0hfXworCitzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemU7CitzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyX2Z1bmNzOworc3RydWN0IGRybV9mYl9oZWxwZXI7CisKK2ludCBkcm1fZmJfc2ht ZW1fZmJkZXZfcHJvYmUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKKwkJCSAgICAgc3Ry dWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcywKKwkJCSAgICAgY29uc3Qgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyAqZmJfZnVuY3MpOworCisjaWZkZWYgQ09ORklHX0RF QlVHX0ZTCitzdHJ1Y3Qgc2VxX2ZpbGU7CisKK2ludCBkcm1fZmJfc2htZW1fZGVidWdmc19zaG93 KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqYXJnKTsKKyNlbmRpZgorCisjZW5kaWYKLS0gCjIu Ny40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK