From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: [PATCH 2/3] drm: Create a format/modifier blob Date: Tue, 2 May 2017 22:14:27 -0700 Message-ID: <20170503051428.4734-2-ben@bwidawsk.net> References: <20170503051428.4734-1-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170503051428.4734-1-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: DRI Development Cc: Intel GFX , "Kristian H . Kristensen" , Ben Widawsky , Daniel Stone List-Id: intel-gfx@lists.freedesktop.org VXBkYXRlZCBibG9iIGxheW91dCAoUm9iLCBEYW5pZWwsIEtyaXN0aWFuLCB4ZXJwaSkKCkNjOiBS b2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CkNjOiBEYW5pZWwgU3RvbmUgPGRhbmllbHNA Y29sbGFib3JhLmNvbT4KQ2M6IEtyaXN0aWFuIEguIEtyaXN0ZW5zZW4gPGhvZWdzYmVyZ0BnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KLS0t CiBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMgfCAgIDcgKysrCiBkcml2ZXJzL2dw dS9kcm0vZHJtX3BsYW5lLmMgICAgICAgfCAxMTkgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oICAgICB8ICAgNiArKwog aW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAgICAgIHwgIDI2ICsrKysrKysrKwogNCBmaWxl cyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fbW9kZV9jb25maWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYwpp bmRleCBkOTg2MjI1OWEyYTcuLjZiZmJjMzgzOWRmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9tb2RlX2NvbmZpZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25m aWcuYwpAQCAtMzM3LDYgKzMzNywxMyBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9zdGFu ZGFyZF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJldHVybiAtRU5PTUVN OwogCWRldi0+bW9kZV9jb25maWcuZ2FtbWFfbHV0X3NpemVfcHJvcGVydHkgPSBwcm9wOwogCisJ cHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZGV2LAorCQkJCSAgIERSTV9NT0RFX1BST1BfSU1N VVRBQkxFIHwgRFJNX01PREVfUFJPUF9CTE9CLAorCQkJCSAgICJJTl9GT1JNQVRTIiwgMCk7CisJ aWYgKCFwcm9wKQorCQlyZXR1cm4gLUVOT01FTTsKKwlkZXYtPm1vZGVfY29uZmlnLm1vZGlmaWVy cyA9IHByb3A7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCmluZGV4IDI4NmUxODM4 OTFlNS4uMmU4OWUwZTczNDM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5l LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCkBAIC02Miw2ICs2MiwxMTcgQEAg c3RhdGljIHVuc2lnbmVkIGludCBkcm1fbnVtX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCXJldHVybiBudW07CiB9CiAKK3N0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyX2Jsb2Igewor I2RlZmluZSBGT1JNQVRfQkxPQl9DVVJSRU5UIDEKKwkvKiBWZXJzaW9uIG9mIHRoaXMgYmxvYiBm b3JtYXQgKi8KKwl1MzIgdmVyc2lvbjsKKworCS8qIEZsYWdzICovCisJdTMyIGZsYWdzOworCisJ LyogTnVtYmVyIG9mIGZvdXJjYyBmb3JtYXRzIHN1cHBvcnRlZCAqLworCXUzMiBjb3VudF9mb3Jt YXRzOworCisJLyogV2hlcmUgaW4gdGhpcyBibG9iIHRoZSBmb3JtYXRzIGV4aXN0IChpbiBieXRl cykgKi8KKwl1MzIgZm9ybWF0c19vZmZzZXQ7CisKKwkvKiBOdW1iZXIgb2YgZHJtX2Zvcm1hdF9t b2RpZmllcnMgKi8KKwl1MzIgY291bnRfbW9kaWZpZXJzOworCisJLyogV2hlcmUgaW4gdGhpcyBi bG9iIHRoZSBtb2RpZmllcnMgZXhpc3QgKGluIGJ5dGVzKSAqLworCXUzMiBtb2RpZmllcnNfb2Zm c2V0OworCisJLyogdTMyIGZvcm1hdHNbXSAqLworCS8qIHN0cnVjdCBkcm1fZm9ybWF0X21vZGlm aWVyIG1vZGlmaWVyc1tdICovCit9IF9fcGFja2VkOworCitzdGF0aWMgaW5saW5lIHUzMiAqCitm b3JtYXRzX3B0cihzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2RpZmllcl9ibG9iICpibG9iKQoreworCXJl dHVybiAodTMyICopKCgoY2hhciAqKWJsb2IpICsgYmxvYi0+Zm9ybWF0c19vZmZzZXQpOworfQor CitzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyICoKK21vZGlmaWVyc19w dHIoc3RydWN0IGRybV9mb3JtYXRfbW9kaWZpZXJfYmxvYiAqYmxvYikKK3sKKwlyZXR1cm4gKHN0 cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyICopKCgoY2hhciAqKWJsb2IpICsgYmxvYi0+bW9kaWZp ZXJzX29mZnNldCk7Cit9CisKK3N0YXRpYyBpbnQgY3JlYXRlX2luX2Zvcm1hdF9ibG9iKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCSBjb25zdCBz dHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzICpmdW5jcywKKwkJCQkgY29uc3QgdWludDMyX3QgKmZvcm1h dHMsIHVuc2lnbmVkIGludCBmb3JtYXRfY291bnQsCisJCQkJIGNvbnN0IHVpbnQ2NF90ICpmb3Jt YXRfbW9kaWZpZXJzKQoreworCWNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9 ICZkZXYtPm1vZGVfY29uZmlnOworCWNvbnN0IHVpbnQ2NF90ICp0ZW1wX21vZGlmaWVycyA9IGZv cm1hdF9tb2RpZmllcnM7CisJdW5zaWduZWQgaW50IGZvcm1hdF9tb2RpZmllcl9jb3VudCA9IDA7 CisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX2Zv cm1hdF9tb2RpZmllciAqbW9kOworCXNpemVfdCBibG9iX3NpemUgPSAwLCBmb3JtYXRzX3NpemUs IG1vZGlmaWVyc19zaXplOworCXN0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyX2Jsb2IgKmJsb2Jf ZGF0YTsKKwlpbnQgaSwgaiwgcmV0ID0gMDsKKworCWlmIChmb3JtYXRfbW9kaWZpZXJzKQorCQl3 aGlsZSAoKnRlbXBfbW9kaWZpZXJzKysgIT0gRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRCkKKwkJCWZv cm1hdF9tb2RpZmllcl9jb3VudCsrOworCisJZm9ybWF0c19zaXplID0gc2l6ZW9mKF9fdTMyKSAq IGZvcm1hdF9jb3VudDsKKwlpZiAoV0FSTl9PTighZm9ybWF0c19zaXplKSkgeworCQkvKiAwIGZv cm1hdHMgYXJlIG5ldmVyIGV4cGVjdGVkICovCisJCXJldHVybiAwOworCX0KKworCW1vZGlmaWVy c19zaXplID0KKwkJc2l6ZW9mKHN0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyKSAqIGZvcm1hdF9t b2RpZmllcl9jb3VudDsKKworCWJsb2Jfc2l6ZSA9IEFMSUdOKHNpemVvZihzdHJ1Y3QgZHJtX2Zv cm1hdF9tb2RpZmllcl9ibG9iKSwgOCk7CisJYmxvYl9zaXplICs9IEFMSUdOKGZvcm1hdHNfc2l6 ZSwgOCk7CisJYmxvYl9zaXplICs9IG1vZGlmaWVyc19zaXplOworCisJYmxvYiA9IGRybV9wcm9w ZXJ0eV9jcmVhdGVfYmxvYihkZXYsIGJsb2Jfc2l6ZSwgTlVMTCk7CisJaWYgKElTX0VSUihibG9i KSkKKwkJcmV0dXJuIC0xOworCisJYmxvYl9kYXRhID0gKHN0cnVjdCBkcm1fZm9ybWF0X21vZGlm aWVyX2Jsb2IgKilibG9iLT5kYXRhOworCWJsb2JfZGF0YS0+dmVyc2lvbiA9IEZPUk1BVF9CTE9C X0NVUlJFTlQ7CisJYmxvYl9kYXRhLT5jb3VudF9mb3JtYXRzID0gZm9ybWF0X2NvdW50OworCWJs b2JfZGF0YS0+Zm9ybWF0c19vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGRybV9mb3JtYXRfbW9kaWZp ZXJfYmxvYik7CisJYmxvYl9kYXRhLT5jb3VudF9tb2RpZmllcnMgPSBmb3JtYXRfbW9kaWZpZXJf Y291bnQ7CisKKwkvKiBNb2RpZmllcnMgb2Zmc2V0IGlzIGEgcG9pbnRlciB0byBhIHN0cnVjdCB3 aXRoIGEgNjQgYml0IGZpZWxkIHNvIGl0CisJICogc2hvdWxkIGJlIG5hdHVyYWxseSBhbGlnbmVk IHRvIDhCLgorCSAqLworCWJsb2JfZGF0YS0+bW9kaWZpZXJzX29mZnNldCA9CisJCUFMSUdOKGJs b2JfZGF0YS0+Zm9ybWF0c19vZmZzZXQgKyBmb3JtYXRzX3NpemUsIDgpOworCisJbWVtY3B5KGZv cm1hdHNfcHRyKGJsb2JfZGF0YSksIGZvcm1hdHMsIGZvcm1hdHNfc2l6ZSk7CisKKwkvKiBJZiB3 ZSBjYW4ndCBkZXRlcm1pbmUgc3VwcG9ydCwganVzdCBiYWlsICovCisJaWYgKCFmdW5jcy0+Zm9y bWF0X21vZF9zdXBwb3J0ZWQpCisJCWdvdG8gZG9uZTsKKworCW1vZCA9IG1vZGlmaWVyc19wdHIo YmxvYl9kYXRhKTsKKwlmb3IgKGkgPSAwOyBpIDwgZm9ybWF0X21vZGlmaWVyX2NvdW50OyBpKysp IHsKKwkJZm9yIChqID0gMDsgaiA8IGZvcm1hdF9jb3VudDsgaisrKSB7CisJCQlpZiAoZnVuY3Mt PmZvcm1hdF9tb2Rfc3VwcG9ydGVkKHBsYW5lLCBmb3JtYXRzW2pdLAorCQkJCQkJCWZvcm1hdF9t b2RpZmllcnNbaV0pKSB7CisJCQkJbW9kLT5mb3JtYXRzIHw9IDEgPDwgajsKKwkJCX0KKwkJfQor CisJCW1vZC0+bW9kaWZpZXIgPSBmb3JtYXRfbW9kaWZpZXJzW2ldOworCQltb2QtPm9mZnNldCA9 IDA7CisJCW1vZC0+cGFkID0gMDsKKwkJbW9kKys7CisJfQorCitkb25lOgorCWRybV9vYmplY3Rf YXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgY29uZmlnLT5tb2RpZmllcnMsCisJCQkJICAg YmxvYi0+YmFzZS5pZCk7CisKKwlyZXR1cm4gcmV0OworfQorCiAvKioKICAqIGRybV91bml2ZXJz YWxfcGxhbmVfaW5pdCAtIEluaXRpYWxpemUgYSBuZXcgdW5pdmVyc2FsIHBsYW5lIG9iamVjdAog ICogQGRldjogRFJNIGRldmljZQpAQCAtMTMwLDYgKzI0MSwxMCBAQCBpbnQgZHJtX3VuaXZlcnNh bF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKKwkvKiBGaXJzdCBkcml2ZXIgdG8gbmVlZCBt b3JlIHRoYW4gNjQgZm9ybWF0cyBuZWVkcyB0byBmaXggdGhpcyAqLworCWlmIChXQVJOX09OKGZv cm1hdF9jb3VudCA+IDY0KSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAlpZiAobmFtZSkgewogCQl2 YV9saXN0IGFwOwogCkBAIC0xNzcsNiArMjkyLDEwIEBAIGludCBkcm1fdW5pdmVyc2FsX3BsYW5l X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ CWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgY29uZmlnLT5wcm9wX3Ny Y19oLCAwKTsKIAl9CiAKKwlpZiAoY29uZmlnLT5hbGxvd19mYl9tb2RpZmllcnMpCisJCWNyZWF0 ZV9pbl9mb3JtYXRfYmxvYihkZXYsIHBsYW5lLCBmdW5jcywgZm9ybWF0cywgZm9ybWF0X2NvdW50 LAorCQkJCSAgICAgIGZvcm1hdF9tb2RpZmllcnMpOworCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRf U1lNQk9MKGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9kcm1fbW9kZV9jb25maWcuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCmluZGV4 IDQyOTgxNzExMTg5Yi4uMDM3NzZlNjU5ODExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1f bW9kZV9jb25maWcuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaApAQCAtNzU3 LDYgKzc1NywxMiBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKIAkgKi8KIAlib29sIGFsbG93 X2ZiX21vZGlmaWVyczsKIAorCS8qKgorCSAqIEBtb2RpZmllcnM6IFBsYW5lIHByb3BlcnR5IHRv IGxpc3Qgc3VwcG9ydCBtb2RpZmllci9mb3JtYXQKKwkgKiBjb21iaW5hdGlvbi4KKwkgKi8KKwlz dHJ1Y3QgZHJtX3Byb3BlcnR5ICptb2RpZmllcnM7CisKIAkvKiBjdXJzb3Igc2l6ZSAqLwogCXVp bnQzMl90IGN1cnNvcl93aWR0aCwgY3Vyc29yX2hlaWdodDsKIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCmluZGV4 IDhjNjdmYzAzZDUzZC4uZGNkZDA0YzU1NzkyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJt L2RybV9tb2RlLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCkBAIC02NjUsNiAr NjY1LDMyIEBAIHN0cnVjdCBkcm1fbW9kZV9hdG9taWMgewogCV9fdTY0IHVzZXJfZGF0YTsKIH07 CiAKK3N0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyIHsKKyAgICAgICAvKiBCaXRtYXNrIG9mIGZv cm1hdHMgaW4gZ2V0X3BsYW5lIGZvcm1hdCBsaXN0IHRoaXMgaW5mbyBhcHBsaWVzIHRvLiBUaGUK KwkqIG9mZnNldCBhbGxvd3MgYSBzbGlkaW5nIHdpbmRvdyBvZiB3aGljaCA2NCBmb3JtYXRzIChi aXRzKS4KKwkqCisJKiBTb21lIGV4YW1wbGVzOgorCSogSW4gdG9kYXkncyB3b3JsZCB3aXRoIDwg NjUgZm9ybWF0cywgYW5kIGZvcm1hdHMgMCwgYW5kIDIgYXJlCisJKiBzdXBwb3J0ZWQKKwkqIDB4 MDAwMDAwMDAwMDAwMDAwNQorCSoJCSAgXi1vZmZzZXQgPSAwLCBmb3JtYXRzID0gNQorCSoKKwkq IElmIHRoZSBudW1iZXIgZm9ybWF0cyBncmV3IHRvIDEyOCwgYW5kIGZvcm1hdHMgOTgtMTAyIGFy ZQorCSogc3VwcG9ydGVkIHdpdGggdGhlIG1vZGlmaWVyOgorCSoKKwkqIDB4MDAwMDAwM2MwMDAw MDAwMCAwMDAwMDAwMDAwMDAwMDAwCisJKgkJICBeCisJKgkJICB8X19vZmZzZXQgPSA2NCwgZm9y bWF0cyA9IDB4M2MwMDAwMDAwMAorCSoKKwkqLworICAgICAgIHVpbnQ2NF90IGZvcm1hdHM7Cisg ICAgICAgdWludDMyX3Qgb2Zmc2V0OworICAgICAgIHVpbnQzMl90IHBhZDsKKworICAgICAgIC8q IFRoaXMgbW9kaWZpZXIgY2FuIGJlIHVzZWQgd2l0aCB0aGUgZm9ybWF0IGZvciB0aGlzIHBsYW5l LiAqLworICAgICAgIHVpbnQ2NF90IG1vZGlmaWVyOworfSBfX3BhY2tlZDsKKwogLyoqCiAgKiBD cmVhdGUgYSBuZXcgJ2Jsb2InIGRhdGEgcHJvcGVydHksIGNvcHlpbmcgbGVuZ3RoIGJ5dGVzIGZy b20gZGF0YSBwb2ludGVyLAogICogYW5kIHJldHVybmluZyBuZXcgYmxvYiBJRC4KLS0gCjIuMTIu MgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==