From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haneen Mohammed Subject: [PATCH] drm/vkms: Introduce basic VKMS driver Date: Mon, 14 May 2018 17:33:46 +0300 Message-ID: <20180514143346.GA21695@haneen-vb> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x244.google.com (mail-wr0-x244.google.com [IPv6:2a00:1450:400c:c0c::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0BCDD89CA1 for ; Mon, 14 May 2018 14:33:52 +0000 (UTC) Received: by mail-wr0-x244.google.com with SMTP id v60-v6so12605018wrc.7 for ; Mon, 14 May 2018 07:33:52 -0700 (PDT) Content-Disposition: inline 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 Cc: daniel.vetter@ffwll.ch, rodrigosiqueiramelo@gmail.com List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFZpcnR1YWwgS2VybmVsIE1vZGUtU2V0dGluZyAoVktNUykg ZHJpdmVyLiBJdApjcmVhdGVzIGEgdmVyeSBiYXNpYyBrbXMgZHJpdmVyIHdpdGggMSBjcnRjL2Vu Y29kZXIvY29ubmVjdG9yL3BsYW5lLgoKVktNUyBkcml2ZXIgd291bGQgYmUgdXNlZnVsIGZvciB0 ZXN0aW5nLCBvciBmb3IgcnVubmluZyBYIChvciBzaW1pbGFyKQpvbiBoZWFkbGVzcyBtYWNoaW5l cyBhbmQgYmUgYWJsZSB0byBzdGlsbCB1c2UgdGhlIEdQVS4gVGh1cyBpdCBlbmFibGVzCmEgdmly dHVhbCBkaXNwbGF5IHdpdGhvdXQgdGhlIG5lZWQgZm9yIGhhcmR3YXJlIGRpc3BsYXkgY2FwYWJp bGl0eS4KClNpZ25lZC1vZmYtYnk6IEhhbmVlbiBNb2hhbW1lZCA8aGFtb2hhbW1lZC5zYUBnbWFp bC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL0tjb25maWcgICAgICAgICB8ICAgNiArKwogZHJp dmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vdmtt cy9NYWtlZmlsZSAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMgfCAx NDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS92a21z L3ZrbXNfZHJ2LmggfCAgMTMgKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE2OSBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3ZrbXMvTWFrZWZpbGUKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vdmttcy92a21zX2Rydi5jCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19kcnYuaAoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKaW5kZXggMmE3 MmQyZmViNzZkLi43ZGIzZDgyY2JiMjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9LY29u ZmlnCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCkBAIC0yMTMsNiArMjEzLDEyIEBAIGNv bmZpZyBEUk1fVkdFTQogCSAgYXMgdXNlZCBieSBNZXNhJ3Mgc29mdHdhcmUgcmVuZGVyZXIgZm9y IGVuaGFuY2VkIHBlcmZvcm1hbmNlLgogCSAgSWYgTSBpcyBzZWxlY3RlZCB0aGUgbW9kdWxlIHdp bGwgYmUgY2FsbGVkIHZnZW0uCiAKK2NvbmZpZyBEUk1fVktNUworCXRyaXN0YXRlICJWaXJ0dWFs IEtNUyIKKwlkZXBlbmRzIG9uIERSTQorCWhlbHAKKwkgIENob29zZSB0aGlzIG9wdGlvbiB0byBn ZXQgYSB2aXJ0dWFsIGtlcm5hbCBtb2RlLXNldHRpbmcgZHJpdmVyLgorCSAgSWYgTSBpcyBzZWxl Y3RlZCB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHZrbXMuCiAKIHNvdXJjZSAiZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9LY29uZmlnIgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKaW5kZXggZWY5ZjNkYWIyODdmLi44ODcz ZDQ3NjkxMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQorKysgYi9kcml2 ZXJzL2dwdS9kcm0vTWFrZWZpbGUKQEAgLTY5LDYgKzY5LDcgQEAgb2JqLSQoQ09ORklHX0RSTV9T QVZBR0UpKz0gc2F2YWdlLwogb2JqLSQoQ09ORklHX0RSTV9WTVdHRlgpKz0gdm13Z2Z4Lwogb2Jq LSQoQ09ORklHX0RSTV9WSUEpCSs9dmlhLwogb2JqLSQoQ09ORklHX0RSTV9WR0VNKQkrPSB2Z2Vt Lworb2JqLSQoQ09ORklHX0RSTV9WS01TKQkrPSB2a21zLwogb2JqLSQoQ09ORklHX0RSTV9OT1VW RUFVKSArPW5vdXZlYXUvCiBvYmotJChDT05GSUdfRFJNX0VYWU5PUykgKz1leHlub3MvCiBvYmot JChDT05GSUdfRFJNX1JPQ0tDSElQKSArPXJvY2tjaGlwLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3ZrbXMvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdmttcy9NYWtlZmlsZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJhZWY5NDhkM2EzNAotLS0gL2Rl di9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL01ha2VmaWxlCkBAIC0wLDAgKzEsMyBA QAordmttcy15IDo9IHZrbXNfZHJ2Lm8KKworb2JqLSQoQ09ORklHX0RSTV9WS01TKSArPSB2a21z Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmMgYi9kcml2ZXJz L2dwdS9kcm0vdmttcy92a21zX2Rydi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uYjFkZjA4ZWQyM2EwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJt L3ZrbXMvdmttc19kcnYuYwpAQCAtMCwwICsxLDE0NiBAQAorLyoKKyAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisg KiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGRy bS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Ny dGNfaGVscGVyLmg+CisjaW5jbHVkZSAidmttc19kcnYuaCIKKworI2RlZmluZSBEUklWRVJfTkFN RQkidmttcyIKKyNkZWZpbmUgRFJJVkVSX0RFU0MJIlZpcnR1YWwgS2VybmVsIE1vZGUgU2V0dGlu ZyIKKyNkZWZpbmUgRFJJVkVSX0RBVEUJIjIwMTgwNTE0IgorI2RlZmluZSBEUklWRVJfTUFKT1IJ MQorI2RlZmluZSBEUklWRVJfTUlOT1IJMAorCitzdGF0aWMgc3RydWN0IHZrbXNfZGV2aWNlICp2 a21zX2RldmljZTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdmttc19k cml2ZXJfZm9wcyA9IHsKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJLm9wZW4JCT0gZHJtX29w ZW4sCisJLm1tYXAJCT0gZHJtX2dlbV9tbWFwLAorCS51bmxvY2tlZF9pb2N0bAk9IGRybV9pb2N0 bCwKKwkuY29tcGF0X2lvY3RsCT0gZHJtX2NvbXBhdF9pb2N0bCwKKwkucG9sbAkJPSBkcm1fcG9s bCwKKwkucmVhZAkJPSBkcm1fcmVhZCwKKwkubGxzZWVrCQk9IG5vX2xsc2VlaywKKwkucmVsZWFz ZQk9IGRybV9yZWxlYXNlLAorfTsKKworc3RhdGljIHZvaWQgdmttc19yZWxlYXNlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHZrbXNfZGV2aWNlICp2a21zID0gY29udGFpbmVy X29mKGRldiwgc3RydWN0IHZrbXNfZGV2aWNlLCBkcm0pOworCisJcGxhdGZvcm1fZGV2aWNlX3Vu cmVnaXN0ZXIodmttcy0+cGxhdGZvcm0pOworCWRybV9tb2RlX2NvbmZpZ19jbGVhbnVwKCZ2a21z LT5kcm0pOworCWRybV9kZXZfZmluaSgmdmttcy0+ZHJtKTsKK30KKworc3RydWN0IGRybV9kcml2 ZXIgdmttc19kcml2ZXIgPSB7CisJLmRyaXZlcl9mZWF0dXJlcwk9IERSSVZFUl9NT0RFU0VUIHwg RFJJVkVSX0FUT01JQyB8IERSSVZFUl9HRU0sCisJLnJlbGVhc2UJCT0gdmttc19yZWxlYXNlLAor CS5mb3BzCQkJPSAmdmttc19kcml2ZXJfZm9wcywKKworCS5uYW1lCQkJPSBEUklWRVJfTkFNRSwK KwkuZGVzYwkJCT0gRFJJVkVSX0RFU0MsCisJLmRhdGUJCQk9IERSSVZFUl9EQVRFLAorCS5tYWpv cgkJCT0gRFJJVkVSX01BSk9SLAorCS5taW5vcgkJCT0gRFJJVkVSX01JTk9SLAorfTsKKworc3Rh dGljIGNvbnN0IHUzMiB2a21zX2Zvcm1hdHNbXSA9IHsKKwlEUk1fRk9STUFUX1hSR0I4ODg4LAor fTsKKworc3RhdGljIHZvaWQgdmttc19jb25uZWN0b3JfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQoreworCWRybV9jb25uZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3Ip OworCWRybV9jb25uZWN0b3JfY2xlYW51cChjb25uZWN0b3IpOworfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3Mgdmttc19jb25uZWN0b3JfZnVuY3MgPSB7CisJLmZp bGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCisJLmRl c3Ryb3kgPSB2a21zX2Nvbm5lY3Rvcl9kZXN0cm95LAorfTsKKworc3RhdGljIGludCBfX2luaXQg dmttc19pbml0KHZvaWQpCit7CisJaW50IHJldDsKKworCXZrbXNfZGV2aWNlID0ga3phbGxvYyhz aXplb2YoKnZrbXNfZGV2aWNlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF2a21zX2RldmljZSkKKwkJ cmV0dXJuIC1FTk9NRU07CisKKwlyZXQgPSBkcm1fZGV2X2luaXQoJnZrbXNfZGV2aWNlLT5kcm0s ICZ2a21zX2RyaXZlciwgTlVMTCk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfZnJlZTsKKworCXZr bXNfZGV2aWNlLT5wbGF0Zm9ybSA9CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9zaW1wbGUo RFJJVkVSX05BTUUsIC0xLCBOVUxMLCAwKTsKKwlpZiAoSVNfRVJSKHZrbXNfZGV2aWNlLT5wbGF0 Zm9ybSkpIHsKKwkJcmV0ID0gUFRSX0VSUih2a21zX2RldmljZS0+cGxhdGZvcm0pOworCQlnb3Rv IG91dF9maW5pOworCX0KKworCWRybV9tb2RlX2NvbmZpZ19pbml0KCZ2a21zX2RldmljZS0+ZHJt KTsKKworCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdCgmdmttc19kZXZpY2UtPmRybSwgJnZrbXNf ZGV2aWNlLT5jb25uZWN0b3IsCisJCQkJICZ2a21zX2Nvbm5lY3Rvcl9mdW5jcywKKwkJCQkgRFJN X01PREVfQ09OTkVDVE9SX1ZJUlRVQUwpOworCWlmIChyZXQgPCAwKSB7CisJCURSTV9FUlJPUigi RmFpbGVkIHRvIGluaXQgY29ubmVjdG9yXG4iKTsKKwkJZ290byBvdXRfdW5yZWdpc3RlcjsKKwl9 CisKKwlyZXQgPSBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9pbml0KCZ2a21zX2RldmljZS0+ZHJt LAorCQkJCQkgICAmdmttc19kZXZpY2UtPnBpcGUsCisJCQkJCSAgIE5VTEwsCisJCQkJCSAgIHZr bXNfZm9ybWF0cywKKwkJCQkJICAgQVJSQVlfU0laRSh2a21zX2Zvcm1hdHMpLAorCQkJCQkgICBO VUxMLAorCQkJCQkgICAmdmttc19kZXZpY2UtPmNvbm5lY3Rvcik7CisJaWYgKHJldCA8IDApIHsK KwkJRFJNX0VSUk9SKCJDYW5ub3Qgc2V0dXAgc2ltcGxlIGRpc3BsYXkgcGlwZVxuIik7CisJCWdv dG8gb3V0X3VucmVnaXN0ZXI7CisJfQorCisJcmV0ID0gZHJtX2Rldl9yZWdpc3Rlcigmdmttc19k ZXZpY2UtPmRybSwgMCk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfdW5yZWdpc3RlcjsKKworCWRy bV9jb25uZWN0b3JfcmVnaXN0ZXIoJnZrbXNfZGV2aWNlLT5jb25uZWN0b3IpOworCisJcmV0dXJu IDA7CisKK291dF91bnJlZ2lzdGVyOgorCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHZrbXNf ZGV2aWNlLT5wbGF0Zm9ybSk7CitvdXRfZmluaToKKwlkcm1fZGV2X2ZpbmkoJnZrbXNfZGV2aWNl LT5kcm0pOworb3V0X2ZyZWU6CisJa2ZyZWUodmttc19kZXZpY2UpOworCisJcmV0dXJuIHJldDsK K30KKworc3RhdGljIHZvaWQgX19leGl0IHZrbXNfZXhpdCh2b2lkKQoreworCWlmICghdmttc19k ZXZpY2UpIHsKKwkJRFJNX0lORk8oInZrbXNfZGV2aWNlIGlzIE5VTEwuXG4iKTsKKwkJcmV0dXJu OworCX0KKworCWRybV9kZXZfdW5yZWdpc3Rlcigmdmttc19kZXZpY2UtPmRybSk7CisJZHJtX2Rl dl9wdXQoJnZrbXNfZGV2aWNlLT5kcm0pOworCisJa2ZyZWUodmttc19kZXZpY2UpOworfQorCitt b2R1bGVfaW5pdCh2a21zX2luaXQpOworbW9kdWxlX2V4aXQodmttc19leGl0KTsKKworTU9EVUxF X0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v dmttcy92a21zX2Rydi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u Yzc3YzViZjUwMzJhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmtt c19kcnYuaApAQCAtMCwwICsxLDEzIEBACisjaWZuZGVmIF9WS01TX0RSVl9IXworI2RlZmluZSBf VktNU19EUlZfSF8KKworI2luY2x1ZGUgPGRybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuaD4KKwor c3RydWN0IHZrbXNfZGV2aWNlIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSBkcm07CisJc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGxhdGZvcm07CisJc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBl IHBpcGU7CisJc3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOworfTsKKworI2VuZGlmIC8q IF9WS01TX0RSVl9IXyAqLwotLSAKMi4xNy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK