From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11C026E983 for ; Fri, 15 Jun 2018 06:41:21 +0000 (UTC) From: Tarun Vyas Date: Thu, 14 Jun 2018 23:38:37 -0700 Message-Id: <20180615063837.189330-1-tarun.vyas@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2] tools: Add a simple tool to read/write/decode dpcd registers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: dhinakaran.pandiyan@intel.com List-ID: VGhpcyB0b29sIHNlcnZlcyBhcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBjb25zdHJ1Y3RzIHByb3Zp ZGVkIGJ5IHRoZQpkcm1fZHBjZF9hdXhfZGV2IGtlcm5lbCBtb2R1bGUgYnkgd29ya2luZyBvbiB0 aGUgL2Rldi9kcm1fZHBfYXV4W25dCmRldmljZXMgY3JlYXRlZCBieSB0aGUga2VybmVsIG1vZHVs ZS4KSXQgc3VwcG9ydHMgcmVhZGluZyBhbmQgd3JpdGluZyBkcGNkIHJlZ2lzdGVycyBvbiB0aGUg Y29ubmVjdGVkIGF1eApjaGFubmVscy4KSW4gdGhlIGZvbGxvdy11cCBwYXRjaCwgc3VwcG9ydCBm b3IgZGVjb2RpbmcgdGhlc2UgcmVnaXN0ZXJzIHdpbGwgYmUKYWRkZWQgdG8gZmFjaWxhdGUgZGVi dWdnaW5nIHBhbmVsIHJlbGF0ZWQgaXNzdWVzLgoKU3VnZ2VzdGVkLWJ5OiBEaGluYWthcmFuIFBh bmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVGFy dW4gVnlhcyA8dGFydW4udnlhc0BpbnRlbC5jb20+Ci0tLQogdG9vbHMvZHBjZF9yZWcuYyAgfCAy MTMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiB0b29scy9tZXNvbi5idWlsZCB8ICAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDIxNCBpbnNlcnRp b25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZHBjZF9yZWcuYwoKZGlmZiAtLWdpdCBh L3Rvb2xzL2RwY2RfcmVnLmMgYi90b29scy9kcGNkX3JlZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMDQxYjBlMzhiNmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvdG9v bHMvZHBjZF9yZWcuYwpAQCAtMCwwICsxLDIxMyBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4 IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwg ZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhp cyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3 YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9v ciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj ZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJh Z3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9y dGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICog SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENP UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVS CisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9S IE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNP RlRXQVJFLgorICoKKyAqIAkJRFBDRCByZWdpc3RlciByZWFkL2RlY29kZSB0b29sCisgKiBUaGlz IHRvb2wgd3JhcHMgYXJvdW5kIERSTV9EUF9BVVhfREVWIG1vZHVsZSB0byBwcm92aWRlIERQQ0Qg cmVnaXN0ZXIgcmVhZCwKKyAqIHdyaXRlIGFuZCBkZWNvZGUsIHNvIENPTkZJR19EUk1fRFBfQVVY X0RFViBuZWVkcyB0byBiZSBzZXQuCisgKi8KKworI2luY2x1ZGUgImlndF9jb3JlLmgiCisjaW5j bHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorCisjZGVmaW5lIElOVkFMSUQJMHhm ZgorCitjb25zdCBjaGFyIGF1eF9kZXZbXSA9ICIvZGV2L2RybV9kcF9hdXgiOworCitzdGF0aWMg dm9pZCBwcmludF91c2FnZShjaGFyICp0b29sLCBpbnQgaGVscCkKK3sKKwlpZ3RfaW5mbygiRFBD RCByZWdpc3RlciBydyBhbmQgZGVjb2RlIHRvb2xcblxuIik7CisJaWd0X2luZm8oIlRoaXMgdG9v bCByZXF1aXJlcyBDT05GSUdfRFJNX0RQX0FVWF9DSEFSREVWXG4iCisJCSAidG8gYmUgc2V0IGlu IHRoZSBrZXJuZWwgY29uZmlnLlxuXG4iKTsKKwlpZ3RfaW5mbygiVXNhZ2U6ICVzIFtPUFRJT04g Li4uXSBDT01NQU5EXG5cbiIsIHRvb2wpOworCWlndF9pbmZvKCJDT01NQU5EIGlzIG9uZSBvZjpc biIpOworCWlndF9pbmZvKCIgIHJlYWQ6CVJlYWQgW2NvdW50XSBieXRlcyBkcGNkIHJlZyBhdCBh biBvZmZzZXRcbiIpOworCWlndF9pbmZvKCIgIHdyaXRlOglXcml0ZSBhIGRwY2QgcmVnIGF0IGFu IG9mZnNldFxuXG4iKTsKKwlpZ3RfaW5mbygiT3B0aW9ucyBmb3IgdGhlIGFib3ZlIENPTU1BTkRT IGFyZVxuIik7CisJaWd0X2luZm8oIiAtLWRldmljZT1ERVZJRCAJQXV4IGRldmljZSBpZCwgYXMg bGlzdGVkIGluIC9kZXYvZHJtX2RwX2F1eF9kZXZbbl1cbiIpOworCWlndF9pbmZvKCIgLS1vZmZz ZXQ9UkVHX0FERFIJRFBDRCByZWdpc3RlciBvZmZzZXQgaW4gaGV4XG4iKTsKKwlpZ3RfaW5mbygi IC0tY291bnQ9QllURVMJRm9yIHJlYWRzLCBzcGVjaWZ5ICMgb2YgYnl0ZXMgdG8gYmUgcmVhZCBm cm9tIHRoZSBvZmZzZXRcbiIpOworCWlndF9pbmZvKCIgLS12YWw9QllURQkJRm9yIHdyaXRlcywg c3BlY2lmeSBhIEJZVEUgc2l6ZWQgdmFsdWUgdG8gYmUgd3JpdHRlbmlcblxuIik7CisKKwlpZ3Rf aW5mbygiIC0taGVscDogcHJpbnQgdGhlIHVzYWdlXG4iKTsKKworCWV4aXQoKGhlbHAgPT0gMSk/ IEVYSVRfU1VDQ0VTUyA6IEVYSVRfRkFJTFVSRSk7Cit9CisKK3N0YXRpYyBpbnQgZHBjZF9yZWFk KGNoYXIgKmRldmljZSwgY29uc3QgdWludDMyX3Qgb2Zmc2V0LCBzaXplX3QgY291bnQpCit7CisJ aW50IGZkLCByZXQsIGk7CisJdm9pZCAqYnVmID0gbWFsbG9jKHNpemVvZih1aW50OF90KSAqIGNv dW50KTsKKworCWlmKE5VTEwgIT0gYnVmKQorCQltZW1zZXQoYnVmLCAwLCBzaXplb2YodWludDhf dCkgKiBjb3VudCk7CisJZWxzZSB7CisJCWlndF93YXJuKCJDYW4ndCBhbGxvY2F0ZSByZWFkIGJ1 ZmZlclxuIik7CisJCXJldCA9IEVYSVRfRkFJTFVSRTsKKwkJZ290byBvdXQ7CisJfQorCisJZmQg PSBvcGVuKGRldmljZSwgT19SRE9OTFkpOworCWlmIChmZCA+IDApIHsKKwkJcmV0ID0gcHJlYWQo ZmQsIGJ1ZiwgY291bnQsIG9mZnNldCk7CisJCWNsb3NlKGZkKTsKKwkJaWYgKHJldCAhPSBjb3Vu dCkgeworCQkJaWd0X3dhcm4oIkZhaWxlZCB0byByZWFkIGZyb20gJXMgYXV4IGRldmljZSAtIGVy cm9yICVzXG4iLCBkZXZpY2UsIHN0cmVycm9yKGVycm5vKSk7CisJCQlyZXQgPSBFWElUX0ZBSUxV UkU7CisJCQlnb3RvIGZyZWVfdXA7CisJCX0KKworCQlpZ3RfaW5mbygiUmVhZCAlenUgYnl0ZShz KSBzdGFydGluZyBhdCBvZmZzZXQgJXhcblxuIiwgY291bnQsIG9mZnNldCk7CisJCWZvciAoaSA9 IDA7IGkgPCBjb3VudDsgaSsrKQorCQkJaWd0X2luZm8oIiV4XG4iLCAqKCgodWludDhfdCAqKShi dWYpKSArIGkpKTsKKwl9CisJZWxzZSB7CisJCWlndF93YXJuKCJGYWlsZWQgdG8gb3BlbiAlcyBh dXggZGV2aWNlIC0gZXJyb3I6ICVzXG4iLCBkZXZpY2UsIHN0cmVycm9yKGVycm5vKSk7CisJCXJl dCA9IEVYSVRfRkFJTFVSRTsKKwl9CitmcmVlX3VwOgorCWZyZWUoYnVmKTsKK291dDoKKwlyZXR1 cm4gcmV0OworfQorCitzdGF0aWMgaW50IGRwY2Rfd3JpdGUoY2hhciAqZGV2aWNlLCBjb25zdCB1 aW50MzJfdCBvZmZzZXQsIGNvbnN0IHVpbnQ4X3QgKnZhbCkKK3sKKwlpbnQgZmQsIHJldDsKKwor CWZkID0gb3BlbihkZXZpY2UsIE9fUkRXUik7CisJaWYgKGZkID4gMCkgeworCQlyZXQgPSBwd3Jp dGUoZmQsIChjb25zdCB2b2lkICopdmFsLCBzaXplb2YodWludDhfdCksIG9mZnNldCk7CisJCWNs b3NlKGZkKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWlndF93YXJuKCJGYWlsZWQgdG8gd3JpdGUg dG8gJXMgYXV4IGRldmljZSAtIGVycm9yICVzXG4iLCBkZXZpY2UsIHN0cmVycm9yKGVycm5vKSk7 CisJCQlyZXQgPSBFWElUX0ZBSUxVUkU7CisJCQlnb3RvIG91dDsKKwkJfQorCQlyZXQgPSBkcGNk X3JlYWQoZGV2aWNlLCBvZmZzZXQsIHNpemVvZih1aW50OF90KSk7CisJfQorCWVsc2UgeworCQlp Z3Rfd2FybigiRmFpbGVkIHRvIG9wZW4gJXMgYXV4IGRldmljZSAtIGVycm9yOiAlc1xuIiwgZGV2 aWNlLCBzdHJlcnJvcihlcnJubykpOworCQlyZXQgPSBFWElUX0ZBSUxVUkU7CisJfQorb3V0Ogor CXJldHVybiByZXQ7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlj aGFyIGRldl9uYW1lWzIwXTsKKwlpbnQgcmV0LCBkZXZpZCwgaGVscF9mbGc7CisJdWludDMyX3Qg b2Zmc2V0OworCXVpbnQ4X3QgdmFsOworCXNpemVfdCBjb3VudDsKKworCWVudW0gY29tbWFuZCB7 CisJCUlOViA9IC0xLAorCQlSRUFEID0gMiwKKwkJV1JJVEUsCisJfSBjbWQgPSBJTlY7CisKKwlz dHJ1Y3Qgb3B0aW9uIGxvbmdvcHRzIFtdID0geworCQl7ICJjb3VudCIsICAgICAgcmVxdWlyZWRf YXJndW1lbnQsICAgICAgTlVMTCwgICAgICAnYycgfSwKKwkJeyAiZGV2aWNlIiwJcmVxdWlyZWRf YXJndW1lbnQsCU5VTEwsICAgICAgJ2QnIH0sCisJCXsgImhlbHAiLCAJbm9fYXJndW1lbnQsIAkJ JmhlbHBfZmxnLCAgMiAgfSwKKwkJeyAib2Zmc2V0IiwJcmVxdWlyZWRfYXJndW1lbnQsCU5VTEws CSAgICdvJyB9LAorCQl7ICJzcGVjIiwJb3B0aW9uYWxfYXJndW1lbnQsCU5VTEwsCSAgICdzJyB9 LAorCQl7ICJ2YWwiLAlyZXF1aXJlZF9hcmd1bWVudCwJTlVMTCwJICAgJ3YnIH0sCisJCXsgMCB9 CisJfTsKKworCW9mZnNldCA9IHZhbCA9IGNvdW50ID0gSU5WQUxJRDsKKwlkZXZpZCA9IC0xOwor CisJd2hpbGUgKChyZXQgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiLTpjOmQ6bzpzOjp2OiIs IGxvbmdvcHRzLCBOVUxMKSkgIT0gLTEpIHsKKwkJc3dpdGNoIChyZXQpIHsKKwkJY2FzZSAnYyc6 CisJCQljb3VudCA9IHN0cnRvdWwob3B0YXJnLCBOVUxMLCAxMCk7CisJCQlicmVhazsKKwkJY2Fz ZSAnZCc6CisJCQlkZXZpZCA9IHN0cnRvdWwob3B0YXJnLCBOVUxMLCAxMCk7CisJCQlicmVhazsK KwkJY2FzZSAnbyc6CisJCQlvZmZzZXQgPSBzdHJ0b3VsKG9wdGFyZywgTlVMTCwgMTYpOworCQkJ YnJlYWs7CisJCWNhc2UgJ3MnOgorCQkJLyogVE8tRE86IFBhcnNlIC0tc3BlYyB2ZXJzaW9uICov CisJCQlicmVhazsKKwkJY2FzZSAndic6CisJCQl2YWwgPSBzdHJ0b3VsKG9wdGFyZywgTlVMTCwg MTYpOworCQkJYnJlYWs7CisJCS8qIEZhbGwgdGhyb3VnaCBmb3IgLS1oZWxwICovCisJCWNhc2Ug MDoKKwkJCWJyZWFrOworCQkvKiBDb21tYW5kIHBhcnNpbmcgKi8KKwkJY2FzZSAxOgorCQkJaWYg KHN0cmNtcChvcHRhcmcsICJyZWFkIikgPT0gMCkKKwkJCQljbWQgPSBSRUFEOworCQkJZWxzZSBp ZiAoc3RyY21wKG9wdGFyZywgIndyaXRlIikgPT0gMCkKKwkJCQljbWQgPSBXUklURTsKKwkJCWJy ZWFrOworCQljYXNlICc6JzoKKwkJCWZwcmludGYoc3RkZXJyLCAiVGhlIC0lYyBvcHRpb24gb2Yg JXMgcmVxdWlyZXMgYW4gYXJndW1lbnRcbiIsIG9wdG9wdCwgYXJndlswXSk7CisJCQlwcmludF91 c2FnZShhcmd2WzBdLCAwKTsKKwkJY2FzZSAnPyc6CisJCWRlZmF1bHQgOgorCQkJcHJpbnRmKCIl cyAtIG9wdGlvbiAlYyBpcyBpbnZhbGlkXG4iLCBhcmd2WzBdLCBvcHRvcHQpOworCQkJcHJpbnRf dXNhZ2UoYXJndlswXSwgMCk7CisJCX0KKwl9CisKKwlpZiAoaGVscF9mbGcgPT0gMikKKwkJcHJp bnRfdXNhZ2UoYXJndlswXSwgMSk7CisKKwlpZihkZXZpZCA9PSAtMSB8fCBvZmZzZXQgPT0gSU5W QUxJRCkgeworCQlwcmludGYoIkF1eCBkZXZpY2UgaWQgYW5kL29yIG9mZnNldCBtaXNzaW5nXG4i KTsKKwkJcHJpbnRfdXNhZ2UoYXJndlswXSwgMCk7CisJfQorCisJbWVtc2V0KGRldl9uYW1lLCAn XDAnLCAyMCk7CisJc25wcmludGYoZGV2X25hbWUsIHNpemVvZihhdXhfZGV2KSArIDIsICIlcyVk IiwgYXV4X2RldiwgZGV2aWQpOworCisJc3dpdGNoIChjbWQpIHsKKwkJY2FzZSBSRUFEOgorCQkJ aWYgKGNvdW50ID09IElOVkFMSUQpIHsKKwkJCQlpZ3Rfd2FybigiUGxlYXNlIHNwZWNpZnkgdGhl IGNvdW50IGluIGJ5dGVzXG4iKTsKKwkJCQlwcmludF91c2FnZShhcmd2WzBdLCAwKTsKKwkJCX0K KwkJCXJldCA9IGRwY2RfcmVhZChkZXZfbmFtZSwgb2Zmc2V0LCBjb3VudCk7CisJCQlicmVhazsK KwkJY2FzZSBXUklURToKKwkJCWlmICh2YWwgPT0gSU5WQUxJRCkgeworCQkJCWlndF93YXJuKCJX cml0ZSB2YWx1ZSBpcyBtaXNzaW5nXG4iKTsKKwkJCQlwcmludF91c2FnZShhcmd2WzBdLCAwKTsK KwkJCX0KKwkJCXJldCA9IGRwY2Rfd3JpdGUoZGV2X25hbWUsIG9mZnNldCwgJnZhbCk7CisJCQli cmVhazsKKwkJY2FzZSBJTlY6CisJCWRlZmF1bHQ6CisJCQlpZ3Rfd2FybigiUGxlYXNlIHNwZWNp ZnkgYSBjb21hbmQ6IHJlYWQvd3JpdGUvZGVjb2RlLiBTZWUgdXNhZ2VcbiIpOworCQkJcHJpbnRf dXNhZ2UoYXJndlswXSwgMCk7CisJfQorCisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL3Rv b2xzL21lc29uLmJ1aWxkIGIvdG9vbHMvbWVzb24uYnVpbGQKaW5kZXggNzg5MjE5ZDA3YzNkLi4x ZDQ4MzM4MDZjMTYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL21lc29uLmJ1aWxkCisrKyBiL3Rvb2xzL21l c29uLmJ1aWxkCkBAIC0zNyw2ICszNyw3IEBAIHRvb2xzX3Byb2dzID0gWwogCSdpbnRlbF93YXRl cm1hcmsnLAogCSdpbnRlbF9nZW1faW5mbycsCiAJJ2ludGVsX2d2dGdfdGVzdCcsCisJJ2RwY2Rf cmVnJywKIF0KIHRvb2xfZGVwcyA9IGlndF9kZXBzCiAKLS0gCjIuMTMuNQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QK aWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==