From: Samuel Li Subject: [PATCH 6/6] drm/amdgpu: Add gem_prime_mmap support Date: Wed, 6 Sep 2017 18:07:24 -0400 Message-ID: <1504735644-31225-1-git-send-email-Samuel.Li@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Samuel Li U2lnbmVkLW9mZi1ieTogU2FtdWVsIExpIDxTYW11ZWwuTGlAYW1kLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICB8ICAzICsKIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9wcmltZS5jIHwgOTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogMyBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKaW5kZXggNmYyNjJjZS4uM2M0M2FjZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKQEAgLTM5NSwxMSArMzk1LDE0IEBAIGFtZGdwdV9n ZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiBzdHJ1Y3Qg ZG1hX2J1ZiAqYW1kZ3B1X2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAkJCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqLAogCQkJCQlpbnQgZmxhZ3MpOworc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICphbWRncHVfZ2VtX3ByaW1lX2ltcG9ydChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAorCQkJCQkgICAgc3RydWN0IGRtYV9idWYgKmRtYV9idWYpOwogaW50IGFtZGdw dV9nZW1fcHJpbWVfcGluKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKIHZvaWQgYW1kZ3B1 X2dlbV9wcmltZV91bnBpbihzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaik7CiBzdHJ1Y3QgcmVz ZXJ2YXRpb25fb2JqZWN0ICphbWRncHVfZ2VtX3ByaW1lX3Jlc19vYmooc3RydWN0IGRybV9nZW1f b2JqZWN0ICopOwogdm9pZCAqYW1kZ3B1X2dlbV9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29i amVjdCAqb2JqKTsKIHZvaWQgYW1kZ3B1X2dlbV9wcmltZV92dW5tYXAoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKK2ludCBhbWRncHVfZ2VtX3ByaW1lX21tYXAoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKIGlu dCBhbWRncHVfZ2VtX2RlYnVnZnNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7CiAK IC8qIHN1Yi1hbGxvY2F0aW9uIG1hbmFnZXIsIGl0IGhhcyB0byBiZSBwcm90ZWN0ZWQgYnkgYW5v dGhlciBsb2NrLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jCmluZGV4IDJj ZGY4NDQuLjliNjNhYzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMK QEAgLTgzNSw3ICs4MzUsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIga21zX2RyaXZlciA9 IHsKIAkucHJpbWVfaGFuZGxlX3RvX2ZkID0gZHJtX2dlbV9wcmltZV9oYW5kbGVfdG9fZmQsCiAJ LnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlLAogCS5nZW1f cHJpbWVfZXhwb3J0ID0gYW1kZ3B1X2dlbV9wcmltZV9leHBvcnQsCi0JLmdlbV9wcmltZV9pbXBv cnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKKwkuZ2VtX3ByaW1lX2ltcG9ydCA9IGFtZGdwdV9n ZW1fcHJpbWVfaW1wb3J0LAogCS5nZW1fcHJpbWVfcGluID0gYW1kZ3B1X2dlbV9wcmltZV9waW4s CiAJLmdlbV9wcmltZV91bnBpbiA9IGFtZGdwdV9nZW1fcHJpbWVfdW5waW4sCiAJLmdlbV9wcmlt ZV9yZXNfb2JqID0gYW1kZ3B1X2dlbV9wcmltZV9yZXNfb2JqLApAQCAtODQzLDYgKzg0Myw3IEBA IHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBrbXNfZHJpdmVyID0gewogCS5nZW1fcHJpbWVfaW1w b3J0X3NnX3RhYmxlID0gYW1kZ3B1X2dlbV9wcmltZV9pbXBvcnRfc2dfdGFibGUsCiAJLmdlbV9w cmltZV92bWFwID0gYW1kZ3B1X2dlbV9wcmltZV92bWFwLAogCS5nZW1fcHJpbWVfdnVubWFwID0g YW1kZ3B1X2dlbV9wcmltZV92dW5tYXAsCisJLmdlbV9wcmltZV9tbWFwID0gYW1kZ3B1X2dlbV9w cmltZV9tbWFwLAogCiAJLm5hbWUgPSBEUklWRVJfTkFNRSwKIAkuZGVzYyA9IERSSVZFUl9ERVND LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByaW1lLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYwppbmRleCA1YjNmOTI4 Li42MjlhNjU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf cHJpbWUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcHJpbWUuYwpA QCAtNTcsNiArNTcsNDIgQEAgdm9pZCBhbWRncHVfZ2VtX3ByaW1lX3Z1bm1hcChzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaiwgdm9pZCAqdmFkZHIpCiAJdHRtX2JvX2t1bm1hcCgmYm8tPmRtYV9i dWZfdm1hcCk7CiB9CiAKK2ludCBhbWRncHVfZ2VtX3ByaW1lX21tYXAoc3RydWN0IGRybV9nZW1f b2JqZWN0ICpvYmosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXN0cnVjdCBhbWRn cHVfYm8gKmJvID0gZ2VtX3RvX2FtZGdwdV9ibyhvYmopOworCXN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJvLT50Ym8uYmRldik7CisJdW5zaWduZWQgYXNpemUg PSBhbWRncHVfYm9fc2l6ZShibyk7CisJaW50IHJldDsKKworCWlmICghb2JqLT5maWxwIHx8ICF2 bWEtPnZtX2ZpbGUpCisJCXJldHVybiAtRU5PREVWOworCisJaWYgKGFkZXYgPT0gTlVMTCkKKwkJ cmV0dXJuIC1FTk9ERVY7CisKKwkvKiBDaGVjayBmb3IgdmFsaWQgc2l6ZS4gKi8KKwlpZiAoYXNp emUgPCB2bWEtPnZtX2VuZCAtIHZtYS0+dm1fc3RhcnQpCisJCXJldHVybiAtRUlOVkFMOworCisJ aWYgKGFtZGdwdV90dG1fdHRfZ2V0X3VzZXJtbShiby0+dGJvLnR0bSkgfHwKKwkgICAgKGJvLT5m bGFncyAmIEFNREdQVV9HRU1fQ1JFQVRFX05PX0NQVV9BQ0NFU1MpKSB7CisJCXJldHVybiAtRVBF Uk07CisJfQorCXZtYS0+dm1fcGdvZmYgPSBhbWRncHVfYm9fbW1hcF9vZmZzZXQoYm8pID4+IFBB R0VfU0hJRlQ7CisKKwkvKiBwcmltZSBtbWFwIGRvZXMgbm90IG5lZWQgdG8gY2hlY2sgYWNjZXNz LCBzbyBhbGxvdyBoZXJlICovCisJcmV0ID0gZHJtX3ZtYV9ub2RlX2FsbG93KCZvYmotPnZtYV9u b2RlLCB2bWEtPnZtX2ZpbGUtPnByaXZhdGVfZGF0YSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJl dDsKKworCXJldCA9IHR0bV9ib19tbWFwKHZtYS0+dm1fZmlsZSwgdm1hLCAmYWRldi0+bW1hbi5i ZGV2KTsKKwlkcm1fdm1hX25vZGVfcmV2b2tlKCZvYmotPnZtYV9ub2RlLCB2bWEtPnZtX2ZpbGUt PnByaXZhdGVfZGF0YSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOwor fQorCiBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKgogYW1kZ3B1X2dlbV9wcmltZV9pbXBvcnRfc2df dGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgc3RydWN0IGRtYV9idWZfYXR0YWNo bWVudCAqYXR0YWNoLApAQCAtMTMwLDE0ICsxNjYsNzEgQEAgc3RydWN0IHJlc2VydmF0aW9uX29i amVjdCAqYW1kZ3B1X2dlbV9wcmltZV9yZXNfb2JqKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2Jq KQogCXJldHVybiBiby0+dGJvLnJlc3Y7CiB9CiAKK3N0YXRpYyBpbnQgYW1kZ3B1X2dlbV9iZWdp bl9jcHVfYWNjZXNzKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCBlbnVtIGRtYV9kYXRhX2RpcmVj dGlvbiBkaXJlY3Rpb24pCit7CisJc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBnZW1fdG9fYW1kZ3B1 X2JvKGRtYV9idWYtPnByaXYpOworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1 X3R0bV9hZGV2KGJvLT50Ym8uYmRldik7CisJYm9vbCB3cml0ZSA9IChkaXJlY3Rpb24gPT0gRE1B X0JJRElSRUNUSU9OQUwgfHwgZGlyZWN0aW9uID09IERNQV9UT19ERVZJQ0UpOworCWludCByZXQ7 CisKKwlyZXQgPSBhbWRncHVfZ2VtX3ByaW1lX3BpbihkbWFfYnVmLT5wcml2KTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gcmV0OworCS8qIGludmFsaWRhdGUgdGhlIEhEUCByZWFkIGNhY2hlICovCisJ aWYgKHdyaXRlKQorCQlhbWRncHVfYXNpY19pbnZhbGlkYXRlX2hkcChhZGV2KTsKKworCXJldHVy biByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYW1kZ3B1X2dlbV9lbmRfY3B1X2FjY2VzcyhzdHJ1Y3Qg ZG1hX2J1ZiAqZG1hX2J1ZiwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uKQorewor CXN0cnVjdCBhbWRncHVfYm8gKmJvID0gZ2VtX3RvX2FtZGdwdV9ibyhkbWFfYnVmLT5wcml2KTsK KwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldihiby0+dGJvLmJk ZXYpOworCisJLyogZmx1c2ggaGRwIHdyaXRlIHF1ZXVlICovCisJYW1kZ3B1X2FzaWNfZmx1c2hf aGRwKGFkZXYpOworCWFtZGdwdV9nZW1fcHJpbWVfdW5waW4oZG1hX2J1Zi0+cHJpdik7CisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZG1hX2J1Zl9vcHMgYW1kZ3B1X2RtYWJ1Zl9vcHM7 CisKIHN0cnVjdCBkbWFfYnVmICphbWRncHVfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQkJCQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmosCiAJCQkJCWludCBm bGFncykKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGdlbV90b19hbWRncHVfYm8oZ29iaik7 CisJc3RydWN0IGRtYV9idWYgKmRtYV9idWY7CiAKIAlpZiAoYW1kZ3B1X3R0bV90dF9nZXRfdXNl cm1tKGJvLT50Ym8udHRtKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVQRVJNKTsKIAotCXJldHVybiBk cm1fZ2VtX3ByaW1lX2V4cG9ydChkZXYsIGdvYmosIGZsYWdzKTsKKwlkbWFfYnVmID0gZHJtX2dl bV9wcmltZV9leHBvcnQoZGV2LCBnb2JqLCBmbGFncyk7CisJYW1kZ3B1X2RtYWJ1Zl9vcHMgPSAq KGRtYV9idWYtPm9wcyk7CisJYW1kZ3B1X2RtYWJ1Zl9vcHMuYmVnaW5fY3B1X2FjY2VzcyA9IGFt ZGdwdV9nZW1fYmVnaW5fY3B1X2FjY2VzczsKKwlhbWRncHVfZG1hYnVmX29wcy5lbmRfY3B1X2Fj Y2VzcyA9IGFtZGdwdV9nZW1fZW5kX2NwdV9hY2Nlc3M7CisJZG1hX2J1Zi0+b3BzID0gJmFtZGdw dV9kbWFidWZfb3BzOworCisJcmV0dXJuIGRtYV9idWY7Cit9CisKK3N0cnVjdCBkcm1fZ2VtX29i amVjdCAqYW1kZ3B1X2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJ CQkJICAgIHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQoreworCXN0cnVjdCBkcm1fZ2VtX29iamVj dCAqb2JqOworCisJaWYgKGRtYV9idWYtPm9wcyA9PSAmYW1kZ3B1X2RtYWJ1Zl9vcHMpIHsKKwkJ b2JqID0gZG1hX2J1Zi0+cHJpdjsKKwkJaWYgKG9iai0+ZGV2ID09IGRldikgeworCQkJLyoKKwkJ CSAqIEltcG9ydGluZyBkbWFidWYgZXhwb3J0ZWQgZnJvbSBvdXQgb3duIGdlbSBpbmNyZWFzZXMK KwkJCSAqIHJlZmNvdW50IG9uIGdlbSBpdHNlbGYgaW5zdGVhZCBvZiBmX2NvdW50IG9mIGRtYWJ1 Zi4KKwkJCSAqLworCQkJZHJtX2dlbV9vYmplY3RfZ2V0KG9iaik7CisJCQlyZXR1cm4gb2JqOwor CQl9CisJfQorCisJcmV0dXJuIGRybV9nZW1fcHJpbWVfaW1wb3J0KGRldiwgZG1hX2J1Zik7CiB9 Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==