From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Stone Subject: [PATCH 4/4] drm: Add getfb2 ioctl Date: Fri, 23 Mar 2018 13:45:52 +0000 Message-ID: <20180323134553.15993-4-daniels@collabora.com> References: <20180323134553.15993-1-daniels@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A1C56E386 for ; Fri, 23 Mar 2018 13:45:59 +0000 (UTC) In-Reply-To: <20180323134553.15993-1-daniels@collabora.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 List-Id: dri-devel@lists.freedesktop.org Z2V0ZmIyIGFsbG93cyB1cyB0byBwYXNzIG11bHRpcGxlIHBsYW5lcyBhbmQgbW9kaWZpZXJzLCBq dXN0IGxpa2UgYWRkZmIyCm92ZXIgYWRkZmIuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgU3RvbmUg PGRhbmllbHNAY29sbGFib3JhLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50 ZXJuYWwuaCB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgICB8IDEw OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9k cm1faW9jdGwuYyAgICAgICAgIHwgICAyICsKIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAg ICAgICAgIHwgICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCmluZGV4IDNjMmI4Mjg2NWFkMi4uMGNkMDJmM2QyMDNk IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaApAQCAtMTczLDYgKzE3Myw4IEBAIGlu dCBkcm1fbW9kZV9ybWZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgdm9pZCAqZGF0YSwg c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogaW50IGRybV9tb2RlX2dldGZiKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCSAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2KTsKK2ludCBkcm1fbW9kZV9nZXRmYjJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK KwkJCSAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogaW50IGRybV9t b2RlX2RpcnR5ZmJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCSAgIHZvaWQgKmRh dGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZl ci5jCmluZGV4IDZkNWZmNTQxMjI1YS4uZjFjZmI2ZGRjNzc2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFt ZWJ1ZmZlci5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNs dWRlIDxkcm0vZHJtX2F1dGguaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZyYW1lYnVmZmVyLmg+Cisj aW5jbHVkZSA8ZHJtL2RybV9nZW0uaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2lu Y2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KIApAQCAtNDk0LDcgKzQ5NSwxMTUgQEAgaW50IGRybV9t b2RlX2dldGZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIG91dDoKIAlkcm1fZnJhbWVidWZm ZXJfcHV0KGZiKTsKKwlyZXR1cm4gcmV0OworfQorCisvKioKKyAqIGRybV9tb2RlX2dldGZiMiAt IGdldCBleHRlbmRlZCBGQiBpbmZvCisgKiBAZGV2OiBkcm0gZGV2aWNlIGZvciB0aGUgaW9jdGwK KyAqIEBkYXRhOiBkYXRhIHBvaW50ZXIgZm9yIHRoZSBpb2N0bAorICogQGZpbGVfcHJpdjogZHJt IGZpbGUgZm9yIHRoZSBpb2N0bCBjYWxsCisgKgorICogTG9va3VwIHRoZSBGQiBnaXZlbiBpdHMg SUQgYW5kIHJldHVybiBpbmZvIGFib3V0IGl0LgorICoKKyAqIENhbGxlZCBieSB0aGUgdXNlciB2 aWEgaW9jdGwuCisgKgorICogUmV0dXJuczoKKyAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUg ZXJybm8gb24gZmFpbHVyZS4KKyAqLworaW50IGRybV9tb2RlX2dldGZiMl9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAorCQkJICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdikKK3sKKwlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiAqciA9IGRhdGE7CisJc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmI7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKworCWlmICgh ZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkKKwkJcmV0dXJuIC1F SU5WQUw7CiAKKwlmYiA9IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAoZGV2LCBmaWxlX3ByaXYsIHIt PmZiX2lkKTsKKwlpZiAoIWZiKQorCQlyZXR1cm4gLUVOT0VOVDsKKworCS8qIEZvciBtdWx0aS1w bGFuZSBmcmFtZWJ1ZmZlcnMsIHdlIHJlcXVpcmUgdGhlIGRyaXZlciB0byBwbGFjZSB0aGUKKwkg KiBHRU0gb2JqZWN0cyBkaXJlY3RseSBpbiB0aGUgZHJtX2ZyYW1lYnVmZmVyLiBGb3Igc2luZ2xl LXBsYW5lCisJICogZnJhbWVidWZmZXJzLCB3ZSBjYW4gZmFsbCBiYWNrIHRvIGNyZWF0ZV9oYW5k bGUuCisJICovCisJaWYgKCFmYi0+b2JqWzBdICYmCisJICAgIChmYi0+Zm9ybWF0LT5udW1fcGxh bmVzID4gMSB8fCAhZmItPmZ1bmNzLT5jcmVhdGVfaGFuZGxlKSkgeworCQlyZXQgPSAtRU5PREVW OworCQlnb3RvIG91dDsKKwl9CisKKwlyLT5oZWlnaHQgPSBmYi0+aGVpZ2h0OworCXItPndpZHRo ID0gZmItPndpZHRoOworCXItPnBpeGVsX2Zvcm1hdCA9IGZiLT5mb3JtYXQtPmZvcm1hdDsKKwor CXItPmZsYWdzID0gMDsKKwlpZiAoZGV2LT5tb2RlX2NvbmZpZy5hbGxvd19mYl9tb2RpZmllcnMp CisJCXItPmZsYWdzIHw9IERSTV9NT0RFX0ZCX01PRElGSUVSUzsKKworCWZvciAoaSA9IDA7IGkg PCBBUlJBWV9TSVpFKHItPmhhbmRsZXMpOyBpKyspIHsKKwkJci0+aGFuZGxlc1tpXSA9IDA7CisJ CXItPnBpdGNoZXNbaV0gPSAwOworCQlyLT5vZmZzZXRzW2ldID0gMDsKKwkJci0+bW9kaWZpZXJb aV0gPSBEUk1fRk9STUFUX01PRF9JTlZBTElEOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBmYi0+ Zm9ybWF0LT5udW1fcGxhbmVzOyBpKyspIHsKKwkJaW50IGo7CisKKwkJci0+cGl0Y2hlc1tpXSA9 IGZiLT5waXRjaGVzW2ldOworCQlyLT5vZmZzZXRzW2ldID0gZmItPm9mZnNldHNbaV07CisJCWlm IChkZXYtPm1vZGVfY29uZmlnLmFsbG93X2ZiX21vZGlmaWVycykKKwkJCXItPm1vZGlmaWVyW2ld ID0gZmItPm1vZGlmaWVyOworCisJCS8qIElmIHdlIHJldXNlIHRoZSBzYW1lIG9iamVjdCBmb3Ig bXVsdGlwbGUgcGxhbmVzLCBhbHNvCisJCSAqIHJldHVybiB0aGUgc2FtZSBoYW5kbGUuCisJCSAq LworCQlmb3IgKGogPSAwOyBqIDwgaTsgaisrKSB7CisJCQlpZiAoZmItPm9ialtpXSA9PSBmYi0+ b2JqW2pdKSB7CisJCQkJci0+aGFuZGxlc1tpXSA9IHItPmhhbmRsZXNbal07CisJCQkJYnJlYWs7 CisJCQl9CisJCX0KKworCQlpZiAoci0+aGFuZGxlc1tpXSkKKwkJCWNvbnRpbnVlOworCisJCWlm IChmYi0+b2JqW2ldKSB7CisJCQlyZXQgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlsZV9wcml2 LCBmYi0+b2JqW2ldLAorCQkJCQkJICAgICZyLT5oYW5kbGVzW2ldKTsKKwkJfSBlbHNlIHsKKwkJ CVdBUk5fT04oaSA+IDApOworCQkJcmV0ID0gZmItPmZ1bmNzLT5jcmVhdGVfaGFuZGxlKGZiLCBm aWxlX3ByaXYsCisJCQkJCQkgICAgICAgJnItPmhhbmRsZXNbaV0pOworCQl9CisKKwkJaWYgKHJl dCAhPSAwKQorCQkJZ290byBvdXQ7CisJfQorCitvdXQ6CisJaWYgKHJldCAhPSAwKSB7CisJCS8q IERlbGV0ZSBhbnkgcHJldmlvdXNseS1jcmVhdGVkIGhhbmRsZXMgb24gZmFpbHVyZS4gKi8KKwkJ Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoci0+aGFuZGxlcyk7IGkrKykgeworCQkJaW50IGo7 CisKKwkJCWlmIChyLT5oYW5kbGVzW2ldKQorCQkJCWRybV9nZW1faGFuZGxlX2RlbGV0ZShmaWxl X3ByaXYsIHItPmhhbmRsZXNbaV0pOworCisJCQkvKiBaZXJvIG91dCBhbnkgaGFuZGxlcyBpZGVu dGljYWwgdG8gdGhlIG9uZSB3ZSBqdXN0CisJCQkgKiBkZWxldGVkLiAqLworCQkJZm9yIChqID0g aSArIDE7IGogPCBBUlJBWV9TSVpFKHItPmhhbmRsZXMpOyBqKyspIHsKKwkJCQlpZiAoci0+aGFu ZGxlc1tqXSA9PSByLT5oYW5kbGVzW2ldKQorCQkJCQlyLT5oYW5kbGVzW2pdID0gMDsKKwkJCX0K KwkJfQorCX0KKworCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZmIpOwogCXJldHVybiByZXQ7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1faW9jdGwuYwppbmRleCBhZjc4MjkxMWM1MDUuLmI1ODk2ZTM2MTVlNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f aW9jdGwuYwpAQCAtNjY5LDYgKzY2OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3Rs X2Rlc2MgZHJtX2lvY3Rsc1tdID0gewogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfTElT VF9MRVNTRUVTLCBkcm1fbW9kZV9saXN0X2xlc3NlZXNfaW9jdGwsIERSTV9NQVNURVJ8RFJNX0NP TlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RF X0dFVF9MRUFTRSwgZHJtX21vZGVfZ2V0X2xlYXNlX2lvY3RsLCBEUk1fTUFTVEVSfERSTV9DT05U Uk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9S RVZPS0VfTEVBU0UsIGRybV9tb2RlX3Jldm9rZV9sZWFzZV9pb2N0bCwgRFJNX01BU1RFUnxEUk1f Q09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExf TU9ERV9HRVRGQjIsIGRybV9tb2RlX2dldGZiMl9pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJP TF9BTExPV3xEUk1fVU5MT0NLRUQpLAogfTsKIAogI2RlZmluZSBEUk1fQ09SRV9JT0NUTF9DT1VO VAlBUlJBWV9TSVpFKCBkcm1faW9jdGxzICkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0v ZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCmluZGV4IDZmZGZmNTk0NWM4YS4uOWEzMzYx MzM5NGE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oCisrKyBiL2luY2x1ZGUv dWFwaS9kcm0vZHJtLmgKQEAgLTg5Miw2ICs4OTIsNyBAQCBleHRlcm4gIkMiIHsKICNkZWZpbmUg RFJNX0lPQ1RMX01PREVfTElTVF9MRVNTRUVTCURSTV9JT1dSKDB4QzcsIHN0cnVjdCBkcm1fbW9k ZV9saXN0X2xlc3NlZXMpCiAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0dFVF9MRUFTRQlEUk1fSU9X UigweEM4LCBzdHJ1Y3QgZHJtX21vZGVfZ2V0X2xlYXNlKQogI2RlZmluZSBEUk1fSU9DVExfTU9E RV9SRVZPS0VfTEVBU0UJRFJNX0lPV1IoMHhDOSwgc3RydWN0IGRybV9tb2RlX3Jldm9rZV9sZWFz ZSkKKyNkZWZpbmUgRFJNX0lPQ1RMX01PREVfR0VURkIyCQlEUk1fSU9XUigweENBLCBzdHJ1Y3Qg ZHJtX21vZGVfZmJfY21kMikKIAogLyoqCiAgKiBEZXZpY2Ugc3BlY2lmaWMgaW9jdGxzIHNob3Vs ZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVycwotLSAKMi4xNi4yCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK