From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v3] drm/vgem: Enable dmabuf interface for export Date: Mon, 20 Jun 2016 21:06:59 +0100 Message-ID: <1466453219-6665-1-git-send-email-chris@chris-wilson.co.uk> References: <1466317129-11615-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lb0-x244.google.com (mail-lb0-x244.google.com [IPv6:2a00:1450:4010:c04::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3F93A6E605 for ; Mon, 20 Jun 2016 20:07:09 +0000 (UTC) Received: by mail-lb0-x244.google.com with SMTP id td3so74479lbb.2 for ; Mon, 20 Jun 2016 13:07:09 -0700 (PDT) In-Reply-To: <1466317129-11615-1-git-send-email-chris@chris-wilson.co.uk> 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: Zach Reizner List-Id: dri-devel@lists.freedesktop.org RW5hYmxlIHRoZSBzdGFuZGFyZCBHRU0gZG1hLWJ1ZiBpbnRlcmZhY2UgcHJvdmlkZWQgYnkgdGhl IERSTSBjb3JlLCBidXQKb25seSBmb3IgZXhwb3J0aW5nIHRoZSBWR0VNIG9iamVjdC4gVGhpcyBh bGxvd3MgcGFzc2luZyBhcm91bmQgdGhlIFZHRU0Kb2JqZWN0cyBjcmVhdGVkIGZyb20gdGhlIGR1 bWIgaW50ZXJmYWNlIGFuZCB1c2luZyB0aGVtIGFzIHNvdXJjZXMKZWxzZXdoZXJlLiBDcmVhdGlu ZyBhIFZHRU0gb2JqZWN0IGZvciBhIGZvcmllZ24gaGFuZGxlIGlzIG5vdCBzdXBwb3J0ZWQuCgp2 MjogV2l0aCBhZGRpdGlvbmFsIGNvbXBsZXRlbmVzcy4KdjM6IE5lZWQgdG8gY2xlYXIgdGhlIENQ VSBjYWNoZSB1cG9uIGV4cG9ydGluZyB0aGUgZG1hLWFkZHJlc3Nlcy4KClRlc3RjYXNlOiBpZ3Qv dmdlbV9iYXNpYy9kbWFidWYtKgpUZXN0Y2FzZTogaWd0L3ByaW1lX3ZnZW0KU2lnbmVkLW9mZi1i eTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBTZWFuIFBhdWwg PHNlYW5wYXVsQGNocm9taXVtLm9yZz4KQ2M6IFphY2ggUmVpem5lciA8emFjaHJAZ29vZ2xlLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Rydi5jIHwgMTEyICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMTEgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92Z2Vt L3ZnZW1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmdlbS92Z2VtX2Rydi5jCmluZGV4IGUxYTY5 N2QwNjYyZi4uZGI0OGU4Mzc5OTJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmdlbS92 Z2VtX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92Z2VtL3ZnZW1fZHJ2LmMKQEAgLTE5Mywx NCArMTkzLDEyNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB2Z2VtX2Ry aXZlcl9mb3BzID0gewogCS5yZWxlYXNlCT0gZHJtX3JlbGVhc2UsCiB9OwogCitzdGF0aWMgdm9p ZCBfX3B1dF9wYWdlcyhzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCBsb25nIG5fcGFnZXMpCit7CisJd2hp bGUgKG5fcGFnZXMtLSkKKwkJcHV0X3BhZ2UocGFnZXNbbl9wYWdlc10pOworCWRybV9mcmVlX2xh cmdlKHBhZ2VzKTsKK30KKworc3RhdGljIGludCB2Z2VtX3ByaW1lX3BpbihzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKm9iaikKK3sKKwlsb25nIG5fcGFnZXMgPSBvYmotPnNpemUgPj4gUEFHRV9TSElG VDsKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2VzOworCisJLyogRmx1c2ggdGhlIG9iamVjdCBmcm9tIHRo ZSBDUFUgY2FjaGUgc28gdGhhdCBpbXBvcnRlcnMKKwkgKiBjYW4gcmVseSBvbiBjb2hlcmVudCBp bmRpcmVjdCBhY2Nlc3MgdmlhIGFjY2VzcyB0aGUKKwkgKiBleHBvcnRlZCBkbWEtYWRkcmVzcy4K KwkgKi8KKwlwYWdlcyA9IGRybV9nZW1fZ2V0X3BhZ2VzKG9iaik7CisJaWYgKElTX0VSUihwYWdl cykpCisJCXJldHVybiBQVFJfRVJSKHBhZ2VzKTsKKworCWRybV9jbGZsdXNoX3BhZ2VzKHBhZ2Vz LCBuX3BhZ2VzKTsKKwlfX3B1dF9wYWdlcyhwYWdlcywgbl9wYWdlcyk7CisKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIHN0cnVjdCBzZ190YWJsZSAqdmdlbV9wcmltZV9nZXRfc2dfdGFibGUoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCit7CisJbG9uZyBuX3BhZ2VzID0gb2JqLT5zaXplID4+ IFBBR0VfU0hJRlQ7CisJc3RydWN0IHNnX3RhYmxlICpzdDsKKwlzdHJ1Y3QgcGFnZSAqKnBhZ2Vz OworCWludCByZXQ7CisKKwlzdCA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBzZ190YWJsZSksIEdG UF9LRVJORUwpOworCWlmIChzdCA9PSBOVUxMKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsK KworCXBhZ2VzID0gZHJtX2dlbV9nZXRfcGFnZXMob2JqKTsKKwlpZiAoSVNfRVJSKHBhZ2VzKSkg eworCQlyZXQgPSBQVFJfRVJSKHBhZ2VzKTsKKwkJZ290byBlcnI7CisJfQorCisJcmV0ID0gc2df YWxsb2NfdGFibGVfZnJvbV9wYWdlcyhzdCwgcGFnZXMsIG5fcGFnZXMsCisJCQkJCTAsIG9iai0+ c2l6ZSwgR0ZQX0tFUk5FTCk7CisJX19wdXRfcGFnZXMocGFnZXMsIG5fcGFnZXMpOworCWlmIChy ZXQpCisJCWdvdG8gZXJyOworCisJcmV0dXJuIHN0OworCitlcnI6CisJa2ZyZWUoc3QpOworCXJl dHVybiBFUlJfUFRSKHJldCk7Cit9CisKK3N0YXRpYyB2b2lkICp2Z2VtX3ByaW1lX3ZtYXAoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCit7CisJbG9uZyBuX3BhZ2VzID0gb2JqLT5zaXplID4+ IFBBR0VfU0hJRlQ7CisJc3RydWN0IHBhZ2UgKipwYWdlczsKKwl2b2lkICphZGRyOworCisJcGFn ZXMgPSBkcm1fZ2VtX2dldF9wYWdlcyhvYmopOworCWlmIChJU19FUlIocGFnZXMpKQorCQlyZXR1 cm4gTlVMTDsKKworCWFkZHIgPSB2bWFwKHBhZ2VzLCBuX3BhZ2VzLCAwLCBwZ3Byb3Rfd3JpdGVj b21iaW5lKFBBR0VfS0VSTkVMX0lPKSk7CisJX19wdXRfcGFnZXMocGFnZXMsIG5fcGFnZXMpOwor CisJcmV0dXJuIGFkZHI7Cit9CisKK3N0YXRpYyB2b2lkIHZnZW1fcHJpbWVfdnVubWFwKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqb2JqLCB2b2lkICp2YWRkcikKK3sKKwl2dW5tYXAodmFkZHIpOwor fQorCitzdGF0aWMgaW50IHZnZW1fcHJpbWVfbW1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9i aiwKKwkJCSAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCWludCByZXQ7CisKKwlp ZiAob2JqLT5zaXplIDwgdm1hLT52bV9lbmQgLSB2bWEtPnZtX3N0YXJ0KQorCQlyZXR1cm4gLUVJ TlZBTDsKKworCWlmICghb2JqLT5maWxwKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXJldCA9IG9i ai0+ZmlscC0+Zl9vcC0+bW1hcChvYmotPmZpbHAsIHZtYSk7CisJaWYgKHJldCkKKwkJcmV0dXJu IHJldDsKKworCWZwdXQodm1hLT52bV9maWxlKTsKKwl2bWEtPnZtX2ZpbGUgPSBnZXRfZmlsZShv YmotPmZpbHApOworCXZtYS0+dm1fZmxhZ3MgfD0gVk1fRE9OVEVYUEFORCB8IFZNX0RPTlREVU1Q OworCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90X3dyaXRlY29tYmluZSh2bV9nZXRfcGFnZV9w cm90KHZtYS0+dm1fZmxhZ3MpKTsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgc3RydWN0IGRy bV9kcml2ZXIgdmdlbV9kcml2ZXIgPSB7Ci0JLmRyaXZlcl9mZWF0dXJlcwkJPSBEUklWRVJfR0VN LAorCS5kcml2ZXJfZmVhdHVyZXMJCT0gRFJJVkVSX0dFTSB8IERSSVZFUl9QUklNRSwKIAkuZ2Vt X2ZyZWVfb2JqZWN0X3VubG9ja2VkCT0gdmdlbV9nZW1fZnJlZV9vYmplY3QsCiAJLmdlbV92bV9v cHMJCQk9ICZ2Z2VtX2dlbV92bV9vcHMsCiAJLmlvY3RscwkJCQk9IHZnZW1faW9jdGxzLAogCS5m b3BzCQkJCT0gJnZnZW1fZHJpdmVyX2ZvcHMsCisKIAkuZHVtYl9jcmVhdGUJCQk9IHZnZW1fZ2Vt X2R1bWJfY3JlYXRlLAogCS5kdW1iX21hcF9vZmZzZXQJCT0gdmdlbV9nZW1fZHVtYl9tYXAsCisK KwkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCisJLmdl bV9wcmltZV9waW4gPSB2Z2VtX3ByaW1lX3BpbiwKKwkuZ2VtX3ByaW1lX2V4cG9ydCA9IGRybV9n ZW1fcHJpbWVfZXhwb3J0LAorCS5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gdmdlbV9wcmltZV9n ZXRfc2dfdGFibGUsCisJLmdlbV9wcmltZV92bWFwID0gdmdlbV9wcmltZV92bWFwLAorCS5nZW1f cHJpbWVfdnVubWFwID0gdmdlbV9wcmltZV92dW5tYXAsCisJLmdlbV9wcmltZV9tbWFwID0gdmdl bV9wcmltZV9tbWFwLAorCiAJLm5hbWUJPSBEUklWRVJfTkFNRSwKIAkuZGVzYwk9IERSSVZFUl9E RVNDLAogCS5kYXRlCT0gRFJJVkVSX0RBVEUsCi0tIAoyLjguMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==