From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: =?utf-8?q?=5BPATCH_4/5=5D_drm/i915=3A_add_SNB_and_IVB?= =?utf-8?q?_video_sprite_support?= Date: Wed, 2 Nov 2011 13:03:22 -0700 Message-ID: <1320264203-18715-5-git-send-email-jbarnes@virtuousgeek.org> References: <1320264203-18715-1-git-send-email-jbarnes@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from oproxy8-pub.bluehost.com (oproxy8-pub.bluehost.com [69.89.22.20]) by gabe.freedesktop.org (Postfix) with SMTP id 8B980A0C8A for ; Wed, 2 Nov 2011 13:03:51 -0700 (PDT) In-Reply-To: <1320264203-18715-1-git-send-email-jbarnes@virtuousgeek.org> 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: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, rob.clark@linaro.org List-Id: intel-gfx@lists.freedesktop.org VGhlIHZpZGVvIHNwcml0ZXMgc3VwcG9ydCB2YXJpb3VzIHZpZGVvIHN1cmZhY2UgZm9ybWF0cyBu YXRpdmVseSBhbmQgY2FuCmhhbmRsZSBzY2FsaW5nIGFzIHdlbGwuICBTbyBhZGQgc3VwcG9ydCBm b3IgdGhlbSB1c2luZyB0aGUgbmV3IERSTSBjb3JlCm92ZXJsYXkgc3VwcG9ydCBmdW5jdGlvbnMu CgpTaWduZWQtb2ZmLWJ5OiBKZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgIHwgICAgMSArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgIHwgIDEyMyArKysrKysrKysKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgfCAgIDI5ICsrLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICB8ICAgMjMgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZiLmMgICAgICAgfCAgICA2ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292 ZXJsYXkyLmMgfCAgNDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNiBmaWxl cyBjaGFuZ2VkLCA2MTAgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheTIuYwoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv TWFrZWZpbGUKaW5kZXggMGFlNmE3Yy4uNjE5MzQ3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAg LTI4LDYgKzI4LDcgQEAgaTkxNS15IDo9IGk5MTVfZHJ2Lm8gaTkxNV9kbWEubyBpOTE1X2lycS5v IGk5MTVfbWVtLm8gXAogCSAgaW50ZWxfZHZvLm8gXAogCSAgaW50ZWxfcmluZ2J1ZmZlci5vIFwK IAkgIGludGVsX292ZXJsYXkubyBcCisJICBpbnRlbF9vdmVybGF5Mi5vIFwKIAkgIGludGVsX29w cmVnaW9uLm8gXAogCSAgZHZvX2NoN3h4eC5vIFwKIAkgIGR2b19jaDcwMTcubyBcCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAppbmRleCA1YTA5NDE2Li5iMjI3MGZhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKQEAgLTI0NTAsNiArMjQ1MCw4IEBACiAjZGVmaW5lIFdNM19MUF9JTEsJCTB4NDUxMTAK ICNkZWZpbmUgIFdNM19MUF9FTgkJKDE8PDMxKQogI2RlZmluZSBXTTFTX0xQX0lMSwkJMHg0NTEy MAorI2RlZmluZSBXTTJTX0xQX0lWQgkJMHg0NTEyNAorI2RlZmluZSBXTTNTX0xQX0lWQgkJMHg0 NTEyOAogI2RlZmluZSAgV00xU19MUF9FTgkJKDE8PDMxKQogCiAvKiBNZW1vcnkgbGF0ZW5jeSB0 aW1lciByZWdpc3RlciAqLwpAQCAtMjY2Niw2ICsyNjY4LDEyNyBAQAogI2RlZmluZSBfRFNQQlNV UkYJCTB4NzExOUMKICNkZWZpbmUgX0RTUEJUSUxFT0ZGCQkweDcxMUE0CiAKKy8qIFNwcml0ZSBB IGNvbnRyb2wgKi8KKyNkZWZpbmUgX0RWU0FDTlRSCQkweDcyMTgwCisjZGVmaW5lICAgRFZTX0VO QUJMRQkJKDE8PDMxKQorI2RlZmluZSAgIERWU19HQU1NQV9FTkFCTEUJKDE8PDMwKQorI2RlZmlu ZSAgIERWU19QSVhGT1JNQVRfTUFTSwkoMzw8MjUpCisjZGVmaW5lICAgRFZTX0ZPUk1BVF9ZVVY0 MjIJKDA8PDI1KQorI2RlZmluZSAgIERWU19GT1JNQVRfUkdCWDEwMTAxMAkoMTw8MjUpCisjZGVm aW5lICAgRFZTX0ZPUk1BVF9SR0JYODg4CSgyPDwyNSkKKyNkZWZpbmUgICBEVlNfRk9STUFUX1JH QlgxNjE2MTYJKDM8PDI1KQorI2RlZmluZSAgIERWU19TT1VSQ0VfS0VZCSgxPDwyMikKKyNkZWZp bmUgICBEVlNfUkdCX09SREVSX1JHQlgJKDE8PDIwKQorI2RlZmluZSAgIERWU19ZVVZfQllURV9P UkRFUl9NQVNLICgzPDwxNikKKyNkZWZpbmUgICBEVlNfWVVWX09SREVSX1lVWVYJKDA8PDE2KQor I2RlZmluZSAgIERWU19ZVVZfT1JERVJfVVlWWQkoMTw8MTYpCisjZGVmaW5lICAgRFZTX1lVVl9P UkRFUl9ZVllVCSgyPDwxNikKKyNkZWZpbmUgICBEVlNfWVVWX09SREVSX1ZZVVkJKDM8PDE2KQor I2RlZmluZSAgIERWU19ERVNUX0tFWQkJKDE8PDIpCisjZGVmaW5lICAgRFZTX1RSSUNLTEVfRkVF RF9ESVNBQkxFICgxPDwxNCkKKyNkZWZpbmUgICBEVlNfVElMRUQJCSgxPDwxMCkKKyNkZWZpbmUg X0RWU0FTVFJJREUJCTB4NzIxODgKKyNkZWZpbmUgX0RWU0FQT1MJCTB4NzIxOGMKKyNkZWZpbmUg X0RWU0FTSVpFCQkweDcyMTkwCisjZGVmaW5lIF9EVlNBS0VZVkFMCQkweDcyMTk0CisjZGVmaW5l IF9EVlNBS0VZTVNLCQkweDcyMTk4CisjZGVmaW5lIF9EVlNBU1VSRgkJMHg3MjE5YworI2RlZmlu ZSBfRFZTQUtFWU1BWFZBTAkJMHg3MjFhMAorI2RlZmluZSBfRFZTQVRJTEVPRkYJCTB4NzIxYTQK KyNkZWZpbmUgX0RWU0FTVVJGTElWRQkJMHg3MjFhYworI2RlZmluZSBfRFZTQVNDQUxFCQkweDcy MjA0CisjZGVmaW5lICAgRFZTX1NDQUxFX0VOQUJMRQkoMTw8MzEpCisjZGVmaW5lICAgRFZTX0ZJ TFRFUl9NQVNLCSgzPDwyOSkKKyNkZWZpbmUgICBEVlNfRklMVEVSX01FRElVTQkoMDw8MjkpCisj ZGVmaW5lICAgRFZTX0ZJTFRFUl9FTkhBTkNJTkcJKDE8PDI5KQorI2RlZmluZSAgIERWU19GSUxU RVJfU09GVEVOSU5HCSgyPDwyOSkKKyNkZWZpbmUgX0RWU0FHQU1DCQkweDcyMzAwCisKKyNkZWZp bmUgX0RWU0JDTlRSCQkweDczMTgwCisjZGVmaW5lIF9EVlNCU1RSSURFCQkweDczMTg4CisjZGVm aW5lIF9EVlNCUE9TCQkweDczMThjCisjZGVmaW5lIF9EVlNCU0laRQkJMHg3MzE5MAorI2RlZmlu ZSBfRFZTQktFWVZBTAkJMHg3MzE5NAorI2RlZmluZSBfRFZTQktFWU1TSwkJMHg3MzE5OAorI2Rl ZmluZSBfRFZTQlNVUkYJCTB4NzMxOWMKKyNkZWZpbmUgX0RWU0JLRVlNQVhWQUwJCTB4NzMxYTAK KyNkZWZpbmUgX0RWU0JUSUxFT0ZGCQkweDczMWE0CisjZGVmaW5lIF9EVlNCU1VSRkxJVkUJCTB4 NzMxYWMKKyNkZWZpbmUgX0RWU0JTQ0FMRQkJMHg3MzIwNAorI2RlZmluZSBfRFZTQkdBTUMJCTB4 NzMzMDAKKworI2RlZmluZSBEVlNDTlRSKHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNBQ05UUiwgX0RW U0JDTlRSKQorI2RlZmluZSBEVlNTVFJJREUocGlwZSkgX1BJUEUocGlwZSwgX0RWU0FTVFJJREUs IF9EVlNCU1RSSURFKQorI2RlZmluZSBEVlNQT1MocGlwZSkgX1BJUEUocGlwZSwgX0RWU0FQT1Ms IF9EVlNCUE9TKQorI2RlZmluZSBEVlNTVVJGKHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNBU1VSRiwg X0RWU0JTVVJGKQorI2RlZmluZSBEVlNTSVpFKHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNBU0laRSwg X0RWU0JTSVpFKQorI2RlZmluZSBEVlNTQ0FMRShwaXBlKSBfUElQRShwaXBlLCBfRFZTQVNDQUxF LCBfRFZTQlNDQUxFKQorI2RlZmluZSBEVlNUSUxFT0ZGKHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNB VElMRU9GRiwgX0RWU0JUSUxFT0ZGKQorCisjZGVmaW5lIF9TUFJBX0NUTAkJMHg3MDI4MAorI2Rl ZmluZSAgIFNQUklURV9FTkFCTEUJCQkoMTw8MzEpCisjZGVmaW5lICAgU1BSSVRFX0dBTU1BX0VO QUJMRQkJKDE8PDMwKQorI2RlZmluZSAgIFNQUklURV9QSVhGT1JNQVRfTUFTSwkJKDc8PDI1KQor I2RlZmluZSAgIFNQUklURV9GT1JNQVRfWVVWNDIyCQkoMDw8MjUpCisjZGVmaW5lICAgU1BSSVRF X0ZPUk1BVF9SR0JYMTAxMDEwCSgxPDwyNSkKKyNkZWZpbmUgICBTUFJJVEVfRk9STUFUX1JHQlg4 ODgJCSgyPDwyNSkKKyNkZWZpbmUgICBTUFJJVEVfRk9STUFUX1JHQlgxNjE2MTYJKDM8PDI1KQor I2RlZmluZSAgIFNQUklURV9GT1JNQVRfWVVWNDQ0CQkoNDw8MjUpCisjZGVmaW5lICAgU1BSSVRF X0ZPUk1BVF9YQkdSMTAxMDEwCSg1PDwyNSkKKyNkZWZpbmUgICBTUFJJVEVfQ1NDX0VOQUJMRQkJ KDE8PDI0KQorI2RlZmluZSAgIFNQUklURV9TT1VSQ0VfS0VZCQkoMTw8MjIpCisjZGVmaW5lICAg U1BSSVRFX1JHQl9PUkRFUl9SR0JYCQkoMTw8MjApIC8qIG9ubHkgZm9yIDg4OCBhbmQgMTYxNjE2 ICovCisjZGVmaW5lICAgU1BSSVRFX1lVVl9UT19SR0JfQ1NDX0RJU0FCTEUJKDE8PDE5KQorI2Rl ZmluZSAgIFNQUklURV9ZVVZfQ1NDX0ZPUk1BVF9CVDcwOQkoMTw8MTgpIC8qIDAgaXMgQlQ2MDEg Ki8KKyNkZWZpbmUgICBTUFJJVEVfWVVWX0JZVEVfT1JERVJfTUFTSwkoMzw8MTYpCisjZGVmaW5l ICAgU1BSSVRFX1lVVl9PUkRFUl9ZVVlWCQkoMDw8MTYpCisjZGVmaW5lICAgU1BSSVRFX1lVVl9P UkRFUl9VWVZZCQkoMTw8MTYpCisjZGVmaW5lICAgU1BSSVRFX1lVVl9PUkRFUl9ZVllVCQkoMjw8 MTYpCisjZGVmaW5lICAgU1BSSVRFX1lVVl9PUkRFUl9WWVVZCQkoMzw8MTYpCisjZGVmaW5lICAg U1BSSVRFX1RSSUNLTEVfRkVFRF9ESVNBQkxFCSgxPDwxNCkKKyNkZWZpbmUgICBTUFJJVEVfSU5U X0dBTU1BX0VOQUJMRQkoMTw8MTMpCisjZGVmaW5lICAgU1BSSVRFX1RJTEVECQkJKDE8PDEwKQor I2RlZmluZSAgIFNQUklURV9ERVNUX0tFWQkJKDE8PDIpCisjZGVmaW5lIF9TUFJBX1NUUklERQkJ MHg3MDI4OAorI2RlZmluZSBfU1BSQV9QT1MJCTB4NzAyOGMKKyNkZWZpbmUgX1NQUkFfU0laRQkJ MHg3MDI5MAorI2RlZmluZSBfU1BSQV9LRVlWQUwJCTB4NzAyOTQKKyNkZWZpbmUgX1NQUkFfS0VZ TVNLCQkweDcwMjk4CisjZGVmaW5lIF9TUFJBX1NVUkYJCTB4NzAyOWMKKyNkZWZpbmUgX1NQUkFf S0VZTUFYCQkweDcwMmEwCisjZGVmaW5lIF9TUFJBX1RJTEVPRkYJCTB4NzAyYTQKKyNkZWZpbmUg X1NQUkFfU0NBTEUJCTB4NzAzMDQKKyNkZWZpbmUgICBTUFJJVEVfU0NBTEVfRU5BQkxFCSgxPDwz MSkKKyNkZWZpbmUgICBTUFJJVEVfRklMVEVSX01BU0sJKDM8PDI5KQorI2RlZmluZSAgIFNQUklU RV9GSUxURVJfTUVESVVNCSgwPDwyOSkKKyNkZWZpbmUgICBTUFJJVEVfRklMVEVSX0VOSEFOQ0lO RwkoMTw8MjkpCisjZGVmaW5lICAgU1BSSVRFX0ZJTFRFUl9TT0ZURU5JTkcJKDI8PDI5KQorI2Rl ZmluZSBfU1BSQV9HQU1DCQkweDcwNDAwCisKKyNkZWZpbmUgX1NQUkJfQ1RMCQkweDcxMjgwCisj ZGVmaW5lIF9TUFJCX1NUUklERQkJMHg3MTI4OAorI2RlZmluZSBfU1BSQl9QT1MJCTB4NzEyOGMK KyNkZWZpbmUgX1NQUkJfU0laRQkJMHg3MTI5MAorI2RlZmluZSBfU1BSQl9LRVlWQUwJCTB4NzEy OTQKKyNkZWZpbmUgX1NQUkJfS0VZTVNLCQkweDcxMjk4CisjZGVmaW5lIF9TUFJCX1NVUkYJCTB4 NzEyOWMKKyNkZWZpbmUgX1NQUkJfS0VZTUFYCQkweDcxMmEwCisjZGVmaW5lIF9TUFJCX1RJTEVP RkYJCTB4NzEyYTQKKyNkZWZpbmUgX1NQUkJfU0NBTEUJCTB4NzEzMDQKKyNkZWZpbmUgX1NQUkJf R0FNQwkJMHg3MTQwMAorCisjZGVmaW5lIFNQUkNUTChwaXBlKSBfUElQRShwaXBlLCBfU1BSQV9D VEwsIF9TUFJCX0NUTCkKKyNkZWZpbmUgU1BSU1RSSURFKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJB X1NUUklERSwgX1NQUkJfU1RSSURFKQorI2RlZmluZSBTUFJQT1MocGlwZSkgX1BJUEUocGlwZSwg X1NQUkFfUE9TLCBfU1BSQl9QT1MpCisjZGVmaW5lIFNQUlNJWkUocGlwZSkgX1BJUEUocGlwZSwg X1NQUkFfU0laRSwgX1NQUkJfU0laRSkKKyNkZWZpbmUgU1BSS0VZVkFMKHBpcGUpIF9QSVBFKHBp cGUsIF9TUFJBX0tFWVZBTCwgX1NQUkJfS0VZVkFMKQorI2RlZmluZSBTUFJLRVlNU0socGlwZSkg X1BJUEUocGlwZSwgX1NQUkFfS0VZTVNLLCBfU1BSQl9LRVlNU0spCisjZGVmaW5lIFNQUlNVUkYo cGlwZSkgX1BJUEUocGlwZSwgX1NQUkFfU1VSRiwgX1NQUkJfU1VSRikKKyNkZWZpbmUgU1BSS0VZ TUFYKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJBX0tFWU1BWCwgX1NQUkJfS0VZTUFYKQorI2RlZmlu ZSBTUFJUSUxFT0ZGKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJBX1RJTEVPRkYsIF9TUFJCX1RJTEVP RkYpCisjZGVmaW5lIFNQUlNDQUxFKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJBX1NDQUxFLCBfU1BS Ql9TQ0FMRSkKKyNkZWZpbmUgU1BSR0FNQyhwaXBlKSBfUElQRShwaXBlLCBfU1BSQV9HQU1DLCBf U1BSQl9HQU1DKQorCiAvKiBWQklPUyByZWdzICovCiAjZGVmaW5lIFZHQUNOVFJMCQkweDcxNDAw CiAjIGRlZmluZSBWR0FfRElTUF9ESVNBQkxFCQkJKDEgPDwgMzEpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKaW5kZXggNjYwMTY4YS4uZTBjZTUzZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwpAQCAtOTE1LDggKzkxNSw4IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9w YW5lbF91bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICAgICBw aXBlX25hbWUocGlwZSkpOwogfQogCi1zdGF0aWMgdm9pZCBhc3NlcnRfcGlwZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQllbnVtIHBpcGUgcGlwZSwgYm9vbCBzdGF0ZSkK K3ZvaWQgYXNzZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkg ZW51bSBwaXBlIHBpcGUsIGJvb2wgc3RhdGUpCiB7CiAJaW50IHJlZzsKIAl1MzIgdmFsOwpAQCAt OTI5LDggKzkyOSw2IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9waXBlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAkgICAgICJwaXBlICVjIGFzc2VydGlvbiBmYWlsdXJlIChleHBl Y3RlZCAlcywgY3VycmVudCAlcylcbiIsCiAJICAgICBwaXBlX25hbWUocGlwZSksIHN0YXRlX3N0 cmluZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKIH0KLSNkZWZpbmUgYXNzZXJ0 X3BpcGVfZW5hYmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCB0cnVlKQotI2RlZmluZSBhc3Nl cnRfcGlwZV9kaXNhYmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCBmYWxzZSkKIAogc3RhdGlj IHZvaWQgYXNzZXJ0X3BsYW5lX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQkJCSBlbnVtIHBsYW5lIHBsYW5lKQpAQCAtNDQzOSw3ICs0NDM3LDggQEAgc3RhdGlj IHZvaWQgaXJvbmxha2VfdXBkYXRlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkgICAg SUxLX0xQMF9DVVJTT1JfTEFURU5DWSwKIAkJCSAgICAmcGxhbmVfd20sICZjdXJzb3Jfd20pKSB7 CiAJCUk5MTVfV1JJVEUoV00wX1BJUEVBX0lMSywKLQkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQ RV9QTEFORV9TSElGVCkgfCBjdXJzb3Jfd20pOworCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBF X1BMQU5FX1NISUZUKSB8CisJCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVfU1BSSVRFX1NISUZU KSB8IGN1cnNvcl93bSk7CiAJCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0ZXJtYXJrcyBGb3IgcGlw ZSBBIC0iCiAJCQkgICAgICAiIHBsYW5lICVkLCAiICJjdXJzb3I6ICVkXG4iLAogCQkJICAgICAg cGxhbmVfd20sIGN1cnNvcl93bSk7CkBAIC00NDUzLDcgKzQ0NTIsOCBAQCBzdGF0aWMgdm9pZCBp cm9ubGFrZV91cGRhdGVfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAgICBJTEtfTFAw X0NVUlNPUl9MQVRFTkNZLAogCQkJICAgICZwbGFuZV93bSwgJmN1cnNvcl93bSkpIHsKIAkJSTkx NV9XUklURShXTTBfUElQRUJfSUxLLAotCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBFX1BMQU5F X1NISUZUKSB8IGN1cnNvcl93bSk7CisJCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVfUExBTkVf U0hJRlQpIHwKKwkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQRV9TUFJJVEVfU0hJRlQpIHwgY3Vy c29yX3dtKTsKIAkJRFJNX0RFQlVHX0tNUygiRklGTyB3YXRlcm1hcmtzIEZvciBwaXBlIEIgLSIK IAkJCSAgICAgICIgcGxhbmUgJWQsIGN1cnNvcjogJWRcbiIsCiAJCQkgICAgICBwbGFuZV93bSwg Y3Vyc29yX3dtKTsKQEAgLTQ1MjEsNyArNDUyMSw4IEBAIHN0YXRpYyB2b2lkIHNhbmR5YnJpZGdl X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJICAgICZzYW5keWJyaWRnZV9j dXJzb3Jfd21faW5mbywgbGF0ZW5jeSwKIAkJCSAgICAmcGxhbmVfd20sICZjdXJzb3Jfd20pKSB7 CiAJCUk5MTVfV1JJVEUoV00wX1BJUEVBX0lMSywKLQkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQ RV9QTEFORV9TSElGVCkgfCBjdXJzb3Jfd20pOworCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBF X1BMQU5FX1NISUZUKSB8CisJCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVfU1BSSVRFX1NISUZU KSB8IGN1cnNvcl93bSk7CiAJCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0ZXJtYXJrcyBGb3IgcGlw ZSBBIC0iCiAJCQkgICAgICAiIHBsYW5lICVkLCAiICJjdXJzb3I6ICVkXG4iLAogCQkJICAgICAg cGxhbmVfd20sIGN1cnNvcl93bSk7CkBAIC00NTMzLDcgKzQ1MzQsOCBAQCBzdGF0aWMgdm9pZCBz YW5keWJyaWRnZV91cGRhdGVfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAgICAmc2Fu ZHlicmlkZ2VfY3Vyc29yX3dtX2luZm8sIGxhdGVuY3ksCiAJCQkgICAgJnBsYW5lX3dtLCAmY3Vy c29yX3dtKSkgewogCQlJOTE1X1dSSVRFKFdNMF9QSVBFQl9JTEssCi0JCQkgICAocGxhbmVfd20g PDwgV00wX1BJUEVfUExBTkVfU0hJRlQpIHwgY3Vyc29yX3dtKTsKKwkJCSAgIChwbGFuZV93bSA8 PCBXTTBfUElQRV9QTEFORV9TSElGVCkgfAorCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBFX1NQ UklURV9TSElGVCkgfCBjdXJzb3Jfd20pOwogCQlEUk1fREVCVUdfS01TKCJGSUZPIHdhdGVybWFy a3MgRm9yIHBpcGUgQiAtIgogCQkJICAgICAgIiBwbGFuZSAlZCwgY3Vyc29yOiAlZFxuIiwKIAkJ CSAgICAgIHBsYW5lX3dtLCBjdXJzb3Jfd20pOwpAQCAtNDU0Nyw3ICs0NTQ5LDggQEAgc3RhdGlj IHZvaWQgc2FuZHlicmlkZ2VfdXBkYXRlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkg ICAgJnNhbmR5YnJpZGdlX2N1cnNvcl93bV9pbmZvLCBsYXRlbmN5LAogCQkJICAgICZwbGFuZV93 bSwgJmN1cnNvcl93bSkpIHsKIAkJSTkxNV9XUklURShXTTBfUElQRUNfSVZCLAotCQkJICAgKHBs YW5lX3dtIDw8IFdNMF9QSVBFX1BMQU5FX1NISUZUKSB8IGN1cnNvcl93bSk7CisJCQkgICAocGxh bmVfd20gPDwgV00wX1BJUEVfUExBTkVfU0hJRlQpIHwKKwkJCSAgIChwbGFuZV93bSA8PCBXTTBf UElQRV9TUFJJVEVfU0hJRlQpIHwgY3Vyc29yX3dtKTsKIAkJRFJNX0RFQlVHX0tNUygiRklGTyB3 YXRlcm1hcmtzIEZvciBwaXBlIEMgLSIKIAkJCSAgICAgICIgcGxhbmUgJWQsIGN1cnNvcjogJWRc biIsCiAJCQkgICAgICBwbGFuZV93bSwgY3Vyc29yX3dtKTsKQEAgLTg2OTMsNyArODY5Niw3IEBA IHN0YXRpYyB2b2lkIGk5MTVfZGlzYWJsZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHZv aWQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgaTsK KwlpbnQgaSwgcmV0OwogCiAJZHJtX21vZGVfY29uZmlnX2luaXQoZGV2KTsKIApAQCAtODcyMyw2 ICs4NzI2LDEyIEBAIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAKIAlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9waXBlOyBpKyspIHsKIAkJaW50 ZWxfY3J0Y19pbml0KGRldiwgaSk7CisJCWlmIChIQVNfUENIX1NQTElUKGRldikpIHsKKwkJCXJl dCA9IGludGVsX3BsYW5lX2luaXQoZGV2LCBpKTsKKwkJCWlmIChyZXQpCisJCQkJRFJNX0VSUk9S KCJwbGFuZSAlZCBpbml0IGZhaWxlZDogJWRcbiIsCisJCQkJCSAgaSwgcmV0KTsKKwkJfQogCX0K IAogCS8qIEp1c3QgZGlzYWJsZSBpdCBvbmNlIGF0IHN0YXJ0dXAgKi8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKaW5kZXggNDY3ZmI0YS4uMzliM2FlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKQEAgLTE3NiwxMCArMTc2LDI3IEBAIHN0cnVjdCBpbnRlbF9jcnRjIHsKIAlib29sIHVzZV9w bGxfYTsKIH07CiAKK3N0cnVjdCBpbnRlbF9wbGFuZSB7CisJc3RydWN0IGRybV9wbGFuZSBiYXNl OworCWVudW0gcGlwZSBwaXBlOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJ Ym9vbCBwcmltYXJ5X2Rpc2FibGVkOworCWludCBtYXhfZG93bnNjYWxlOworCXUzMiBsdXRfclsx MDI0XSwgbHV0X2dbMTAyNF0sIGx1dF9iWzEwMjRdOworCXZvaWQgKCp1cGRhdGVfcGxhbmUpKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJICAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiwgdW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCSAgICAgaW50IGNydGNfeCwgaW50IGNydGNfeSwK KwkJCSAgICAgdW5zaWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKKwkJCSAg ICAgdWludDMyX3QgeCwgdWludDMyX3QgeSwKKwkJCSAgICAgdWludDMyX3Qgc3JjX3csIHVpbnQz Ml90IHNyY19oKTsKKwl2b2lkICgqZGlzYWJsZV9wbGFuZSkoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUpOworfTsKKwogI2RlZmluZSB0b19pbnRlbF9jcnRjKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1 Y3QgaW50ZWxfY3J0YywgYmFzZSkKICNkZWZpbmUgdG9faW50ZWxfY29ubmVjdG9yKHgpIGNvbnRh aW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yLCBiYXNlKQogI2RlZmluZSB0b19pbnRl bF9lbmNvZGVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciwgYmFzZSkK ICNkZWZpbmUgdG9faW50ZWxfZnJhbWVidWZmZXIoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBp bnRlbF9mcmFtZWJ1ZmZlciwgYmFzZSkKKyNkZWZpbmUgdG9faW50ZWxfcGxhbmUoeCkgY29udGFp bmVyX29mKHgsIHN0cnVjdCBpbnRlbF9wbGFuZSwgYmFzZSkKIAogI2RlZmluZSBESVBfSEVBREVS X1NJWkUJNQogCkBAIC0yODksNiArMzA2LDcgQEAgaW50ZWxfZHBfc2V0X21fbihzdHJ1Y3QgZHJt X2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAogZXh0ZXJuIGJvb2wg aW50ZWxfZHBkX2lzX2VkcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGV4dGVybiB2b2lkIGlu dGVsX2VkcF9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLCBpbnQgKiwgaW50ICop OwogZXh0ZXJuIGJvb2wgaW50ZWxfZW5jb2Rlcl9pc19wY2hfZWRwKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2Rlcik7CitleHRlcm4gaW50IGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgZW51bSBwaXBlIHBpcGUpOwogCiAvKiBpbnRlbF9wYW5lbC5jICovCiBleHRlcm4g dm9pZCBpbnRlbF9maXhlZF9wYW5lbF9tb2RlKHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpmaXhl ZF9tb2RlLApAQCAtMzc5LDYgKzM5NywxMSBAQCBleHRlcm4gaW50IGludGVsX292ZXJsYXlfYXR0 cnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIGV4dGVybiB2b2lkIGludGVs X2ZiX291dHB1dF9wb2xsX2NoYW5nZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBleHRlcm4g dm9pZCBpbnRlbF9mYl9yZXN0b3JlX21vZGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKK2V4 dGVybiB2b2lkIGFzc2VydF9waXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg ZW51bSBwaXBlIHBpcGUsCisJCQlib29sIHN0YXRlKTsKKyNkZWZpbmUgYXNzZXJ0X3BpcGVfZW5h YmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCB0cnVlKQorI2RlZmluZSBhc3NlcnRfcGlwZV9k aXNhYmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCBmYWxzZSkKKwogZXh0ZXJuIHZvaWQgaW50 ZWxfaW5pdF9jbG9ja19nYXRpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBleHRlcm4gdm9p ZCBpbnRlbF93cml0ZV9lbGQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYi5jCmluZGV4 IGRjMWRiNGYuLjA2OGIwODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmIuYwpAQCAtMjcwLDggKzI3 MCwxNCBAQCB2b2lkIGludGVsX2ZiX3Jlc3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogewogCWludCByZXQ7CiAJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7CisJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9j b25maWc7CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAKIAlyZXQgPSBkcm1fZmJfaGVscGVy X3Jlc3RvcmVfZmJkZXZfbW9kZSgmZGV2X3ByaXYtPmZiZGV2LT5oZWxwZXIpOwogCWlmIChyZXQp CiAJCURSTV9ERUJVRygiZmFpbGVkIHRvIHJlc3RvcmUgY3J0YyBtb2RlXG4iKTsKKworCS8qIEJl IHN1cmUgdG8gc2h1dCBvZmYgYW55IHBsYW5lcyB0aGF0IG1heSBiZSBhY3RpdmUgKi8KKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5KHBsYW5lLCAmY29uZmlnLT5wbGFuZV9saXN0LCBoZWFkKQorCQlwbGFu ZS0+ZnVuY3MtPmRpc2FibGVfcGxhbmUocGxhbmUpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheTIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X292ZXJsYXkyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQzNzZkOQot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkyLmMK QEAgLTAsMCArMSw0MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxMSBJbnRlbCBDb3Jwb3Jh dGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8g ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMg b2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNv ZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBi ZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQor ICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xV RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ LAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO VC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcgRlJPTSwKKyAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KKyAqCisg KiBBdXRob3JzOgorICogICBKZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4K KyAqCisgKiBOZXcgcGxhbmUvc3ByaXRlIGhhbmRsaW5nLgorICoKKyAqIFRoZSBvbGRlciBjaGlw cyBoYWQgYSBzZXBhcmF0ZSBpbnRlcmZhY2UgZm9yIHByb2dyYW1taW5nIHBsYW5lIHJlbGF0ZWQK KyAqIHJlZ2lzdGVyczsgbmV3ZXIgb25lcyBhcmUgbXVjaCBzaW1wbGVyIGFuZCB3ZSBjYW4gdXNl IHRoZSBuZXcgRFJNIHBsYW5lCisgKiBzdXBwb3J0LgorICovCisjaW5jbHVkZSAiZHJtUC5oIgor I2luY2x1ZGUgImRybV9jcnRjLmgiCisjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAi aTkxNV9kcm0uaCIKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgorCisvKgorICogTm90ZSBvbiByZWZj b3VudGluZzoKKyAqIFdoZW4gdGhlIHVzZXIgY3JlYXRlcyBhbiBmYiBmb3IgdGhlIEdFTSBvYmpl Y3QgdG8gYmUgdXNlZCBmb3IgdGhlIHBsYW5lLAorICogYSByZWYgaXMgdGFrZW4gb24gdGhlIG9i amVjdC4gIEhvd2V2ZXIsIGlmIHRoZSBhcHBsaWNhdGlvbiBleGl0cyBiZWZvcmUKKyAqIGRpc2Fi bGluZyB0aGUgcGxhbmUsIHRoZSBEUk0gY2xvc2UgaGFuZGxpbmcgd2lsbCBmcmVlIGFsbCB0aGUg ZmJzIGFuZAorICogdW5sZXNzIHdlIHRha2UgYSByZWYgb24gdGhlIG9iamVjdCwgaXQgd2lsbCBi ZSBkZXN0cm95ZWQgYmVmb3JlIHRoZQorICogcGxhbmUgZGlzYWJsZSBob29rIGlzIGNhbGxlZCwg Y2F1c2luZyBvYnZpb3VzIHRyb3VibGUgd2l0aCBvdXIgZWZmb3J0cworICogdG8gbG9vayB1cCBh bmQgdW5waW4gdGhlIG9iamVjdC4gIFNvIHdlIHRha2UgYSByZWYgYWZ0ZXIgd2UgbW92ZSB0aGUK KyAqIG9iamVjdCB0byB0aGUgZGlzcGxheSBwbGFuZSBzbyBpdCB3b24ndCBiZSBkZXN0cm95ZWQg dW50aWwgb3VyIGRpc2FibGUKKyAqIGhvb2sgaXMgY2FsbGVkIGFuZCB3ZSBkcm9wIG91ciBwcml2 YXRlIHJlZmVyZW5jZS4KKyAqLworCitzdGF0aWMgdm9pZAoraXZiX3VwZGF0ZV9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCisJCSB1bnNp Z25lZCBsb25nIHN0YXJ0LCBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAorCQkgdW5zaWduZWQgaW50 IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKKwkJIHVpbnQzMl90IHgsIHVpbnQzMl90IHks CisJCSB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpCit7CisJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IHBsYW5lLT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0g dG9faW50ZWxfcGxhbmUocGxhbmUpOworCWludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CisJ dTMyIHNwcmN0bCwgc3Byc2NhbGUgPSAwOworCXUzMiByZWcgPSBTUFJDVEwocGlwZSk7CisKKwlz cHJjdGwgPSBJOTE1X1JFQUQocmVnKTsKKworCS8qIE1hc2sgb3V0IHBpeGVsIGZvcm1hdCBiaXRz IGluIGNhc2Ugd2UgY2hhbmdlIGl0ICovCisJc3ByY3RsICY9IH4oU1BSSVRFX0RFU1RfS0VZIHwg U1BSSVRFX1NPVVJDRV9LRVkpOworCXNwcmN0bCAmPSB+U1BSSVRFX1BJWEZPUk1BVF9NQVNLOwor CXNwcmN0bCAmPSB+U1BSSVRFX1JHQl9PUkRFUl9SR0JYOworCXNwcmN0bCAmPSB+U1BSSVRFX1lV Vl9CWVRFX09SREVSX01BU0s7CisKKwlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwljYXNl IFY0TDJfUElYX0ZNVF9CR1IzMjoKKwkJc3ByY3RsIHw9IFNQUklURV9GT1JNQVRfUkdCWDg4ODsK KwkJYnJlYWs7CisJY2FzZSBWNEwyX1BJWF9GTVRfUkdCMzI6CisJCXNwcmN0bCB8PSBTUFJJVEVf Rk9STUFUX1JHQlg4ODggfCBTUFJJVEVfUkdCX09SREVSX1JHQlg7CisJCWJyZWFrOworCWNhc2Ug VjRMMl9QSVhfRk1UX1lVWVY6CisJCXNwcmN0bCB8PSBTUFJJVEVfRk9STUFUX1lVVjQyMiB8IFNQ UklURV9ZVVZfT1JERVJfWVVZVjsKKwkJYnJlYWs7CisJY2FzZSBWNEwyX1BJWF9GTVRfWVZZVToK KwkJc3ByY3RsIHw9IFNQUklURV9GT1JNQVRfWVVWNDIyIHwgU1BSSVRFX1lVVl9PUkRFUl9ZVllV OworCQlicmVhazsKKwljYXNlIFY0TDJfUElYX0ZNVF9VWVZZOgorCQlzcHJjdGwgfD0gU1BSSVRF X0ZPUk1BVF9ZVVY0MjIgfCBTUFJJVEVfWVVWX09SREVSX1VZVlk7CisJCWJyZWFrOworCWNhc2Ug VjRMMl9QSVhfRk1UX1ZZVVk6CisJCXNwcmN0bCB8PSBTUFJJVEVfRk9STUFUX1lVVjQyMiB8IFNQ UklURV9ZVVZfT1JERVJfVllVWTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJRFJNX0RFQlVHX0RS SVZFUigiYmFkIHBpeGVsIGZvcm1hdCwgYXNzdW1pbmcgUkdCWDg4OFxuIik7CisJCXNwcmN0bCB8 PSBEVlNfRk9STUFUX1JHQlg4ODg7CisJCWJyZWFrOworCX0KKworCXNwcmN0bCB8PSBTUFJJVEVf VElMRUQ7CisKKwkvKiBtdXN0IGRpc2FibGUgKi8KKwlzcHJjdGwgfD0gU1BSSVRFX1RSSUNLTEVf RkVFRF9ESVNBQkxFOworCXNwcmN0bCB8PSBTUFJJVEVfRU5BQkxFOworCisJLyogU2l6ZXMgYXJl IDAgYmFzZWQgKi8KKwlzcmNfdy0tOworCXNyY19oLS07CisJY3J0Y193LS07CisJY3J0Y19oLS07 CisKKwlpZiAoY3J0Y193ICE9IHNyY193IHx8IGNydGNfaCAhPSBzcmNfaCkKKwkJc3Byc2NhbGUg PSBTUFJJVEVfU0NBTEVfRU5BQkxFIHwgKHNyY19oIDw8IDE2KSB8IHNyY193OworCisJSTkxNV9X UklURShTUFJTVFJJREUocGlwZSksIGZiLT5waXRjaCk7CisJSTkxNV9XUklURShTUFJQT1MocGlw ZSksIChjcnRjX3kgPDwgMTYpIHwgY3J0Y194KTsKKwlJOTE1X1dSSVRFKFNQUlRJTEVPRkYocGlw ZSksICh5IDw8IDE2KSB8IHgpOworCUk5MTVfV1JJVEUoU1BSU0laRShwaXBlKSwgKGNydGNfaCA8 PCAxNikgfCBjcnRjX3cpOworCUk5MTVfV1JJVEUoU1BSU0NBTEUocGlwZSksIHNwcnNjYWxlKTsK KwlJOTE1X1dSSVRFKHJlZywgc3ByY3RsKTsKKwlJOTE1X1dSSVRFKFNQUlNVUkYocGlwZSksIHN0 YXJ0KTsKKwlQT1NUSU5HX1JFQUQoU1BSU1VSRihwaXBlKSk7CisKKwkvKiBBZGp1c3Qgd2F0ZXJt YXJrcyBhcyBuZWVkZWQgKi8KKwlJOTE1X1dSSVRFKFdNMVNfTFBfSUxLLCAweDEwMCk7CisJSTkx NV9XUklURShXTTJTX0xQX0lWQiwgMHgxMDApOworCUk5MTVfV1JJVEUoV00zU19MUF9JVkIsIDB4 MTAwKTsKK30KKworc3RhdGljIHZvaWQKK2l2Yl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3Ry dWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKKwlp bnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOworCisJSTkxNV9XUklURShTUFJDVEwocGlwZSks IEk5MTVfUkVBRChTUFJDVEwocGlwZSkpICYgflNQUklURV9FTkFCTEUpOworCUk5MTVfV1JJVEUo U1BSU0NBTEUocGlwZSksIDApOworCUk5MTVfV1JJVEUoU1BSU1VSRihwaXBlKSwgMCk7CisJUE9T VElOR19SRUFEKFNQUlNVUkYocGlwZSkpOworCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIHBp cGUpOworfQorCitzdGF0aWMgdm9pZAorc25iX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCisJCSB1bnNpZ25lZCBsb25nIHN0 YXJ0LCBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAorCQkgdW5zaWduZWQgaW50IGNydGNfdywgdW5z aWduZWQgaW50IGNydGNfaCwKKwkJIHVpbnQzMl90IHgsIHVpbnQzMl90IHksCisJCSB1aW50MzJf dCBzcmNfdywgdWludDMyX3Qgc3JjX2gpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBs YW5lLT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxh bmUocGxhbmUpOworCWludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CisJdTMyIGR2c2NudHIs IGR2c3NjYWxlID0gMDsKKwl1MzIgcmVnID0gRFZTQ05UUihwaXBlKTsKKworCWR2c2NudHIgPSBJ OTE1X1JFQUQocmVnKTsKKworCS8qIE1hc2sgb3V0IHBpeGVsIGZvcm1hdCBiaXRzIGluIGNhc2Ug d2UgY2hhbmdlIGl0ICovCisJZHZzY250ciAmPSB+KERWU19ERVNUX0tFWSB8IERWU19TT1VSQ0Vf S0VZKTsKKwlkdnNjbnRyICY9IH5EVlNfUElYRk9STUFUX01BU0s7CisJZHZzY250ciAmPSB+RFZT X1JHQl9PUkRFUl9SR0JYOworCWR2c2NudHIgJj0gfkRWU19ZVVZfQllURV9PUkRFUl9NQVNLOwor CisJc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJY2FzZSBWNEwyX1BJWF9GTVRfQkdSMzI6 CisJCWR2c2NudHIgfD0gRFZTX0ZPUk1BVF9SR0JYODg4OworCQlicmVhazsKKwljYXNlIFY0TDJf UElYX0ZNVF9SR0IzMjoKKwkJZHZzY250ciB8PSBEVlNfRk9STUFUX1JHQlg4ODggfCBEVlNfUkdC X09SREVSX1JHQlg7CisJCWJyZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1lVWVY6CisJCWR2c2Nu dHIgfD0gRFZTX0ZPUk1BVF9ZVVY0MjIgfCBEVlNfWVVWX09SREVSX1lVWVY7CisJCWJyZWFrOwor CWNhc2UgVjRMMl9QSVhfRk1UX1lWWVU6CisJCWR2c2NudHIgfD0gRFZTX0ZPUk1BVF9ZVVY0MjIg fCBEVlNfWVVWX09SREVSX1lWWVU7CisJCWJyZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1VZVlk6 CisJCWR2c2NudHIgfD0gRFZTX0ZPUk1BVF9ZVVY0MjIgfCBEVlNfWVVWX09SREVSX1VZVlk7CisJ CWJyZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1ZZVVk6CisJCWR2c2NudHIgfD0gRFZTX0ZPUk1B VF9ZVVY0MjIgfCBEVlNfWVVWX09SREVSX1ZZVVk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURS TV9ERUJVR19EUklWRVIoImJhZCBwaXhlbCBmb3JtYXQsIGFzc3VtaW5nIFJHQlg4ODhcbiIpOwor CQlkdnNjbnRyIHw9IERWU19GT1JNQVRfUkdCWDg4ODsKKwkJYnJlYWs7CisJfQorCisJZHZzY250 ciB8PSBEVlNfVElMRUQ7CisKKwkvKiBtdXN0IGRpc2FibGUgKi8KKwlkdnNjbnRyIHw9IERWU19U UklDS0xFX0ZFRURfRElTQUJMRTsKKwlkdnNjbnRyIHw9IERWU19FTkFCTEU7CisKKwkvKiBTaXpl cyBhcmUgMCBiYXNlZCAqLworCXNyY193LS07CisJc3JjX2gtLTsKKwljcnRjX3ctLTsKKwljcnRj X2gtLTsKKworCWlmIChjcnRjX3cgIT0gc3JjX3cgfHwgY3J0Y19oICE9IHNyY19oKQorCQlkdnNz Y2FsZSA9IERWU19TQ0FMRV9FTkFCTEUgfCAoc3JjX2ggPDwgMTYpIHwgc3JjX3c7CisKKwlJOTE1 X1dSSVRFKERWU1NUUklERShwaXBlKSwgZmItPnBpdGNoKTsKKwlJOTE1X1dSSVRFKERWU1BPUyhw aXBlKSwgKGNydGNfeSA8PCAxNikgfCBjcnRjX3gpOworCUk5MTVfV1JJVEUoRFZTVElMRU9GRihw aXBlKSwgKHkgPDwgMTYpIHwgeCk7CisJSTkxNV9XUklURShEVlNTSVpFKHBpcGUpLCAoY3J0Y19o IDw8IDE2KSB8IGNydGNfdyk7CisJSTkxNV9XUklURShEVlNTQ0FMRShwaXBlKSwgZHZzc2NhbGUp OworCUk5MTVfV1JJVEUocmVnLCBkdnNjbnRyKTsKKwlJOTE1X1dSSVRFKERWU1NVUkYocGlwZSks IHN0YXJ0KTsKKwlQT1NUSU5HX1JFQUQoRFZTU1VSRihwaXBlKSk7Cit9CisKK3N0YXRpYyB2b2lk CitzbmJfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKK3sKKwlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxf cGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+ cGlwZTsKKworCUk5MTVfV1JJVEUoRFZTQ05UUihwaXBlKSwgSTkxNV9SRUFEKERWU0NOVFIocGlw ZSkpICYgfkRWU19FTkFCTEUpOworCUk5MTVfV1JJVEUoRFZTU0NBTEUocGlwZSksIDApOworCUk5 MTVfV1JJVEUoRFZTU1VSRihwaXBlKSwgMCk7CisJUE9TVElOR19SRUFEKERWU1NVUkYocGlwZSkp OworCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIHBpcGUpOworfQorCitzdGF0aWMgaW50Citp bnRlbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKKwkJICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBjcnRjX3gsIGlu dCBjcnRjX3ksCisJCSAgIHVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gs CisJCSAgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSwKKwkJICAgdWludDMyX3Qgc3Jj X3csIHVpbnQzMl90IHNyY19oKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMp OworCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFu ZSk7CisJc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYjsKKwlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLCAqb2xkX29iajsKKwlpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5w aXBlOworCXVuc2lnbmVkIGxvbmcgc3RhcnQ7CisJaW50IHJldCA9IDA7CisJaW50IHggPSBzcmNf eCA+PiAxNiwgeSA9IHNyY195ID4+IDE2OworCWludCBwcmltYXJ5X3cgPSBjcnRjLT5tb2RlLmhk aXNwbGF5LCBwcmltYXJ5X2ggPSBjcnRjLT5tb2RlLnZkaXNwbGF5OworCWJvb2wgZGlzYWJsZV9w cmltYXJ5ID0gZmFsc2U7CisKKwlpbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKTsK KwlvYmogPSBpbnRlbF9mYi0+b2JqOworCisJb2xkX29iaiA9IGludGVsX3BsYW5lLT5vYmo7CisK KwkvKiBQaXBlIG11c3QgYmUgcnVubmluZy4uLiAqLworCWlmICghKEk5MTVfUkVBRChQSVBFQ09O RihwaXBlKSkgJiBQSVBFQ09ORl9FTkFCTEUpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChj cnRjX3ggPj0gcHJpbWFyeV93IHx8IGNydGNfeSA+PSBwcmltYXJ5X2gpCisJCXJldHVybiAtRUlO VkFMOworCisJLyogRG9uJ3QgbW9kaWZ5IGFub3RoZXIgcGlwZSdzIHBsYW5lICovCisJaWYgKGlu dGVsX3BsYW5lLT5waXBlICE9IGludGVsX2NydGMtPnBpcGUpCisJCXJldHVybiAtRUlOVkFMOwor CisJLyoKKwkgKiBDbGFtcCB0aGUgd2lkdGggJiBoZWlnaHQgaW50byB0aGUgdmlzaWJsZSBhcmVh LiAgTm90ZSB3ZSBkb24ndAorCSAqIHRyeSB0byBzY2FsZSB0aGUgc291cmNlIGlmIHBhcnQgb2Yg dGhlIHZpc2libGUgcmVnaW9uIGlzIG9mZnNjcmVlbi4KKwkgKiBUaGUgY2FsbGVyIG11c3QgaGFu ZGxlIHRoYXQgYnkgYWRqdXN0aW5nIHNvdXJjZSBvZmZzZXQgYW5kIHNpemUuCisJICovCisJaWYg KGNydGNfeCA8IDApIHsKKwkJY3J0Y193ICs9IGNydGNfeDsKKwkJY3J0Y194ID0gMDsKKwl9CisJ aWYgKGNydGNfeCArIGNydGNfdyA+IHByaW1hcnlfdykKKwkJY3J0Y193ID0gcHJpbWFyeV93IC0g Y3J0Y194OworCisJaWYgKGNydGNfeSA8IDApIHsKKwkJY3J0Y19oICs9IGNydGNfeTsKKwkJY3J0 Y195ID0gMDsKKwl9CisJaWYgKGNydGNfeSArIGNydGNfaCA+IHByaW1hcnlfaCkKKwkJY3J0Y19o ID0gcHJpbWFyeV9oIC0gY3J0Y195OworCisJLyoKKwkgKiBXZSBjYW4gdGFrZSBhIGxhcmdlciBz b3VyY2UgYW5kIHNjYWxlIGl0IGRvd24sIGJ1dAorCSAqIG9ubHkgc28gbXVjaC4uLiAgMTZ4IGlz IHRoZSBtYXggb24gU05CLgorCSAqLworCWlmICgoKHNyY193ICogc3JjX2gpIC8gKGNydGNfdyAq IGNydGNfaCkpID4gaW50ZWxfcGxhbmUtPm1heF9kb3duc2NhbGUpCisJCXJldHVybiAtRUlOVkFM OworCisJLyoKKwkgKiBJZiB0aGUgb3ZlcmxheSBpcyBjb21wbGV0ZWx5IGNvdmVyaW5nIHRoZSBw cmltYXJ5IHBsYW5lLAorCSAqIHdlIGNhbiBkaXNhYmxlIHRoZSBwcmltYXJ5IGFuZCBzYXZlIHBv d2VyLgorCSAqLworCWlmICgoY3J0Y194ID09IDApICYmIChjcnRjX3kgPT0gMCkgJiYKKwkgICAg KGNydGNfdyA9PSBwcmltYXJ5X3cpICYmIChjcnRjX2ggPT0gcHJpbWFyeV9oKSkKKwkJZGlzYWJs ZV9wcmltYXJ5ID0gdHJ1ZTsKKworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwor CWlmIChvYmotPnRpbGluZ19tb2RlICE9IEk5MTVfVElMSU5HX1gpIHsKKwkJRFJNX0VSUk9SKCJw bGFuZSBzdXJmYWNlcyBtdXN0IGJlIFggdGlsZWRcbiIpOworCQlyZXQgPSAtRUlOVkFMOworCQln b3RvIG91dF91bmxvY2s7CisJfQorCisJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmoo ZGV2LCBvYmosIE5VTEwpOworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gcGlu IG9iamVjdFxuIik7CisJCWdvdG8gb3V0X3VubG9jazsKKwl9CisKKwlkcm1fZ2VtX29iamVjdF9y ZWZlcmVuY2UoJm9iai0+YmFzZSk7CisKKwlpbnRlbF9wbGFuZS0+b2JqID0gb2JqOworCisJc3Rh cnQgPSBvYmotPmd0dF9vZmZzZXQ7CisKKwkvKgorCSAqIEJlIHN1cmUgdG8gcmUtZW5hYmxlIHRo ZSBwcmltYXJ5IGJlZm9yZSB0aGUgb3ZlcmxheSBpcyBubyBsb25nZXIKKwkgKiBjb3ZlcmluZyBp dCBmdWxseS4KKwkgKi8KKwlpZiAoIWRpc2FibGVfcHJpbWFyeSAmJiBpbnRlbF9wbGFuZS0+cHJp bWFyeV9kaXNhYmxlZCkgeworCQkvL2Rldl9wcml2LT5kaXNwbGF5LmVuYWJsZV9wcmltYXJ5KGRl diwgY3J0Yyk7CisJCWludGVsX3BsYW5lLT5wcmltYXJ5X2Rpc2FibGVkID0gZmFsc2U7CisJfQor CisJaW50ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZShwbGFuZSwgZmIsIHN0YXJ0LCBjcnRjX3gsIGNy dGNfeSwKKwkJCQkgIGNydGNfdywgY3J0Y19oLCB4LCB5LCBzcmNfdywgc3JjX2gpOworCisJaWYg KGRpc2FibGVfcHJpbWFyeSkgeworCQkvL2Rldl9wcml2LT5kaXNwbGF5LmRpc2FibGVfcHJpbWFy eShkZXYsIGNydGMpOworCQlpbnRlbF9wbGFuZS0+cHJpbWFyeV9kaXNhYmxlZCA9IHRydWU7CisJ fQorCisJLyogVW5waW4gb2xkIG9iaiBhZnRlciBuZXcgb25lIGlzIGFjdGl2ZSB0byBhdm9pZCB1 Z2xpbmVzcyAqLworCWlmIChvbGRfb2JqKSB7CisJCS8qCisJCSAqIEl0J3MgZmFpcmx5IGNvbW1v biB0byBzaW1wbHkgdXBkYXRlIHRoZSBwb3NpdGlvbiBvZgorCQkgKiBhbiBleGlzdGluZyBvYmpl Y3QuICBJbiB0aGF0IGNhc2UsIHdlIGRvbid0IG5lZWQgdG8KKwkJICogd2FpdCBmb3IgdmJsYW5r IHRvIGF2b2lkIHVnbGluZXNzLCB3ZSBvbmx5IG5lZWQgdG8KKwkJICogZG8gdGhlIHBpbiAmIHJl ZiBib29ra2VlcGluZy4KKwkJICovCisJCWlmIChvbGRfb2JqICE9IG9iaikKKwkJCWludGVsX3dh aXRfZm9yX3ZibGFuayhkZXYsIHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGUpOworCQlpOTE1X2dl bV9vYmplY3RfdW5waW4ob2xkX29iaik7CisJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZv bGRfb2JqLT5iYXNlKTsKKwl9CisKK291dF91bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50CitpbnRlbF9kaXNh YmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQoreworCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBwbGFuZS0+ZGV2OworCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShwbGFuZSk7CisJaW50IHJldCA9IDA7CisKKwltdXRleF9sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7CisKKwlpZiAoaW50ZWxfcGxhbmUtPnByaW1hcnlfZGlzYWJsZWQpIHsK KwkJLy9kZXZfcHJpdi0+ZGlzcGxheS5lbmFibGVfcHJpbWFyeShkZXYsIGNydGMpOworCQlpbnRl bF9wbGFuZS0+cHJpbWFyeV9kaXNhYmxlZCA9IGZhbHNlOworCX0KKworCWludGVsX3BsYW5lLT5k aXNhYmxlX3BsYW5lKHBsYW5lKTsKKworCWlmICghaW50ZWxfcGxhbmUtPm9iaikKKwkJZ290byBv dXRfdW5sb2NrOworCisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2ZpbmlzaF9ncHUoaW50ZWxfcGxh bmUtPm9iaik7CisJaWYgKHJldCkKKwkJZ290byBvdXRfdW5sb2NrOworCisJaTkxNV9nZW1fb2Jq ZWN0X3VucGluKGludGVsX3BsYW5lLT5vYmopOworCisJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVu Y2UoJmludGVsX3BsYW5lLT5vYmotPmJhc2UpOworCitvdXRfdW5sb2NrOgorCWludGVsX3BsYW5l LT5vYmogPSBOVUxMOworCisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwly ZXR1cm4gcmV0OworfQorCitzdGF0aWMgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wbGFu ZV9mdW5jczsKKworc3RhdGljIHVpbnQzMl90IHNuYl9wbGFuZV9mb3JtYXRzW10gPSB7CisJVjRM Ml9QSVhfRk1UX0JHUjMyLAorCVY0TDJfUElYX0ZNVF9SR0IzMiwKKwlWNEwyX1BJWF9GTVRfWVVZ ViwKKwlWNEwyX1BJWF9GTVRfWVZZVSwKKwlWNEwyX1BJWF9GTVRfVVlWWSwKKwlWNEwyX1BJWF9G TVRfVllVWSwKK307CisKK2ludAoraW50ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBlbnVtIHBpcGUgcGlwZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5l OworCXVuc2lnbmVkIGxvbmcgcG9zc2libGVfY3J0Y3M7CisKKwlpZiAoIShJU19HRU42KGRldikg fHwgSVNfR0VONyhkZXYpKSkgeworCQlEUk1fRVJST1IoIm5ldyBwbGFuZSBjb2RlIG9ubHkgZm9y IFNOQitcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlpbnRlbF9wbGFuZSA9IGt6YWxs b2Moc2l6ZW9mKHN0cnVjdCBpbnRlbF9wbGFuZSksIEdGUF9LRVJORUwpOworCWlmICghaW50ZWxf cGxhbmUpCisJCXJldHVybiAtRU5PTUVNOworCisJaW50ZWxfcGxhbmVfZnVuY3MudXBkYXRlX3Bs YW5lID0gaW50ZWxfdXBkYXRlX3BsYW5lOworCWludGVsX3BsYW5lX2Z1bmNzLmRpc2FibGVfcGxh bmUgPSBpbnRlbF9kaXNhYmxlX3BsYW5lOworCisJaWYgKElTX0dFTjYoZGV2KSkgeworCQlpbnRl bF9wbGFuZS0+bWF4X2Rvd25zY2FsZSA9IDE2OworCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5l ID0gc25iX3VwZGF0ZV9wbGFuZTsKKwkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUgPSBzbmJf ZGlzYWJsZV9wbGFuZTsKKwl9IGVsc2UgaWYgKElTX0dFTjcoZGV2KSkgeworCQlpbnRlbF9wbGFu ZS0+bWF4X2Rvd25zY2FsZSA9IDI7CisJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSBpdmJf dXBkYXRlX3BsYW5lOworCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFuZSA9IGl2Yl9kaXNhYmxl X3BsYW5lOworCX0KKworCWludGVsX3BsYW5lLT5waXBlID0gcGlwZTsKKwlwb3NzaWJsZV9jcnRj cyA9ICgxIDw8IHBpcGUpOworCWRybV9wbGFuZV9pbml0KGRldiwgJmludGVsX3BsYW5lLT5iYXNl LCBwb3NzaWJsZV9jcnRjcywKKwkJICAgICAgICZpbnRlbF9wbGFuZV9mdW5jcywgc25iX3BsYW5l X2Zvcm1hdHMsCisJCSAgICAgICBBUlJBWV9TSVpFKHNuYl9wbGFuZV9mb3JtYXRzKSk7CisKKwly ZXR1cm4gMDsKK30KKwotLSAKMS43LjQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK