From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: [PATCH 6/9] drm/i915/dmc: extract function to parse dmc_header Date: Fri, 7 Jun 2019 02:12:27 -0700 Message-ID: <20190607091230.1489-7-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 47CFA89CE2 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 Q29tcGxldGUgdGhlIGV4dHJhY3Rpb24gb2YgZnVuY3Rpb25zIHRvIHBhcnNlIHNwZWNpZmljIHBh cnRzIG9mIHRoZQpmaXJtd2FyZS4gVGhlIHJldHVybiBvZiB0aGUgZnVuY3Rpb24gcGFyc2VfY3Ny X2Z3KCkgaXMgbm93IHJlZHVuZGFudApzaW5jZSBpdCBhbHJlYWR5IHNldHMgdGhlIGRtY19wYXls b2FkIGZpZWxkLiBDaGFuZ2luZyBpdCBpcyBsZWZ0IGZvcgpsYXRlciB0byBhdm9pZCBub2lzZSBp biB0aGUgY29tbWl0LgoKU2lnbmVkLW9mZi1ieTogTHVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1h cmNoaUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMgfCAx MzAgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDc0IGlu c2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Nzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMKaW5k ZXggZGI1NzcyNjE2YTRmLi4xZmI0MmZkNDQ1MTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Nzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5j CkBAIC0zMzIsNiArMzMyLDc0IEBAIHN0YXRpYyB1MzIgZmluZF9kbWNfZndfb2Zmc2V0KGNvbnN0 IHN0cnVjdCBpbnRlbF9md19pbmZvICpmd19pbmZvLAogCXJldHVybiBkbWNfb2Zmc2V0OwogfQog CitzdGF0aWMgdTMyIHBhcnNlX2Nzcl9md19kbWMoc3RydWN0IGludGVsX2NzciAqY3NyLAorCQkJ ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyICpkbWNfaGVhZGVyLAorCQkJICAgIHNp emVfdCByZW1fc2l6ZSkKK3sKKwl1bnNpZ25lZCBpbnQgaSwgcGF5bG9hZF9zaXplOworCXUzMiBy OworCXU4ICpwYXlsb2FkOworCisJaWYgKHJlbV9zaXplIDwgc2l6ZW9mKHN0cnVjdCBpbnRlbF9k bWNfaGVhZGVyKSkKKwkJZ290byBlcnJvcl90cnVuY2F0ZWQ7CisKKwlpZiAoc2l6ZW9mKHN0cnVj dCBpbnRlbF9kbWNfaGVhZGVyKSAhPSBkbWNfaGVhZGVyLT5oZWFkZXJfbGVuKSB7CisJCURSTV9F UlJPUigiRE1DIGZpcm13YXJlIGhhcyB3cm9uZyBkbWMgaGVhZGVyIGxlbmd0aCAiCisJCQkgICIo JXUgYnl0ZXMpXG4iLAorCQkJICAoZG1jX2hlYWRlci0+aGVhZGVyX2xlbikpOworCQlyZXR1cm4g MDsKKwl9CisKKwkvKiBDYWNoZSB0aGUgZG1jIGhlYWRlciBpbmZvLiAqLworCWlmIChkbWNfaGVh ZGVyLT5tbWlvX2NvdW50ID4gQVJSQVlfU0laRShjc3ItPm1taW9hZGRyKSkgeworCQlEUk1fRVJS T1IoIkRNQyBmaXJtd2FyZSBoYXMgd3JvbmcgbW1pbyBjb3VudCAldVxuIiwKKwkJCSAgZG1jX2hl YWRlci0+bW1pb19jb3VudCk7CisJCXJldHVybiAwOworCX0KKworCWNzci0+bW1pb19jb3VudCA9 IGRtY19oZWFkZXItPm1taW9fY291bnQ7CisJZm9yIChpID0gMDsgaSA8IGRtY19oZWFkZXItPm1t aW9fY291bnQ7IGkrKykgeworCQlpZiAoZG1jX2hlYWRlci0+bW1pb2FkZHJbaV0gPCBDU1JfTU1J T19TVEFSVF9SQU5HRSB8fAorCQkgICAgZG1jX2hlYWRlci0+bW1pb2FkZHJbaV0gPiBDU1JfTU1J T19FTkRfUkFOR0UpIHsKKwkJCURSTV9FUlJPUigiRE1DIGZpcm13YXJlIGhhcyB3cm9uZyBtbWlv IGFkZHJlc3MgMHgleFxuIiwKKwkJCQkgIGRtY19oZWFkZXItPm1taW9hZGRyW2ldKTsKKwkJCXJl dHVybiAwOworCQl9CisJCWNzci0+bW1pb2FkZHJbaV0gPSBfTU1JTyhkbWNfaGVhZGVyLT5tbWlv YWRkcltpXSk7CisJCWNzci0+bW1pb2RhdGFbaV0gPSBkbWNfaGVhZGVyLT5tbWlvZGF0YVtpXTsK Kwl9CisKKwlyZW1fc2l6ZSAtPSBkbWNfaGVhZGVyLT5oZWFkZXJfbGVuOworCisJLyogZndfc2l6 ZSBpcyBpbiBkd29yZHMsIHNvIG11bHRpcGxpZWQgYnkgNCB0byBjb252ZXJ0IGludG8gYnl0ZXMu ICovCisJcGF5bG9hZF9zaXplID0gZG1jX2hlYWRlci0+Zndfc2l6ZSAqIDQ7CisJaWYgKHJlbV9z aXplIDwgcGF5bG9hZF9zaXplKQorCQlnb3RvIGVycm9yX3RydW5jYXRlZDsKKworCWlmIChwYXls b2FkX3NpemUgPiBjc3ItPm1heF9md19zaXplKSB7CisJCURSTV9FUlJPUigiRE1DIEZXIHRvbyBi aWcgKCV1IGJ5dGVzKVxuIiwgcGF5bG9hZF9zaXplKTsKKwkJcmV0dXJuIDA7CisJfQorCWNzci0+ ZG1jX2Z3X3NpemUgPSBkbWNfaGVhZGVyLT5md19zaXplOworCisJY3NyLT5kbWNfcGF5bG9hZCA9 IGttYWxsb2MocGF5bG9hZF9zaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNzci0+ZG1jX3BheWxv YWQpIHsKKwkJRFJNX0VSUk9SKCJNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQgZm9yIGRtYyBwYXls b2FkXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJciA9IHNpemVvZihzdHJ1Y3QgaW50ZWxfZG1j X2hlYWRlcik7CisJcGF5bG9hZCA9ICh1OCAqKShkbWNfaGVhZGVyKSArIHI7CisJbWVtY3B5KGNz ci0+ZG1jX3BheWxvYWQsIHBheWxvYWQsIHBheWxvYWRfc2l6ZSk7CisJciArPSBwYXlsb2FkX3Np emU7CisKKwlyZXR1cm4gcjsKKworZXJyb3JfdHJ1bmNhdGVkOgorCURSTV9FUlJPUigiVHJ1bmNh dGVkIERNQyBmaXJtd2FyZSwgcmVmdXNpbmcuXG4iKTsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGlj IHUzMgogcGFyc2VfY3NyX2Z3X3BhY2thZ2Uoc3RydWN0IGludGVsX2NzciAqY3NyLAogCQkgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9wYWNrYWdlX2hlYWRlciAqcGFja2FnZV9oZWFkZXIsCkBAIC00 MzIsMTAgKzUwMCw4IEBAIHN0YXRpYyB1MzIgKnBhcnNlX2Nzcl9mdyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJc3RydWN0IGludGVsX2RtY19oZWFkZXIgKmRtY19oZWFkZXI7 CiAJc3RydWN0IGludGVsX2NzciAqY3NyID0gJmRldl9wcml2LT5jc3I7CiAJY29uc3Qgc3RydWN0 IHN0ZXBwaW5nX2luZm8gKnNpID0gaW50ZWxfZ2V0X3N0ZXBwaW5nX2luZm8oZGV2X3ByaXYpOwot CXUzMiByZWFkY291bnQgPSAwLCBuYnl0ZXM7Ci0JdTMyIGksIHI7Ci0JdTMyICpkbWNfcGF5bG9h ZDsKLQlzaXplX3QgZnNpemU7CisJdTMyIHJlYWRjb3VudCA9IDA7CisJdTMyIHI7CiAKIAlpZiAo IWZ3KQogCQlyZXR1cm4gTlVMTDsKQEAgLTQ1NSw2MiArNTIxLDE0IEBAIHN0YXRpYyB1MzIgKnBh cnNlX2Nzcl9mdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCXJldHVybiBO VUxMOwogCiAJcmVhZGNvdW50ICs9IHI7Ci0JZnNpemUgPSByZWFkY291bnQgKwotCQlzaXplb2Yo c3RydWN0IGludGVsX2RtY19oZWFkZXIpOwotCWlmIChmc2l6ZSA+IGZ3LT5zaXplKQotCQlnb3Rv IGVycm9yX3RydW5jYXRlZDsKIAotCS8qIEV4dHJhY3QgZG1jX2hlYWRlciBpbmZvcm1hdGlvbi4g Ki8KKwkvKiBFeHRyYWN0IGRtY19oZWFkZXIgaW5mb3JtYXRpb24gKi8KIAlkbWNfaGVhZGVyID0g KHN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyICopJmZ3LT5kYXRhW3JlYWRjb3VudF07Ci0JaWYgKHNp emVvZihzdHJ1Y3QgaW50ZWxfZG1jX2hlYWRlcikgIT0gKGRtY19oZWFkZXItPmhlYWRlcl9sZW4p KSB7Ci0JCURSTV9FUlJPUigiRE1DIGZpcm13YXJlIGhhcyB3cm9uZyBkbWMgaGVhZGVyIGxlbmd0 aCAiCi0JCQkgICIoJXUgYnl0ZXMpXG4iLAotCQkJICAoZG1jX2hlYWRlci0+aGVhZGVyX2xlbikp OwotCQlyZXR1cm4gTlVMTDsKLQl9Ci0JcmVhZGNvdW50ICs9IHNpemVvZihzdHJ1Y3QgaW50ZWxf ZG1jX2hlYWRlcik7Ci0KLQkvKiBDYWNoZSB0aGUgZG1jIGhlYWRlciBpbmZvLiAqLwotCWlmIChk bWNfaGVhZGVyLT5tbWlvX2NvdW50ID4gQVJSQVlfU0laRShjc3ItPm1taW9hZGRyKSkgewotCQlE Uk1fRVJST1IoIkRNQyBmaXJtd2FyZSBoYXMgd3JvbmcgbW1pbyBjb3VudCAldVxuIiwKLQkJCSAg ZG1jX2hlYWRlci0+bW1pb19jb3VudCk7Ci0JCXJldHVybiBOVUxMOwotCX0KLQljc3ItPm1taW9f Y291bnQgPSBkbWNfaGVhZGVyLT5tbWlvX2NvdW50OwotCWZvciAoaSA9IDA7IGkgPCBkbWNfaGVh ZGVyLT5tbWlvX2NvdW50OyBpKyspIHsKLQkJaWYgKGRtY19oZWFkZXItPm1taW9hZGRyW2ldIDwg Q1NSX01NSU9fU1RBUlRfUkFOR0UgfHwKLQkJICAgIGRtY19oZWFkZXItPm1taW9hZGRyW2ldID4g Q1NSX01NSU9fRU5EX1JBTkdFKSB7Ci0JCQlEUk1fRVJST1IoIkRNQyBmaXJtd2FyZSBoYXMgd3Jv bmcgbW1pbyBhZGRyZXNzIDB4JXhcbiIsCi0JCQkJICBkbWNfaGVhZGVyLT5tbWlvYWRkcltpXSk7 Ci0JCQlyZXR1cm4gTlVMTDsKLQkJfQotCQljc3ItPm1taW9hZGRyW2ldID0gX01NSU8oZG1jX2hl YWRlci0+bW1pb2FkZHJbaV0pOwotCQljc3ItPm1taW9kYXRhW2ldID0gZG1jX2hlYWRlci0+bW1p b2RhdGFbaV07Ci0JfQotCi0JLyogZndfc2l6ZSBpcyBpbiBkd29yZHMsIHNvIG11bHRpcGxpZWQg YnkgNCB0byBjb252ZXJ0IGludG8gYnl0ZXMuICovCi0JbmJ5dGVzID0gZG1jX2hlYWRlci0+Zndf c2l6ZSAqIDQ7Ci0JZnNpemUgKz0gbmJ5dGVzOwotCWlmIChmc2l6ZSA+IGZ3LT5zaXplKQotCQln b3RvIGVycm9yX3RydW5jYXRlZDsKLQotCWlmIChuYnl0ZXMgPiBjc3ItPm1heF9md19zaXplKSB7 Ci0JCURSTV9FUlJPUigiRE1DIEZXIHRvbyBiaWcgKCV1IGJ5dGVzKVxuIiwgbmJ5dGVzKTsKLQkJ cmV0dXJuIE5VTEw7Ci0JfQotCWNzci0+ZG1jX2Z3X3NpemUgPSBkbWNfaGVhZGVyLT5md19zaXpl OwotCi0JZG1jX3BheWxvYWQgPSBrbWFsbG9jKG5ieXRlcywgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFk bWNfcGF5bG9hZCkgewotCQlEUk1fRVJST1IoIk1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZCBmb3Ig ZG1jIHBheWxvYWRcbiIpOworCXIgPSBwYXJzZV9jc3JfZndfZG1jKGNzciwgZG1jX2hlYWRlciwg ZnctPnNpemUgLSByZWFkY291bnQpOworCWlmICghcikKIAkJcmV0dXJuIE5VTEw7Ci0JfQogCi0J cmV0dXJuIG1lbWNweShkbWNfcGF5bG9hZCwgJmZ3LT5kYXRhW3JlYWRjb3VudF0sIG5ieXRlcyk7 Ci0KLWVycm9yX3RydW5jYXRlZDoKLQlEUk1fRVJST1IoIlRydW5jYXRlZCBETUMgZmlybXdhcmUs IHJlamVjdGluZy5cbiIpOwotCXJldHVybiBOVUxMOworCXJldHVybiBjc3ItPmRtY19wYXlsb2Fk OwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9jc3JfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=