From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: [PATCH 7/9] drm/i915/dmc: add support to load dmc_header version 3 Date: Fri, 7 Jun 2019 02:12:28 -0700 Message-ID: <20190607091230.1489-8-lucas.demarchi@intel.com> References: <20190607091230.1489-1-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64C3289CE3 for ; Fri, 7 Jun 2019 09:12:49 +0000 (UTC) In-Reply-To: <20190607091230.1489-1-lucas.demarchi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org TWFpbiBkaWZmZXJlbmNlIGlzIHRoYXQgbm93IHRoZXJlIGFyZSB1cCB0byAyMCBNTUlPcyB0aGF0 IGNhbiBiZSBzZXQgYW5kCmEgbG90IG9mIG5vaXNlIGR1ZSB0byB0aGUgc3RydWN0IGNoYW5naW5n IHRoZSBmaWVsZHMgaW4gdGhlIG1pZGRsZS4KClNpZ25lZC1vZmYtYnk6IEx1Y2FzIERlIE1hcmNo aSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyB8IDEy MSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDk1IGlu c2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4 IGRmZTRiMTFlZTQyMy4uZmMwYTc3MGZlZjE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAg LTM1Miw4ICszNTIsOCBAQCBzdHJ1Y3QgaW50ZWxfY3NyIHsKIAl1MzIgZG1jX2Z3X3NpemU7IC8q IGR3b3JkcyAqLwogCXUzMiB2ZXJzaW9uOwogCXUzMiBtbWlvX2NvdW50OwotCWk5MTVfcmVnX3Qg bW1pb2FkZHJbOF07Ci0JdTMyIG1taW9kYXRhWzhdOworCWk5MTVfcmVnX3QgbW1pb2FkZHJbMjBd OworCXUzMiBtbWlvZGF0YVsyMF07CiAJdTMyIGRjX3N0YXRlOwogCXUzMiBhbGxvd2VkX2RjX21h c2s7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jCmlu ZGV4IDFmYjQyZmQ0NDUxOS4uMGIxOTc4YTJmODdkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3Iu YwpAQCAtNzIsNiArNzIsOCBAQCBNT0RVTEVfRklSTVdBUkUoQlhUX0NTUl9QQVRIKTsKICNkZWZp bmUgQ1NSX0RFRkFVTFRfRldfT0ZGU0VUCQkweEZGRkZGRkZGCiAjZGVmaW5lIFBBQ0tBR0VfTUFY X0ZXX0lORk9fRU5UUklFUwkyMAogI2RlZmluZSBQQUNLQUdFX1YyX01BWF9GV19JTkZPX0VOVFJJ RVMJMzIKKyNkZWZpbmUgRE1DX1YxX01BWF9NTUlPX0NPVU5UCQk4CisjZGVmaW5lIERNQ19WM19N QVhfTU1JT19DT1VOVAkJMjAKIAogc3RydWN0IGludGVsX2Nzc19oZWFkZXIgewogCS8qIDB4MDkg Zm9yIERNQyAqLwpAQCAtMTQzLDcgKzE0NSw3IEBAIHN0cnVjdCBpbnRlbF9wYWNrYWdlX2hlYWRl ciB7CiAJdTMyIG51bV9lbnRyaWVzOwogfSBfX3BhY2tlZDsKIAotc3RydWN0IGludGVsX2RtY19o ZWFkZXIgeworc3RydWN0IGludGVsX2RtY19oZWFkZXJfYmFzZSB7CiAJLyogYWx3YXlzIHZhbHVl IHdvdWxkIGJlIDB4NDA0MDNFM0UgKi8KIAl1MzIgc2lnbmF0dXJlOwogCkBAIC0xNjQsMjIgKzE2 Niw0NyBAQCBzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlciB7CiAKIAkvKiBNYWpvciBNaW5vciB2ZXJz aW9uICovCiAJdTMyIGZ3X3ZlcnNpb247Cit9IF9fcGFja2VkOworCitzdHJ1Y3QgaW50ZWxfZG1j X2hlYWRlcl92MSB7CisJc3RydWN0IGludGVsX2RtY19oZWFkZXJfYmFzZSBiYXNlOwogCiAJLyog TnVtYmVyIG9mIHZhbGlkIE1NSU8gY3ljbGVzIHByZXNlbnQuICovCiAJdTMyIG1taW9fY291bnQ7 CiAKIAkvKiBNTUlPIGFkZHJlc3MgKi8KLQl1MzIgbW1pb2FkZHJbOF07CisJdTMyIG1taW9hZGRy W0RNQ19WMV9NQVhfTU1JT19DT1VOVF07CiAKIAkvKiBNTUlPIGRhdGEgKi8KLQl1MzIgbW1pb2Rh dGFbOF07CisJdTMyIG1taW9kYXRhW0RNQ19WMV9NQVhfTU1JT19DT1VOVF07CiAKIAkvKiBGVyBm aWxlbmFtZSAgKi8KLQl1bnNpZ25lZCBjaGFyIGRmaWxlWzMyXTsKKwljaGFyIGRmaWxlWzMyXTsK IAogCXUzMiByZXNlcnZlZDFbMl07CiB9IF9fcGFja2VkOwogCitzdHJ1Y3QgaW50ZWxfZG1jX2hl YWRlcl92MyB7CisJc3RydWN0IGludGVsX2RtY19oZWFkZXJfYmFzZSBiYXNlOworCisJLyogRE1D IFJBTSBzdGFydCBNTUlPIGFkZHJlc3MgKi8KKwl1MzIgc3RhcnRfbW1pb2FkZHI7CisKKwl1MzIg cmVzZXJ2ZWRbOV07CisKKwkvKiBGVyBmaWxlbmFtZSAqLworCWNoYXIgZGZpbGVbMzJdOworCisJ LyogTnVtYmVyIG9mIHZhbGlkIE1NSU8gY3ljbGVzIHByZXNlbnQuICovCisJdTMyIG1taW9fY291 bnQ7CisKKwkvKiBNTUlPIGFkZHJlc3MgKi8KKwl1MzIgbW1pb2FkZHJbRE1DX1YzX01BWF9NTUlP X0NPVU5UXTsKKworCS8qIE1NSU8gZGF0YSAqLworCXUzMiBtbWlvZGF0YVtETUNfVjNfTUFYX01N SU9fQ09VTlRdOworfSBfX3BhY2tlZDsKKwogc3RydWN0IHN0ZXBwaW5nX2luZm8gewogCWNoYXIg c3RlcHBpbmc7CiAJY2hhciBzdWJzdGVwcGluZzsKQEAgLTMzMyw0MyArMzYwLDgzIEBAIHN0YXRp YyB1MzIgZmluZF9kbWNfZndfb2Zmc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9md19pbmZvICpmd19p bmZvLAogfQogCiBzdGF0aWMgdTMyIHBhcnNlX2Nzcl9md19kbWMoc3RydWN0IGludGVsX2NzciAq Y3NyLAotCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyICpkbWNfaGVhZGVyLAor CQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyX2Jhc2UgKmRtY19oZWFkZXIsCiAJ CQkgICAgc2l6ZV90IHJlbV9zaXplKQogewotCXVuc2lnbmVkIGludCBpLCBwYXlsb2FkX3NpemU7 Ci0JdTMyIHI7CisJdW5zaWduZWQgaW50IGhlYWRlcl9sZW5fYnl0ZXMsIGRtY19oZWFkZXJfc2l6 ZSwgcGF5bG9hZF9zaXplLCBpOworCWNvbnN0IHUzMiAqbW1pb2FkZHIsICptbWlvZGF0YTsKKwl1 MzIgbW1pb19jb3VudCwgbW1pb19jb3VudF9tYXg7CiAJdTggKnBheWxvYWQ7CiAKLQlpZiAocmVt X3NpemUgPCBzaXplb2Yoc3RydWN0IGludGVsX2RtY19oZWFkZXIpKQorCUJVSUxEX0JVR19PTihB UlJBWV9TSVpFKGNzci0+bW1pb2FkZHIpIDwgRE1DX1YzX01BWF9NTUlPX0NPVU5UIHx8CisJCSAg ICAgQVJSQVlfU0laRShjc3ItPm1taW9hZGRyKSA8IERNQ19WMV9NQVhfTU1JT19DT1VOVCk7CisK KwkvKgorCSAqIENoZWNrIGlmIHdlIGNhbiBhY2Nlc3MgY29tbW9uIGZpZWxkcywgd2Ugd2lsbCBj aGVja2MgYWdhaW4gYmVsb3cKKwkgKiBhZnRlciB3ZSBoYXZlIHJlYWQgdGhlIHZlcnNpb24KKwkg Ki8KKwlpZiAocmVtX3NpemUgPCBzaXplb2Yoc3RydWN0IGludGVsX2RtY19oZWFkZXJfYmFzZSkp CiAJCWdvdG8gZXJyb3JfdHJ1bmNhdGVkOwogCi0JaWYgKHNpemVvZihzdHJ1Y3QgaW50ZWxfZG1j X2hlYWRlcikgIT0gZG1jX2hlYWRlci0+aGVhZGVyX2xlbikgeworCS8qIENvcGUgd2l0aCBzbWFs bCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHYxIGFuZCB2MyAqLworCWlmIChkbWNfaGVhZGVyLT5oZWFk ZXJfdmVyID09IDMpIHsKKwkJY29uc3Qgc3RydWN0IGludGVsX2RtY19oZWFkZXJfdjMgKnYzID0K KwkJCShjb25zdCBzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlcl92MyAqKWRtY19oZWFkZXI7CisKKwkJ aWYgKHJlbV9zaXplIDwgc2l6ZW9mKHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyX3YzKSkKKwkJCWdv dG8gZXJyb3JfdHJ1bmNhdGVkOworCisJCW1taW9hZGRyID0gdjMtPm1taW9hZGRyOworCQltbWlv ZGF0YSA9IHYzLT5tbWlvZGF0YTsKKwkJbW1pb19jb3VudCA9IHYzLT5tbWlvX2NvdW50OworCQlt bWlvX2NvdW50X21heCA9IERNQ19WM19NQVhfTU1JT19DT1VOVDsKKwkJLyogaGVhZGVyX2xlbiBp cyBpbiBkd29yZHMgKi8KKwkJaGVhZGVyX2xlbl9ieXRlcyA9IGRtY19oZWFkZXItPmhlYWRlcl9s ZW4gKiA0OworCQlkbWNfaGVhZGVyX3NpemUgPSBzaXplb2YoKnYzKTsKKwl9IGVsc2UgaWYgKGRt Y19oZWFkZXItPmhlYWRlcl92ZXIgPT0gMSkgeworCQljb25zdCBzdHJ1Y3QgaW50ZWxfZG1jX2hl YWRlcl92MSAqdjEgPQorCQkJKGNvbnN0IHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyX3YxICopZG1j X2hlYWRlcjsKKworCQlpZiAocmVtX3NpemUgPCBzaXplb2Yoc3RydWN0IGludGVsX2RtY19oZWFk ZXJfdjEpKQorCQkJZ290byBlcnJvcl90cnVuY2F0ZWQ7CisKKwkJbW1pb2FkZHIgPSB2MS0+bW1p b2FkZHI7CisJCW1taW9kYXRhID0gdjEtPm1taW9kYXRhOworCQltbWlvX2NvdW50ID0gdjEtPm1t aW9fY291bnQ7CisJCW1taW9fY291bnRfbWF4ID0gRE1DX1YxX01BWF9NTUlPX0NPVU5UOworCQlo ZWFkZXJfbGVuX2J5dGVzID0gZG1jX2hlYWRlci0+aGVhZGVyX2xlbjsKKwkJZG1jX2hlYWRlcl9z aXplID0gc2l6ZW9mKCp2MSk7CisJfSBlbHNlIHsKKwkJRFJNX0VSUk9SKCJVbmtub3duIERNQyBm dyBoZWFkZXIgdmVyc2lvbjogJXVcbiIsCisJCQkgIGRtY19oZWFkZXItPmhlYWRlcl92ZXIpOwor CQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoaGVhZGVyX2xlbl9ieXRlcyAhPSBkbWNfaGVhZGVyX3Np emUpIHsKIAkJRFJNX0VSUk9SKCJETUMgZmlybXdhcmUgaGFzIHdyb25nIGRtYyBoZWFkZXIgbGVu Z3RoICIKLQkJCSAgIigldSBieXRlcylcbiIsCi0JCQkgIChkbWNfaGVhZGVyLT5oZWFkZXJfbGVu KSk7CisJCQkgICIoJXUgYnl0ZXMpXG4iLCBoZWFkZXJfbGVuX2J5dGVzKTsKIAkJcmV0dXJuIDA7 CiAJfQogCiAJLyogQ2FjaGUgdGhlIGRtYyBoZWFkZXIgaW5mby4gKi8KLQlpZiAoZG1jX2hlYWRl ci0+bW1pb19jb3VudCA+IEFSUkFZX1NJWkUoY3NyLT5tbWlvYWRkcikpIHsKLQkJRFJNX0VSUk9S KCJETUMgZmlybXdhcmUgaGFzIHdyb25nIG1taW8gY291bnQgJXVcbiIsCi0JCQkgIGRtY19oZWFk ZXItPm1taW9fY291bnQpOworCWlmIChtbWlvX2NvdW50ID4gbW1pb19jb3VudF9tYXgpIHsKKwkJ RFJNX0VSUk9SKCJETUMgZmlybXdhcmUgaGFzIHdyb25nIG1taW8gY291bnQgJXVcbiIsIG1taW9f Y291bnQpOwogCQlyZXR1cm4gMDsKIAl9CiAKLQljc3ItPm1taW9fY291bnQgPSBkbWNfaGVhZGVy LT5tbWlvX2NvdW50OwotCWZvciAoaSA9IDA7IGkgPCBkbWNfaGVhZGVyLT5tbWlvX2NvdW50OyBp KyspIHsKLQkJaWYgKGRtY19oZWFkZXItPm1taW9hZGRyW2ldIDwgQ1NSX01NSU9fU1RBUlRfUkFO R0UgfHwKLQkJICAgIGRtY19oZWFkZXItPm1taW9hZGRyW2ldID4gQ1NSX01NSU9fRU5EX1JBTkdF KSB7CisJZm9yIChpID0gMDsgaSA8IG1taW9fY291bnQ7IGkrKykgeworCQlpZiAobW1pb2FkZHJb aV0gPCBDU1JfTU1JT19TVEFSVF9SQU5HRSB8fAorCQkgICAgbW1pb2FkZHJbaV0gPiBDU1JfTU1J T19FTkRfUkFOR0UpIHsKIAkJCURSTV9FUlJPUigiRE1DIGZpcm13YXJlIGhhcyB3cm9uZyBtbWlv IGFkZHJlc3MgMHgleFxuIiwKLQkJCQkgIGRtY19oZWFkZXItPm1taW9hZGRyW2ldKTsKKwkJCQkg IG1taW9hZGRyW2ldKTsKIAkJCXJldHVybiAwOwogCQl9Ci0JCWNzci0+bW1pb2FkZHJbaV0gPSBf TU1JTyhkbWNfaGVhZGVyLT5tbWlvYWRkcltpXSk7Ci0JCWNzci0+bW1pb2RhdGFbaV0gPSBkbWNf aGVhZGVyLT5tbWlvZGF0YVtpXTsKKwkJY3NyLT5tbWlvYWRkcltpXSA9IF9NTUlPKG1taW9hZGRy W2ldKTsKKwkJY3NyLT5tbWlvZGF0YVtpXSA9IG1taW9kYXRhW2ldOwogCX0KKwljc3ItPm1taW9f Y291bnQgPSBtbWlvX2NvdW50OwogCi0JcmVtX3NpemUgLT0gZG1jX2hlYWRlci0+aGVhZGVyX2xl bjsKKwlyZW1fc2l6ZSAtPSBoZWFkZXJfbGVuX2J5dGVzOwogCiAJLyogZndfc2l6ZSBpcyBpbiBk d29yZHMsIHNvIG11bHRpcGxpZWQgYnkgNCB0byBjb252ZXJ0IGludG8gYnl0ZXMuICovCiAJcGF5 bG9hZF9zaXplID0gZG1jX2hlYWRlci0+Zndfc2l6ZSAqIDQ7CkBAIC0zODgsMTIgKzQ1NSwxMCBA QCBzdGF0aWMgdTMyIHBhcnNlX2Nzcl9md19kbWMoc3RydWN0IGludGVsX2NzciAqY3NyLAogCQly ZXR1cm4gMDsKIAl9CiAKLQlyID0gc2l6ZW9mKHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyKTsKLQlw YXlsb2FkID0gKHU4ICopKGRtY19oZWFkZXIpICsgcjsKKwlwYXlsb2FkID0gKHU4ICopKGRtY19o ZWFkZXIpICsgaGVhZGVyX2xlbl9ieXRlczsKIAltZW1jcHkoY3NyLT5kbWNfcGF5bG9hZCwgcGF5 bG9hZCwgcGF5bG9hZF9zaXplKTsKLQlyICs9IHBheWxvYWRfc2l6ZTsKIAotCXJldHVybiByOwor CXJldHVybiBoZWFkZXJfbGVuX2J5dGVzICsgcGF5bG9hZF9zaXplOwogCiBlcnJvcl90cnVuY2F0 ZWQ6CiAJRFJNX0VSUk9SKCJUcnVuY2F0ZWQgRE1DIGZpcm13YXJlLCByZWZ1c2luZy5cbiIpOwpA QCAtNDk3LDcgKzU2Miw3IEBAIHN0YXRpYyB1MzIgKnBhcnNlX2Nzcl9mdyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJc3RydWN0IGludGVsX2Nzc19oZWFkZXIgKmNzc19o ZWFkZXI7CiAJc3RydWN0IGludGVsX3BhY2thZ2VfaGVhZGVyICpwYWNrYWdlX2hlYWRlcjsKLQlz dHJ1Y3QgaW50ZWxfZG1jX2hlYWRlciAqZG1jX2hlYWRlcjsKKwlzdHJ1Y3QgaW50ZWxfZG1jX2hl YWRlcl9iYXNlICpkbWNfaGVhZGVyOwogCXN0cnVjdCBpbnRlbF9jc3IgKmNzciA9ICZkZXZfcHJp di0+Y3NyOwogCWNvbnN0IHN0cnVjdCBzdGVwcGluZ19pbmZvICpzaSA9IGludGVsX2dldF9zdGVw cGluZ19pbmZvKGRldl9wcml2KTsKIAl1MzIgcmVhZGNvdW50ID0gMDsKQEAgLTUyMyw3ICs1ODgs NyBAQCBzdGF0aWMgdTMyICpwYXJzZV9jc3JfZncoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCXJlYWRjb3VudCArPSByOwogCiAJLyogRXh0cmFjdCBkbWNfaGVhZGVyIGluZm9y bWF0aW9uICovCi0JZG1jX2hlYWRlciA9IChzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlciAqKSZmdy0+ ZGF0YVtyZWFkY291bnRdOworCWRtY19oZWFkZXIgPSAoc3RydWN0IGludGVsX2RtY19oZWFkZXJf YmFzZSAqKSZmdy0+ZGF0YVtyZWFkY291bnRdOwogCXIgPSBwYXJzZV9jc3JfZndfZG1jKGNzciwg ZG1jX2hlYWRlciwgZnctPnNpemUgLSByZWFkY291bnQpOwogCWlmICghcikKIAkJcmV0dXJuIE5V TEw7Ci0tIAoyLjIxLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeA==