From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zach Reizner Subject: [PATCH] drm/rockchip: support prime fd import Date: Tue, 2 Feb 2016 15:37:18 -0800 Message-ID: <1454456238-18742-1-git-send-email-zachr@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f45.google.com (mail-pa0-f45.google.com [209.85.220.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64A066E639 for ; Tue, 2 Feb 2016 15:37:46 -0800 (PST) Received: by mail-pa0-f45.google.com with SMTP id cy9so2364427pac.0 for ; Tue, 02 Feb 2016 15:37:46 -0800 (PST) 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: =?UTF-8?q?St=C3=A9phane=20Marchesin?= , Zach Reizner List-Id: dri-devel@lists.freedesktop.org VGhlIHByaW1lIGZkIHRvIGhhbmRsZSBpb2N0bCB3YXMgbm90IHVzZWQgd2l0aCByb2NrY2hpcCBi ZWZvcmUuIFN1cHBvcnQKd2FzIGFkZGVkIGluIG9yZGVyIHRvIHN1cHBvcnQgcG90ZW50aWFsIHVz ZXMgKGUuZy4gemVyby1jb3B5IHZpZGVvCmRlY29kZSwgY2FtZXJhKS4KClNpZ25lZC1vZmYtYnk6 IFphY2ggUmVpem5lciA8emFjaHJAZ29vZ2xlLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jIHwgIDEgKwogZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2RybV9nZW0uYyB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBk cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5oIHwgIDcgKystCiAzIGZp bGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuYyBiL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMKaW5kZXggZGJmZWMyOS4uNGEwMWQ5 MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jCkBAIC0z MDcsNiArMzA3LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHJvY2tjaGlwX2RybV9kcml2 ZXIgPSB7CiAJLmdlbV9wcmltZV9pbXBvcnQJPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKIAkuZ2Vt X3ByaW1lX2V4cG9ydAk9IGRybV9nZW1fcHJpbWVfZXhwb3J0LAogCS5nZW1fcHJpbWVfZ2V0X3Nn X3RhYmxlCT0gcm9ja2NoaXBfZ2VtX3ByaW1lX2dldF9zZ190YWJsZSwKKwkuZ2VtX3ByaW1lX2lt cG9ydF9zZ190YWJsZQk9IHJvY2tjaGlwX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCiAJLmdl bV9wcmltZV92bWFwCQk9IHJvY2tjaGlwX2dlbV9wcmltZV92bWFwLAogCS5nZW1fcHJpbWVfdnVu bWFwCT0gcm9ja2NoaXBfZ2VtX3ByaW1lX3Z1bm1hcCwKIAkuZ2VtX3ByaW1lX21tYXAJCT0gcm9j a2NoaXBfZ2VtX21tYXBfYnVmLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9k cm1fZ2VtLmMKaW5kZXggYTVjNTEyZS4uY2Y2YjUwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSA8ZHJt L3JvY2tjaGlwX2RybS5oPgogCiAjaW5jbHVkZSA8bGludXgvZG1hLWF0dHJzLmg+CisjaW5jbHVk ZSA8bGludXgvZG1hLWJ1Zi5oPgogCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2Rydi5oIgogI2lu Y2x1ZGUgInJvY2tjaGlwX2RybV9nZW0uaCIKQEAgLTEwNSwxMyArMTA2LDExIEBAIGludCByb2Nr Y2hpcF9nZW1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEpCiAJcmV0dXJuIHJvY2tjaGlwX2RybV9nZW1fb2JqZWN0X21tYXAob2JqLCB2bWEpOwogfQog Ci1zdHJ1Y3Qgcm9ja2NoaXBfZ2VtX29iamVjdCAqCi0Jcm9ja2NoaXBfZ2VtX2NyZWF0ZV9vYmpl Y3Qoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgdW5zaWduZWQgaW50IHNpemUsCi0JCQkJICAgYm9v bCBhbGxvY19rbWFwKQorc3RhdGljIHN0cnVjdCByb2NrY2hpcF9nZW1fb2JqZWN0ICoKKwlyb2Nr Y2hpcF9nZW1fYWxsb2Nfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sIHVuc2lnbmVkIGlu dCBzaXplKQogewogCXN0cnVjdCByb2NrY2hpcF9nZW1fb2JqZWN0ICpya19vYmo7CiAJc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmo7Ci0JaW50IHJldDsKIAogCXNpemUgPSByb3VuZF91cChzaXpl LCBQQUdFX1NJWkUpOwogCkBAIC0xMjMsNiArMTIyLDIwIEBAIHN0cnVjdCByb2NrY2hpcF9nZW1f b2JqZWN0ICoKIAogCWRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5pdChkcm0sIG9iaiwgc2l6ZSk7 CiAKKwlyZXR1cm4gcmtfb2JqOworfQorCitzdHJ1Y3Qgcm9ja2NoaXBfZ2VtX29iamVjdCAqCisJ cm9ja2NoaXBfZ2VtX2NyZWF0ZV9vYmplY3Qoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgdW5zaWdu ZWQgaW50IHNpemUsCisJCQkJICAgYm9vbCBhbGxvY19rbWFwKQoreworCXN0cnVjdCByb2NrY2hp cF9nZW1fb2JqZWN0ICpya19vYmo7CisJaW50IHJldDsKKworCXJrX29iaiA9IHJvY2tjaGlwX2dl bV9hbGxvY19vYmplY3QoZHJtLCBzaXplKTsKKwlpZiAoSVNfRVJSKHJrX29iaikpCisJCXJldHVy biBya19vYmo7CisKIAlyZXQgPSByb2NrY2hpcF9nZW1fYWxsb2NfYnVmKHJrX29iaiwgYWxsb2Nf a21hcCk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfZnJlZV9ya19vYmo7CkBAIC0xNDAsMTMgKzE1 MywxOCBAQCBlcnJfZnJlZV9ya19vYmo6CiAgKi8KIHZvaWQgcm9ja2NoaXBfZ2VtX2ZyZWVfb2Jq ZWN0KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogewotCXN0cnVjdCByb2NrY2hpcF9nZW1f b2JqZWN0ICpya19vYmo7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IG9iai0+ZGV2OworCXN0 cnVjdCByb2NrY2hpcF9nZW1fb2JqZWN0ICpya19vYmogPSB0b19yb2NrY2hpcF9vYmoob2JqKTsK IAogCWRybV9nZW1fZnJlZV9tbWFwX29mZnNldChvYmopOwogCi0Jcmtfb2JqID0gdG9fcm9ja2No aXBfb2JqKG9iaik7Ci0KLQlyb2NrY2hpcF9nZW1fZnJlZV9idWYocmtfb2JqKTsKKwlpZiAocmtf b2JqLT5zZykgeworCQlkbWFfdW5tYXBfc2coZHJtLT5kZXYsIHJrX29iai0+c2ctPnNnbCwgcmtf b2JqLT5zZy0+bmVudHMsCisJCQkgICAgIERNQV9CSURJUkVDVElPTkFMKTsKKwkJZHJtX3ByaW1l X2dlbV9kZXN0cm95KG9iaiwgcmtfb2JqLT5zZyk7CisJfSBlbHNlIHsKKwkJcm9ja2NoaXBfZ2Vt X2ZyZWVfYnVmKHJrX29iaik7CisJfQogCiAJa2ZyZWUocmtfb2JqKTsKIH0KQEAgLTI4OSw2ICsz MDcsNjQgQEAgc3RydWN0IHNnX3RhYmxlICpyb2NrY2hpcF9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxl KHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQogCXJldHVybiBzZ3Q7CiB9CiAKK3N0YXRpYyB1 bnNpZ25lZCBsb25nIHJvY2tjaGlwX3NnX2dldF9jb250aWd1b3VzX3NpemUoc3RydWN0IHNnX3Rh YmxlICpzZ3QsCisJCQkJCQkgICAgIGludCBjb3VudCkKK3sKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3Qg KnM7CisJZG1hX2FkZHJfdCBleHBlY3RlZCA9IHNnX2RtYV9hZGRyZXNzKHNndC0+c2dsKTsKKwl1 bnNpZ25lZCBpbnQgaTsKKwl1bnNpZ25lZCBsb25nIHNpemUgPSAwOworCisJZm9yX2VhY2hfc2co c2d0LT5zZ2wsIHMsIGNvdW50LCBpKSB7CisJCWlmIChzZ19kbWFfYWRkcmVzcyhzKSAhPSBleHBl Y3RlZCkKKwkJCWJyZWFrOworCQlleHBlY3RlZCA9IHNnX2RtYV9hZGRyZXNzKHMpICsgc2dfZG1h X2xlbihzKTsKKwkJc2l6ZSArPSBzZ19kbWFfbGVuKHMpOworCX0KKwlyZXR1cm4gc2l6ZTsKK30K KworCitzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKgorcm9ja2NoaXBfZ2VtX3ByaW1lX2ltcG9ydF9z Z190YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAorCQkJCSAgIHN0cnVjdCBkbWFfYnVmX2F0 dGFjaG1lbnQgKmF0dGFjaCwKKwkJCQkgICBzdHJ1Y3Qgc2dfdGFibGUgKnNnKQoreworCXN0cnVj dCByb2NrY2hpcF9nZW1fb2JqZWN0ICpya19vYmo7CisJc2l6ZV90IHNpemUgPSBhdHRhY2gtPmRt YWJ1Zi0+c2l6ZTsKKwlpbnQgY291bnQ7CisJaW50IHJldDsKKworCXJrX29iaiA9IHJvY2tjaGlw X2dlbV9hbGxvY19vYmplY3QoZHJtLCBzaXplKTsKKwlpZiAoSVNfRVJSKHJrX29iaikpCisJCXJl dHVybiBFUlJfQ0FTVChya19vYmopOworCisJY291bnQgPSBkbWFfbWFwX3NnKGRybS0+ZGV2LCBz Zy0+c2dsLCBzZy0+bmVudHMsCisJCQkgICBETUFfQklESVJFQ1RJT05BTCk7CisKKwlpZiAoIWNv dW50KSB7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZXJyX2ZyZWVfcmtfb2JqOworCX0KKwor CWlmIChyb2NrY2hpcF9zZ19nZXRfY29udGlndW91c19zaXplKHNnLCBjb3VudCkgPCBzaXplKSB7 CisJCURSTV9FUlJPUigiZmFpbGVkIHRvIG1hcCBzZ190YWJsZSB0byBjb250aWd1b3VzIGxpbmVh ciBhZGRyZXNzLlxuIik7CisJCWRtYV91bm1hcF9zZyhkcm0tPmRldiwgc2ctPnNnbCwgc2ctPm5l bnRzLAorCQkJICAgICBETUFfQklESVJFQ1RJT05BTCk7CisJCXJldCA9IC1FSU5WQUw7CisJCWdv dG8gZXJyX2ZyZWVfcmtfb2JqOworCX0KKworCXJrX29iai0+ZG1hX2FkZHIgPSBzZ19kbWFfYWRk cmVzcyhzZy0+c2dsKTsKKwlya19vYmotPnNnID0gc2c7CisKKwlyZXR1cm4gJnJrX29iai0+YmFz ZTsKKworZXJyX2ZyZWVfcmtfb2JqOgorCWtmcmVlKHJrX29iaik7CisJcmV0dXJuIEVSUl9QVFIo cmV0KTsKK30KKwogdm9pZCAqcm9ja2NoaXBfZ2VtX3ByaW1lX3ZtYXAoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IHJvY2tjaGlwX2dlbV9vYmplY3QgKnJrX29iaiA9IHRv X3JvY2tjaGlwX29iaihvYmopOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2RybV9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9k cm1fZ2VtLmgKaW5kZXggZDVkODAxMC4uYjZkYzNiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9nZW0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5oCkBAIC0xNyw2ICsxNyw4IEBACiAKICNkZWZpbmUgdG9f cm9ja2NoaXBfb2JqKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qgcm9ja2NoaXBfZ2VtX29iamVj dCwgYmFzZSkKIAorc3RydWN0IHNnX3RhYmxlOworCiBzdHJ1Y3Qgcm9ja2NoaXBfZ2VtX29iamVj dCB7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0IGJhc2U7CiAJdW5zaWduZWQgaW50IGZsYWdzOwpA QCAtMjQsMTEgKzI2LDE0IEBAIHN0cnVjdCByb2NrY2hpcF9nZW1fb2JqZWN0IHsKIAl2b2lkICpr dmFkZHI7CiAJZG1hX2FkZHJfdCBkbWFfYWRkcjsKIAlzdHJ1Y3QgZG1hX2F0dHJzIGRtYV9hdHRy czsKKworCXN0cnVjdCBzZ190YWJsZSAqc2c7CiB9OwogCiBzdHJ1Y3Qgc2dfdGFibGUgKnJvY2tj aGlwX2dlbV9wcmltZV9nZXRfc2dfdGFibGUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwog c3RydWN0IGRybV9nZW1fb2JqZWN0ICoKLXJvY2tjaGlwX2dlbV9wcmltZV9pbXBvcnRfc2dfdGFi bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCityb2NrY2hpcF9nZW1fcHJp bWVfaW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICAgc3RydWN0 IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAogCQkJCSAgIHN0cnVjdCBzZ190YWJsZSAqc2d0 KTsKIHZvaWQgKnJvY2tjaGlwX2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqKTsKIHZvaWQgcm9ja2NoaXBfZ2VtX3ByaW1lX3Z1bm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iaiwgdm9pZCAqdmFkZHIpOwotLSAKMi43LjAucmMzLjIwNy5nMGFjNTM0NAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK