From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Subject: [PATCH RFC 043/111] staging: etnaviv: add gem get_pages() method Date: Thu, 2 Apr 2015 17:29:45 +0200 Message-ID: <1427988653-754-44-git-send-email-l.stach@pengutronix.de> References: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [92.198.50.35]) by gabe.freedesktop.org (Postfix) with ESMTP id 728E26EA57 for ; Thu, 2 Apr 2015 08:30:58 -0700 (PDT) In-Reply-To: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> 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: Russell King , kernel@pengutronix.de List-Id: dri-devel@lists.freedesktop.org RnJvbTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybS5saW51eC5vcmcudWs+CgpQcm92aWRl IGEgZ2V0X3BhZ2VzKCkgbWV0aG9kIGZvciBnZW0gb2JqZWN0cywgd2hpY2ggYWxsb3dzIG91ciBv YmplY3RzCnRvIHByb3ZpZGUgdGhlaXIgb3duIG1ldGhvZCB0byBvYnRhaW4gdGhlIHN0cnVjdCBw YWdlIGFycmF5IGFuZApzY2F0dGVybGlzdC4KClNpZ25lZC1vZmYtYnk6IFJ1c3NlbGwgS2luZyA8 cm1rK2tlcm5lbEBhcm0ubGludXgub3JnLnVrPgotLS0KIGRyaXZlcnMvc3RhZ2luZy9ldG5hdml2 L2V0bmF2aXZfZ2VtLmMgICAgICAgfCA2NyArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQog ZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9nZW0uaCAgICAgICB8ICAxICsKIGRyaXZl cnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1lLmMgfCAgMSArCiAzIGZpbGVzIGNo YW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtLmMgYi9kcml2ZXJzL3N0YWdpbmcvZXRu YXZpdi9ldG5hdml2X2dlbS5jCmluZGV4IDIxMjBjZDM3OGQ4Ni4uZTUwOGQ2NGFhMmQzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvZXRuYXZpdi9ldG5hdml2X2dlbS5jCisrKyBiL2RyaXZl cnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtLmMKQEAgLTI0LDM5ICsyNCwzNSBAQAogI2lu Y2x1ZGUgImV0bmF2aXZfbW11LmgiCiAKIC8qIGNhbGxlZCB3aXRoIGRldi0+c3RydWN0X211dGV4 IGhlbGQgKi8KLXN0YXRpYyBzdHJ1Y3QgcGFnZSAqKmdldF9wYWdlcyhzdHJ1Y3QgZXRuYXZpdl9n ZW1fb2JqZWN0ICpldG5hdml2X29iaikKK3N0YXRpYyBpbnQgZXRuYXZpdl9nZW1fc2htZW1fZ2V0 X3BhZ2VzKHN0cnVjdCBldG5hdml2X2dlbV9vYmplY3QgKmV0bmF2aXZfb2JqKQogewotCWlmICgh ZXRuYXZpdl9vYmotPnBhZ2VzKSB7Ci0JCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBldG5hdml2 X29iai0+YmFzZS5kZXY7Ci0JCXN0cnVjdCBwYWdlICoqcDsKLQkJaW50IG5wYWdlcyA9IGV0bmF2 aXZfb2JqLT5iYXNlLnNpemUgPj4gUEFHRV9TSElGVDsKLQotCQlwID0gZHJtX2dlbV9nZXRfcGFn ZXMoJmV0bmF2aXZfb2JqLT5iYXNlKTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZXRuYXZp dl9vYmotPmJhc2UuZGV2OworCXN0cnVjdCBwYWdlICoqcDsKKwlpbnQgbnBhZ2VzID0gZXRuYXZp dl9vYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZUOwogCi0JCWlmIChJU19FUlIocCkpIHsKLQkJ CWRldl9lcnIoZGV2LT5kZXYsICJjb3VsZCBub3QgZ2V0IHBhZ2VzOiAlbGRcbiIsCi0JCQkJCVBU Ul9FUlIocCkpOwotCQkJcmV0dXJuIHA7Ci0JCX0KKwlwID0gZHJtX2dlbV9nZXRfcGFnZXMoJmV0 bmF2aXZfb2JqLT5iYXNlKTsKKwlpZiAoSVNfRVJSKHApKSB7CisJCWRldl9lcnIoZGV2LT5kZXYs ICJjb3VsZCBub3QgZ2V0IHBhZ2VzOiAlbGRcbiIsIFBUUl9FUlIocCkpOworCQlyZXR1cm4gUFRS X0VSUihwKTsKKwl9CiAKLQkJZXRuYXZpdl9vYmotPnNndCA9IGRybV9wcmltZV9wYWdlc190b19z ZyhwLCBucGFnZXMpOwotCQlpZiAoSVNfRVJSKGV0bmF2aXZfb2JqLT5zZ3QpKSB7Ci0JCQlkZXZf ZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHNndFxuIik7Ci0JCQlkcm1fZ2VtX3B1 dF9wYWdlcygmZXRuYXZpdl9vYmotPmJhc2UsIHAsIGZhbHNlLCBmYWxzZSk7Ci0JCQlyZXR1cm4g RVJSX0NBU1QoZXRuYXZpdl9vYmotPnNndCk7Ci0JCX0KKwlldG5hdml2X29iai0+c2d0ID0gZHJt X3ByaW1lX3BhZ2VzX3RvX3NnKHAsIG5wYWdlcyk7CisJaWYgKElTX0VSUihldG5hdml2X29iai0+ c2d0KSkgeworCQlkZXZfZXJyKGRldi0+ZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHNndFxuIik7 CisJCWRybV9nZW1fcHV0X3BhZ2VzKCZldG5hdml2X29iai0+YmFzZSwgcCwgZmFsc2UsIGZhbHNl KTsKKwkJcmV0dXJuIFBUUl9FUlIocCk7CisJfQogCi0JCWV0bmF2aXZfb2JqLT5wYWdlcyA9IHA7 CisJZXRuYXZpdl9vYmotPnBhZ2VzID0gcDsKIAotCQkvKiBGb3Igbm9uLWNhY2hlZCBidWZmZXJz LCBlbnN1cmUgdGhlIG5ldyBwYWdlcyBhcmUgY2xlYW4KLQkJICogYmVjYXVzZSBkaXNwbGF5IGNv bnRyb2xsZXIsIEdQVSwgZXRjLiBhcmUgbm90IGNvaGVyZW50OgotCQkgKi8KLQkJaWYgKGV0bmF2 aXZfb2JqLT5mbGFncyAmIChFVE5BX0JPX1dDfEVUTkFfQk9fVU5DQUNIRUQpKQotCQkJZG1hX21h cF9zZyhkZXYtPmRldiwgZXRuYXZpdl9vYmotPnNndC0+c2dsLAotCQkJCSAgIGV0bmF2aXZfb2Jq LT5zZ3QtPm5lbnRzLCBETUFfQklESVJFQ1RJT05BTCk7Ci0JfQorCS8qIEZvciBub24tY2FjaGVk IGJ1ZmZlcnMsIGVuc3VyZSB0aGUgbmV3IHBhZ2VzIGFyZSBjbGVhbgorCSAqIGJlY2F1c2UgZGlz cGxheSBjb250cm9sbGVyLCBHUFUsIGV0Yy4gYXJlIG5vdCBjb2hlcmVudDoKKwkgKi8KKwlpZiAo ZXRuYXZpdl9vYmotPmZsYWdzICYgKEVUTkFfQk9fV0N8RVROQV9CT19VTkNBQ0hFRCkpCisJCWRt YV9tYXBfc2coZGV2LT5kZXYsIGV0bmF2aXZfb2JqLT5zZ3QtPnNnbCwKKwkJCSAgIGV0bmF2aXZf b2JqLT5zZ3QtPm5lbnRzLCBETUFfQklESVJFQ1RJT05BTCk7CiAKLQlyZXR1cm4gZXRuYXZpdl9v YmotPnBhZ2VzOworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBwdXRfcGFnZXMoc3RydWN0 IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmopCkBAIC04Myw3ICs3OSwxNSBAQCBzdGF0 aWMgdm9pZCBwdXRfcGFnZXMoc3RydWN0IGV0bmF2aXZfZ2VtX29iamVjdCAqZXRuYXZpdl9vYmop CiAKIHN0cnVjdCBwYWdlICoqZXRuYXZpdl9nZW1fZ2V0X3BhZ2VzKHN0cnVjdCBldG5hdml2X2dl bV9vYmplY3QgKmV0bmF2aXZfb2JqKQogewotCXJldHVybiBnZXRfcGFnZXMoZXRuYXZpdl9vYmop OworCWludCByZXQ7CisKKwlpZiAoIWV0bmF2aXZfb2JqLT5wYWdlcykgeworCQlyZXQgPSBldG5h dml2X29iai0+b3BzLT5nZXRfcGFnZXMoZXRuYXZpdl9vYmopOworCQlpZiAocmV0IDwgMCkKKwkJ CXJldHVybiBFUlJfUFRSKHJldCk7CisJfQorCisJcmV0dXJuIGV0bmF2aXZfb2JqLT5wYWdlczsK IH0KIAogdm9pZCBldG5hdml2X2dlbV9wdXRfcGFnZXMoc3RydWN0IGV0bmF2aXZfZ2VtX29iamVj dCAqZXRuYXZpdl9vYmopCkBAIC0xODEsNyArMTg1LDcgQEAgaW50IGV0bmF2aXZfZ2VtX2ZhdWx0 KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKIAkJZ290 byBvdXQ7CiAKIAkvKiBtYWtlIHN1cmUgd2UgaGF2ZSBwYWdlcyBhdHRhY2hlZCBub3cgKi8KLQlw YWdlcyA9IGdldF9wYWdlcyh0b19ldG5hdml2X2JvKG9iaikpOworCXBhZ2VzID0gZXRuYXZpdl9n ZW1fZ2V0X3BhZ2VzKHRvX2V0bmF2aXZfYm8ob2JqKSk7CiAJaWYgKElTX0VSUihwYWdlcykpIHsK IAkJcmV0ID0gUFRSX0VSUihwYWdlcyk7CiAJCWdvdG8gb3V0X3VubG9jazsKQEAgLTI2NSw3ICsy NjksNyBAQCBpbnQgZXRuYXZpdl9nZW1fZ2V0X2lvdmFfbG9ja2VkKHN0cnVjdCBldG5hdml2X2dw dSAqZ3B1LAogCWlmICghZXRuYXZpdl9vYmotPmlvdmEgICYmICEoZXRuYXZpdl9vYmotPmZsYWdz ICYgRVROQV9CT19DTURTVFJFQU0pKSB7CiAJCXN0cnVjdCBldG5hdml2X2RybV9wcml2YXRlICpw cml2ID0gb2JqLT5kZXYtPmRldl9wcml2YXRlOwogCQlzdHJ1Y3QgZXRuYXZpdl9pb21tdSAqbW11 ID0gcHJpdi0+bW11OwotCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzID0gZ2V0X3BhZ2VzKGV0bmF2aXZf b2JqKTsKKwkJc3RydWN0IHBhZ2UgKipwYWdlcyA9IGV0bmF2aXZfZ2VtX2dldF9wYWdlcyhldG5h dml2X29iaik7CiAJCXVpbnQzMl90IG9mZnNldDsKIAkJc3RydWN0IGRybV9tbV9ub2RlICpub2Rl ID0gTlVMTDsKIApAQCAtMzY3LDcgKzM3MSw3IEBAIHZvaWQgKmV0bmF2aXZfZ2VtX3ZhZGRyX2xv Y2tlZChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIAlXQVJOX09OKCFtdXRleF9pc19sb2Nr ZWQoJm9iai0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKIAogCWlmICghZXRuYXZpdl9vYmotPnZhZGRy KSB7Ci0JCXN0cnVjdCBwYWdlICoqcGFnZXMgPSBnZXRfcGFnZXMoZXRuYXZpdl9vYmopOworCQlz dHJ1Y3QgcGFnZSAqKnBhZ2VzID0gZXRuYXZpdl9nZW1fZ2V0X3BhZ2VzKGV0bmF2aXZfb2JqKTsK IAogCQlpZiAoSVNfRVJSKHBhZ2VzKSkKIAkJCXJldHVybiBFUlJfQ0FTVChwYWdlcyk7CkBAIC01 MzIsNiArNTM2LDcgQEAgc3RhdGljIHZvaWQgZXRuYXZpdl9nZW1fc2htZW1fcmVsZWFzZShzdHJ1 Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICpldG5hdml2X29iaikKIH0KIAogc3RhdGljIGNvbnN0IHN0 cnVjdCBldG5hdml2X2dlbV9vcHMgZXRuYXZpdl9nZW1fc2htZW1fb3BzID0geworCS5nZXRfcGFn ZXMgPSBldG5hdml2X2dlbV9zaG1lbV9nZXRfcGFnZXMsCiAJLnJlbGVhc2UgPSBldG5hdml2X2dl bV9zaG1lbV9yZWxlYXNlLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2V0bmF2 aXYvZXRuYXZpdl9nZW0uaCBiL2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtLmgK aW5kZXggNTY5YTQwN2NiZDM1Li5iYmZjYmQ3NTU3ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3Rh Z2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYv ZXRuYXZpdl9nZW0uaApAQCAtNjgsNiArNjgsNyBAQCBzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0 IHsKICNkZWZpbmUgdG9fZXRuYXZpdl9ibyh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGV0bmF2 aXZfZ2VtX29iamVjdCwgYmFzZSkKIAogc3RydWN0IGV0bmF2aXZfZ2VtX29wcyB7CisJaW50ICgq Z2V0X3BhZ2VzKShzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICopOwogCXZvaWQgKCpyZWxlYXNl KShzdHJ1Y3QgZXRuYXZpdl9nZW1fb2JqZWN0ICopOwogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9nZW1fcHJpbWUuYyBiL2RyaXZlcnMvc3RhZ2luZy9l dG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1lLmMKaW5kZXggM2E5ODZhZTliMDBiLi5kMTVmNGI2MGZh NDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy9ldG5hdml2L2V0bmF2aXZfZ2VtX3ByaW1l LmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL2V0bmF2aXYvZXRuYXZpdl9nZW1fcHJpbWUuYwpAQCAt NzgsNiArNzgsNyBAQCBzdGF0aWMgdm9pZCBldG5hdml2X2dlbV9wcmltZV9yZWxlYXNlKHN0cnVj dCBldG5hdml2X2dlbV9vYmplY3QgKmV0bmF2aXZfb2JqKQogfQogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IGV0bmF2aXZfZ2VtX29wcyBldG5hdml2X2dlbV9wcmltZV9vcHMgPSB7CisJLyogLmdldF9w YWdlcyBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkICovCiAJLnJlbGVhc2UgPSBldG5hdml2X2dlbV9w cmltZV9yZWxlYXNlLAogfTsKIAotLSAKMi4xLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==