From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicholas Kazlauskas Subject: [PATCH 1/2] drm/amd/display: Expose HDR output metadata for supported connectors Date: Tue, 28 May 2019 15:08:35 -0400 Message-ID: <20190528190836.10738-2-nicholas.kazlauskas@amd.com> References: <20190528190836.10738-1-nicholas.kazlauskas@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190528190836.10738-1-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org> 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, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Harry Wentland , Nicholas Kazlauskas W1doeV0KRm9yIHVzZXJzcGFjZSB0byBzZW5kIHN0YXRpYyBIRFIgbWV0YWRhdGEgdG8gdGhlIGRp c3BsYXkgd2UgbmVlZCB0bwphdHRhY2ggdGhlIHByb3BlcnR5IG9uIHRoZSBjb25uZWN0b3IgYW5k IHNlbmQgaXQgdG8gREMuCgpbSG93XQpUaGUgcHJvcGVydHkgaXMgYXR0YWNoZWQgdG8gSERNSSBh bmQgRFAgY29ubmVjdG9ycy4gU2luY2UgdGhlIG1ldGFkYXRhCmlzbid0IGFjdHVhbGx5IGF2YWls YWJsZSB3aGVuIGNyZWF0aW5nIHRoZSBjb25uZWN0b3IgdGhpcyBpc24ndCBhCnByb3BlcnR5IHdl IGNhbiBkeW5hbWljYWxseSBzdXBwb3J0IGJhc2VkIG9uIHRoZSBleHRlbnNpb24gYmxvY2sKYmVp bmcgYXZhaWxhYmxlIG9yIG5vdC4KCldoZW4gdGhlIEhEUiBtZXRhZGF0YSBpcyBjaGFuZ2VkIGEg bW9kZXNldCB3aWxsIGJlIGZvcmNlZCBmb3Igbm93LgpXZSBuZWVkIHRvIHN3aXRjaCBmcm9tIDhi cGMgdG8gMTBicGMgaW4gbW9zdCBjYXNlcyBhbnl3YXksIGFuZCB3ZSB3YW50CnRvIGZ1bGx5IGV4 aXQgSERSIG1vZGUgd2hlbiB1c2Vyc3BhY2UgZ2l2ZXMgdXMgYSBOVUxMIG1ldGFkYXRhLCBzbyB0 aGlzCmlzbid0IGNvbXBsZXRlbHkgdW5uZWNlc3NhcnkuCgpUaGUgcmVxdWlyZW1lbnQgY2FuIGxh dGVyIGJlIHJlZHVjZWQgdG8ganVzdCBlbnRlcmluZyBhbmQgZXhpdGluZyBIRFIKb3Igc3dpdGNo aW5nIG1heCBicGMuCgpDYzogSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+ ClNpZ25lZC1vZmYtYnk6IE5pY2hvbGFzIEthemxhdXNrYXMgPG5pY2hvbGFzLmthemxhdXNrYXNA YW1kLmNvbT4KLS0tCiAuLi4vZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2Rt LmMgfCAxMjUgKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTI1IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2Rt L2FtZGdwdV9kbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRn cHVfZG0uYwppbmRleCA5OTVmOWRmNjYxNDIuLmViMzFhY2NhN2VkNiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCkBAIC0zODcxLDYg KzM4NzEsMTIxIEBAIGVudW0gZHJtX21vZGVfc3RhdHVzIGFtZGdwdV9kbV9jb25uZWN0b3JfbW9k ZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjCiAJcmV0dXJuIHJlc3VsdDsKIH0K IAorc3RhdGljIGludCBmaWxsX2hkcl9pbmZvX3BhY2tldChjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqc3RhdGUsCisJCQkJc3RydWN0IGRjX2luZm9fcGFja2V0ICpvdXQpCit7CisJ c3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSBmcmFtZTsKKwl1bnNpZ25lZCBjaGFyIGJ1ZlszMF07 IC8qIDI2ICsgNCAqLworCXNzaXplX3QgbGVuOworCWludCByZXQsIGk7CisKKwltZW1zZXQob3V0 LCAwLCBzaXplb2YoKm91dCkpOworCisJaWYgKCFzdGF0ZS0+aGRyX291dHB1dF9tZXRhZGF0YSkK KwkJcmV0dXJuIDA7CisKKwlyZXQgPSBkcm1faGRtaV9pbmZvZnJhbWVfc2V0X2hkcl9tZXRhZGF0 YSgmZnJhbWUsIHN0YXRlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJbGVuID0gaGRt aV9kcm1faW5mb2ZyYW1lX3BhY2tfb25seSgmZnJhbWUsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCWlm IChsZW4gPCAwKQorCQlyZXR1cm4gKGludClsZW47CisKKwkvKiBTdGF0aWMgbWV0YWRhdGEgaXMg YSBmaXhlZCAyNiBieXRlcyArIDQgYnl0ZSBoZWFkZXIuICovCisJaWYgKGxlbiAhPSAzMCkKKwkJ cmV0dXJuIC1FSU5WQUw7CisKKwkvKiBQcmVwYXJlIHRoZSBpbmZvcGFja2V0IGZvciBEQy4gKi8K Kwlzd2l0Y2ggKHN0YXRlLT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKSB7CisJY2FzZSBEUk1f TU9ERV9DT05ORUNUT1JfSERNSUE6CisJCW91dC0+aGIwID0gMHg4NzsgLyogdHlwZSAqLworCQlv dXQtPmhiMSA9IDB4MDE7IC8qIHZlcnNpb24gKi8KKwkJb3V0LT5oYjIgPSAweDFBOyAvKiBsZW5n dGggKi8KKwkJb3V0LT5zYlswXSA9IGJ1ZlszXTsgLyogY2hlY2tzdW0gKi8KKwkJaSA9IDE7CisJ CWJyZWFrOworCisJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQ6CisJY2FzZSBE Uk1fTU9ERV9DT05ORUNUT1JfZURQOgorCQlvdXQtPmhiMCA9IDB4MDA7IC8qIHNkcCBpZCwgemVy byAqLworCQlvdXQtPmhiMSA9IDB4ODc7IC8qIHR5cGUgKi8KKwkJb3V0LT5oYjIgPSAweDFEOyAv KiBwYXlsb2FkIGxlbiAtIDEgKi8KKwkJb3V0LT5oYjMgPSAoMHgxMyA8PCAyKTsgLyogc2RwIHZl cnNpb24gKi8KKwkJb3V0LT5zYlswXSA9IDB4MDE7IC8qIHZlcnNpb24gKi8KKwkJb3V0LT5zYlsx XSA9IDB4MUE7IC8qIGxlbmd0aCAqLworCQlpID0gMjsKKwkJYnJlYWs7CisKKwlkZWZhdWx0Ogor CQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwltZW1jcHkoJm91dC0+c2JbaV0sICZidWZbNF0sIDI2 KTsKKwlvdXQtPnZhbGlkID0gdHJ1ZTsKKworCXByaW50X2hleF9kdW1wKEtFUk5fREVCVUcsICJI RFIgU0I6IiwgRFVNUF9QUkVGSVhfTk9ORSwgMTYsIDEsIG91dC0+c2IsCisJCSAgICAgICBzaXpl b2Yob3V0LT5zYiksIGZhbHNlKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgYm9vbAoraXNf aGRyX21ldGFkYXRhX2RpZmZlcmVudChjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq b2xkX3N0YXRlLAorCQkJICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X3N0 YXRlKQoreworCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqb2xkX2Jsb2IgPSBvbGRfc3RhdGUt Pmhkcl9vdXRwdXRfbWV0YWRhdGE7CisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpuZXdfYmxv YiA9IG5ld19zdGF0ZS0+aGRyX291dHB1dF9tZXRhZGF0YTsKKworCWlmIChvbGRfYmxvYiAhPSBu ZXdfYmxvYikgeworCQlpZiAob2xkX2Jsb2IgJiYgbmV3X2Jsb2IgJiYKKwkJICAgIG9sZF9ibG9i LT5sZW5ndGggPT0gbmV3X2Jsb2ItPmxlbmd0aCkKKwkJCXJldHVybiBtZW1jbXAob2xkX2Jsb2It PmRhdGEsIG5ld19ibG9iLT5kYXRhLAorCQkJCSAgICAgIG9sZF9ibG9iLT5sZW5ndGgpOworCisJ CXJldHVybiB0cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGludAorYW1k Z3B1X2RtX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4s CisJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29uX3N0YXRlKQoreworCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG5ld19jb25fc3RhdGUtPnN0YXRlOworCXN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29uX3N0YXRlID0KKwkJZHJtX2F0b21pY19n ZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubik7CisJc3RydWN0IGRybV9jcnRjICpj cnRjID0gbmV3X2Nvbl9zdGF0ZS0+Y3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm5ld19j cnRjX3N0YXRlOworCWludCByZXQ7CisKKwlpZiAoIWNydGMpCisJCXJldHVybiAwOworCisJaWYg KGlzX2hkcl9tZXRhZGF0YV9kaWZmZXJlbnQob2xkX2Nvbl9zdGF0ZSwgbmV3X2Nvbl9zdGF0ZSkp IHsKKwkJc3RydWN0IGRjX2luZm9fcGFja2V0IGhkcl9pbmZvcGFja2V0OworCisJCXJldCA9IGZp bGxfaGRyX2luZm9fcGFja2V0KG5ld19jb25fc3RhdGUsICZoZHJfaW5mb3BhY2tldCk7CisJCWlm IChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisJCWlmIChJU19FUlIobmV3X2NydGNfc3RhdGUp KQorCQkJcmV0dXJuIFBUUl9FUlIobmV3X2NydGNfc3RhdGUpOworCisJCS8qCisJCSAqIERDIGNv bnNpZGVycyB0aGUgc3RyZWFtIGJhY2tlbmRzIGNoYW5nZWQgaWYgdGhlCisJCSAqIHN0YXRpYyBt ZXRhZGF0YSBjaGFuZ2VzLiBGb3JjaW5nIHRoZSBtb2Rlc2V0IGFsc28KKwkJICogZ2l2ZXMgYSBz aW1wbGUgd2F5IGZvciB1c2Vyc3BhY2UgdG8gc3dpdGNoIGZyb20KKwkJICogOGJwYyB0byAxMGJw YyB3aGVuIHNldHRpbmcgdGhlIG1ldGFkYXRhLgorCQkgKi8KKwkJbmV3X2NydGNfc3RhdGUtPm1v ZGVfY2hhbmdlZCA9IHRydWU7CisJfQorCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MKIGFtZGdwdV9kbV9jb25uZWN0b3JfaGVs cGVyX2Z1bmNzID0gewogCS8qCkBAIC0zODgxLDYgKzM5OTYsNyBAQCBhbWRncHVfZG1fY29ubmVj dG9yX2hlbHBlcl9mdW5jcyA9IHsKIAkgKi8KIAkuZ2V0X21vZGVzID0gZ2V0X21vZGVzLAogCS5t b2RlX3ZhbGlkID0gYW1kZ3B1X2RtX2Nvbm5lY3Rvcl9tb2RlX3ZhbGlkLAorCS5hdG9taWNfY2hl Y2sgPSBhbWRncHVfZG1fY29ubmVjdG9yX2F0b21pY19jaGVjaywKIH07CiAKIHN0YXRpYyB2b2lk IGRtX2NydGNfaGVscGVyX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQpAQCAtNDY3Nyw2 ICs0NzkzLDEwIEBAIHZvaWQgYW1kZ3B1X2RtX2Nvbm5lY3Rvcl9pbml0X2hlbHBlcihzdHJ1Y3Qg YW1kZ3B1X2Rpc3BsYXlfbWFuYWdlciAqZG0sCiAJaWYgKGNvbm5lY3Rvcl90eXBlID09IERSTV9N T0RFX0NPTk5FQ1RPUl9IRE1JQSB8fAogCSAgICBjb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9D T05ORUNUT1JfRGlzcGxheVBvcnQgfHwKIAkgICAgY29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVf Q09OTkVDVE9SX2VEUCkgeworCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgKKwkJCSZhY29u bmVjdG9yLT5iYXNlLmJhc2UsCisJCQlkbS0+ZGRldi0+bW9kZV9jb25maWcuaGRyX291dHB1dF9t ZXRhZGF0YV9wcm9wZXJ0eSwgMCk7CisKIAkJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfdnJyX2NhcGFi bGVfcHJvcGVydHkoCiAJCQkmYWNvbm5lY3Rvci0+YmFzZSk7CiAJfQpAQCAtNjE0MSw2ICs2MjYx LDExIEBAIHN0YXRpYyBpbnQgZG1fdXBkYXRlX2NydGNfc3RhdGUoc3RydWN0IGFtZGdwdV9kaXNw bGF5X21hbmFnZXIgKmRtLAogCiAJCWRtX25ld19jcnRjX3N0YXRlLT5hYm1fbGV2ZWwgPSBkbV9u ZXdfY29ubl9zdGF0ZS0+YWJtX2xldmVsOwogCisJCXJldCA9IGZpbGxfaGRyX2luZm9fcGFja2V0 KGRybV9uZXdfY29ubl9zdGF0ZSwKKwkJCQkJICAgJm5ld19zdHJlYW0tPmhkcl9zdGF0aWNfbWV0 YWRhdGEpOworCQlpZiAocmV0KQorCQkJZ290byBmYWlsOworCiAJCWlmIChkY19pc19zdHJlYW1f dW5jaGFuZ2VkKG5ld19zdHJlYW0sIGRtX29sZF9jcnRjX3N0YXRlLT5zdHJlYW0pICYmCiAJCSAg ICBkY19pc19zdHJlYW1fc2NhbGluZ191bmNoYW5nZWQobmV3X3N0cmVhbSwgZG1fb2xkX2NydGNf c3RhdGUtPnN0cmVhbSkpIHsKIAkJCW5ld19jcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSBmYWxz ZTsKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4