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 18:33:24 +0100 Message-ID: <1434648809-24168-1-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 952C86ED82 for ; Thu, 18 Jun 2015 10:33:35 -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 ZCBmdW5jdGlvbnMgdG8gc2ltcGxpZnkgaXQgZnVydGhlciwgYWRkIGNvbW1lbnRzCmFuZCBmaXgg YWxpZ25tZW50IGNoZWNrLgoKT25lIGFkZGl0aW9uYWwgb3B0aW9uIGlzIG9mZnNldCBmaWVsZCB3 aGljaCBpcyBoZWxwZnVsIGlmIHdlIHdvdWxkIGxpa2UgdG8KaGF2ZSBtdWx0aXBsZSBiYXRjaGVz IGF0IGRpZmZlcmVudCBvZmZzZXRzIHdpdGhpbiB0aGUgcGFnZSBhbmQgc2VsZWN0IHRoZW0KYmFz ZWQgb24gc29tZSBjcml0ZXJpYS4gVGhpcyBpcyBub3QgYSByZXF1aXJlbWVudCBhdCB0aGlzIHBv aW50IGJ1dCBjb3VsZApoZWxwIGluIGZ1dHVyZSAoRGF2ZSkuCgooTWFueSB0aGFua3MgdG8gQ2hy aXMsIERhdmUgYW5kIFRob21hcyBmb3IgdGhlaXIgcmV2aWV3cyBhbmQgaW5wdXRzKQoKQ2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogRGF2ZSBHb3Jkb24gPGRh dmlkLnMuZ29yZG9uQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogUmFmYWVsIEJhcmJhbGhvIDxy YWZhZWwuYmFyYmFsaG9AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBcnVuIFNpbHV2ZXJ5IDxh cnVuLnNpbHV2ZXJ5QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYyAgICAgICAgfCAxOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAxOCArKysKIDIgZmls ZXMgY2hhbmdlZCwgMjEzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYwppbmRleCAwNDEzYjhmLi44Y2M4NTFkZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKQEAgLTIxMSw2ICsyMTEsNyBAQCBlbnVtIHsKIAlGQVVMVF9BTkRfQ09OVElOVUUg LyogVW5zdXBwb3J0ZWQgKi8KIH07CiAjZGVmaW5lIEdFTjhfQ1RYX0lEX1NISUZUIDMyCisjZGVm aW5lIENUWF9SQ1NfSU5ESVJFQ1RfQ1RYX09GRlNFVF9ERUZBVUxUICAweDE3CiAKIHN0YXRpYyBp bnQgaW50ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJ c3RydWN0IGludGVsX2NvbnRleHQgKmN0eCk7CkBAIC0xMDc3LDYgKzEwNzgsMTY4IEBAIHN0YXRp YyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKIAlyZXR1cm4gMDsKIH0KIAorI2RlZmluZSB3YV9jdHhfZW1pdChiYXRj aCwgY21kKSB7CVwKKwkJaWYgKFdBUk5fT04oaW5kZXggPj0gKFBBR0VfU0laRSAvIHNpemVvZih1 aW50MzJfdCkpKSkgewlcCisJCQlyZXR1cm4gLUVOT1NQQzsJCQkJCVwKKwkJfQkJCQkJCQlcCisJ CWJhdGNoW2luZGV4KytdID0gKGNtZCk7CQkJCQlcCisJfQorCisvKioKKyAqIGdlbjhfaW5pdF9p bmRpcmVjdGN0eF9iYigpIC0gaW5pdGlhbGl6ZSBpbmRpcmVjdCBjdHggYmF0Y2ggd2l0aCBXQQor ICoKKyAqIEByaW5nOiBvbmx5IGFwcGxpY2FibGUgZm9yIFJDUworICogQHdhX2N0eF9iYXRjaDog cGFnZSBpbiB3aGljaCBXQSBhcmUgbG9hZGVkCisgKiBAb2Zmc2V0OiBUaGlzIGlzIGZvciBmdXR1 cmUgdXNlIGluIGNhc2UgaWYgd2Ugd291bGQgbGlrZSB0byBoYXZlIG11bHRpcGxlCisgKiAgICAg ICAgICBiYXRjaGVzIGF0IGRpZmZlcmVudCBvZmZzZXRzIGFuZCBzZWxlY3QgdGhlbSBiYXNlZCBv biBhIGNyaXRlcmlhLgorICogQG51bV9kd29yZHM6IFRoZSBudW1iZXIgb2YgV0EgYXBwbGllZCBh cmUga25vd24gYXQgdGhlIGJlZ2lubmluZywgaXQgcmV0dXJucworICogdGhlIG5vIG9mIERXT1JE UyB3cml0dGVuLiBUaGlzIGJhdGNoIGRvZXMgbm90IGNvbnRhaW4gTUlfQkFUQ0hfQlVGRkVSX0VO RAorICogc28gaXQgYWRkcyBwYWRkaW5nIHRvIG1ha2UgaXQgY2FjaGVsaW5lIGFsaWduZWQuIE1J X0JBVENIX0JVRkZFUl9FTkQgd2lsbCBiZQorICogYWRkZWQgdG8gcGVyY3R4IGJhdGNoIGFuZCBi b3RoIG9mIHRoZW0gdG9nZXRoZXIgbWFrZXMgYSBjb21wbGV0ZSBiYXRjaCBidWZmZXIuCisgKgor ICogUmV0dXJuOiBub24temVybyBpZiB3ZSBleGNlZWQgdGhlIFBBR0VfU0laRSBsaW1pdC4KKyAq LworCitzdGF0aWMgaW50IGdlbjhfaW5pdF9pbmRpcmVjdGN0eF9iYihzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLAorCQkJCSAgICB1aW50MzJfdCAqKndhX2N0eF9iYXRjaCwKKwkJCQkgICAg dWludDMyX3Qgb2Zmc2V0LAorCQkJCSAgICB1aW50MzJfdCAqbnVtX2R3b3JkcykKK3sKKwl1aW50 MzJfdCBpbmRleDsKKwl1aW50MzJfdCAqYmF0Y2ggPSAqd2FfY3R4X2JhdGNoOworCisJaW5kZXgg PSBvZmZzZXQ7CisKKwkvKiBGSVhNRTogUmVwbGFjZSBtZSB3aXRoIFdBICovCisJd2FfY3R4X2Vt aXQoYmF0Y2gsIE1JX05PT1ApOworCisJLyogUGFkIHRvIGVuZCBvZiBjYWNoZWxpbmUgKi8KKwl3 aGlsZSAoaW5kZXggJSBDQUNIRUxJTkVfRFdPUkRTKQorCQl3YV9jdHhfZW1pdChiYXRjaCwgTUlf Tk9PUCk7CisKKwkvKgorCSAqIE1JX0JBVENIX0JVRkZFUl9FTkQgaXMgbm90IHJlcXVpcmVkIGlu IEluZGlyZWN0IGN0eCBCQiBiZWNhdXNlCisJICogZXhlY3V0aW9uIGRlcGVuZHMgb24gdGhlIGxl bmd0aCBzcGVjaWZpZWQgaW4gdGVybXMgb2YgY2FjaGUgbGluZXMKKwkgKiBpbiB0aGUgcmVnaXN0 ZXIgQ1RYX1JDU19JTkRJUkVDVF9DVFgKKwkgKi8KKworCSpudW1fZHdvcmRzID0gaW5kZXggLSBv ZmZzZXQ7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIGdlbjhfaW5pdF9wZXJjdHhfYmIoKSAt IGluaXRpYWxpemUgcGVyIGN0eCBiYXRjaCB3aXRoIFdBCisgKgorICogVGhpcyBmdW5jdGlvbiBk b2Vzbid0IGFkZCBhbnkgcGFkZGluZyB0byBjYWNoZWxpbmUgYXMgaXQgY29udGFpbnMKKyAqIE1J X0JBVENIX0JVRkZFUl9FTkQgYW5kIHBhZGRpbmcgYWZ0ZXIgaXQgaXMgcmVkdW5kYW50LgorICov CitzdGF0aWMgaW50IGdlbjhfaW5pdF9wZXJjdHhfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKKwkJCSAgICAgICB1aW50MzJfdCAqKndhX2N0eF9iYXRjaCwKKwkJCSAgICAgICB1aW50 MzJfdCBvZmZzZXQsCisJCQkgICAgICAgdWludDMyX3QgKm51bV9kd29yZHMpCit7CisJdWludDMy X3QgaW5kZXg7CisJdWludDMyX3QgKmJhdGNoID0gKndhX2N0eF9iYXRjaDsKKworCWluZGV4ID0g b2Zmc2V0OworCisJd2FfY3R4X2VtaXQoYmF0Y2gsIE1JX0JBVENIX0JVRkZFUl9FTkQpOworCisJ Km51bV9kd29yZHMgPSBpbmRleCAtIG9mZnNldDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMg aW50IGxyY19zZXR1cF93YV9jdHhfb2JqKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUz MiBzaXplKQoreworCWludCByZXQ7CisKKwlXQVJOX09OKHJpbmctPmlkICE9IFJDUyk7CisKKwly aW5nLT53YV9jdHgub2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwgUEFHRV9B TElHTihzaXplKSk7CisJaWYgKCFyaW5nLT53YV9jdHgub2JqKSB7CisJCURSTV9ERUJVR19EUklW RVIoImFsbG9jIExSQyBXQSBjdHggYmFja2luZyBvYmogZmFpbGVkLlxuIik7CisJCXJldHVybiAt RU5PTUVNOworCX0KKworCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihyaW5nLT53YV9jdHgu b2JqLCBQQUdFX1NJWkUsIDApOworCWlmIChyZXQpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigicGlu IExSQyBXQSBjdHggYmFja2luZyBvYmogZmFpbGVkOiAlZFxuIiwKKwkJCQkgcmV0KTsKKwkJZHJt X2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJnJpbmctPndhX2N0eC5vYmotPmJhc2UpOworCQlyZXR1 cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBscmNfZGVzdHJveV93 YV9jdHhfb2JqKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCit7CisJV0FSTl9PTihyaW5n LT5pZCAhPSBSQ1MpOworCisJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ocmluZy0+d2FfY3R4 Lm9iaik7CisJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJnJpbmctPndhX2N0eC5vYmotPmJh c2UpOworCXJpbmctPndhX2N0eC5vYmogPSBOVUxMOworfQorCitzdGF0aWMgaW50IGludGVsX2lu aXRfd29ya2Fyb3VuZF9iYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQoreworCWludCBy ZXQgPSAwOworCXVpbnQzMl90ICpiYXRjaDsKKwl1aW50MzJfdCBudW1fZHdvcmRzOworCXN0cnVj dCBwYWdlICpwYWdlOworCXN0cnVjdCBpOTE1X2N0eF93b3JrYXJvdW5kcyAqd2FfY3R4ID0gJnJp bmctPndhX2N0eDsKKworCVdBUk5fT04ocmluZy0+aWQgIT0gUkNTKTsKKworCWlmIChyaW5nLT5z Y3JhdGNoLm9iaiA9PSBOVUxMKSB7CisJCURSTV9FUlJPUigic2NyYXRjaCBwYWdlIG5vdCBhbGxv Y2F0ZWQgZm9yICVzXG4iLCByaW5nLT5uYW1lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJ cmV0ID0gbHJjX3NldHVwX3dhX2N0eF9vYmoocmluZywgUEFHRV9TSVpFKTsKKwlpZiAocmV0KSB7 CisJCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBzZXR1cCBjb250ZXh0IFdBIHBhZ2U6ICVk XG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3Rf Z2V0X3BhZ2Uod2FfY3R4LT5vYmosIDApOworCWJhdGNoID0ga21hcF9hdG9taWMocGFnZSk7CisK KwlpZiAoSU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4gPT0gOCkgeworCQl3YV9jdHgtPmluZGN0 eF9iYXRjaF9vZmZzZXQgPSAwOworCisJCXJldCA9IGdlbjhfaW5pdF9pbmRpcmVjdGN0eF9iYihy aW5nLAorCQkJCQkgICAgICAgJmJhdGNoLAorCQkJCQkgICAgICAgd2FfY3R4LT5pbmRjdHhfYmF0 Y2hfb2Zmc2V0LAorCQkJCQkgICAgICAgJm51bV9kd29yZHMpOworCQlpZiAocmV0KQorCQkJZ290 byBvdXQ7CisKKwkJd2FfY3R4LT5pbmRjdHhfYmF0Y2hfc2l6ZSA9IHJvdW5kX3VwKG51bV9kd29y ZHMsIENBQ0hFTElORV9EV09SRFMpOworCQl3YV9jdHgtPnBlcmN0eF9iYXRjaF9vZmZzZXQgPSB3 YV9jdHgtPmluZGN0eF9iYXRjaF9zaXplOworCisJCXJldCA9IGdlbjhfaW5pdF9wZXJjdHhfYmIo cmluZywKKwkJCQkJICAmYmF0Y2gsCisJCQkJCSAgd2FfY3R4LT5wZXJjdHhfYmF0Y2hfb2Zmc2V0 LAorCQkJCQkgICZudW1fZHdvcmRzKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OworCX0gZWxz ZSB7CisJCVdBUk4oSU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4gPj0gOCwKKwkJICAgICAiV0Eg YmF0Y2ggYnVmZmVyIGlzIG5vdCBpbml0aWFsaXplZCBmb3IgR2VuJWRcbiIsCisJCSAgICAgSU5U RUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4pOworCX0KKworb3V0OgorCWt1bm1hcF9hdG9taWMoYmF0 Y2gpOworCWlmIChyZXQpCisJCWxyY19kZXN0cm95X3dhX2N0eF9vYmoocmluZyk7CisKKwlyZXR1 cm4gcmV0OworfQorCiBzdGF0aWMgaW50IGdlbjhfaW5pdF9jb21tb25fcmluZyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5k ZXY7CkBAIC0xNDExLDYgKzE1NzQsOSBAQCB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19jbGVhbnVw KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJCWt1bm1hcChzZ19wYWdlKHJpbmctPnN0 YXR1c19wYWdlLm9iai0+cGFnZXMtPnNnbCkpOwogCQlyaW5nLT5zdGF0dXNfcGFnZS5vYmogPSBO VUxMOwogCX0KKworCWlmIChyaW5nLT53YV9jdHgub2JqKQorCQlscmNfZGVzdHJveV93YV9jdHhf b2JqKHJpbmcpOwogfQogCiBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCkBAIC0xNDc0LDcgKzE2 NDAsMjEgQEAgc3RhdGljIGludCBsb2dpY2FsX3JlbmRlcl9yaW5nX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JcmV0dXJuIGludGVsX2lu aXRfcGlwZV9jb250cm9sKHJpbmcpOworCWlmIChJTlRFTF9JTkZPKHJpbmctPmRldiktPmdlbiA+ PSA4KSB7CisJCXJldCA9IGludGVsX2luaXRfd29ya2Fyb3VuZF9iYihyaW5nKTsKKwkJaWYgKHJl dCkgeworCQkJRFJNX0VSUk9SKCJXQSBiYXRjaCBidWZmZXJzIGFyZSBub3QgaW5pdGlhbGl6ZWQ6 ICVkXG4iLAorCQkJCSAgcmV0KTsKKwkJfQorCX0KKworCXJldCA9IGludGVsX2luaXRfcGlwZV9j b250cm9sKHJpbmcpOworCWlmIChyZXQpIHsKKwkJaWYgKHJpbmctPndhX2N0eC5vYmopCisJCQls cmNfZGVzdHJveV93YV9jdHhfb2JqKHJpbmcpOworCX0KKworCXJldHVybiByZXQ7CiB9CiAKIHN0 YXRpYyBpbnQgbG9naWNhbF9ic2RfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBA IC0xNzU0LDE1ICsxOTM0LDI2IEBAIHBvcHVsYXRlX2xyX2NvbnRleHQoc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vCiAJcmVnX3N0YXRl W0NUWF9TRUNPTkRfQkJfU1RBVEVdID0gcmluZy0+bW1pb19iYXNlICsgMHgxMTg7CiAJcmVnX3N0 YXRlW0NUWF9TRUNPTkRfQkJfU1RBVEUrMV0gPSAwOwogCWlmIChyaW5nLT5pZCA9PSBSQ1MpIHsK LQkJLyogVE9ETzogYWNjb3JkaW5nIHRvIEJTcGVjLCB0aGUgcmVnaXN0ZXIgc3RhdGUgY29udGV4 dAotCQkgKiBmb3IgQ0hWIGRvZXMgbm90IGhhdmUgdGhlc2UuIE9UT0gsIHRoZXNlIHJlZ2lzdGVy cyBkbwotCQkgKiBleGlzdCBpbiBDSFYuIEknbSB3YWl0aW5nIGZvciBhIGNsYXJpZmljYXRpb24g Ki8KIAkJcmVnX3N0YXRlW0NUWF9CQl9QRVJfQ1RYX1BUUl0gPSByaW5nLT5tbWlvX2Jhc2UgKyAw eDFjMDsKIAkJcmVnX3N0YXRlW0NUWF9CQl9QRVJfQ1RYX1BUUisxXSA9IDA7CiAJCXJlZ19zdGF0 ZVtDVFhfUkNTX0lORElSRUNUX0NUWF0gPSByaW5nLT5tbWlvX2Jhc2UgKyAweDFjNDsKIAkJcmVn X3N0YXRlW0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYKzFdID0gMDsKIAkJcmVnX3N0YXRlW0NUWF9SQ1Nf SU5ESVJFQ1RfQ1RYX09GRlNFVF0gPSByaW5nLT5tbWlvX2Jhc2UgKyAweDFjODsKIAkJcmVnX3N0 YXRlW0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYX09GRlNFVCsxXSA9IDA7CisJCWlmIChyaW5nLT53YV9j dHgub2JqKSB7CisJCQlyZWdfc3RhdGVbQ1RYX1JDU19JTkRJUkVDVF9DVFgrMV0gPQorCQkJCShp OTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQocmluZy0+d2FfY3R4Lm9iaikgKworCQkJCSByaW5nLT53 YV9jdHguaW5kY3R4X2JhdGNoX29mZnNldCAqIHNpemVvZih1aW50MzJfdCkpIHwKKwkJCQkocmlu Zy0+d2FfY3R4LmluZGN0eF9iYXRjaF9zaXplIC8gQ0FDSEVMSU5FX0RXT1JEUyk7CisKKwkJCXJl Z19zdGF0ZVtDVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVQrMV0gPQorCQkJCUNUWF9SQ1NfSU5E SVJFQ1RfQ1RYX09GRlNFVF9ERUZBVUxUIDw8IDY7CisKKwkJCXJlZ19zdGF0ZVtDVFhfQkJfUEVS X0NUWF9QVFIrMV0gPQorCQkJCShpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQocmluZy0+d2FfY3R4 Lm9iaikgKworCQkJCSByaW5nLT53YV9jdHgucGVyY3R4X2JhdGNoX29mZnNldCAqIHNpemVvZih1 aW50MzJfdCkpIHwKKwkJCQkweDAxOworCQl9CiAJfQogCXJlZ19zdGF0ZVtDVFhfTFJJX0hFQURF Ul8xXSA9IE1JX0xPQURfUkVHSVNURVJfSU1NKDkpOwogCXJlZ19zdGF0ZVtDVFhfTFJJX0hFQURF Ul8xXSB8PSBNSV9MUklfRk9SQ0VfUE9TVEVEOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCmluZGV4IDM5ZjZkZmMuLjFmMzhhZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKQEAgLTEyLDYgKzEyLDcgQEAKICAqIHdvcmthcm91bmRzIQogICov CiAjZGVmaW5lIENBQ0hFTElORV9CWVRFUyA2NAorI2RlZmluZSBDQUNIRUxJTkVfRFdPUkRTIChD QUNIRUxJTkVfQllURVMgLyBzaXplb2YodWludDMyX3QpKQogCiAvKgogICogR2VuMiBCU3BlYyAi MS4gUHJvZ3JhbW1pbmcgRW52aXJvbm1lbnQiIC8gMS40LjQuNiAiUmluZyBCdWZmZXIgVXNlIgpA QCAtMTE5LDYgKzEyMCwyMiBAQCBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciB7CiAKIHN0cnVjdAlp bnRlbF9jb250ZXh0OwogCisvKgorICogd2UgdXNlIGEgc2luZ2xlIHBhZ2UgdG8gbG9hZCBjdHgg d29ya2Fyb3VuZHMgc28gYWxsIG9mIHRoZXNlCisgKiB2YWx1ZXMgYXJlIHJlZmVycmVkIGluIHRl cm1zIG9mIGR3b3JkcworICoKKyAqIG9mZnNldCBmaWVsZCAtIGhlbHBmdWwgaW4gY2FzZSBpZiB3 ZSB3YW50IHRvIGhhdmUgbXVsdGlwbGUgYmF0Y2hlcworICogYXQgZGlmZmVyZW50IG9mZnNldHMg YmFzZWQgb24gc29tZSBjb25kaXRpb25zLiBJdCBpcyBub3QgYSByZXF1aXJlbWVudAorICogYXQg dGhlIG1vbWVudCBidXQgcHJvdmlkZXMgYW4gb3B0aW9uIGZvciBmdXR1cmUgdXNlLgorICogaW5k Y3R4X2JhdGNoX3NpemUgLSBIVyBleHBlY3RzIHRoaXMgdmFsdWUgaW4gdGVybXMgb2YgY2FjaGVs aW5lcworICovCitzdHJ1Y3QgIGk5MTVfY3R4X3dvcmthcm91bmRzIHsKKwl1MzIgaW5kY3R4X2Jh dGNoX29mZnNldDsKKwl1MzIgaW5kY3R4X2JhdGNoX3NpemU7CisJdTMyIHBlcmN0eF9iYXRjaF9v ZmZzZXQ7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKK307CisKIHN0cnVjdCAg aW50ZWxfZW5naW5lX2NzIHsKIAljb25zdCBjaGFyCSpuYW1lOwogCWVudW0gaW50ZWxfcmluZ19p ZCB7CkBAIC0xNDIsNiArMTU5LDcgQEAgc3RydWN0ICBpbnRlbF9lbmdpbmVfY3MgewogCXN0cnVj dCBpOTE1X2dlbV9iYXRjaF9wb29sIGJhdGNoX3Bvb2w7CiAKIAlzdHJ1Y3QgaW50ZWxfaHdfc3Rh dHVzX3BhZ2Ugc3RhdHVzX3BhZ2U7CisJc3RydWN0IGk5MTVfY3R4X3dvcmthcm91bmRzIHdhX2N0 eDsKIAogCXVuc2lnbmVkIGlycV9yZWZjb3VudDsgLyogcHJvdGVjdGVkIGJ5IGRldl9wcml2LT5p cnFfbG9jayAqLwogCXUzMgkJaXJxX2VuYWJsZV9tYXNrOwkvKiBiaXRtYXNrIHRvIGVuYWJsZSBy aW5nIGludGVycnVwdCAqLwotLSAKMi4zLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==