From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 6/6] drm/amdgpu: add support for exporting VRAM using DMA-buf v2 Date: Thu, 18 Apr 2019 14:09:28 +0200 Message-ID: <20190418120928.2699-7-christian.koenig@amd.com> References: <20190418120928.2699-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190418120928.2699-1-christian.koenig@amd.com> 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, amd-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org V2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBub3cgYWZ0ZXIgY2hlY2tpbmcgYWxsIHRoZSBw cmVyZXF1aXNpdGVzLgoKdjI6IGZpeCBlbnRyaWUgY291bnQgaW4gdGhlIHNndAoKU2lnbmVkLW9m Zi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wcmltZS5jICAgIHwgNDYgKysrKysrKyst LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oICAgICAgfCAgOSArKwog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZyYW1fbWdyLmMgfCA5NiArKysrKysr KysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf cHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wcmltZS5jCmluZGV4 IGEyOTBhZTgzMGIxMS4uNTViYjM5MjgxYzVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfcHJpbWUuYwpAQCAtMzE4LDIyICszMTgsNDUgQEAgYW1kZ3B1X2dlbV9tYXBfZG1h X2J1ZihzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICphdHRhY2gsCiAJfQogCiAJaWYgKGF0dGFj aC0+aW52YWxpZGF0ZSkgewotCQkvKiBtb3ZlIGJ1ZmZlciBpbnRvIEdUVCAqLworCQkvKiBtb3Zl IGJ1ZmZlciBpbnRvIEdUVCBvciBWUkFNICovCiAJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBj dHggPSB7IGZhbHNlLCBmYWxzZSB9OworCQl1bnNpZ25lZCBkb21haW5zID0gQU1ER1BVX0dFTV9E T01BSU5fR1RUOwogCi0JCWFtZGdwdV9ib19wbGFjZW1lbnRfZnJvbV9kb21haW4oYm8sIEFNREdQ VV9HRU1fRE9NQUlOX0dUVCk7CisJCWlmIChiby0+cHJlZmVycmVkX2RvbWFpbnMgJiBBTURHUFVf R0VNX0RPTUFJTl9WUkFNICYmCisJCSAgICBhdHRhY2gtPnBlZXIycGVlcikgeworCQkJYm8tPmZs YWdzIHw9IEFNREdQVV9HRU1fQ1JFQVRFX0NQVV9BQ0NFU1NfUkVRVUlSRUQ7CisJCQlkb21haW5z IHw9IEFNREdQVV9HRU1fRE9NQUlOX1ZSQU07CisJCX0KKwkJYW1kZ3B1X2JvX3BsYWNlbWVudF9m cm9tX2RvbWFpbihibywgZG9tYWlucyk7CiAJCXIgPSB0dG1fYm9fdmFsaWRhdGUoJmJvLT50Ym8s ICZiby0+cGxhY2VtZW50LCAmY3R4KTsKIAkJaWYgKHIpCiAJCQlyZXR1cm4gRVJSX1BUUihyKTsK IAl9CiAKLQlzZ3QgPSBkcm1fcHJpbWVfcGFnZXNfdG9fc2coYm8tPnRiby50dG0tPnBhZ2VzLCBi by0+dGJvLm51bV9wYWdlcyk7Ci0JaWYgKElTX0VSUihzZ3QpKQotCQlyZXR1cm4gc2d0OworCXN3 aXRjaCAoYm8tPnRiby5tZW0ubWVtX3R5cGUpIHsKKwljYXNlIFRUTV9QTF9UVDoKKwkJc2d0ID0g ZHJtX3ByaW1lX3BhZ2VzX3RvX3NnKGJvLT50Ym8udHRtLT5wYWdlcywKKwkJCQkJICAgIGJvLT50 Ym8ubnVtX3BhZ2VzKTsKKwkJaWYgKElTX0VSUihzZ3QpKQorCQkJcmV0dXJuIHNndDsKKworCQlp ZiAoIWRtYV9tYXBfc2dfYXR0cnMoYXR0YWNoLT5kZXYsIHNndC0+c2dsLCBzZ3QtPm5lbnRzLCBk aXIsCisJCQkJICAgICAgRE1BX0FUVFJfU0tJUF9DUFVfU1lOQykpIHsKKwkJCXIgPSAtRUlOVkFM OworCQkJZ290byBlcnJvcl9mcmVlOworCQl9CisJCWJyZWFrOwogCi0JaWYgKCFkbWFfbWFwX3Nn X2F0dHJzKGF0dGFjaC0+ZGV2LCBzZ3QtPnNnbCwgc2d0LT5uZW50cywgZGlyLAotCQkJICAgICAg RE1BX0FUVFJfU0tJUF9DUFVfU1lOQykpCisJY2FzZSBUVE1fUExfVlJBTToKKwkJciA9IGFtZGdw dV92cmFtX21ncl9hbGxvY19zZ3QoYWRldiwgJmJvLT50Ym8ubWVtLCBhdHRhY2gtPmRldiwKKwkJ CQkJICAgICAgZGlyLCAmc2d0KTsKKwkJaWYgKHIpCisJCQlnb3RvIGVycm9yX2ZyZWU7CisJCWJy ZWFrOworCWRlZmF1bHQ6CisJCXIgPSAtRUlOVkFMOwogCQlnb3RvIGVycm9yX2ZyZWU7CisJfQog CiAJaWYgKGF0dGFjaC0+ZGV2LT5kcml2ZXIgIT0gYWRldi0+ZGV2LT5kcml2ZXIpCiAJCWJvLT5w cmltZV9zaGFyZWRfY291bnQrKzsKQEAgLTM0Myw3ICszNjYsNyBAQCBhbWRncHVfZ2VtX21hcF9k bWFfYnVmKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCwKIGVycm9yX2ZyZWU6CiAJ c2dfZnJlZV90YWJsZShzZ3QpOwogCWtmcmVlKHNndCk7Ci0JcmV0dXJuIEVSUl9QVFIoLUVOT01F TSk7CisJcmV0dXJuIEVSUl9QVFIocik7CiB9CiAKIC8qKgpAQCAtMzY3LDEwICszOTAsMTUgQEAg c3RhdGljIHZvaWQgYW1kZ3B1X2dlbV91bm1hcF9kbWFfYnVmKHN0cnVjdCBkbWFfYnVmX2F0dGFj aG1lbnQgKmF0dGFjaCwKIAlpZiAoYXR0YWNoLT5kZXYtPmRyaXZlciAhPSBhZGV2LT5kZXYtPmRy aXZlciAmJiBiby0+cHJpbWVfc2hhcmVkX2NvdW50KQogCQliby0+cHJpbWVfc2hhcmVkX2NvdW50 LS07CiAKLQlpZiAoc2d0KSB7CisJaWYgKCFzZ3QpCisJCXJldHVybjsKKworCWlmIChzZ3QtPnNn bC0+cGFnZV9saW5rKSB7CiAJCWRtYV91bm1hcF9zZyhhdHRhY2gtPmRldiwgc2d0LT5zZ2wsIHNn dC0+bmVudHMsIGRpcik7CiAJCXNnX2ZyZWVfdGFibGUoc2d0KTsKIAkJa2ZyZWUoc2d0KTsKKwl9 IGVsc2UgeworCQlhbWRncHVfdnJhbV9tZ3JfZnJlZV9zZ3QoYWRldiwgYXR0YWNoLT5kZXYsIGRp ciwgc2d0KTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV90dG0uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaApp bmRleCBjMmI3NjY5MDA0YmEuLjBiNGNkYmU4NjdlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV90dG0uaApAQCAtNzIsNiArNzIsMTUgQEAgdWludDY0X3QgYW1kZ3B1X2d0dF9t Z3JfdXNhZ2Uoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pOwogaW50IGFtZGdwdV9n dHRfbWdyX3JlY292ZXIoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pOwogCiB1NjQg YW1kZ3B1X3ZyYW1fbWdyX2JvX3Zpc2libGVfc2l6ZShzdHJ1Y3QgYW1kZ3B1X2JvICpibyk7Citp bnQgYW1kZ3B1X3ZyYW1fbWdyX2FsbG9jX3NndChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK KwkJCSAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtLAorCQkJICAgICAgc3RydWN0IGRldmlj ZSAqZGV2LAorCQkJICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAorCQkJICAgICAg c3RydWN0IHNnX3RhYmxlICoqc2d0KTsKK3ZvaWQgYW1kZ3B1X3ZyYW1fbWdyX2ZyZWVfc2d0KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAorCQkJICAgICAgc3RydWN0IGRldmljZSAqZGV2LAor CQkJICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAorCQkJICAgICAgc3RydWN0IHNn X3RhYmxlICpzZ3QpOwogdWludDY0X3QgYW1kZ3B1X3ZyYW1fbWdyX3VzYWdlKHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuKTsKIHVpbnQ2NF90IGFtZGdwdV92cmFtX21ncl92aXNfdXNh Z2Uoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdnJhbV9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92cmFtX21nci5jCmluZGV4IGVjOWVhM2ZkYmI0YS4uNTIwY2Vh NGRiZGFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdnJh bV9tZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdnJhbV9tZ3Iu YwpAQCAtMzk5LDYgKzM5OSwxMDIgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3ZyYW1fbWdyX2RlbChz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKIAltZW0tPm1tX25vZGUgPSBOVUxMOwog fQogCisvKioKKyAqIGFtZGdwdV92cmFtX21ncl9hbGxvY19zZ3QgLSBhbGxvY2F0ZSBhbmQgZmls bCBhIHNnIHRhYmxlCisgKgorICogQGFkZXY6IGFtZGdwdSBkZXZpY2UgcG9pbnRlcgorICogQG1l bTogVFRNIG1lbW9yeSBvYmplY3QKKyAqIEBkZXY6IHRoZSBvdGhlciBkZXZpY2UKKyAqIEBkaXI6 IGRtYSBkaXJlY3Rpb24KKyAqIEBzZ3Q6IHJlc3VsdGluZyBzZyB0YWJsZQorICoKKyAqIEFsbG9j YXRlIGFuZCBmaWxsIGEgc2cgdGFibGUgZnJvbSBhIFZSQU0gYWxsb2NhdGlvbi4KKyAqLworaW50 IGFtZGdwdV92cmFtX21ncl9hbGxvY19zZ3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJ CQkgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKKwkJCSAgICAgIHN0cnVjdCBkZXZpY2Ug KmRldiwKKwkJCSAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKKwkJCSAgICAgIHN0 cnVjdCBzZ190YWJsZSAqKnNndCkKK3sKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGU7CisJc3Ry dWN0IHNjYXR0ZXJsaXN0ICpzZzsKKwlpbnQgbnVtX2VudHJpZXMgPSAwOworCXVuc2lnbmVkIGlu dCBwYWdlczsKKwlpbnQgaSwgcjsKKworCSpzZ3QgPSBrbWFsbG9jKHNpemVvZigqc2cpLCBHRlBf S0VSTkVMKTsKKwlpZiAoISpzZ3QpCisJCXJldHVybiAtRU5PTUVNOworCisJZm9yIChwYWdlcyA9 IG1lbS0+bnVtX3BhZ2VzLCBub2RlID0gbWVtLT5tbV9ub2RlOworCSAgICAgcGFnZXM7IHBhZ2Vz IC09IG5vZGUtPnNpemUsICsrbm9kZSkKKwkJKytudW1fZW50cmllczsKKworCXIgPSBzZ19hbGxv Y190YWJsZSgqc2d0LCBudW1fZW50cmllcywgR0ZQX0tFUk5FTCk7CisJaWYgKHIpCisJCWdvdG8g ZXJyb3JfZnJlZTsKKworCWZvcl9lYWNoX3NnKCgqc2d0KS0+c2dsLCBzZywgbnVtX2VudHJpZXMs IGkpCisJCXNnLT5sZW5ndGggPSAwOworCisJbm9kZSA9IG1lbS0+bW1fbm9kZTsKKwlmb3JfZWFj aF9zZygoKnNndCktPnNnbCwgc2csIG51bV9lbnRyaWVzLCBpKSB7CisJCXBoeXNfYWRkcl90IHBo eXMgPSAobm9kZS0+c3RhcnQgPDwgUEFHRV9TSElGVCkgKworCQkJYWRldi0+Z21jLmFwZXJfYmFz ZTsKKwkJc2l6ZV90IHNpemUgPSBub2RlLT5zaXplIDw8IFBBR0VfU0hJRlQ7CisJCWRtYV9hZGRy X3QgYWRkcjsKKworCQkrK25vZGU7CisJCWFkZHIgPSBkbWFfbWFwX3Jlc291cmNlKGRldiwgcGh5 cywgc2l6ZSwgZGlyLAorCQkJCQlETUFfQVRUUl9TS0lQX0NQVV9TWU5DKTsKKwkJciA9IGRtYV9t YXBwaW5nX2Vycm9yKGRldiwgYWRkcik7CisJCWlmIChyKQorCQkJZ290byBlcnJvcl91bm1hcDsK KworCQlzZ19zZXRfZG1hX2FkZHIoc2csIGFkZHIsIHNpemUsIDApOworCX0KKwlyZXR1cm4gMDsK KworZXJyb3JfdW5tYXA6CisJZm9yX2VhY2hfc2coKCpzZ3QpLT5zZ2wsIHNnLCBudW1fZW50cmll cywgaSkgeworCQlpZiAoIXNnLT5sZW5ndGgpCisJCQljb250aW51ZTsKKworCQlkbWFfdW5tYXBf cmVzb3VyY2UoZGV2LCBzZy0+ZG1hX2FkZHJlc3MsCisJCQkJICAgc2ctPmxlbmd0aCwgZGlyLAor CQkJCSAgIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpOworCX0KKwlzZ19mcmVlX3RhYmxlKCpzZ3Qp OworCitlcnJvcl9mcmVlOgorCWtmcmVlKCpzZ3QpOworCXJldHVybiByOworfQorCisvKioKKyAq IGFtZGdwdV92cmFtX21ncl9hbGxvY19zZ3QgLSBhbGxvY2F0ZSBhbmQgZmlsbCBhIHNnIHRhYmxl CisgKgorICogQGFkZXY6IGFtZGdwdSBkZXZpY2UgcG9pbnRlcgorICogQHNndDogc2cgdGFibGUg dG8gZnJlZQorICoKKyAqIEZyZWUgYSBwcmV2aW91c2x5IGFsbG9jYXRlIHNnIHRhYmxlLgorICov Cit2b2lkIGFtZGdwdV92cmFtX21ncl9mcmVlX3NndChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKKwkJCSAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICAgIGVudW0gZG1hX2RhdGFf ZGlyZWN0aW9uIGRpciwKKwkJCSAgICAgIHN0cnVjdCBzZ190YWJsZSAqc2d0KQoreworCXN0cnVj dCBzY2F0dGVybGlzdCAqc2c7CisJaW50IGk7CisKKwlmb3JfZWFjaF9zZyhzZ3QtPnNnbCwgc2cs IHNndC0+bmVudHMsIGkpCisJCWRtYV91bm1hcF9yZXNvdXJjZShkZXYsIHNnLT5kbWFfYWRkcmVz cywKKwkJCQkgICBzZy0+bGVuZ3RoLCBkaXIsCisJCQkJICAgRE1BX0FUVFJfU0tJUF9DUFVfU1lO Qyk7CisJc2dfZnJlZV90YWJsZShzZ3QpOworCWtmcmVlKHNndCk7Cit9CisKIC8qKgogICogYW1k Z3B1X3ZyYW1fbWdyX3VzYWdlIC0gaG93IG1hbnkgYnl0ZXMgYXJlIHVzZWQgaW4gdGhpcyBkb21h aW4KICAqCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbA==