From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun Siluvery Subject: [PATCH v5 1/6] drm/i915/gen8: Add infrastructure to initialize WA batch buffers Date: Thu, 18 Jun 2015 14:07:30 +0100 Message-ID: <1434632855-7080-2-git-send-email-arun.siluvery@linux.intel.com> References: <1434632855-7080-1-git-send-email-arun.siluvery@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 12D0D6ECB2 for ; Thu, 18 Jun 2015 06:08:02 -0700 (PDT) In-Reply-To: <1434632855-7080-1-git-send-email-arun.siluvery@linux.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 List-Id: intel-gfx@lists.freedesktop.org U29tZSBvZiB0aGUgV0EgYXJlIHRvIGJlIGFwcGxpZWQgZHVyaW5nIGNvbnRleHQgc2F2ZSBidXQg YmVmb3JlIHJlc3RvcmUgYW5kCnNvbWUgYXQgdGhlIGVuZCBvZiBjb250ZXh0IHNhdmUvcmVzdG9y ZSBidXQgYmVmb3JlIGV4ZWN1dGluZyB0aGUgaW5zdHJ1Y3Rpb25zCmluIHRoZSByaW5nLCBXQSBi YXRjaCBidWZmZXJzIGFyZSBjcmVhdGVkIGZvciB0aGlzIHB1cnBvc2UgYW5kIHRoZXNlIFdBIGNh bm5vdApiZSBhcHBsaWVkIHVzaW5nIG5vcm1hbCBtZWFucy4gRWFjaCBjb250ZXh0IGhhcyB0d28g cmVnaXN0ZXJzIHRvIGxvYWQgdGhlCm9mZnNldHMgb2YgdGhlc2UgYmF0Y2ggYnVmZmVycy4gSWYg dGhleSBhcmUgbm9uLXplcm8sIEhXIHVuZGVyc3RhbmRzIHRoYXQgaXQKbmVlZCB0byBleGVjdXRl IHRoZXNlIGJhdGNoZXMuCgp2MTogSW4gdGhpcyB2ZXJzaW9uIHR3byBzZXBhcmF0ZSByaW5nX2J1 ZmZlciBvYmplY3RzIHdlcmUgdXNlZCB0byBsb2FkIFdBCmluc3RydWN0aW9ucyBmb3IgaW5kaXJl Y3QgYW5kIHBlciBjb250ZXh0IGJhdGNoIGJ1ZmZlcnMgYW5kIHRoZXkgd2VyZSBwYXJ0Cm9mIGV2 ZXJ5IGNvbnRleHQuCgp2MjogQ2hyaXMgc3VnZ2VzdGVkIHRvIGluY2x1ZGUgYWRkaXRpb25hbCBw YWdlIGluIGNvbnRleHQgYW5kIHVzZSBpdCB0byBsb2FkCnRoZXNlIFdBIGluc3RlYWQgb2YgY3Jl YXRpbmcgc2VwYXJhdGUgb2JqZWN0cy4gVGhpcyB3aWxsIHNpbXBsaWZ5IGxvdCBvZiB0aGluZ3MK YXMgd2UgbmVlZCBub3QgZXhwbGljaXR5IHBpbi91bnBpbiB0aGVtLiBUaG9tYXMgRGFuaWVsIGZ1 cnRoZXIgcG9pbnRlZCB0aGF0IEd1QwppcyBwbGFubmluZyB0byB1c2UgYSBzaW1pbGFyIHNldHVw IHRvIHNoYXJlIGRhdGEgYmV0d2VlbiBHdUMgYW5kIGRyaXZlciBhbmQKV0EgYmF0Y2ggYnVmZmVy cyBjYW4gcHJvYmFibHkgc2hhcmUgdGhhdCBwYWdlLiBIb3dldmVyIGFmdGVyIGRpc2N1c3Npb25z IHdpdGgKRGF2ZSB3aG8gaXMgaW1wbGVtZW50aW5nIEd1QyBjaGFuZ2VzLCBoZSBzdWdnZXN0ZWQg dG8gdXNlIGFuIGluZGVwZW5kZW50IHBhZ2UKZm9yIHRoZSByZWFzb25zIC0gR3VDIGFyZWEgbWln aHQgZ3JvdyBhbmQgdGhlc2UgV0EgYXJlIGluaXRpYWxpemVkIG9ubHkgb25jZSBhbmQKYXJlIG5v dCBjaGFuZ2VkIGFmdGVyd2FyZHMgc28gd2UgY2FuIHNoYXJlIHRoZW0gc2hhcmUgYWNyb3NzIGFs bCBjb250ZXh0cy4KClRoZSBwYWdlIGlzIHVwZGF0ZWQgd2l0aCBXQSBkdXJpbmcgcmVuZGVyIHJp bmcgaW5pdC4gVGhpcyBoYXMgYW4gYWR2YW50YWdlIG9mCm5vdCBhZGRpbmcgbW9yZSBzcGVjaWFs IGNhc2VzIHRvIGRlZmF1bHRfY29udGV4dC4KCldlIGRvbid0IGtub3cgdXBmcm9udCB0aGUgbnVt YmVyIG9mIFdBIHdlIHdpbGwgYXBwbHlpbmcgdXNpbmcgdGhlc2UgYmF0Y2ggYnVmZmVycy4KRm9y IHRoaXMgcmVhc29uIHRoZSBzaXplIHdhcyBmaXhlZCBlYXJsaWVyIGJ1dCBpdCBpcyBub3QgYSBn b29kIGlkZWEuIFRvIGZpeCB0aGlzLAp0aGUgZnVuY3Rpb25zIHRoYXQgbG9hZCBpbnN0cnVjdGlv bnMgYXJlIG1vZGlmaWVkIHRvIHJlcG9ydCB0aGUgbm8gb2YgY29tbWFuZHMKaW5zZXJ0ZWQgYW5k IHRoZSBzaXplIGlzIG5vdyBjYWxjdWxhdGVkIGFmdGVyIHRoZSBiYXRjaCBpcyB1cGRhdGVkLiBB IG1hY3JvIGlzCmludHJvZHVjZWQgdG8gYWRkIGNvbW1hbmRzIHRvIHRoZXNlIGJhdGNoIGJ1ZmZl cnMgd2hpY2ggYWxzbyBjaGVja3MgZm9yIG92ZXJmbG93CmFuZCByZXR1cm5zIGVycm9yLgpXZSBo YXZlIGEgZnVsbCBwYWdlIGRlZGljYXRlZCBmb3IgdGhlc2UgV0Egc28gdGhhdCBzaG91bGQgYmUg c3VmZmljaWVudCBmb3IKZ29vZCBudW1iZXIgb2YgV0EsIGFueXRoaW5nIG1vcmUgbWVhbnMgd2Ug aGF2ZSBtYWpvciBpc3N1ZXMuClRoZSBsaXN0IGZvciBHZW44IGlzIHNtYWxsLCBzYW1lIGZvciBH ZW45IGFsc28sIG1heWJlIGZldyBtb3JlIGdldHMgYWRkZWQKZ29pbmcgZm9yd2FyZCBidXQgbm90 IGNsb3NlIHRvIGZpbGxpbmcgZW50aXJlIHBhZ2UuIENocmlzIHN1Z2dlc3RlZCBhIHR3by1wYXNz CmFwcHJvYWNoIGJ1dCB3ZSBhZ3JlZWQgdG8gZ28gd2l0aCBzaW5nbGUgcGFnZSBzZXR1cCBhcyBp dCBpcyBhIG9uZS1vZmYgcm91dGluZQphbmQgc2ltcGxlciBjb2RlIHdpbnMuIE1vdmVkIGFyb3Vu ZCBmdW5jdGlvbnMgdG8gc2ltcGxpZnkgaXQgZnVydGhlciwgYWRkIGNvbW1lbnRzLgoKT25lIGFk ZGl0aW9uYWwgb3B0aW9uIGlzIG9mZnNldCBmaWVsZCB3aGljaCBpcyBoZWxwZnVsIGlmIHdlIHdv dWxkIGxpa2UgdG8KaGF2ZSBtdWx0aXBsZSBiYXRjaGVzIGF0IGRpZmZlcmVudCBvZmZzZXRzIHdp dGhpbiB0aGUgcGFnZSBhbmQgc2VsZWN0IHRoZW0KYmFzZWQgb24gc29tZSBjcml0ZXJpYS4gVGhp cyBpcyBub3QgYSByZXF1aXJlbWVudCBhdCB0aGlzIHBvaW50IGJ1dCBjb3VsZApoZWxwIGluIGZ1 dHVyZSAoRGF2ZSkuCgooVGhhbmtzIHRvIENocmlzLCBEYXZlIGFuZCBUaG9tYXMgZm9yIHRoZWly IHJldmlld3MgYW5kIGlucHV0cykKClNpZ25lZC1vZmYtYnk6IFJhZmFlbCBCYXJiYWxobyA8cmFm YWVsLmJhcmJhbGhvQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQXJ1biBTaWx1dmVyeSA8YXJ1 bi5zaWx1dmVyeUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgICAgICAgIHwgMjA0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgMTggKysrCiAyIGZpbGVz IGNoYW5nZWQsIDIxOCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKaW5kZXggMDQxM2I4Zi4uYWQwYjE4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKQEAgLTIxMSw2ICsyMTEsNyBAQCBlbnVtIHsKIAlGQVVMVF9BTkRfQ09OVElOVUUgLyog VW5zdXBwb3J0ZWQgKi8KIH07CiAjZGVmaW5lIEdFTjhfQ1RYX0lEX1NISUZUIDMyCisjZGVmaW5l IENUWF9SQ1NfSU5ESVJFQ1RfQ1RYX09GRlNFVF9ERUZBVUxUICAweDE3CiAKIHN0YXRpYyBpbnQg aW50ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCk7CkBAIC0xMDc3LDYgKzEwNzgsMTczIEBAIHN0YXRpYyBp bnQgaW50ZWxfbG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywKIAlyZXR1cm4gMDsKIH0KIAorI2RlZmluZSB3YV9jdHhfZW1pdChiYXRjaCwg Y21kKSB7CVwKKwkJaWYgKFdBUk5fT04oaW5kZXggPj0gKFBBR0VfU0laRSAvIHNpemVvZih1aW50 MzJfdCkpKSkgewlcCisJCQlyZXR1cm4gLUVOT1NQQzsJCQkJCVwKKwkJfQkJCQkJCQlcCisJCWJh dGNoW2luZGV4KytdID0gKGNtZCk7CQkJCQlcCisJfQorCisvKioKKyAqIGdlbjhfaW5pdF9pbmRp cmVjdGN0eF9iYigpIC0gaW5pdGlhbGl6ZSBpbmRpcmVjdCBjdHggYmF0Y2ggd2l0aCBXQQorICoK KyAqIEByaW5nOiBvbmx5IGFwcGxpY2FibGUgZm9yIFJDUworICogQHdhX2N0eF9iYXRjaDogcGFn ZSBpbiB3aGljaCBXQSBhcmUgbG9hZGVkCisgKiBAb2Zmc2V0OiBUaGlzIGlzIGZvciBmdXR1cmUg dXNlIGluIGNhc2UgaWYgd2Ugd291bGQgbGlrZSB0byBoYXZlIG11bHRpcGxlCisgKiAgICAgICAg ICBiYXRjaGVzIGF0IGRpZmZlcmVudCBvZmZzZXRzIGFuZCBzZWxlY3QgdGhlbSBiYXNlZCBvbiBh IGNyaXRlcmlhLgorICogQG51bV9kd29yZHM6IFRoZSBudW1iZXIgb2YgV0EgYXBwbGllZCBhcmUg a25vd24gYXQgdGhlIGJlZ2lubmluZywgaXQgcmV0dXJucworICogdGhlIG5vIG9mIERXT1JEUyB3 cml0dGVuLiBUaGlzIGJhdGNoIGRvZXMgbm90IGNvbnRhaW4gTUlfQkFUQ0hfQlVGRkVSX0VORAor ICogc28gaXQgYWRkcyBwYWRkaW5nIHRvIG1ha2UgaXQgY2FjaGVsaW5lIGFsaWduZWQuIE1JX0JB VENIX0JVRkZFUl9FTkQgd2lsbCBiZQorICogYWRkZWQgdG8gcGVyY3R4IGJhdGNoIGFuZCBib3Ro IG9mIHRoZW0gdG9nZXRoZXIgbWFrZXMgYSBjb21wbGV0ZSBiYXRjaCBidWZmZXIuCisgKgorICog UmV0dXJuOiBub24temVybyBpZiB3ZSBleGNlZWQgdGhlIFBBR0VfU0laRSBsaW1pdC4KKyAqLwor CitzdGF0aWMgaW50IGdlbjhfaW5pdF9pbmRpcmVjdGN0eF9iYihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLAorCQkJCSAgICB1aW50MzJfdCAqKndhX2N0eF9iYXRjaCwKKwkJCQkgICAgdWlu dDMyX3Qgb2Zmc2V0LAorCQkJCSAgICB1aW50MzJfdCAqbnVtX2R3b3JkcykKK3sKKwl1aW50MzJf dCBpbmRleDsKKwl1aW50MzJfdCAqYmF0Y2ggPSAqd2FfY3R4X2JhdGNoOworCisJaW5kZXggPSBv ZmZzZXQ7CisKKwkvKiBGSVhNRTogZmlsbCBvbmUgY2FjaGVsaW5lIHdpdGggTk9PUHMuCisJICog UmVwbGFjZSB0aGVzZSBpbnN0cnVjdGlvbnMgd2l0aCBXQQorCSAqLworCXdoaWxlIChpbmRleCA8 IChvZmZzZXQgKyAxNikpCisJCXdhX2N0eF9lbWl0KGJhdGNoLCBNSV9OT09QKTsKKworCS8qCisJ ICogTUlfQkFUQ0hfQlVGRkVSX0VORCBpcyBub3QgcmVxdWlyZWQgaW4gSW5kaXJlY3QgY3R4IEJC IGJlY2F1c2UKKwkgKiBleGVjdXRpb24gZGVwZW5kcyBvbiB0aGUgbGVuZ3RoIHNwZWNpZmllZCBp biB0ZXJtcyBvZiBjYWNoZSBsaW5lcworCSAqIGluIHRoZSByZWdpc3RlciBDVFhfUkNTX0lORElS RUNUX0NUWAorCSAqLworCisJKm51bV9kd29yZHMgPSBpbmRleCAtIG9mZnNldDsKKworCXJldHVy biAwOworfQorCisvKgorICogZ2VuOF9pbml0X3BlcmN0eF9iYigpIC0gaW5pdGlhbGl6ZSBwZXIg Y3R4IGJhdGNoIHdpdGggV0EKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3QgYWRkIGFueSBw YWRkaW5nIGF0IHRoZSBlbmQgYXMgaXQgY29udGFpbnMKKyAqIE1JX0JBVENIX0JVRkZFUl9FTkQg YW5kIHBhZGRpbmcgYWZ0ZXIgaXQgaXMgcmVkdW5kYW50LgorICovCitzdGF0aWMgaW50IGdlbjhf aW5pdF9wZXJjdHhfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKKwkJCSAgICAgICB1 aW50MzJfdCAqKndhX2N0eF9iYXRjaCwKKwkJCSAgICAgICB1aW50MzJfdCBvZmZzZXQsCisJCQkg ICAgICAgdWludDMyX3QgKm51bV9kd29yZHMpCit7CisJdWludDMyX3QgaW5kZXg7CisJdWludDMy X3QgKmJhdGNoID0gKndhX2N0eF9iYXRjaDsKKworCWluZGV4ID0gb2Zmc2V0OworCisJLyogRklY TUU6IGZpbGwgb25lIGNhY2hlbGluZSB3aXRoIE5PT1BzLgorCSAqIFJlcGxhY2UgdGhlc2UgaW5z dHJ1Y3Rpb25zIHdpdGggV0EKKwkgKi8KKwl3aGlsZSAoaW5kZXggPCAob2Zmc2V0ICsgMTYpKQor CQl3YV9jdHhfZW1pdChiYXRjaCwgTUlfTk9PUCk7CisKKwliYXRjaFtpbmRleCAtIDFdID0gTUlf QkFUQ0hfQlVGRkVSX0VORDsKKworCSpudW1fZHdvcmRzID0gaW5kZXggLSBvZmZzZXQ7CisKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBscmNfc2V0dXBfd2FfY3R4X29iaihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2l6ZSkKK3sKKwlpbnQgcmV0OworCisJV0FSTl9PTihy aW5nLT5pZCAhPSBSQ1MpOworCisJcmluZy0+d2FfY3R4Lm9iaiA9IGk5MTVfZ2VtX2FsbG9jX29i amVjdChyaW5nLT5kZXYsIFBBR0VfQUxJR04oc2l6ZSkpOworCWlmICghcmluZy0+d2FfY3R4Lm9i aikgeworCQlEUk1fREVCVUdfRFJJVkVSKCJhbGxvYyBMUkMgV0EgY3R4IGJhY2tpbmcgb2JqIGZh aWxlZC5cbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlyZXQgPSBpOTE1X2dlbV9vYmpf Z2d0dF9waW4ocmluZy0+d2FfY3R4Lm9iaiwgUEFHRV9TSVpFLCAwKTsKKwlpZiAocmV0KSB7CisJ CURSTV9ERUJVR19EUklWRVIoInBpbiBMUkMgV0EgY3R4IGJhY2tpbmcgb2JqIGZhaWxlZDogJWRc biIsCisJCQkJIHJldCk7CisJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZyaW5nLT53YV9j dHgub2JqLT5iYXNlKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3Rh dGljIHZvaWQgbHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQoreworCVdBUk5fT04ocmluZy0+aWQgIT0gUkNTKTsKKworCWk5MTVfZ2VtX29iamVjdF9n Z3R0X3VucGluKHJpbmctPndhX2N0eC5vYmopOworCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNl KCZyaW5nLT53YV9jdHgub2JqLT5iYXNlKTsKKwlyaW5nLT53YV9jdHgub2JqID0gTlVMTDsKK30K Kworc3RhdGljIGludCBpbnRlbF9pbml0X3dvcmthcm91bmRfYmIoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZykKK3sKKwlpbnQgcmV0ID0gMDsKKwl1aW50MzJfdCAqYmF0Y2g7CisJdWludDMy X3QgbnVtX2R3b3JkczsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlzdHJ1Y3QgaTkxNV9jdHhfd29y a2Fyb3VuZHMgKndhX2N0eCA9ICZyaW5nLT53YV9jdHg7CisKKwlXQVJOX09OKHJpbmctPmlkICE9 IFJDUyk7CisKKwlpZiAocmluZy0+c2NyYXRjaC5vYmogPT0gTlVMTCkgeworCQlEUk1fRVJST1Io InNjcmF0Y2ggcGFnZSBub3QgYWxsb2NhdGVkIGZvciAlc1xuIiwgcmluZy0+bmFtZSk7CisJCXJl dHVybiAtRUlOVkFMOworCX0KKworCXJldCA9IGxyY19zZXR1cF93YV9jdHhfb2JqKHJpbmcsIFBB R0VfU0laRSk7CisJaWYgKHJldCkgeworCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gc2V0 dXAgY29udGV4dCBXQSBwYWdlOiAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlw YWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKHdhX2N0eC0+b2JqLCAwKTsKKwliYXRjaCA9 IGttYXBfYXRvbWljKHBhZ2UpOworCisJaWYgKElOVEVMX0lORk8ocmluZy0+ZGV2KS0+Z2VuID09 IDgpIHsKKwkJd2FfY3R4LT5pbmRjdHhfYmF0Y2hfb2Zmc2V0ID0gMDsKKworCQlyZXQgPSBnZW44 X2luaXRfaW5kaXJlY3RjdHhfYmIocmluZywKKwkJCQkJICAgICAgICZiYXRjaCwKKwkJCQkJICAg ICAgIHdhX2N0eC0+aW5kY3R4X2JhdGNoX29mZnNldCwKKwkJCQkJICAgICAgICZudW1fZHdvcmRz KTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OworCisJCXdhX2N0eC0+aW5kY3R4X2JhdGNoX3Np emUgPSByb3VuZF91cChudW1fZHdvcmRzLCBDQUNIRUxJTkVfRFdPUkRTKTsKKwkJd2FfY3R4LT5w ZXJjdHhfYmF0Y2hfb2Zmc2V0ID0gd2FfY3R4LT5pbmRjdHhfYmF0Y2hfc2l6ZTsKKworCQlyZXQg PSBnZW44X2luaXRfcGVyY3R4X2JiKHJpbmcsCisJCQkJCSAgJmJhdGNoLAorCQkJCQkgIHdhX2N0 eC0+cGVyY3R4X2JhdGNoX29mZnNldCwKKwkJCQkJICAmbnVtX2R3b3Jkcyk7CisJCWlmIChyZXQp CisJCQlnb3RvIG91dDsKKwl9IGVsc2UgeworCQlXQVJOKElOVEVMX0lORk8ocmluZy0+ZGV2KS0+ Z2VuID49IDgsCisJCSAgICAgIldBIGJhdGNoIGJ1ZmZlciBpcyBub3QgaW5pdGlhbGl6ZWQgZm9y IEdlbiVkXG4iLAorCQkgICAgIElOVEVMX0lORk8ocmluZy0+ZGV2KS0+Z2VuKTsKKwl9CisKK291 dDoKKwlrdW5tYXBfYXRvbWljKGJhdGNoKTsKKwlpZiAocmV0KQorCQlscmNfZGVzdHJveV93YV9j dHhfb2JqKHJpbmcpOworCisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGludCBnZW44X2luaXRf Y29tbW9uX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHsKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gcmluZy0+ZGV2OwpAQCAtMTQxMSw2ICsxNTc5LDkgQEAgdm9pZCBpbnRl bF9sb2dpY2FsX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCQlr dW5tYXAoc2dfcGFnZShyaW5nLT5zdGF0dXNfcGFnZS5vYmotPnBhZ2VzLT5zZ2wpKTsKIAkJcmlu Zy0+c3RhdHVzX3BhZ2Uub2JqID0gTlVMTDsKIAl9CisKKwlpZiAocmluZy0+d2FfY3R4Lm9iaikK KwkJbHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihyaW5nKTsKIH0KIAogc3RhdGljIGludCBsb2dpY2Fs X3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nKQpAQCAtMTQ3NCw3ICsxNjQ1LDIxIEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yZW5kZXJf cmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJl dDsKIAotCXJldHVybiBpbnRlbF9pbml0X3BpcGVfY29udHJvbChyaW5nKTsKKwlpZiAoSU5URUxf SU5GTyhyaW5nLT5kZXYpLT5nZW4gPj0gOCkgeworCQlyZXQgPSBpbnRlbF9pbml0X3dvcmthcm91 bmRfYmIocmluZyk7CisJCWlmIChyZXQpIHsKKwkJCURSTV9FUlJPUigiV0EgYmF0Y2ggYnVmZmVy cyBhcmUgbm90IGluaXRpYWxpemVkOiAlZFxuIiwKKwkJCQkgIHJldCk7CisJCX0KKwl9CisKKwly ZXQgPSBpbnRlbF9pbml0X3BpcGVfY29udHJvbChyaW5nKTsKKwlpZiAocmV0KSB7CisJCWlmIChy aW5nLT53YV9jdHgub2JqKQorCQkJbHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihyaW5nKTsKKwl9CisK KwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGxvZ2ljYWxfYnNkX3JpbmdfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAtMTc1NCwxNSArMTkzOSwyNiBAQCBwb3B1bGF0ZV9scl9j b250ZXh0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsIHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpjdHhfbwogCXJlZ19zdGF0ZVtDVFhfU0VDT05EX0JCX1NUQVRFXSA9IHJpbmctPm1taW9f YmFzZSArIDB4MTE4OwogCXJlZ19zdGF0ZVtDVFhfU0VDT05EX0JCX1NUQVRFKzFdID0gMDsKIAlp ZiAocmluZy0+aWQgPT0gUkNTKSB7Ci0JCS8qIFRPRE86IGFjY29yZGluZyB0byBCU3BlYywgdGhl IHJlZ2lzdGVyIHN0YXRlIGNvbnRleHQKLQkJICogZm9yIENIViBkb2VzIG5vdCBoYXZlIHRoZXNl LiBPVE9ILCB0aGVzZSByZWdpc3RlcnMgZG8KLQkJICogZXhpc3QgaW4gQ0hWLiBJJ20gd2FpdGlu ZyBmb3IgYSBjbGFyaWZpY2F0aW9uICovCiAJCXJlZ19zdGF0ZVtDVFhfQkJfUEVSX0NUWF9QVFJd ID0gcmluZy0+bW1pb19iYXNlICsgMHgxYzA7CiAJCXJlZ19zdGF0ZVtDVFhfQkJfUEVSX0NUWF9Q VFIrMV0gPSAwOwogCQlyZWdfc3RhdGVbQ1RYX1JDU19JTkRJUkVDVF9DVFhdID0gcmluZy0+bW1p b19iYXNlICsgMHgxYzQ7CiAJCXJlZ19zdGF0ZVtDVFhfUkNTX0lORElSRUNUX0NUWCsxXSA9IDA7 CiAJCXJlZ19zdGF0ZVtDVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVRdID0gcmluZy0+bW1pb19i YXNlICsgMHgxYzg7CiAJCXJlZ19zdGF0ZVtDVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVQrMV0g PSAwOworCQlpZiAocmluZy0+d2FfY3R4Lm9iaikgeworCQkJcmVnX3N0YXRlW0NUWF9SQ1NfSU5E SVJFQ1RfQ1RYKzFdID0KKwkJCQkoaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHJpbmctPndhX2N0 eC5vYmopICsKKwkJCQkgcmluZy0+d2FfY3R4LmluZGN0eF9iYXRjaF9vZmZzZXQgKiBzaXplb2Yo dWludDMyX3QpKSB8CisJCQkJKHJpbmctPndhX2N0eC5pbmRjdHhfYmF0Y2hfc2l6ZSAvIENBQ0hF TElORV9EV09SRFMpOworCisJCQlyZWdfc3RhdGVbQ1RYX1JDU19JTkRJUkVDVF9DVFhfT0ZGU0VU KzFdID0KKwkJCQlDVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVRfREVGQVVMVCA8PCA2OworCisJ CQlyZWdfc3RhdGVbQ1RYX0JCX1BFUl9DVFhfUFRSKzFdID0KKwkJCQkoaTkxNV9nZW1fb2JqX2dn dHRfb2Zmc2V0KHJpbmctPndhX2N0eC5vYmopICsKKwkJCQkgcmluZy0+d2FfY3R4LnBlcmN0eF9i YXRjaF9vZmZzZXQgKiBzaXplb2YodWludDMyX3QpKSB8CisJCQkJMHgwMTsKKwkJfQogCX0KIAly ZWdfc3RhdGVbQ1RYX0xSSV9IRUFERVJfMV0gPSBNSV9MT0FEX1JFR0lTVEVSX0lNTSg5KTsKIAly ZWdfc3RhdGVbQ1RYX0xSSV9IRUFERVJfMV0gfD0gTUlfTFJJX0ZPUkNFX1BPU1RFRDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCAzOWY2ZGZjLi4xZjM4YWYzIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC0xMiw2ICsxMiw3IEBA CiAgKiB3b3JrYXJvdW5kcyEKICAqLwogI2RlZmluZSBDQUNIRUxJTkVfQllURVMgNjQKKyNkZWZp bmUgQ0FDSEVMSU5FX0RXT1JEUyAoQ0FDSEVMSU5FX0JZVEVTIC8gc2l6ZW9mKHVpbnQzMl90KSkK IAogLyoKICAqIEdlbjIgQlNwZWMgIjEuIFByb2dyYW1taW5nIEVudmlyb25tZW50IiAvIDEuNC40 LjYgIlJpbmcgQnVmZmVyIFVzZSIKQEAgLTExOSw2ICsxMjAsMjIgQEAgc3RydWN0IGludGVsX3Jp bmdidWZmZXIgewogCiBzdHJ1Y3QJaW50ZWxfY29udGV4dDsKIAorLyoKKyAqIHdlIHVzZSBhIHNp bmdsZSBwYWdlIHRvIGxvYWQgY3R4IHdvcmthcm91bmRzIHNvIGFsbCBvZiB0aGVzZQorICogdmFs dWVzIGFyZSByZWZlcnJlZCBpbiB0ZXJtcyBvZiBkd29yZHMKKyAqCisgKiBvZmZzZXQgZmllbGQg LSBoZWxwZnVsIGluIGNhc2UgaWYgd2Ugd2FudCB0byBoYXZlIG11bHRpcGxlIGJhdGNoZXMKKyAq IGF0IGRpZmZlcmVudCBvZmZzZXRzIGJhc2VkIG9uIHNvbWUgY29uZGl0aW9ucy4gSXQgaXMgbm90 IGEgcmVxdWlyZW1lbnQKKyAqIGF0IHRoZSBtb21lbnQgYnV0IHByb3ZpZGVzIGFuIG9wdGlvbiBm b3IgZnV0dXJlIHVzZS4KKyAqIGluZGN0eF9iYXRjaF9zaXplIC0gSFcgZXhwZWN0cyB0aGlzIHZh bHVlIGluIHRlcm1zIG9mIGNhY2hlbGluZXMKKyAqLworc3RydWN0ICBpOTE1X2N0eF93b3JrYXJv dW5kcyB7CisJdTMyIGluZGN0eF9iYXRjaF9vZmZzZXQ7CisJdTMyIGluZGN0eF9iYXRjaF9zaXpl OworCXUzMiBwZXJjdHhfYmF0Y2hfb2Zmc2V0OworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmo7Cit9OworCiBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7CiAJY29uc3QgY2hhcgkqbmFt ZTsKIAllbnVtIGludGVsX3JpbmdfaWQgewpAQCAtMTQyLDYgKzE1OSw3IEBAIHN0cnVjdCAgaW50 ZWxfZW5naW5lX2NzIHsKIAlzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hfcG9vbCBiYXRjaF9wb29sOwog CiAJc3RydWN0IGludGVsX2h3X3N0YXR1c19wYWdlIHN0YXR1c19wYWdlOworCXN0cnVjdCBpOTE1 X2N0eF93b3JrYXJvdW5kcyB3YV9jdHg7CiAKIAl1bnNpZ25lZCBpcnFfcmVmY291bnQ7IC8qIHBy b3RlY3RlZCBieSBkZXZfcHJpdi0+aXJxX2xvY2sgKi8KIAl1MzIJCWlycV9lbmFibGVfbWFzazsJ LyogYml0bWFzayB0byBlbmFibGUgcmluZyBpbnRlcnJ1cHQgKi8KLS0gCjIuMy4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=