From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: [PATCH 4/6] drm: Create a format/modifier blob Date: Wed, 26 Jul 2017 11:08:00 -0700 Message-ID: <20170726180802.23817-4-ben@bwidawsk.net> References: <20170726180802.23817-1-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170726180802.23817-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: Intel GFX , DRI Development Cc: Ben Widawsky , Daniel Stone , Emil Velikov , "Kristian H . Kristensen" List-Id: dri-devel@lists.freedesktop.org VXBkYXRlZCBibG9iIGxheW91dCAoUm9iLCBEYW5pZWwsIEtyaXN0aWFuLCB4ZXJwaSkKCnYyOgoq IFJlbW92ZWQgX19wYWNrZWQsIGFuZCBhbGlnbm1lbnQgKC4rKQoqIEZpeCBpbmRlbnQgaW4gZHJt X2Zvcm1hdF9tb2RpZmllciBmaWVsZHMgKExpdml1KQoqIFJlbW92ZSBkdXBsaWNhdGVkIG1vZGlm aWVyID4gNjQgY2hlY2sgKExpdml1KQoqIENoYW5nZSBjb21tZW50IGFib3V0IG1vZGlmaWVyIChM aXZpdSkKKiBSZW1vdmUgYXJndW1lbnRzIHRvIGJsb2IgY3JlYXRpb24sIHVzZSBwbGFuZSBpbnN0 ZWFkIChMaXZpdSkKKiBGaXggZGF0YSB0eXBlcyAoQmVuKQoqIE1ha2UgdGhlIGJsb2IgcGFydCBv ZiB1YXBpIChEYW5pZWwpCgp2MzoKUmVtb3ZlIHVudXNlZCByZXQgZmllbGQuCkNoYW5nZSBpLCBh bmQgaiB0byB1bnNpZ25lZCBpbnQgKEVtaWwpCgp2NDoKVXNlIHBsYW5lLT5tb2RpZmllcl9jb3Vu dCBpbnN0ZWFkIG9mIHJlY291bnRpbmcgKERhbmllbCkKCnY1OgpSZW5hbWUgbW9kaWZpZXJzIHRv IG1vZGlmaWVyc19wcm9wZXJ0eSAoVmlsbGUpClVzZSBzaXplb2YoX191MzIpIGluc3RlYWQgdG8g cmVmbGVjdCBVQVBJIG5hdHVyZSAoVmlsbGUpCk1ha2UgQlVJTERfQlVHX09OIGZvciBibG9iIGhl YWRlciBzaXplCgpDYzogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPgpDYzogS3Jpc3Rp YW4gSC4gS3Jpc3RlbnNlbiA8aG9lZ3NiZXJnQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogQmVu IFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0PgpSZXZpZXdlZC1ieTogRGFuaWVsIFN0b25lIDxk YW5pZWxzQGNvbGxhYm9yYS5jb20+ICh2MikKUmV2aWV3ZWQtYnk6IExpdml1IER1ZGF1IDxsaXZp dUBkdWRhdS5jby51az4gKHYyKQpSZXZpZXdlZC1ieTogRW1pbCBWZWxpa292IDxlbWlsLmwudmVs aWtvdkBnbWFpbC5jb20+ICh2MykKLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmln LmMgfCAgNyArKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMgICAgICAgfCA4NCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9tb2Rl X2NvbmZpZy5oICAgICB8ICA2ICsrKwogaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAgICAg IHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTQ3IGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKaW5kZXggZDk4NjIyNTlhMmE3Li43 NGY2ZmY1ZGY2NTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKQEAgLTMzNyw2ICszMzcs MTMgQEAgc3RhdGljIGludCBkcm1fbW9kZV9jcmVhdGVfc3RhbmRhcmRfcHJvcGVydGllcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAlkZXYtPm1vZGVfY29uZmln LmdhbW1hX2x1dF9zaXplX3Byb3BlcnR5ID0gcHJvcDsKIAorCXByb3AgPSBkcm1fcHJvcGVydHlf Y3JlYXRlKGRldiwKKwkJCQkgICBEUk1fTU9ERV9QUk9QX0lNTVVUQUJMRSB8IERSTV9NT0RFX1BS T1BfQkxPQiwKKwkJCQkgICAiSU5fRk9STUFUUyIsIDApOworCWlmICghcHJvcCkKKwkJcmV0dXJu IC1FTk9NRU07CisJZGV2LT5tb2RlX2NvbmZpZy5tb2RpZmllcnNfcHJvcGVydHkgPSBwcm9wOwor CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwppbmRleCBkM2ZjNTYxZDdiNDguLjVjMTRi ZWVlNTJmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwpAQCAtNjIsNiArNjIsODcgQEAgc3RhdGljIHVuc2ln bmVkIGludCBkcm1fbnVtX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXJldHVybiBu dW07CiB9CiAKK3N0YXRpYyBpbmxpbmUgdTMyICoKK2Zvcm1hdHNfcHRyKHN0cnVjdCBkcm1fZm9y bWF0X21vZGlmaWVyX2Jsb2IgKmJsb2IpCit7CisJcmV0dXJuICh1MzIgKikoKChjaGFyICopYmxv YikgKyBibG9iLT5mb3JtYXRzX29mZnNldCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRy bV9mb3JtYXRfbW9kaWZpZXIgKgorbW9kaWZpZXJzX3B0cihzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2Rp Zmllcl9ibG9iICpibG9iKQoreworCXJldHVybiAoc3RydWN0IGRybV9mb3JtYXRfbW9kaWZpZXIg KikoKChjaGFyICopYmxvYikgKyBibG9iLT5tb2RpZmllcnNfb2Zmc2V0KTsKK30KKworc3RhdGlj IGludCBjcmVhdGVfaW5fZm9ybWF0X2Jsb2Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpCit7CisJY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29u ZmlnID0gJmRldi0+bW9kZV9jb25maWc7CisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9i OworCXN0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyICptb2Q7CisJc2l6ZV90IGJsb2Jfc2l6ZSwg Zm9ybWF0c19zaXplLCBtb2RpZmllcnNfc2l6ZTsKKwlzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2RpZmll cl9ibG9iICpibG9iX2RhdGE7CisJdW5zaWduZWQgaW50IGksIGo7CisKKwlmb3JtYXRzX3NpemUg PSBzaXplb2YoX191MzIpICogcGxhbmUtPmZvcm1hdF9jb3VudDsKKwlpZiAoV0FSTl9PTighZm9y bWF0c19zaXplKSkgeworCQkvKiAwIGZvcm1hdHMgYXJlIG5ldmVyIGV4cGVjdGVkICovCisJCXJl dHVybiAwOworCX0KKworCW1vZGlmaWVyc19zaXplID0KKwkJc2l6ZW9mKHN0cnVjdCBkcm1fZm9y bWF0X21vZGlmaWVyKSAqIHBsYW5lLT5tb2RpZmllcl9jb3VudDsKKworCWJsb2Jfc2l6ZSA9IHNp emVvZihzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2RpZmllcl9ibG9iKTsKKwkvKiBNb2RpZmllcnMgb2Zm c2V0IGlzIGEgcG9pbnRlciB0byBhIHN0cnVjdCB3aXRoIGEgNjQgYml0IGZpZWxkIHNvIGl0CisJ ICogc2hvdWxkIGJlIG5hdHVyYWxseSBhbGlnbmVkIHRvIDhCLgorCSAqLworCUJVSUxEX0JVR19P TihzaXplb2Yoc3RydWN0IGRybV9mb3JtYXRfbW9kaWZpZXJfYmxvYikgJSA4KTsKKwlibG9iX3Np emUgKz0gQUxJR04oZm9ybWF0c19zaXplLCA4KTsKKwlibG9iX3NpemUgKz0gbW9kaWZpZXJzX3Np emU7CisKKwlibG9iID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9ibG9iKGRldiwgYmxvYl9zaXplLCBO VUxMKTsKKwlpZiAoSVNfRVJSKGJsb2IpKQorCQlyZXR1cm4gLTE7CisKKwlibG9iX2RhdGEgPSAo c3RydWN0IGRybV9mb3JtYXRfbW9kaWZpZXJfYmxvYiAqKWJsb2ItPmRhdGE7CisJYmxvYl9kYXRh LT52ZXJzaW9uID0gRk9STUFUX0JMT0JfQ1VSUkVOVDsKKwlibG9iX2RhdGEtPmNvdW50X2Zvcm1h dHMgPSBwbGFuZS0+Zm9ybWF0X2NvdW50OworCWJsb2JfZGF0YS0+Zm9ybWF0c19vZmZzZXQgPSBz aXplb2Yoc3RydWN0IGRybV9mb3JtYXRfbW9kaWZpZXJfYmxvYik7CisJYmxvYl9kYXRhLT5jb3Vu dF9tb2RpZmllcnMgPSBwbGFuZS0+bW9kaWZpZXJfY291bnQ7CisKKwlibG9iX2RhdGEtPm1vZGlm aWVyc19vZmZzZXQgPQorCQlBTElHTihibG9iX2RhdGEtPmZvcm1hdHNfb2Zmc2V0ICsgZm9ybWF0 c19zaXplLCA4KTsKKworCW1lbWNweShmb3JtYXRzX3B0cihibG9iX2RhdGEpLCBwbGFuZS0+Zm9y bWF0X3R5cGVzLCBmb3JtYXRzX3NpemUpOworCisJLyogSWYgd2UgY2FuJ3QgZGV0ZXJtaW5lIHN1 cHBvcnQsIGp1c3QgYmFpbCAqLworCWlmICghcGxhbmUtPmZ1bmNzLT5mb3JtYXRfbW9kX3N1cHBv cnRlZCkKKwkJZ290byBkb25lOworCisJbW9kID0gbW9kaWZpZXJzX3B0cihibG9iX2RhdGEpOwor CWZvciAoaSA9IDA7IGkgPCBwbGFuZS0+bW9kaWZpZXJfY291bnQ7IGkrKykgeworCQlmb3IgKGog PSAwOyBqIDwgcGxhbmUtPmZvcm1hdF9jb3VudDsgaisrKSB7CisJCQlpZiAocGxhbmUtPmZ1bmNz LT5mb3JtYXRfbW9kX3N1cHBvcnRlZChwbGFuZSwKKwkJCQkJCQkgICAgICAgcGxhbmUtPmZvcm1h dF90eXBlc1tqXSwKKwkJCQkJCQkgICAgICAgcGxhbmUtPm1vZGlmaWVyc1tpXSkpIHsKKworCQkJ CW1vZC0+Zm9ybWF0cyB8PSAxIDw8IGo7CisJCQl9CisJCX0KKworCQltb2QtPm1vZGlmaWVyID0g cGxhbmUtPm1vZGlmaWVyc1tpXTsKKwkJbW9kLT5vZmZzZXQgPSAwOworCQltb2QtPnBhZCA9IDA7 CisJCW1vZCsrOworCX0KKworZG9uZToKKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxh bmUtPmJhc2UsIGNvbmZpZy0+bW9kaWZpZXJzX3Byb3BlcnR5LAorCQkJCSAgIGJsb2ItPmJhc2Uu aWQpOworCisJcmV0dXJuIDA7Cit9CisKIC8qKgogICogZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0 IC0gSW5pdGlhbGl6ZSBhIG5ldyB1bml2ZXJzYWwgcGxhbmUgb2JqZWN0CiAgKiBAZGV2OiBEUk0g ZGV2aWNlCkBAIC0xODEsNiArMjYyLDkgQEAgaW50IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJZHJtX29i amVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBjb25maWctPnByb3Bfc3JjX2gsIDAp OwogCX0KIAorCWlmIChjb25maWctPmFsbG93X2ZiX21vZGlmaWVycykKKwkJY3JlYXRlX2luX2Zv cm1hdF9ibG9iKGRldiwgcGxhbmUpOworCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKGRy bV91bml2ZXJzYWxfcGxhbmVfaW5pdCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9k ZV9jb25maWcuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCmluZGV4IGYwZDNkMzg1 N2FlMi4uNWIzNzlkYjFlYTE0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25m aWcuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaApAQCAtNzU4LDYgKzc1OCwx MiBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKIAkgKi8KIAlib29sIGFsbG93X2ZiX21vZGlm aWVyczsKIAorCS8qKgorCSAqIEBtb2RpZmllcnM6IFBsYW5lIHByb3BlcnR5IHRvIGxpc3Qgc3Vw cG9ydCBtb2RpZmllci9mb3JtYXQKKwkgKiBjb21iaW5hdGlvbi4KKwkgKi8KKwlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICptb2RpZmllcnNfcHJvcGVydHk7CisKIAkvKiBjdXJzb3Igc2l6ZSAqLwogCXVp bnQzMl90IGN1cnNvcl93aWR0aCwgY3Vyc29yX2hlaWdodDsKIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCmluZGV4 IDQwMzMzOWY5OGE5Mi4uYTJiYjcxNjFmMDIwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJt L2RybV9tb2RlLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCkBAIC03MTIsNiAr NzEyLDU2IEBAIHN0cnVjdCBkcm1fbW9kZV9hdG9taWMgewogCV9fdTY0IHVzZXJfZGF0YTsKIH07 CiAKK3N0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyX2Jsb2IgeworI2RlZmluZSBGT1JNQVRfQkxP Ql9DVVJSRU5UIDEKKwkvKiBWZXJzaW9uIG9mIHRoaXMgYmxvYiBmb3JtYXQgKi8KKwl1MzIgdmVy c2lvbjsKKworCS8qIEZsYWdzICovCisJdTMyIGZsYWdzOworCisJLyogTnVtYmVyIG9mIGZvdXJj YyBmb3JtYXRzIHN1cHBvcnRlZCAqLworCXUzMiBjb3VudF9mb3JtYXRzOworCisJLyogV2hlcmUg aW4gdGhpcyBibG9iIHRoZSBmb3JtYXRzIGV4aXN0IChpbiBieXRlcykgKi8KKwl1MzIgZm9ybWF0 c19vZmZzZXQ7CisKKwkvKiBOdW1iZXIgb2YgZHJtX2Zvcm1hdF9tb2RpZmllcnMgKi8KKwl1MzIg Y291bnRfbW9kaWZpZXJzOworCisJLyogV2hlcmUgaW4gdGhpcyBibG9iIHRoZSBtb2RpZmllcnMg ZXhpc3QgKGluIGJ5dGVzKSAqLworCXUzMiBtb2RpZmllcnNfb2Zmc2V0OworCisJLyogdTMyIGZv cm1hdHNbXSAqLworCS8qIHN0cnVjdCBkcm1fZm9ybWF0X21vZGlmaWVyIG1vZGlmaWVyc1tdICov Cit9OworCitzdHJ1Y3QgZHJtX2Zvcm1hdF9tb2RpZmllciB7CisJLyogQml0bWFzayBvZiBmb3Jt YXRzIGluIGdldF9wbGFuZSBmb3JtYXQgbGlzdCB0aGlzIGluZm8gYXBwbGllcyB0by4gVGhlCisJ ICogb2Zmc2V0IGFsbG93cyBhIHNsaWRpbmcgd2luZG93IG9mIHdoaWNoIDY0IGZvcm1hdHMgKGJp dHMpLgorCSAqCisJICogU29tZSBleGFtcGxlczoKKwkgKiBJbiB0b2RheSdzIHdvcmxkIHdpdGgg PCA2NSBmb3JtYXRzLCBhbmQgZm9ybWF0cyAwLCBhbmQgMiBhcmUKKwkgKiBzdXBwb3J0ZWQKKwkg KiAweDAwMDAwMDAwMDAwMDAwMDUKKwkgKgkJICBeLW9mZnNldCA9IDAsIGZvcm1hdHMgPSA1CisJ ICoKKwkgKiBJZiB0aGUgbnVtYmVyIGZvcm1hdHMgZ3JldyB0byAxMjgsIGFuZCBmb3JtYXRzIDk4 LTEwMiBhcmUKKwkgKiBzdXBwb3J0ZWQgd2l0aCB0aGUgbW9kaWZpZXI6CisJICoKKwkgKiAweDAw MDAwMDNjMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMAorCSAqCQkgIF4KKwkgKgkJICB8X19vZmZz ZXQgPSA2NCwgZm9ybWF0cyA9IDB4M2MwMDAwMDAwMAorCSAqCisJICovCisJX191NjQgZm9ybWF0 czsKKwlfX3UzMiBvZmZzZXQ7CisJX191MzIgcGFkOworCisJLyogVGhlIG1vZGlmaWVyIHRoYXQg YXBwbGllcyB0byB0aGUgPmdldF9wbGFuZSBmb3JtYXQgbGlzdCBiaXRtYXNrLiAqLworCV9fdTY0 IG1vZGlmaWVyOworfTsKKwogLyoqCiAgKiBDcmVhdGUgYSBuZXcgJ2Jsb2InIGRhdGEgcHJvcGVy dHksIGNvcHlpbmcgbGVuZ3RoIGJ5dGVzIGZyb20gZGF0YSBwb2ludGVyLAogICogYW5kIHJldHVy bmluZyBuZXcgYmxvYiBJRC4KLS0gCjIuMTMuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==