From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH 1/6] drm: Add SCDC helpers Date: Wed, 1 Feb 2017 18:14:36 +0530 Message-ID: <1485953081-7630-2-git-send-email-shashank.sharma@intel.com> References: <1485953081-7630-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1485953081-7630-1-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, ville.syrjala@linux.intel.com Cc: jose.abreu@synopsys.com, =daniel.vetter@intel.com, Thierry Reding , thierry.reding@gmail.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClNDREMgaXMgYSBtZWNo YW5pc20gZGVmaW5lZCBpbiB0aGUgSERNSSAyLjAgc3BlY2lmaWNhdGlvbiB0aGF0IGFsbG93cwp0 aGUgc291cmNlIGFuZCBzaW5rIGRldmljZXMgdG8gY29tbXVuaWNhdGUuCgpUaGlzIGNvbW1pdCBp bnRyb2R1Y2VzIGhlbHBlcnMgdG8gYWNjZXNzIHRoZSBTQ0RDIGFuZCBwcm92aWRlcyB0aGUKc3lt Ym9saWMgbmFtZXMgZm9yIHRoZSB2YXJpb3VzIHJlZ2lzdGVycyBkZWZpbmVkIGluIHRoZSBzcGVj aWZpY2F0aW9uLgoKU2lnbmVkLW9mZi1ieTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlh LmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0IHwgIDEyICsr KysKIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgIDMgKy0KIGRyaXZl cnMvZ3B1L2RybS9kcm1fc2NkY19oZWxwZXIuYyAgICAgfCAxMTEgKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX3NjZGNfaGVscGVyLmggICAgICAgICB8IDEzMiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDI1NyBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n cHUvZHJtL2RybV9zY2RjX2hlbHBlci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0v ZHJtX3NjZGNfaGVscGVyLmgKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21z LWhlbHBlcnMucnN0IGIvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy1oZWxwZXJzLnJzdAppbmRl eCAwMzA0MGFhLi43NTkyNzU2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21z LWhlbHBlcnMucnN0CisrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QK QEAgLTIxNyw2ICsyMTcsMTggQEAgRURJRCBIZWxwZXIgRnVuY3Rpb25zIFJlZmVyZW5jZQogLi4g a2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCiAgICA6ZXhwb3J0OgogCitT Q0RDIEhlbHBlciBGdW5jdGlvbnMgUmVmZXJlbmNlCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisKKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX3NjZGNfaGVscGVy LmMKKyAgIDpkb2M6IHNjZGMgaGVscGVycworCisuLiBrZXJuZWwtZG9jOjogaW5jbHVkZS9kcm0v ZHJtX3NjZGNfaGVscGVyLmgKKyAgIDppbnRlcm5hbDoKKworLi4ga2VybmVsLWRvYzo6IGRyaXZl cnMvZ3B1L2RybS9kcm1fc2NkY19oZWxwZXIuYworICAgOmV4cG9ydDoKKwogUmVjdGFuZ2xlIFV0 aWxpdGllcyBSZWZlcmVuY2UKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmls ZQppbmRleCA5MmRlMzk5Li5hZDkxY2Q5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFr ZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCkBAIC0zMSw3ICszMSw4IEBAIGRy bS0kKENPTkZJR19ERUJVR19GUykgKz0gZHJtX2RlYnVnZnMubyBkcm1fZGVidWdmc19jcmMubwog ZHJtX2ttc19oZWxwZXIteSA6PSBkcm1fY3J0Y19oZWxwZXIubyBkcm1fZHBfaGVscGVyLm8gZHJt X3Byb2JlX2hlbHBlci5vIFwKIAkJZHJtX3BsYW5lX2hlbHBlci5vIGRybV9kcF9tc3RfdG9wb2xv Z3kubyBkcm1fYXRvbWljX2hlbHBlci5vIFwKIAkJZHJtX2ttc19oZWxwZXJfY29tbW9uLm8gZHJt X2RwX2R1YWxfbW9kZV9oZWxwZXIubyBcCi0JCWRybV9zaW1wbGVfa21zX2hlbHBlci5vIGRybV9t b2Rlc2V0X2hlbHBlci5vCisJCWRybV9zaW1wbGVfa21zX2hlbHBlci5vIGRybV9tb2Rlc2V0X2hl bHBlci5vIFwKKwkJZHJtX3NjZGNfaGVscGVyLm8KIAogZHJtX2ttc19oZWxwZXItJChDT05GSUdf RFJNX0xPQURfRURJRF9GSVJNV0FSRSkgKz0gZHJtX2VkaWRfbG9hZC5vCiBkcm1fa21zX2hlbHBl ci0kKENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OKSArPSBkcm1fZmJfaGVscGVyLm8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NkY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fc2NkY19oZWxwZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m ZTBlMTIxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zY2RjX2hlbHBl ci5jCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDE1IE5WSURJQSBD b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWIgbGlj ZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt aXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRo ZQorICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMKKyAqIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09G VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg RVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRI RSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBE QU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVB TElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisK KyNpbmNsdWRlIDxkcm0vZHJtX3NjZGNfaGVscGVyLmg+CisKKy8qKgorICogRE9DOiBzY2RjIGhl bHBlcnMKKyAqCisgKiBTdGF0dXMgYW5kIENvbnRyb2wgRGF0YSBDaGFubmVsIChTQ0RDKSBpcyBh IG1lY2hhbmlzbSBpbnRyb2R1Y2VkIGJ5IHRoZQorICogSERNSSAyLjAgc3BlY2lmaWNhdGlvbi4g SXQgaXMgYSBwb2ludC10by1wb2ludCBwcm90b2NvbCB0aGF0IGFsbG93cyB0aGUKKyAqIEhETUkg c291cmNlIGFuZCBIRE1JIHNpbmsgdG8gZXhjaGFuZ2UgZGF0YS4gVGhlIHNhbWUgSTJDIGludGVy ZmFjZSB0aGF0CisgKiBpcyB1c2VkIHRvIGFjY2VzcyBFRElEIHNlcnZlcyBhcyB0aGUgdHJhbnNw b3J0IG1lY2hhbmlzbSBmb3IgU0NEQy4KKyAqLworCisjZGVmaW5lIFNDRENfSTJDX1NMQVZFX0FE RFJFU1MgMHg1NAorCisvKioKKyAqIGRybV9zY2RjX3JlYWQgLSByZWFkIGEgYmxvY2sgb2YgZGF0 YSBmcm9tIFNDREMKKyAqIEBhZGFwdGVyOiBJMkMgY29udHJvbGxlcgorICogQG9mZnNldDogc3Rh cnQgb2Zmc2V0IG9mIGJsb2NrIHRvIHJlYWQKKyAqIEBidWZmZXI6IHJldHVybiBsb2NhdGlvbiBm b3IgdGhlIGJsb2NrIHRvIHJlYWQKKyAqIEBzaXplOiBzaXplIG9mIHRoZSBibG9jayB0byByZWFk CisgKgorICogUmVhZHMgYSBibG9jayBvZiBkYXRhIGZyb20gU0NEQywgc3RhcnRpbmcgYXQgYSBn aXZlbiBvZmZzZXQuCisgKgorICogUmV0dXJuczoKKyAqIFRoZSBudW1iZXIgb2YgYnl0ZXMgcmVh ZCBmcm9tIFNDREMgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK3Nz aXplX3QgZHJtX3NjZGNfcmVhZChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4IG9mZnNl dCwgdm9pZCAqYnVmZmVyLAorCQkgICAgICBzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgaTJjX21z ZyBtc2dzWzJdID0geworCQl7CisJCQkuYWRkciA9IFNDRENfSTJDX1NMQVZFX0FERFJFU1MsCisJ CQkuZmxhZ3MgPSAwLAorCQkJLmxlbiA9IDEsCisJCQkuYnVmID0gJm9mZnNldCwKKwkJfSwgewor CQkJLmFkZHIgPSBTQ0RDX0kyQ19TTEFWRV9BRERSRVNTLAorCQkJLmZsYWdzID0gSTJDX01fUkQs CisJCQkubGVuID0gc2l6ZSwKKwkJCS5idWYgPSBidWZmZXIsCisJCX0KKwl9OworCisJcmV0dXJu IGkyY190cmFuc2ZlcihhZGFwdGVyLCBtc2dzLCBBUlJBWV9TSVpFKG1zZ3MpKTsKK30KK0VYUE9S VF9TWU1CT0woZHJtX3NjZGNfcmVhZCk7CisKKy8qKgorICogZHJtX3NjZGNfd3JpdGUgLSB3cml0 ZSBhIGJsb2NrIG9mIGRhdGEgdG8gU0NEQworICogQGFkYXB0ZXI6IEkyQyBjb250cm9sbGVyCisg KiBAb2Zmc2V0OiBzdGFydCBvZmZzZXQgb2YgYmxvY2sgdG8gd3JpdGUKKyAqIEBidWZmZXI6IGJs b2NrIG9mIGRhdGEgdG8gd3JpdGUKKyAqIEBzaXplOiBzaXplIG9mIHRoZSBibG9jayB0byB3cml0 ZQorICoKKyAqIFdyaXRlcyBhIGJsb2NrIG9mIGRhdGEgdG8gU0NEQywgc3RhcnRpbmcgYXQgYSBn aXZlbiBvZmZzZXQuCisgKgorICogUmV0dXJuczoKKyAqIFRoZSBudW1iZXIgb2YgYnl0ZXMgd3Jp dHRlbiB0byBTQ0RDIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitz c2l6ZV90IGRybV9zY2RjX3dyaXRlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciwgdTggb2Zm c2V0LAorCQkgICAgICAgY29uc3Qgdm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKK3sKKwlzdHJ1 Y3QgaTJjX21zZyBtc2cgPSB7CisJCS5hZGRyID0gU0NEQ19JMkNfU0xBVkVfQUREUkVTUywKKwkJ LmZsYWdzID0gMCwKKwkJLmxlbiA9IDEgKyBzaXplLAorCQkuYnVmID0gTlVMTCwKKwl9OworCXZv aWQgKmRhdGE7CisJaW50IGVycjsKKworCWRhdGEgPSBrbWFsbG9jKDEgKyBzaXplLCBHRlBfVEVN UE9SQVJZKTsKKwlpZiAoIWRhdGEpCisJCXJldHVybiAtRU5PTUVNOworCisJbXNnLmJ1ZiA9IGRh dGE7CisKKwltZW1jcHkoZGF0YSwgJm9mZnNldCwgc2l6ZW9mKG9mZnNldCkpOworCW1lbWNweShk YXRhICsgMSwgYnVmZmVyLCBzaXplKTsKKworCWVyciA9IGkyY190cmFuc2ZlcihhZGFwdGVyLCAm bXNnLCAxKTsKKworCWtmcmVlKGRhdGEpOworCisJcmV0dXJuIGVycjsKK30KK0VYUE9SVF9TWU1C T0woZHJtX3NjZGNfd3JpdGUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3NjZGNfaGVs cGVyLmggYi9pbmNsdWRlL2RybS9kcm1fc2NkY19oZWxwZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi45M2IwN2JjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kcm0v ZHJtX3NjZGNfaGVscGVyLmgKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMp IDIwMTUgTlZJRElBIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgor ICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YiBsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoK KyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IChpbmNsdWRpbmcgdGhlCisgKiBuZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4g YWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucworICogb2YgdGhlIFNvZnR3YXJlLgor ICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZ IE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBM SU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVO VCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZP UiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9S IE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBEUk1f U0NEQ19IRUxQRVJfSAorI2RlZmluZSBEUk1fU0NEQ19IRUxQRVJfSAorCisjaW5jbHVkZSA8bGlu dXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2RlZmluZSBTQ0RDX1NJTktf VkVSU0lPTiAweDAxCisKKyNkZWZpbmUgU0NEQ19TT1VSQ0VfVkVSU0lPTiAweDAyCisKKyNkZWZp bmUgU0NEQ19VUERBVEVfMCAweDEwCisjZGVmaW5lICBTQ0RDX1JFQURfUkVRVUVTVF9URVNUICgx IDw8IDIpCisjZGVmaW5lICBTQ0RDX0NFRF9VUERBVEUgKDEgPDwgMSkKKyNkZWZpbmUgIFNDRENf U1RBVFVTX1VQREFURSAoMSA8PCAwKQorCisjZGVmaW5lIFNDRENfVVBEQVRFXzEgMHgxMQorCisj ZGVmaW5lIFNDRENfVE1EU19DT05GSUcgMHgyMAorI2RlZmluZSAgU0NEQ19UTURTX0JJVF9DTE9D S19SQVRJT19CWV80MCAoMSA8PCAxKQorI2RlZmluZSAgU0NEQ19UTURTX0JJVF9DTE9DS19SQVRJ T19CWV8xMCAoMCA8PCAxKQorI2RlZmluZSAgU0NEQ19TQ1JBTUJMSU5HX0VOQUJMRSAoMSA8PCAw KQorCisjZGVmaW5lIFNDRENfU0NSQU1CTEVSX1NUQVRVUyAweDIxCisjZGVmaW5lICBTQ0RDX1ND UkFNQkxJTkdfU1RBVFVTICgxIDw8IDApCisKKyNkZWZpbmUgU0NEQ19DT05GSUdfMCAweDMwCisj ZGVmaW5lICBTQ0RDX1JFQURfUkVRVUVTVF9FTkFCTEUgKDEgPDwgMCkKKworI2RlZmluZSBTQ0RD X1NUQVRVU19GTEFHU18wIDB4NDAKKyNkZWZpbmUgIFNDRENfQ0gyX0xPQ0sgKDEgPCAzKQorI2Rl ZmluZSAgU0NEQ19DSDFfTE9DSyAoMSA8IDIpCisjZGVmaW5lICBTQ0RDX0NIMF9MT0NLICgxIDwg MSkKKyNkZWZpbmUgIFNDRENfQ0hfTE9DS19NQVNLIChTQ0RDX0NIMl9MT0NLIHwgU0NEQ19DSDFf TE9DSyB8IFNDRENfQ0gwX0xPQ0spCisjZGVmaW5lICBTQ0RDX0NMT0NLX0RFVEVDVCAoMSA8PCAw KQorCisjZGVmaW5lIFNDRENfU1RBVFVTX0ZMQUdTXzEgMHg0MQorCisjZGVmaW5lIFNDRENfRVJS X0RFVF8wX0wgMHg1MAorI2RlZmluZSBTQ0RDX0VSUl9ERVRfMF9IIDB4NTEKKyNkZWZpbmUgU0NE Q19FUlJfREVUXzFfTCAweDUyCisjZGVmaW5lIFNDRENfRVJSX0RFVF8xX0ggMHg1MworI2RlZmlu ZSBTQ0RDX0VSUl9ERVRfMl9MIDB4NTQKKyNkZWZpbmUgU0NEQ19FUlJfREVUXzJfSCAweDU1Cisj ZGVmaW5lICBTQ0RDX0NIQU5ORUxfVkFMSUQgKDEgPDwgNykKKworI2RlZmluZSBTQ0RDX0VSUl9E RVRfQ0hFQ0tTVU0gMHg1NgorCisjZGVmaW5lIFNDRENfVEVTVF9DT05GSUdfMCAweGMwCisjZGVm aW5lICBTQ0RDX1RFU1RfUkVBRF9SRVFVRVNUICgxIDw8IDcpCisjZGVmaW5lICBTQ0RDX1RFU1Rf UkVBRF9SRVFVRVNUX0RFTEFZKHgpICgoeCkgJiAweDdmKQorCisjZGVmaW5lIFNDRENfTUFOVUZB Q1RVUkVSX0lFRUVfT1VJIDB4ZDAKKyNkZWZpbmUgU0NEQ19NQU5VRkFDVFVSRVJfSUVFRV9PVUlf U0laRSAzCisKKyNkZWZpbmUgU0NEQ19ERVZJQ0VfSUQgMHhkMworI2RlZmluZSBTQ0RDX0RFVklD RV9JRF9TSVpFIDgKKworI2RlZmluZSBTQ0RDX0RFVklDRV9IQVJEV0FSRV9SRVZJU0lPTiAweGRi CisjZGVmaW5lICBTQ0RDX0RFVklDRV9IQVJEV0FSRV9SRVZJU0lPTl9NQUpPUih4KSAoKCh4KSA+ PiA0KSAmIDB4ZikKKyNkZWZpbmUgIFNDRENfREVWSUNFX0hBUkRXQVJFX1JFVklTSU9OX01JTk9S KHgpICgoKHgpID4+IDApICYgMHhmKQorCisjZGVmaW5lIFNDRENfREVWSUNFX1NPRlRXQVJFX01B Sk9SX1JFVklTSU9OIDB4ZGMKKyNkZWZpbmUgU0NEQ19ERVZJQ0VfU09GVFdBUkVfTUlOT1JfUkVW SVNJT04gMHhkZAorCisjZGVmaW5lIFNDRENfTUFOVUZBQ1RVUkVSX1NQRUNJRklDIDB4ZGUKKyNk ZWZpbmUgU0NEQ19NQU5VRkFDVFVSRVJfU1BFQ0lGSUNfU0laRSAzNAorCitzc2l6ZV90IGRybV9z Y2RjX3JlYWQoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCB1OCBvZmZzZXQsIHZvaWQgKmJ1 ZmZlciwKKwkJICAgICAgc2l6ZV90IHNpemUpOworc3NpemVfdCBkcm1fc2NkY193cml0ZShzdHJ1 Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHU4IG9mZnNldCwKKwkJICAgICAgIGNvbnN0IHZvaWQg KmJ1ZmZlciwgc2l6ZV90IHNpemUpOworCisvKioKKyAqIGRybV9zY2RjX3JlYWRiIC0gcmVhZCBh IHNpbmdsZSBieXRlIGZyb20gU0NEQworICogQGFkYXB0ZXI6IEkyQyBhZGFwdGVyCisgKiBAb2Zm c2V0OiBvZmZzZXQgb2YgcmVnaXN0ZXIgdG8gcmVhZAorICogQHZhbHVlOiByZXR1cm4gbG9jYXRp b24gZm9yIHRoZSByZWdpc3RlciB2YWx1ZQorICoKKyAqIFJlYWRzIGEgc2luZ2xlIGJ5dGUgZnJv bSBTQ0RDLiBUaGlzIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgdGhlCisgKiBkcm1f c2NkY19yZWFkKCkgZnVuY3Rpb24uCisgKgorICogUmV0dXJuczoKKyAqIDAgb24gc3VjY2VzcyBv ciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworc3RhdGljIGlubGluZSBp bnQgZHJtX3NjZGNfcmVhZGIoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCB1OCBvZmZzZXQs CisJCQkJIHU4ICp2YWx1ZSkKK3sKKwlyZXR1cm4gZHJtX3NjZGNfcmVhZChhZGFwdGVyLCBvZmZz ZXQsIHZhbHVlLCBzaXplb2YoKnZhbHVlKSk7Cit9CisKKy8qKgorICogZHJtX3NjZGNfd3JpdGVi IC0gd3JpdGUgYSBzaW5nbGUgYnl0ZSB0byBTQ0RDCisgKiBAYWRhcHRlcjogSTJDIGFkYXB0ZXIK KyAqIEBvZmZzZXQ6IG9mZnNldCBvZiByZWdpc3RlciB0byByZWFkCisgKiBAdmFsdWU6IHJldHVy biBsb2NhdGlvbiBmb3IgdGhlIHJlZ2lzdGVyIHZhbHVlCisgKgorICogV3JpdGVzIGEgc2luZ2xl IGJ5dGUgdG8gU0NEQy4gVGhpcyBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIgYXJvdW5kIHRoZQor ICogZHJtX3NjZGNfd3JpdGUoKSBmdW5jdGlvbi4KKyAqCisgKiBSZXR1cm5zOgorICogMCBvbiBz dWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgorICovCitzdGF0aWMg aW5saW5lIGludCBkcm1fc2NkY193cml0ZWIoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyLCB1 OCBvZmZzZXQsCisJCQkJICB1OCB2YWx1ZSkKK3sKKwlyZXR1cm4gZHJtX3NjZGNfd3JpdGUoYWRh cHRlciwgb2Zmc2V0LCAmdmFsdWUsIHNpemVvZih2YWx1ZSkpOworfQorCisjZW5kaWYKLS0gCjEu OS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK