From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: [PATCH] drm/i915: add SNB video sprite support Date: Tue, 25 Oct 2011 13:30:31 +0200 Message-ID: <20111025133031.0600d43d@jbarnes-x220> References: <1319536026-2877-1-git-send-email-jbarnes@virtuousgeek.org> <20111025132206.021db014@jbarnes-x220> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20111025132206.021db014@jbarnes-x220> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbSAxM2VmYzBhNDA1ZDUyMmFhZDgyNTBmY2UyZGJkMDVmZWZiOGI4YWIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9y Zz4KRGF0ZTogRnJpLCAyMiBBcHIgMjAxMSAxNDo1NTozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hd IGRybS9pOTE1OiBhZGQgU05CIHZpZGVvIHNwcml0ZSBzdXBwb3J0CgpUaGUgdmlkZW8gc3ByaXRl cyBzdXBwb3J0IHZhcmlvdXMgdmlkZW8gc3VyZmFjZSBmb3JtYXRzIG5hdGl2ZWx5IGFuZCBjYW4K aGFuZGxlIHNjYWxpbmcgYXMgd2VsbC4gIFNvIGFkZCBzdXBwb3J0IGZvciB0aGVtIHVzaW5nIHRo ZSBuZXcgRFJNIGNvcmUKb3ZlcmxheSBzdXBwb3J0IGZ1bmN0aW9ucy4KCnYyOiBjb2xsYXBzZSBw YXRjaGVzCnYzOiBubyByZWFsbHksIGZpeCBkaXNhYmxlIG9yZGVyaW5nCgpTaWduZWQtb2ZmLWJ5 OiBKZXNzZSBCYXJuZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9NYWtlZmlsZSAgICAgICAgIHwgICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oICAgICAgIHwgIDExNiArKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgIHwgICAyNiArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oICAgICAgfCAgIDE0ICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYi5jICAg ICAgIHwgICAgNiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5Mi5jIHwgIDM5 NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNTQ5 IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheTIuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXgg MGFlNmE3Yy4uNjE5MzQ3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZp bGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTI4LDYgKzI4LDcgQEAg aTkxNS15IDo9IGk5MTVfZHJ2Lm8gaTkxNV9kbWEubyBpOTE1X2lycS5vIGk5MTVfbWVtLm8gXAog CSAgaW50ZWxfZHZvLm8gXAogCSAgaW50ZWxfcmluZ2J1ZmZlci5vIFwKIAkgIGludGVsX292ZXJs YXkubyBcCisJICBpbnRlbF9vdmVybGF5Mi5vIFwKIAkgIGludGVsX29wcmVnaW9uLm8gXAogCSAg ZHZvX2NoN3h4eC5vIFwKIAkgIGR2b19jaDcwMTcubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApp bmRleCA1YTA5NDE2Li44Y2JkYTBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTI2NjYs NiArMjY2NiwxMjIgQEAKICNkZWZpbmUgX0RTUEJTVVJGCQkweDcxMTlDCiAjZGVmaW5lIF9EU1BC VElMRU9GRgkJMHg3MTFBNAogCisvKiBTcHJpdGUgQSBjb250cm9sICovCisjZGVmaW5lIF9EVlNB Q05UUgkJMHg3MjE4MAorI2RlZmluZSAgIERWU19FTkFCTEUJCSgxPDwzMSkKKyNkZWZpbmUgICBE VlNfR0FNTUFfRU5BQkxFCSgxPDwzMCkKKyNkZWZpbmUgICBEVlNfUElYRk9STUFUX01BU0sJKDM8 PDI1KQorI2RlZmluZSAgIERWU19GT1JNQVRfWVVWNDIyCSgwPDwyNSkKKyNkZWZpbmUgICBEVlNf Rk9STUFUX1JHQlgxMDEwMTAJKDE8PDI1KQorI2RlZmluZSAgIERWU19GT1JNQVRfUkdCWDg4OAko Mjw8MjUpCisjZGVmaW5lICAgRFZTX0ZPUk1BVF9SR0JYMTYxNjE2CSgzPDwyNSkKKyNkZWZpbmUg ICBEVlNfU09VUkNFX0tFWQkoMTw8MjIpCisjZGVmaW5lICAgRFZTX1JHQl9PUkRFUl9SR0JYCSgx PDwyMCkKKyNkZWZpbmUgICBEVlNfWVVWX0JZVEVfT1JERVJfTUFTSyAoMzw8MTYpCisjZGVmaW5l ICAgRFZTX1lVVl9PUkRFUl9ZVVlWCSgwPDwxNikKKyNkZWZpbmUgICBEVlNfWVVWX09SREVSX1VZ VlkJKDE8PDE2KQorI2RlZmluZSAgIERWU19ZVVZfT1JERVJfWVZZVQkoMjw8MTYpCisjZGVmaW5l ICAgRFZTX1lVVl9PUkRFUl9WWVVZCSgzPDwxNikKKyNkZWZpbmUgICBEVlNfREVTVF9LRVkJCSgx PDwyKQorI2RlZmluZSAgIERWU19UUklDS0xFX0ZFRURfRElTQUJMRSAoMTw8MTQpCisjZGVmaW5l ICAgRFZTX1RJTEVECQkoMTw8MTApCisjZGVmaW5lIF9EVlNBU1RSSURFCQkweDcyMTg4CisjZGVm aW5lIF9EVlNBUE9TCQkweDcyMThjCisjZGVmaW5lIF9EVlNBU0laRQkJMHg3MjE5MAorI2RlZmlu ZSBfRFZTQUtFWVZBTAkJMHg3MjE5NAorI2RlZmluZSBfRFZTQUtFWU1TSwkJMHg3MjE5OAorI2Rl ZmluZSBfRFZTQVNVUkYJCTB4NzIxOWMKKyNkZWZpbmUgX0RWU0FLRVlNQVhWQUwJCTB4NzIxYTAK KyNkZWZpbmUgX0RWU0FUSUxFT0ZGCQkweDcyMWE0CisjZGVmaW5lIF9EVlNBU1VSRkxJVkUJCTB4 NzIxYWMKKyNkZWZpbmUgX0RWU0FTQ0FMRQkJMHg3MjIwNAorI2RlZmluZSAgIERWU19TQ0FMRV9F TkFCTEUJKDE8PDMxKQorI2RlZmluZSAgIERWU19GSUxURVJfTUFTSwkoMzw8MjkpCisjZGVmaW5l ICAgRFZTX0ZJTFRFUl9NRURJVU0JKDA8PDI5KQorI2RlZmluZSAgIERWU19GSUxURVJfRU5IQU5D SU5HCSgxPDwyOSkKKyNkZWZpbmUgICBEVlNfRklMVEVSX1NPRlRFTklORwkoMjw8MjkpCisjZGVm aW5lIF9EVlNBR0FNQwkJMHg3MjMwMAorCisjZGVmaW5lIF9EVlNCQ05UUgkJMHg3MzE4MAorI2Rl ZmluZSBfRFZTQlNUUklERQkJMHg3MzE4OAorI2RlZmluZSBfRFZTQlBPUwkJMHg3MzE4YworI2Rl ZmluZSBfRFZTQlNJWkUJCTB4NzMxOTAKKyNkZWZpbmUgX0RWU0JLRVlWQUwJCTB4NzMxOTQKKyNk ZWZpbmUgX0RWU0JLRVlNU0sJCTB4NzMxOTgKKyNkZWZpbmUgX0RWU0JTVVJGCQkweDczMTljCisj ZGVmaW5lIF9EVlNCS0VZTUFYVkFMCQkweDczMWEwCisjZGVmaW5lIF9EVlNCVElMRU9GRgkJMHg3 MzFhNAorI2RlZmluZSBfRFZTQlNVUkZMSVZFCQkweDczMWFjCisjZGVmaW5lIF9EVlNCU0NBTEUJ CTB4NzMyMDQKKyNkZWZpbmUgX0RWU0JHQU1DCQkweDczMzAwCisKKyNkZWZpbmUgRFZTQ05UUihw aXBlKSBfUElQRShwaXBlLCBfRFZTQUNOVFIsIF9EVlNCQ05UUikKKyNkZWZpbmUgRFZTU1RSSURF KHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNBU1RSSURFLCBfRFZTQlNUUklERSkKKyNkZWZpbmUgRFZT UE9TKHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNBUE9TLCBfRFZTQlBPUykKKyNkZWZpbmUgRFZTU1VS RihwaXBlKSBfUElQRShwaXBlLCBfRFZTQVNVUkYsIF9EVlNCU1VSRikKKyNkZWZpbmUgRFZTU0la RShwaXBlKSBfUElQRShwaXBlLCBfRFZTQVNJWkUsIF9EVlNCU0laRSkKKyNkZWZpbmUgRFZTU0NB TEUocGlwZSkgX1BJUEUocGlwZSwgX0RWU0FTQ0FMRSwgX0RWU0JTQ0FMRSkKKyNkZWZpbmUgRFZT VElMRU9GRihwaXBlKSBfUElQRShwaXBlLCBfRFZTQVRJTEVPRkYsIF9EVlNCVElMRU9GRikKKwor I2RlZmluZSBfU1BSQV9DVEwJCTB4NzAyODAKKyNkZWZpbmUgICBTUFJJVEVfRU5BQkxFCQkJKDE8 PDMxKQorI2RlZmluZSAgIFNQUklURV9HQU1NQV9FTkFCTEUJCSgxPDwzMCkKKyNkZWZpbmUgICBT UFJJVEVfUElYRk9STUFUX01BU0sJCSg3PDwyNSkKKyNkZWZpbmUgICBTUFJJVEVfRk9STUFUX1lV VjQyMgkJKDA8PDI1KQorI2RlZmluZSAgIFNQUklURV9GT1JNQVRfUkdCWDEwMTAxMAkoMTw8MjUp CisjZGVmaW5lICAgU1BSSVRFX0ZPUk1BVF9SR0JYODg4CQkoMjw8MjUpCisjZGVmaW5lICAgU1BS SVRFX0ZPUk1BVF9SR0JYMTYxNjE2CSgzPDwyNSkKKyNkZWZpbmUgICBTUFJJVEVfRk9STUFUX1lV VjQ0NAkJKDQ8PDI1KQorI2RlZmluZSAgIFNQUklURV9GT1JNQVRfWEJHUjEwMTAxMAkoNTw8MjUp CisjZGVmaW5lICAgU1BSSVRFX0NTQ19FTkFCTEUJCSgxPDwyNCkKKyNkZWZpbmUgICBTUFJJVEVf U09VUkNFX0tFWQkJKDE8PDIyKQorI2RlZmluZSAgIFNQUklURV9SR0JfT1JERVJfUkdCWAkJKDE8 PDIwKSAvKiBvbmx5IGZvciA4ODggYW5kIDE2MTYxNiAqLworI2RlZmluZSAgIFNQUklURV9ZVVZf VE9fUkdCX0NTQ19ESVNBQkxFCSgxPDwxOSkKKyNkZWZpbmUgICBTUFJJVEVfWVVWX0NTQ19GT1JN QVRfQlQ3MDkJKDE8PDE4KSAvKiAwIGlzIEJUNjAxICovCisjZGVmaW5lICAgU1BSSVRFX1lVVl9C WVRFX09SREVSX01BU0sJKDM8PDE2KQorI2RlZmluZSAgIFNQUklURV9ZVVZfT1JERVJfWVVZVgkJ KDA8PDE2KQorI2RlZmluZSAgIFNQUklURV9ZVVZfT1JERVJfVVlWWQkJKDE8PDE2KQorI2RlZmlu ZSAgIFNQUklURV9ZVVZfT1JERVJfWVZZVQkJKDI8PDE2KQorI2RlZmluZSAgIFNQUklURV9ZVVZf T1JERVJfVllVWQkJKDM8PDE2KQorI2RlZmluZSAgIFNQUklURV9UUklDS0xFX0ZFRURfRElTQUJM RQkoMTw8MTQpCisjZGVmaW5lICAgU1BSSVRFX0lOVF9HQU1NQV9FTkFCTEUJKDE8PDEzKQorI2Rl ZmluZSAgIFNQUklURV9USUxFRAkJCSgxPDwxMCkKKyNkZWZpbmUgICBTUFJJVEVfREVTVF9LRVkJ CSgxPDwyKQorI2RlZmluZSBfU1BSQV9TVFJJREUJCTB4NzAyODgKKyNkZWZpbmUgX1NQUkFfUE9T CQkweDcwMjhjCisjZGVmaW5lIF9TUFJBX1NJWkUJCTB4NzAyOTAKKyNkZWZpbmUgX1NQUkFfS0VZ VkFMCQkweDcwMjk0CisjZGVmaW5lIF9TUFJBX0tFWU1TSwkJMHg3MDI5OAorI2RlZmluZSBfU1BS QV9TVVJGCQkweDcwMjljCisjZGVmaW5lIF9TUFJBX0tFWU1BWAkJMHg3MDJhMAorI2RlZmluZSBf U1BSQV9USUxFT0ZGCQkweDcwMmE0CisjZGVmaW5lIF9TUFJBX1NDQUxFCQkweDcwMzA0CisjZGVm aW5lIF9TUFJBX0dBTUMJCTB4NzA0MDAKKworI2RlZmluZSBfU1BSQl9DVEwJCTB4NzAyODAKKyNk ZWZpbmUgX1NQUkJfU1RSSURFCQkweDcwMjg4CisjZGVmaW5lIF9TUFJCX1BPUwkJMHg3MDI4Ywor I2RlZmluZSBfU1BSQl9TSVpFCQkweDcwMjkwCisjZGVmaW5lIF9TUFJCX0tFWVZBTAkJMHg3MDI5 NAorI2RlZmluZSBfU1BSQl9LRVlNU0sJCTB4NzAyOTgKKyNkZWZpbmUgX1NQUkJfU1VSRgkJMHg3 MDI5YworI2RlZmluZSBfU1BSQl9LRVlNQVgJCTB4NzAyYTAKKyNkZWZpbmUgX1NQUkJfVElMRU9G RgkJMHg3MDJhNAorI2RlZmluZSBfU1BSQl9TQ0FMRQkJMHg3MDMwNAorI2RlZmluZSBfU1BSQl9H QU1DCQkweDcwNDAwCisKKyNkZWZpbmUgU1BSQ1RMKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJBX0NU TCwgX1NQUkJfQ1RMKQorI2RlZmluZSBTUFJTVFJJREUocGlwZSkgX1BJUEUocGlwZSwgX1NQUkFf U1RSSURFLCBfU1BSQl9TVFJJREUpCisjZGVmaW5lIFNQUlBPUyhwaXBlKSBfUElQRShwaXBlLCBf U1BSQV9QT1MsIF9TUFJCX1BPUykKKyNkZWZpbmUgU1BSU0laRShwaXBlKSBfUElQRShwaXBlLCBf U1BSQV9TSVpFLCBfU1BSQl9TSVpFKQorI2RlZmluZSBTUFJLRVlWQUwocGlwZSkgX1BJUEUocGlw ZSwgX1NQUkFfS0VZVkFMLCBfU1BSQl9LRVlWQUwpCisjZGVmaW5lIFNQUktFWU1TSyhwaXBlKSBf UElQRShwaXBlLCBfU1BSQV9LRVlNU0ssIF9TUFJCX0tFWU1TSykKKyNkZWZpbmUgU1BSU1VSRihw aXBlKSBfUElQRShwaXBlLCBfU1BSQV9TVVJGLCBfU1BSQl9TVVJGKQorI2RlZmluZSBTUFJLRVlN QVgocGlwZSkgX1BJUEUocGlwZSwgX1NQUkFfS0VZTUFYLCBfU1BSQl9LRVlNQVgpCisjZGVmaW5l IFNQUlRJTEVPRkYocGlwZSkgX1BJUEUocGlwZSwgX1NQUkFfVElMRU9GRiwgX1NQUkJfVElMRU9G RikKKyNkZWZpbmUgU1BSU0NBTEUocGlwZSkgX1BJUEUocGlwZSwgX1NQUkFfU0NBTEUsIF9TUFJC X1NDQUxFKQorI2RlZmluZSBTUFJHQU1DKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJBX0dBTUMsIF9T UFJCX0dBTUMpCisKIC8qIFZCSU9TIHJlZ3MgKi8KICNkZWZpbmUgVkdBQ05UUkwJCTB4NzE0MDAK ICMgZGVmaW5lIFZHQV9ESVNQX0RJU0FCTEUJCQkoMSA8PCAzMSkKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwppbmRleCBlNzQ4MzM4Li5jZDdlMDRkIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCkBAIC05MTUsOCArOTE1LDggQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3Bh bmVsX3VubG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgICAgIHBp cGVfbmFtZShwaXBlKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGFzc2VydF9waXBlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCWVudW0gcGlwZSBwaXBlLCBib29sIHN0YXRlKQor dm9pZCBhc3NlcnRfcGlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCSBl bnVtIHBpcGUgcGlwZSwgYm9vbCBzdGF0ZSkKIHsKIAlpbnQgcmVnOwogCXUzMiB2YWw7CkBAIC05 MjksOCArOTI5LDYgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCSAgICAgInBpcGUgJWMgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVj dGVkICVzLCBjdXJyZW50ICVzKVxuIiwKIAkgICAgIHBpcGVfbmFtZShwaXBlKSwgc3RhdGVfc3Ry aW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOwogfQotI2RlZmluZSBhc3NlcnRf cGlwZV9lbmFibGVkKGQsIHApIGFzc2VydF9waXBlKGQsIHAsIHRydWUpCi0jZGVmaW5lIGFzc2Vy dF9waXBlX2Rpc2FibGVkKGQsIHApIGFzc2VydF9waXBlKGQsIHAsIGZhbHNlKQogCiBzdGF0aWMg dm9pZCBhc3NlcnRfcGxhbmVfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCQkJIGVudW0gcGxhbmUgcGxhbmUpCkBAIC00NDM5LDcgKzQ0MzcsOCBAQCBzdGF0aWMg dm9pZCBpcm9ubGFrZV91cGRhdGVfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAgICBJ TEtfTFAwX0NVUlNPUl9MQVRFTkNZLAogCQkJICAgICZwbGFuZV93bSwgJmN1cnNvcl93bSkpIHsK IAkJSTkxNV9XUklURShXTTBfUElQRUFfSUxLLAotCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBF X1BMQU5FX1NISUZUKSB8IGN1cnNvcl93bSk7CisJCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVf UExBTkVfU0hJRlQpIHwKKwkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQRV9TUFJJVEVfU0hJRlQp IHwgY3Vyc29yX3dtKTsKIAkJRFJNX0RFQlVHX0tNUygiRklGTyB3YXRlcm1hcmtzIEZvciBwaXBl IEEgLSIKIAkJCSAgICAgICIgcGxhbmUgJWQsICIgImN1cnNvcjogJWRcbiIsCiAJCQkgICAgICBw bGFuZV93bSwgY3Vyc29yX3dtKTsKQEAgLTQ0NTMsNyArNDQ1Miw4IEBAIHN0YXRpYyB2b2lkIGly b25sYWtlX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJICAgIElMS19MUDBf Q1VSU09SX0xBVEVOQ1ksCiAJCQkgICAgJnBsYW5lX3dtLCAmY3Vyc29yX3dtKSkgewogCQlJOTE1 X1dSSVRFKFdNMF9QSVBFQl9JTEssCi0JCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVfUExBTkVf U0hJRlQpIHwgY3Vyc29yX3dtKTsKKwkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQRV9QTEFORV9T SElGVCkgfAorCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBFX1NQUklURV9TSElGVCkgfCBjdXJz b3Jfd20pOwogCQlEUk1fREVCVUdfS01TKCJGSUZPIHdhdGVybWFya3MgRm9yIHBpcGUgQiAtIgog CQkJICAgICAgIiBwbGFuZSAlZCwgY3Vyc29yOiAlZFxuIiwKIAkJCSAgICAgIHBsYW5lX3dtLCBj dXJzb3Jfd20pOwpAQCAtNDUyMSw3ICs0NTIxLDggQEAgc3RhdGljIHZvaWQgc2FuZHlicmlkZ2Vf dXBkYXRlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkgICAgJnNhbmR5YnJpZGdlX2N1 cnNvcl93bV9pbmZvLCBsYXRlbmN5LAogCQkJICAgICZwbGFuZV93bSwgJmN1cnNvcl93bSkpIHsK IAkJSTkxNV9XUklURShXTTBfUElQRUFfSUxLLAotCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBF X1BMQU5FX1NISUZUKSB8IGN1cnNvcl93bSk7CisJCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVf UExBTkVfU0hJRlQpIHwKKwkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQRV9TUFJJVEVfU0hJRlQp IHwgY3Vyc29yX3dtKTsKIAkJRFJNX0RFQlVHX0tNUygiRklGTyB3YXRlcm1hcmtzIEZvciBwaXBl IEEgLSIKIAkJCSAgICAgICIgcGxhbmUgJWQsICIgImN1cnNvcjogJWRcbiIsCiAJCQkgICAgICBw bGFuZV93bSwgY3Vyc29yX3dtKTsKQEAgLTQ1MzMsNyArNDUzNCw4IEBAIHN0YXRpYyB2b2lkIHNh bmR5YnJpZGdlX3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJICAgICZzYW5k eWJyaWRnZV9jdXJzb3Jfd21faW5mbywgbGF0ZW5jeSwKIAkJCSAgICAmcGxhbmVfd20sICZjdXJz b3Jfd20pKSB7CiAJCUk5MTVfV1JJVEUoV00wX1BJUEVCX0lMSywKLQkJCSAgIChwbGFuZV93bSA8 PCBXTTBfUElQRV9QTEFORV9TSElGVCkgfCBjdXJzb3Jfd20pOworCQkJICAgKHBsYW5lX3dtIDw8 IFdNMF9QSVBFX1BMQU5FX1NISUZUKSB8CisJCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVfU1BS SVRFX1NISUZUKSB8IGN1cnNvcl93bSk7CiAJCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0ZXJtYXJr cyBGb3IgcGlwZSBCIC0iCiAJCQkgICAgICAiIHBsYW5lICVkLCBjdXJzb3I6ICVkXG4iLAogCQkJ ICAgICAgcGxhbmVfd20sIGN1cnNvcl93bSk7CkBAIC04NjkyLDcgKzg2OTQsNyBAQCBzdGF0aWMg dm9pZCBpOTE1X2Rpc2FibGVfdmdhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB2b2lkIGludGVs X21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JaW50IGk7CisJaW50IGks IHJldDsKIAogCWRybV9tb2RlX2NvbmZpZ19pbml0KGRldik7CiAKQEAgLTg3MjIsNiArODcyNCwx MiBAQCB2b2lkIGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJ Zm9yIChpID0gMDsgaSA8IGRldl9wcml2LT5udW1fcGlwZTsgaSsrKSB7CiAJCWludGVsX2NydGNf aW5pdChkZXYsIGkpOworCQlpZiAoSEFTX1BDSF9TUExJVChkZXYpKSB7CisJCQlyZXQgPSBpbnRl bF9wbGFuZV9pbml0KGRldiwgaSk7CisJCQlpZiAocmV0KQorCQkJCURSTV9FUlJPUigicGxhbmUg JWQgaW5pdCBmYWlsZWQ6ICVkXG4iLAorCQkJCQkgIGksIHJldCk7CisJCX0KIAl9CiAKIAkvKiBK dXN0IGRpc2FibGUgaXQgb25jZSBhdCBzdGFydHVwICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CmluZGV4IDQ2N2ZiNGEuLjUwYjYzM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0x NzYsMTAgKzE3NiwxOCBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7CiAJYm9vbCB1c2VfcGxsX2E7CiB9 OwogCitzdHJ1Y3QgaW50ZWxfcGxhbmUgeworCXN0cnVjdCBkcm1fcGxhbmUgYmFzZTsKKwllbnVt IHBpcGUgcGlwZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXUzMiBsdXRf clsxMDI0XSwgbHV0X2dbMTAyNF0sIGx1dF9iWzEwMjRdOworfTsKKwogI2RlZmluZSB0b19pbnRl bF9jcnRjKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfY3J0YywgYmFzZSkKICNkZWZp bmUgdG9faW50ZWxfY29ubmVjdG9yKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yLCBiYXNlKQogI2RlZmluZSB0b19pbnRlbF9lbmNvZGVyKHgpIGNvbnRhaW5lcl9vZih4 LCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciwgYmFzZSkKICNkZWZpbmUgdG9faW50ZWxfZnJhbWVidWZm ZXIoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciwgYmFzZSkKKyNk ZWZpbmUgdG9faW50ZWxfcGxhbmUoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9wbGFu ZSwgYmFzZSkKIAogI2RlZmluZSBESVBfSEVBREVSX1NJWkUJNQogCkBAIC0yODksNiArMjk3LDcg QEAgaW50ZWxfZHBfc2V0X21fbihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlLAogZXh0ZXJuIGJvb2wgaW50ZWxfZHBkX2lzX2VkcChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKIGV4dGVybiB2b2lkIGludGVsX2VkcF9saW5rX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqLCBpbnQgKiwgaW50ICopOwogZXh0ZXJuIGJvb2wgaW50ZWxfZW5jb2Rl cl9pc19wY2hfZWRwKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7CitleHRlcm4gaW50IGlu dGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUpOwog CiAvKiBpbnRlbF9wYW5lbC5jICovCiBleHRlcm4gdm9pZCBpbnRlbF9maXhlZF9wYW5lbF9tb2Rl KHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpmaXhlZF9tb2RlLApAQCAtMzc5LDYgKzM4OCwxMSBA QCBleHRlcm4gaW50IGludGVsX292ZXJsYXlfYXR0cnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKIGV4dGVybiB2b2lkIGludGVsX2ZiX291dHB1dF9wb2xsX2NoYW5nZWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7CiBleHRlcm4gdm9pZCBpbnRlbF9mYl9yZXN0b3JlX21vZGUo c3RydWN0IGRybV9kZXZpY2UgKmRldik7CiAKK2V4dGVybiB2b2lkIGFzc2VydF9waXBlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUsCisJCQlib29sIHN0 YXRlKTsKKyNkZWZpbmUgYXNzZXJ0X3BpcGVfZW5hYmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBw LCB0cnVlKQorI2RlZmluZSBhc3NlcnRfcGlwZV9kaXNhYmxlZChkLCBwKSBhc3NlcnRfcGlwZShk LCBwLCBmYWxzZSkKKwogZXh0ZXJuIHZvaWQgaW50ZWxfaW5pdF9jbG9ja19nYXRpbmcoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7CiBleHRlcm4gdm9pZCBpbnRlbF93cml0ZV9lbGQoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9mYi5jCmluZGV4IDExYmFhOTkuLjUxM2E0MGMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmIuYwpAQCAtMjcwLDggKzI3MCwxNCBAQCB2b2lkIGludGVsX2ZiX3Jlc3Rv cmVfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCWludCByZXQ7CiAJZHJtX2k5MTVf cHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9tb2Rl X2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7CisJc3RydWN0IGRybV9wbGFuZSAq cGxhbmU7CiAKIAlyZXQgPSBkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZSgmZGV2X3By aXYtPmZiZGV2LT5oZWxwZXIpOwogCWlmIChyZXQpCiAJCURSTV9ERUJVRygiZmFpbGVkIHRvIHJl c3RvcmUgY3J0YyBtb2RlXG4iKTsKKworCS8qIEJlIHN1cmUgdG8gc2h1dCBvZmYgYW55IHBsYW5l cyB0aGF0IG1heSBiZSBhY3RpdmUgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBsYW5lLCAmY29u ZmlnLT5wbGFuZV9saXN0LCBoZWFkKQorCQlwbGFuZS0+ZnVuY3MtPmRpc2FibGVfcGxhbmUocGxh bmUpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheTIu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkyLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZiNmY5OQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkyLmMKQEAgLTAsMCArMSwzOTUgQEAKKy8qCisgKiBD b3B5cmlnaHQgwqkgMjAxMSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh CisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0 aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBU SEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwg REFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBD T05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKyAqIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MgSU4gVEhFCisgKiBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICBKZXNzZSBCYXJu ZXMgPGpiYXJuZXNAdmlydHVvdXNnZWVrLm9yZz4KKyAqCisgKiBOZXcgcGxhbmUvc3ByaXRlIGhh bmRsaW5nLgorICoKKyAqIFRoZSBvbGRlciBjaGlwcyBoYWQgYSBzZXBhcmF0ZSBpbnRlcmZhY2Ug Zm9yIHByb2dyYW1taW5nIHBsYW5lIHJlbGF0ZWQKKyAqIHJlZ2lzdGVyczsgbmV3ZXIgb25lcyBh cmUgbXVjaCBzaW1wbGVyIGFuZCB3ZSBjYW4gdXNlIHRoZSBuZXcgRFJNIHBsYW5lCisgKiBzdXBw b3J0LgorICovCisjaW5jbHVkZSAiZHJtUC5oIgorI2luY2x1ZGUgImRybV9jcnRjLmgiCisjaW5j bHVkZSAiaW50ZWxfZHJ2LmgiCisjaW5jbHVkZSAiaTkxNV9kcm0uaCIKKyNpbmNsdWRlICJpOTE1 X2Rydi5oIgorCisvKgorICogTm90ZSBvbiByZWZjb3VudGluZzoKKyAqIFdoZW4gdGhlIHVzZXIg Y3JlYXRlcyBhbiBmYiBmb3IgdGhlIEdFTSBvYmplY3QgdG8gYmUgdXNlZCBmb3IgdGhlIHBsYW5l LAorICogYSByZWYgaXMgdGFrZW4gb24gdGhlIG9iamVjdC4gIEhvd2V2ZXIsIGlmIHRoZSBhcHBs aWNhdGlvbiBleGl0cyBiZWZvcmUKKyAqIGRpc2FibGluZyB0aGUgcGxhbmUsIHRoZSBEUk0gY2xv c2UgaGFuZGxpbmcgd2lsbCBmcmVlIGFsbCB0aGUgZmJzIGFuZAorICogdW5sZXNzIHdlIHRha2Ug YSByZWYgb24gdGhlIG9iamVjdCwgaXQgd2lsbCBiZSBkZXN0cm95ZWQgYmVmb3JlIHRoZQorICog cGxhbmUgZGlzYWJsZSBob29rIGlzIGNhbGxlZCwgY2F1c2luZyBvYnZpb3VzIHRyb3VibGUgd2l0 aCBvdXIgZWZmb3J0cworICogdG8gbG9vayB1cCBhbmQgdW5waW4gdGhlIG9iamVjdC4gIFNvIHdl IHRha2UgYSByZWYgYWZ0ZXIgd2UgbW92ZSB0aGUKKyAqIG9iamVjdCB0byB0aGUgZGlzcGxheSBw bGFuZSBzbyBpdCB3b24ndCBiZSBkZXN0cm95ZWQgdW50aWwgb3VyIGRpc2FibGUKKyAqIGhvb2sg aXMgY2FsbGVkIGFuZCB3ZSBkcm9wIG91ciBwcml2YXRlIHJlZmVyZW5jZS4KKyAqLworCitzdGF0 aWMgaW50CitpdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCisJCSAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY3J0 Y194LCBpbnQgY3J0Y195LAorCQkgICB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQg Y3J0Y19oLAorCQkgICB1aW50MzJfdCBzcmNfeCwgdWludDMyX3Qgc3JjX3ksCisJCSAgIHVpbnQz Ml90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g cGxhbmUtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZSk7CisJc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYjsKKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCAqb2xkX29iajsKKwlpbnQgcGlwZSA9IGludGVs X3BsYW5lLT5waXBlOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIG9mZnNldDsKKwl1MzIgc3ByY3Rs OworCXUzMiByZWcgPSBTUFJDVEwocGlwZSk7CisJaW50IHJldCA9IDA7CisJaW50IHggPSBzcmNf eCA+PiAxNiwgeSA9IHNyY195ID4+IDE2OworCisJYXNzZXJ0X3BpcGVfZW5hYmxlZChkZXZfcHJp diwgcGlwZSk7CisKKwlpbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKTsKKwlvYmog PSBpbnRlbF9mYi0+b2JqOworCisJb2xkX29iaiA9IGludGVsX3BsYW5lLT5vYmo7CisKKwltdXRl eF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlzcHJjdGwgPSBJOTE1X1JFQUQocmVnKTsK KworCS8qIE1hc2sgb3V0IHBpeGVsIGZvcm1hdCBiaXRzIGluIGNhc2Ugd2UgY2hhbmdlIGl0ICov CisJc3ByY3RsICY9IH4oU1BSSVRFX0RFU1RfS0VZIHwgU1BSSVRFX1NPVVJDRV9LRVkpOworCXNw cmN0bCAmPSB+U1BSSVRFX1BJWEZPUk1BVF9NQVNLOworCXNwcmN0bCAmPSB+U1BSSVRFX1JHQl9P UkRFUl9SR0JYOworCXNwcmN0bCAmPSB+U1BSSVRFX1lVVl9CWVRFX09SREVSX01BU0s7CisKKwlz d2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwljYXNlIFY0TDJfUElYX0ZNVF9CR1IzMjoKKwkJ c3ByY3RsIHw9IFNQUklURV9GT1JNQVRfUkdCWDg4ODsKKwkJYnJlYWs7CisJY2FzZSBWNEwyX1BJ WF9GTVRfUkdCMzI6CisJCXNwcmN0bCB8PSBTUFJJVEVfRk9STUFUX1JHQlg4ODggfCBTUFJJVEVf UkdCX09SREVSX1JHQlg7CisJCWJyZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1lVWVY6CisJCXNw cmN0bCB8PSBTUFJJVEVfRk9STUFUX1lVVjQyMiB8IFNQUklURV9ZVVZfT1JERVJfWVVZVjsKKwkJ YnJlYWs7CisJY2FzZSBWNEwyX1BJWF9GTVRfWVZZVToKKwkJc3ByY3RsIHw9IFNQUklURV9GT1JN QVRfWVVWNDIyIHwgU1BSSVRFX1lVVl9PUkRFUl9ZVllVOworCQlicmVhazsKKwljYXNlIFY0TDJf UElYX0ZNVF9VWVZZOgorCQlzcHJjdGwgfD0gU1BSSVRFX0ZPUk1BVF9ZVVY0MjIgfCBTUFJJVEVf WVVWX09SREVSX1VZVlk7CisJCWJyZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1ZZVVk6CisJCXNw cmN0bCB8PSBTUFJJVEVfRk9STUFUX1lVVjQyMiB8IFNQUklURV9ZVVZfT1JERVJfVllVWTsKKwkJ YnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0ID0gLUVJTlZBTDsKKwkJRFJNX0VSUk9SKCJiYWQgcGl4 ZWwgZm9ybWF0XG4iKTsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKworCWlmIChvYmotPnRpbGlu Z19tb2RlICE9IEk5MTVfVElMSU5HX1gpIHsKKwkJRFJNX0VSUk9SKCJwbGFuZSBzdXJmYWNlcyBt dXN0IGJlIFggdGlsZWRcbiIpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIG91dF91bmxvY2s7 CisJfQorCisJcmV0ID0gaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZGV2LCBvYmosIE5VTEwp OworCWlmIChyZXQpCisJCWdvdG8gb3V0X3VubG9jazsKKworCWRybV9nZW1fb2JqZWN0X3JlZmVy ZW5jZSgmb2JqLT5iYXNlKTsKKworCWludGVsX3BsYW5lLT5vYmogPSBvYmo7CisKKwlzcHJjdGwg fD0gU1BSSVRFX1RJTEVEOworCisJLyogbXVzdCBkaXNhYmxlICovCisJc3ByY3RsIHw9IFNQUklU RV9UUklDS0xFX0ZFRURfRElTQUJMRTsKKwlzcHJjdGwgfD0gU1BSSVRFX0VOQUJMRTsKKworCXN0 YXJ0ID0gb2JqLT5ndHRfb2Zmc2V0OworCW9mZnNldCA9IHkgKiBmYi0+cGl0Y2ggKyB4ICogKGZi LT5iaXRzX3Blcl9waXhlbCAvIDgpOworCisJSTkxNV9XUklURShTUFJTVFJJREUocGlwZSksIGZi LT5waXRjaCk7CisJSTkxNV9XUklURShTUFJQT1MocGlwZSksIChjcnRjX3kgPDwgMTYpIHwgY3J0 Y194KTsKKwlJOTE1X1dSSVRFKFNQUlRJTEVPRkYocGlwZSksICh5IDw8IDE2KSB8IHgpOworCUk5 MTVfV1JJVEUoU1BSU0laRShwaXBlKSwgKGZiLT5oZWlnaHQgPDwgMTYpIHwgZmItPndpZHRoKTsK KwlJOTE1X1dSSVRFKFNQUlNDQUxFKHBpcGUpLCAwKTsKKwlJOTE1X1dSSVRFKHJlZywgc3ByY3Rs KTsKKwlJOTE1X1dSSVRFKFNQUlNVUkYocGlwZSksIHN0YXJ0KTsKKwlQT1NUSU5HX1JFQUQoU1BS U1VSRihwaXBlKSk7CisKKwkvKiBBZGp1c3Qgd2F0ZXJtYXJrcyBhcyBuZWVkZWQgKi8KKwlJOTE1 X1dSSVRFKFdNMVNfTFBfSUxLLCAweDEwMCk7CisKKwkvKiBVbnBpbiBvbGQgb2JqIGFmdGVyIG5l dyBvbmUgaXMgYWN0aXZlIHRvIGF2b2lkIHVnbGluZXNzICovCisJaWYgKG9sZF9vYmopIHsKKwkJ aW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZSk7CisJ CWk5MTVfZ2VtX29iamVjdF91bnBpbihvbGRfb2JqKTsKKwl9CisKK291dF91bmxvY2s6CisJbXV0 ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0 aWMgaW50CitzbmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCisJCSAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY3J0 Y194LCBpbnQgY3J0Y195LAorCQkgICB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQg Y3J0Y19oLAorCQkgICB1aW50MzJfdCBzcmNfeCwgdWludDMyX3Qgc3JjX3ksCisJCSAgIHVpbnQz Ml90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g cGxhbmUtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZSk7CisJc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyICppbnRlbF9mYjsKKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCAqb2xkX29iajsKKwlpbnQgcGlwZSA9IGludGVs X3BsYW5lLT5waXBlOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIG9mZnNldDsKKwl1MzIgZHZzY250 ciwgZHZzc2NhbGUgPSAwOworCXUzMiByZWcgPSBEVlNDTlRSKHBpcGUpOworCWludCByZXQgPSAw OworCWludCB4ID0gc3JjX3ggPj4gMTYsIHkgPSBzcmNfeSA+PiAxNjsKKwlpbnQgYWN0aXZlX3cg PSBjcnRjLT5tb2RlLmhkaXNwbGF5LCBhY3RpdmVfaCA9IGNydGMtPm1vZGUudmRpc3BsYXk7CisK Kwlhc3NlcnRfcGlwZV9lbmFibGVkKGRldl9wcml2LCBwaXBlKTsKKworCWludGVsX2ZiID0gdG9f aW50ZWxfZnJhbWVidWZmZXIoZmIpOworCW9iaiA9IGludGVsX2ZiLT5vYmo7CisKKwlvbGRfb2Jq ID0gaW50ZWxfcGxhbmUtPm9iajsKKworCWlmIChjcnRjX3ggPj0gYWN0aXZlX3cgfHwgY3J0Y195 ID49IGFjdGl2ZV9oKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qCisJICogV2UgY2FuIHRha2Ug YSBsYXJnZXIgc291cmNlIGFuZCBzY2FsZSBpdCBkb3duLCBidXQKKwkgKiBvbmx5IHNvIG11Y2gu Li4gIDE2eCBpcyB0aGUgbWF4IG9uIFNOQi4KKwkgKi8KKwlpZiAoKChzcmNfdyAqIHNyY19oKSAv IChjcnRjX3cgKiBjcnRjX2gpKSA+IDE2KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIENsYW1w IHRoZSB3aWR0aCAmIGhlaWdodCBpbnRvIHRoZSB2aXNpYmxlIGFyZWEgKi8KKwlpZiAoY3J0Y194 ICsgY3J0Y193ID4gYWN0aXZlX3cpCisJCWNydGNfdyA9IGFjdGl2ZV93IC0gY3J0Y194IC0gMTsK KwlpZiAoY3J0Y195ICsgY3J0Y19oID4gYWN0aXZlX2gpCisJCWNydGNfaCA9IGFjdGl2ZV9oIC0g Y3J0Y195IC0gMTsKKworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworCWR2c2Nu dHIgPSBJOTE1X1JFQUQocmVnKTsKKworCS8qIE1hc2sgb3V0IHBpeGVsIGZvcm1hdCBiaXRzIGlu IGNhc2Ugd2UgY2hhbmdlIGl0ICovCisJZHZzY250ciAmPSB+KERWU19ERVNUX0tFWSB8IERWU19T T1VSQ0VfS0VZKTsKKwlkdnNjbnRyICY9IH5EVlNfUElYRk9STUFUX01BU0s7CisJZHZzY250ciAm PSB+RFZTX1JHQl9PUkRFUl9SR0JYOworCWR2c2NudHIgJj0gfkRWU19ZVVZfQllURV9PUkRFUl9N QVNLOworCisJc3dpdGNoIChmYi0+cGl4ZWxfZm9ybWF0KSB7CisJY2FzZSBWNEwyX1BJWF9GTVRf QkdSMzI6CisJCWR2c2NudHIgfD0gRFZTX0ZPUk1BVF9SR0JYODg4OworCQlicmVhazsKKwljYXNl IFY0TDJfUElYX0ZNVF9SR0IzMjoKKwkJZHZzY250ciB8PSBEVlNfRk9STUFUX1JHQlg4ODggfCBE VlNfUkdCX09SREVSX1JHQlg7CisJCWJyZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1lVWVY6CisJ CWR2c2NudHIgfD0gRFZTX0ZPUk1BVF9ZVVY0MjIgfCBEVlNfWVVWX09SREVSX1lVWVY7CisJCWJy ZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1lWWVU6CisJCWR2c2NudHIgfD0gRFZTX0ZPUk1BVF9Z VVY0MjIgfCBEVlNfWVVWX09SREVSX1lWWVU7CisJCWJyZWFrOworCWNhc2UgVjRMMl9QSVhfRk1U X1VZVlk6CisJCWR2c2NudHIgfD0gRFZTX0ZPUk1BVF9ZVVY0MjIgfCBEVlNfWVVWX09SREVSX1VZ Vlk7CisJCWJyZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1ZZVVk6CisJCWR2c2NudHIgfD0gRFZT X0ZPUk1BVF9ZVVY0MjIgfCBEVlNfWVVWX09SREVSX1ZZVVk7CisJCWJyZWFrOworCWRlZmF1bHQ6 CisJCXJldCA9IC1FSU5WQUw7CisJCURSTV9FUlJPUigiYmFkIHBpeGVsIGZvcm1hdFxuIik7CisJ CWdvdG8gb3V0X3VubG9jazsKKwl9CisKKwlpZiAob2JqLT50aWxpbmdfbW9kZSAhPSBJOTE1X1RJ TElOR19YKSB7CisJCURSTV9FUlJPUigicGxhbmUgc3VyZmFjZXMgbXVzdCBiZSBYIHRpbGVkXG4i KTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKworCXJldCA9IGlu dGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKGRldiwgb2JqLCBOVUxMKTsKKwlpZiAocmV0KQorCQln b3RvIG91dF91bmxvY2s7CisKKwlkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2UoJm9iai0+YmFzZSk7 CisKKwlpbnRlbF9wbGFuZS0+b2JqID0gb2JqOworCisJZHZzY250ciB8PSBEVlNfVElMRUQ7CisK KwkvKiBtdXN0IGRpc2FibGUgKi8KKwlkdnNjbnRyIHw9IERWU19UUklDS0xFX0ZFRURfRElTQUJM RTsKKwlkdnNjbnRyIHw9IERWU19FTkFCTEU7CisKKwlzdGFydCA9IG9iai0+Z3R0X29mZnNldDsK KwlvZmZzZXQgPSB5ICogZmItPnBpdGNoICsgeCAqIChmYi0+Yml0c19wZXJfcGl4ZWwgLyA4KTsK KworCWlmIChjcnRjX3cgIT0gc3JjX3cgfHwgY3J0Y19oICE9IHNyY19oKQorCQlkdnNzY2FsZSA9 IERWU19TQ0FMRV9FTkFCTEUgfCAoc3JjX2ggPDwgMTYpIHwgc3JjX3c7CisKKwlJOTE1X1dSSVRF KERWU1NUUklERShwaXBlKSwgZmItPnBpdGNoKTsKKwlJOTE1X1dSSVRFKERWU1BPUyhwaXBlKSwg KGNydGNfeSA8PCAxNikgfCBjcnRjX3gpOworCUk5MTVfV1JJVEUoRFZTVElMRU9GRihwaXBlKSwg KHkgPDwgMTYpIHwgeCk7CisJSTkxNV9XUklURShEVlNTSVpFKHBpcGUpLCAoY3J0Y19oIDw8IDE2 KSB8IGNydGNfdyk7CisJSTkxNV9XUklURShEVlNTQ0FMRShwaXBlKSwgZHZzc2NhbGUpOworCUk5 MTVfV1JJVEUocmVnLCBkdnNjbnRyKTsKKwlJOTE1X1dSSVRFKERWU1NVUkYocGlwZSksIHN0YXJ0 KTsKKwlQT1NUSU5HX1JFQUQoRFZTU1VSRihwaXBlKSk7CisKKwkvKiBVbnBpbiBvbGQgb2JqIGFm dGVyIG5ldyBvbmUgaXMgYWN0aXZlIHRvIGF2b2lkIHVnbGluZXNzICovCisJaWYgKG9sZF9vYmop IHsKKwkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlw ZSk7CisJCWk5MTVfZ2VtX29iamVjdF91bnBpbihvbGRfb2JqKTsKKwl9CisKK291dF91bmxvY2s6 CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlyZXR1cm4gcmV0OworfQor CitzdGF0aWMgaW50CitpdmJfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkK K3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9w bGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJaW50IHBpcGUgPSBp bnRlbF9wbGFuZS0+cGlwZTsKKwlpbnQgcmV0ID0gMDsKKworCW11dGV4X2xvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKKworCUk5MTVfV1JJVEUoU1BSQ1RMKHBpcGUpLCBJOTE1X1JFQUQoU1BSQ1RM KHBpcGUpKSAmIH5TUFJJVEVfRU5BQkxFKTsKKwlJOTE1X1dSSVRFKFNQUlNVUkYocGlwZSksIDAp OworCVBPU1RJTkdfUkVBRChTUFJTVVJGKHBpcGUpKTsKKwlpbnRlbF93YWl0X2Zvcl92Ymxhbmso ZGV2LCBwaXBlKTsKKworCWlmICghaW50ZWxfcGxhbmUtPm9iaikKKwkJZ290byBvdXRfdW5sb2Nr OworCisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2ZpbmlzaF9ncHUoaW50ZWxfcGxhbmUtPm9iaik7 CisJaWYgKHJldCkKKwkJZ290byBvdXRfdW5sb2NrOworCisJaTkxNV9nZW1fb2JqZWN0X3VucGlu KGludGVsX3BsYW5lLT5vYmopOworCisJZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlKCZpbnRlbF9w bGFuZS0+b2JqLT5iYXNlKTsKKworb3V0X3VubG9jazoKKwlpbnRlbF9wbGFuZS0+b2JqID0gTlVM TDsKKworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJcmV0dXJuIHJldDsK K30KKworc3RhdGljIGludAorc25iX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOworCWludCBwaXBl ID0gaW50ZWxfcGxhbmUtPnBpcGU7CisJaW50IHJldCA9IDA7CisKKwltdXRleF9sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7CisKKwlJOTE1X1dSSVRFKERWU0NOVFIocGlwZSksIEk5MTVfUkVBRChE VlNDTlRSKHBpcGUpKSAmIH5EVlNfRU5BQkxFKTsKKwlJOTE1X1dSSVRFKERWU1NVUkYocGlwZSks IDApOworCVBPU1RJTkdfUkVBRChEVlNTVVJGKHBpcGUpKTsKKwlpbnRlbF93YWl0X2Zvcl92Ymxh bmsoZGV2LCBwaXBlKTsKKworCWlmICghaW50ZWxfcGxhbmUtPm9iaikKKwkJZ290byBvdXRfdW5s b2NrOworCisJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2ZpbmlzaF9ncHUoaW50ZWxfcGxhbmUtPm9i aik7CisJaWYgKHJldCkKKwkJZ290byBvdXRfdW5sb2NrOworCisJaTkxNV9nZW1fb2JqZWN0X3Vu cGluKGludGVsX3BsYW5lLT5vYmopOworCisJZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlKCZpbnRl bF9wbGFuZS0+b2JqLT5iYXNlKTsKKworb3V0X3VubG9jazoKKwlpbnRlbF9wbGFuZS0+b2JqID0g TlVMTDsKKworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJcmV0dXJuIHJl dDsKK30KKworc3RhdGljIHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfcGxhbmVfZnVuY3M7 CisKK3N0YXRpYyB1aW50MzJfdCBzbmJfcGxhbmVfZm9ybWF0c1tdID0geworCVY0TDJfUElYX0ZN VF9CR1IzMiwKKwlWNEwyX1BJWF9GTVRfUkdCMzIsCisJVjRMMl9QSVhfRk1UX1lVWVYsCisJVjRM Ml9QSVhfRk1UX1lWWVUsCisJVjRMMl9QSVhfRk1UX1VZVlksCisJVjRMMl9QSVhfRk1UX1ZZVVks Cit9OworCitpbnQKK2ludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51 bSBwaXBlIHBpcGUpCit7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKKwl1bnNp Z25lZCBsb25nIHBvc3NpYmxlX2NydGNzOworCisJaWYgKCEoSVNfR0VONihkZXYpIHx8IElTX0dF TjcoZGV2KSkpIHsKKwkJRFJNX0VSUk9SKCJuZXcgcGxhbmUgY29kZSBvbmx5IGZvciBTTkIrXG4i KTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJaW50ZWxfcGxhbmUgPSBremFsbG9jKHNpemVv ZihzdHJ1Y3QgaW50ZWxfcGxhbmUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWludGVsX3BsYW5lKQor CQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChJU19HRU42KGRldikpIHsKKwkJaW50ZWxfcGxhbmVf ZnVuY3MudXBkYXRlX3BsYW5lID0gc25iX3VwZGF0ZV9wbGFuZTsKKwkJaW50ZWxfcGxhbmVfZnVu Y3MuZGlzYWJsZV9wbGFuZSA9IHNuYl9kaXNhYmxlX3BsYW5lOworCX0gZWxzZSBpZiAoSVNfR0VO NyhkZXYpKSB7CisJCWludGVsX3BsYW5lX2Z1bmNzLnVwZGF0ZV9wbGFuZSA9IGl2Yl91cGRhdGVf cGxhbmU7CisJCWludGVsX3BsYW5lX2Z1bmNzLmRpc2FibGVfcGxhbmUgPSBpdmJfZGlzYWJsZV9w bGFuZTsKKwl9CisKKwlpbnRlbF9wbGFuZS0+cGlwZSA9IHBpcGU7CisJcG9zc2libGVfY3J0Y3Mg PSAoMSA8PCBwaXBlKTsKKwlkcm1fcGxhbmVfaW5pdChkZXYsICZpbnRlbF9wbGFuZS0+YmFzZSwg cG9zc2libGVfY3J0Y3MsCisJCSAgICAgICAmaW50ZWxfcGxhbmVfZnVuY3MsIHNuYl9wbGFuZV9m b3JtYXRzLAorCQkgICAgICAgQVJSQVlfU0laRShzbmJfcGxhbmVfZm9ybWF0cykpOworCisJcmV0 dXJuIDA7Cit9CisKLS0gCjEuNy40LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==