From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: =?utf-8?q?=5BPATCH_5/6=5D_tools/dpf=3A_Tool_to_read_a?= =?utf-8?q?nd_write_l3_remap_registers=2E?= Date: Fri, 25 May 2012 16:56:26 -0700 Message-ID: <1337990187-6733-5-git-send-email-ben@bwidawsk.net> References: <1337990187-6733-1-git-send-email-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from cloud01.chad-versace.us (184-106-247-128.static.cloud-ips.com [184.106.247.128]) by gabe.freedesktop.org (Postfix) with ESMTP id 63304A0BAC for ; Fri, 25 May 2012 16:58:31 -0700 (PDT) In-Reply-To: <1337990187-6733-1-git-send-email-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org Cc: Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogQmVuIFdpZGF3c2t5IDxiZW5AYndpZGF3c2submV0PgotLS0KIHRlc3Rz L2RwZl90ZXN0ICAgICAgICAgIHwgICAgOCArKysKIHRvb2xzL01ha2VmaWxlLmFtICAgICAgIHwg ICAgMyArLQogdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMgfCAgMTU5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDE2OSBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMvZHBmX3Rl c3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9pbnRlbF9sM19wYXJpdHkuYwoKZGlmZiAtLWdp dCBhL3Rlc3RzL2RwZl90ZXN0IGIvdGVzdHMvZHBmX3Rlc3QKbmV3IGZpbGUgbW9kZSAxMDA3NTUK aW5kZXggMDAwMDAwMC4uN2Q0MzFhYwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2RwZl90ZXN0 CkBAIC0wLDAgKzEsOCBAQAorIyEvYmluL2Jhc2gKKworU09VUkNFX0RJUj0iJCggZGlybmFtZSAi JHtCQVNIX1NPVVJDRVswXX0iICkiCisuICRTT1VSQ0VfRElSL2RybV9saWIuc2gKKworJFNPVVJD RV9ESVIvLi4vdG9vbHMvaW50ZWxfbDNfcGFyaXR5IC1jIDI+JjEKKyRTT1VSQ0VfRElSLy4uL3Rv b2xzL2ludGVsX2wzX3Bhcml0eSAwLDAsMCAyPiYxCiskU09VUkNFX0RJUi8uLi90b29scy9pbnRl bF9sM19wYXJpdHkgMj4mMQpkaWZmIC0tZ2l0IGEvdG9vbHMvTWFrZWZpbGUuYW0gYi90b29scy9N YWtlZmlsZS5hbQppbmRleCAyZTQxMjhiLi5kNDYxZjM4IDEwMDY0NAotLS0gYS90b29scy9NYWtl ZmlsZS5hbQorKysgYi90b29scy9NYWtlZmlsZS5hbQpAQCAtMTQsNyArMTQsOCBAQCBiaW5fUFJP R1JBTVMgPSAJCQkJXAogCWludGVsX3JlZ19zbmFwc2hvdCAJCVwKIAlpbnRlbF9yZWdfd3JpdGUg CQlcCiAJaW50ZWxfcmVnX3JlYWQgCQkJXAotCWludGVsX2ZvcmNld2FrZWQKKwlpbnRlbF9mb3Jj ZXdha2VkCQlcCisJaW50ZWxfbDNfcGFyaXR5CiAKIG5vaW5zdF9QUk9HUkFNUyA9IAkJCVwKIAlp bnRlbF9kdW1wX2RlY29kZSAJCVwKZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2wzX3Bhcml0eS5j IGIvdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMjYwYzNkMAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2ludGVsX2wzX3Bhcml0eS5j CkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTIgSW50ZWwgQ29ycG9y YXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRv IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo b3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBT b2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj b25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwg YmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUK KyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB UklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgor ICogQXV0aG9yczoKKyAqICAgIEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KKyAqCisg Ki8KKworI2RlZmluZSBfR05VX1NPVVJDRQorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgor I2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0 ZC5oPgorI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKKyNpbmNsdWRlICJpbnRlbF9ncHVfdG9v bHMuaCIKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisKKyNkZWZpbmUgTlVNX0JBTktTIDQKKyNkZWZp bmUgTlVNX1NVQkJBTktTIDgKKyNkZWZpbmUgTlVNX1JFR1MgKE5VTV9CQU5LUyAqIE5VTV9TVUJC QU5LUykKKworc3RydWN0IF9fYXR0cmlidXRlX18gKChfX3BhY2tlZF9fKSkgbDNfbG9nX3JlZ2lz dGVyIHsKKwl1aW50MzJfdCByb3cwX2VuYWJsZQk6IDE7CisJdWludDMyX3QgcnN2ZDIJCTogNDsK Kwl1aW50MzJfdCByb3cwCQk6IDExOworCXVpbnQzMl90IHJvdzFfZW5hYmxlCTogMTsKKwl1aW50 MzJfdCByc3ZkMQkJOiA0OworCXVpbnQzMl90IHJvdzEJCTogMTE7Cit9IGwzbG9nW05VTV9CQU5L U11bTlVNX1NVQkJBTktTXTsKKworc3RhdGljIHZvaWQgZHVtcGl0KHZvaWQpCit7CisJaW50IGks IGo7CisKKwlmb3IgKGkgPSAwOyBpIDwgTlVNX0JBTktTOyBpKyspIHsKKwkJZm9yIChqID0gMDsg aiA8IE5VTV9TVUJCQU5LUzsgaisrKSB7CisJCQlzdHJ1Y3QgbDNfbG9nX3JlZ2lzdGVyICpyZWcg PSAmbDNsb2dbaV1bal07CisKKwkJaWYgKHJlZy0+cm93MF9lbmFibGUpCisJCQlwcmludGYoIlJv dyAlZCwgQmFuayAlZCwgU3ViYmFuayAlZCBpcyBkaXNhYmxlZFxuIiwKKwkJCSAgICAgICByZWct PnJvdzAsIGksIGopOworCQlpZiAocmVnLT5yb3cxX2VuYWJsZSkKKwkJCXByaW50ZigiUm93ICVk LCBCYW5rICVkLCBTdWJiYW5rICVkIGlzIGRpc2FibGVkXG4iLAorCQkJICAgICAgIHJlZy0+cm93 MSwgaSwgaik7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBpbnQgZGlzYWJsZV9yYnMoaW50IHJvdywg aW50IGJhbmssIGludCBzYmFuaykKK3sKKwlzdHJ1Y3QgbDNfbG9nX3JlZ2lzdGVyICpyZWcgPSAm bDNsb2dbYmFua11bc2JhbmtdOworCisJLy8gY2FuJ3QgbWFwIG1vcmUgdGhhbiAyIHJvd3MKKwlp ZiAocmVnLT5yb3cwX2VuYWJsZSAmJiByZWctPnJvdzFfZW5hYmxlKQorCQlyZXR1cm4gLTE7CisK KwkvLyBjYW4ndCByZW1hcCB0aGUgc2FtZSByb3cgdHdpY2UKKwlpZiAoKHJlZy0+cm93MF9lbmFi bGUgJiYgcmVnLT5yb3cwID09IHJvdykgfHwKKwkgICAgKHJlZy0+cm93MV9lbmFibGUgJiYgcmVn LT5yb3cxID09IHJvdykpIHsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChyZWctPnJvdzBfZW5h YmxlKSB7CisJCXJlZy0+cm93MSA9IHJvdzsKKwkJcmVnLT5yb3cxX2VuYWJsZSA9IDE7CisJfSBl bHNlIHsKKwkJcmVnLT5yb3cwID0gcm93OworCQlyZWctPnJvdzBfZW5hYmxlID0gMTsKKwl9CisK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBkb19wYXJzZShpbnQgYXJnYywgY2hhciAqYXJn dltdKQoreworCWludCByb3csIGJhbmssIHNiYW5rLCBpLCByZXQ7CisKKwlmb3IgKGkgPSAxOyBp IDwgYXJnYzsgaSsrKSB7CisJCXJldCA9IHNzY2FuZihhcmd2W2ldLCAiJWQsJWQsJWQiLCAmcm93 LCAmYmFuaywgJnNiYW5rKTsKKwkJaWYgKHJldCAhPSAzKQorCQkJcmV0dXJuIGk7CisJCWFzc2Vy dChkaXNhYmxlX3Jicyhyb3csIGJhbmssIHNiYW5rKSA9PSAwKTsKKwl9CisJcmV0dXJuIDA7Cit9 CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJY29uc3QgaW50IGRldmlj ZSA9IGRybV9nZXRfY2FyZCgwKTsKKwljaGFyICpwYXRoOworCXVuc2lnbmVkIGludCBkZXZpZDsK KwlpbnQgZHJtX2ZkLCBmZCwgcmV0OworCisJZHJtX2ZkID0gZHJtX29wZW5fYW55KCk7CisJZGV2 aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRybV9mZCk7CisKKwlyZXQgPSBhc3ByaW50ZigmcGF0 aCwgIi9zeXMvY2xhc3MvZHJtL2NhcmQlZC9sM19wYXJpdHkiLCBkZXZpY2UpOworCWFzc2VydChy ZXQgIT0gLTEpOworCisJZmQgPSBvcGVuKHBhdGgsIE9fUkRXUik7CisJaWYgKGZkID09IC0xICYm IElTX0lWWUJSSURHRShkZXZpZCkpIHsKKwkJcGVycm9yKCJPcGVuaW5nIHN5c2ZzIik7CisJCWV4 aXQoRVhJVF9GQUlMVVJFKTsKKwl9IGVsc2UgaWYgKGZkID09IC0xKQorCQlleGl0KEVYSVRfU1VD Q0VTUyk7CisKKwlyZXQgPSByZWFkKGZkLCBsM2xvZywgTlVNX1JFR1MgKiBzaXplb2YodWludDMy X3QpKTsKKwlpZiAocmV0ID09IC0xKSB7CisJCXBlcnJvcigiUmVhZGluZyBzeXNmcyIpOworCQll eGl0KEVYSVRfRkFJTFVSRSk7CisJfQorCisJYXNzZXJ0KGxzZWVrKGZkLCAwLCBTRUVLX1NFVCkg PT0gMCk7CisKKwlpZiAoYXJnYyA9PSAxKSB7CisJCWR1bXBpdCgpOworCQlleGl0KEVYSVRfU1VD Q0VTUyk7CisJfSBlbHNlIGlmICghc3RybmNtcCgiLWMiLCBhcmd2WzFdLCAyKSkgeworCQltZW1z ZXQobDNsb2csIDAsIHNpemVvZihsM2xvZykpOworCX0gZWxzZSB7CisJCXJldCA9IGRvX3BhcnNl KGFyZ2MsIGFyZ3YpOworCQlpZiAocmV0ICE9IDApIHsKKwkJCWZwcmludGYoc3RkZXJyLCAiTWFs Zm9ybWVkIGNvbW1hbmQgbGluZSBhdCAlc1xuIiwgYXJndltyZXRdKTsKKwkJCWV4aXQoRVhJVF9G QUlMVVJFKTsKKwkJfQorCX0KKworCXJldCA9IHdyaXRlKGZkLCBsM2xvZywgTlVNX1JFR1MgKiBz aXplb2YodWludDMyX3QpKTsKKwlpZiAocmV0ID09IC0xKSB7CisJCXBlcnJvcigiV3JpdGluZyBz eXNmcyIpOworCQlleGl0KEVYSVRfRkFJTFVSRSk7CisJfQorCisJY2xvc2UoZmQpOworCisJZXhp dChFWElUX1NVQ0NFU1MpOworfQotLSAKMS43LjEwLjIKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==