From mboxrd@z Thu Jan 1 00:00:00 1970 From: Barry Song <21cnbao@gmail.com> Subject: Re: [Uclinux-dist-devel] [PATCH 1/4] extend ad1938 codec driver to ad193x supporting ad1936/7/8/9 Date: Fri, 19 Mar 2010 15:07:33 +0800 Message-ID: <3c17e3571003190007p61929e99y4db8f5545e777401@mail.gmail.com> References: <1268900221-6833-1-git-send-email-21cnbao@gmail.com> <1268902095.3773.6.camel@odin> <3c17e3571003180208y34e4b5dekd2d23efa0723b641@mail.gmail.com> <20100318111848.GB3080@opensource.wolfsonmicro.com> <8bd0f97a1003180857vdd155e0o29684b50cbd5e34e@mail.gmail.com> <20100318162017.GA6142@rakim.wolfsonmicro.main> <8bd0f97a1003181017xba8e1a9oce2d40bf56818956@mail.gmail.com> <20100318180516.GF6142@rakim.wolfsonmicro.main> <8bd0f97a1003181108y3f7f5871t81c5cd5ba0c6312d@mail.gmail.com> <3c17e3571003182030mc8ea095u2298f008fbcbee8e@mail.gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016361e893c8c74f5048222011f Return-path: Received: from mail-gx0-f221.google.com (mail-gx0-f221.google.com [209.85.217.221]) by alsa0.perex.cz (Postfix) with ESMTP id 4EE9F10388B for ; Fri, 19 Mar 2010 08:07:58 +0100 (CET) Received: by gxk21 with SMTP id 21so462824gxk.2 for ; Fri, 19 Mar 2010 00:07:53 -0700 (PDT) In-Reply-To: <3c17e3571003182030mc8ea095u2298f008fbcbee8e@mail.gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Mark Brown , Liam Girdwood Cc: uclinux-dist-devel@blackfin.uclinux.org, alsa-devel@alsa-project.org, yi.li@analog.com, Barry Song List-Id: alsa-devel@alsa-project.org --0016361e893c8c74f5048222011f Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable It seems "git-format-patch -M" fails to detect this patch as a rename(maybe due to too many changed lines?), so I commit two times to get a readable patch and attach them. 1. rename ad1938 to ad193x 2. extend ad1938 codec driver to ad193x supporting ad1936/7/8/9 -barry On Fri, Mar 19, 2010 at 11:30 AM, Barry Song <21cnbao@gmail.com> wrote: > I think this issue has nothing to do with subsystems, anyway, both are > acceptable to me. Since there has been an example in ASoC, I will > follow it and send v2. > thanks > -barry > > On Fri, Mar 19, 2010 at 2:08 AM, Mike Frysinger wr= ote: >> On Thu, Mar 18, 2010 at 14:05, Mark Brown wrote: >>> On Thu, Mar 18, 2010 at 01:17:11PM -0400, Mike Frysinger wrote: >>>> > The subsystem dependency here come from the fact that ASoC has machi= ne >>>> > drivers and relies on them selecting the CODEC drivers to get them b= uilt >>>> > in the first place so if you're trying to change something like this >>>> > you'll most likely not only have to rebuild your kernel but also hav= e to >>>> > write code. =C2=A0This isn't something that the input layer has (inp= ut layer >>>> > drivers are pretty much standalone, usually only need platform data >>>> > for any per machine hookup and for I2C and SPI can even be registere= d >>>> > from user space IIRC) and it changes the considerations noticably. >>> >>>> the machine driver selects the codec, it doesnt select the bus. =C2=A0= the >>>> codec worries about that. =C2=A0so i dont quite follow the logic here. >>> >>> That's not the case, CODEC drivers do absolutely nothing to ensure that >>> they have the buses they need. =C2=A0Multi bus CODECs should all be per= fectly >>> happy to build with no bus at all, though sparse and/or GCC will warn. >>> >>> Kconfig will cheerfully ignore any dependencies of things that are >>> selected - unless it's been updated recently all a select does is force >>> the selected symbol on, it doesn't recurse through dependencies and >>> selects of that symbol. =C2=A0Besides, multi bus CODEC drivers can't kn= ow >>> which of their possible buses are actually needed on a given system - >>> they just build support for any bus types that are configured and let >>> something else worry about the resulting configuration actually being >>> useful. >> >> sure, on the Kconfig side, i can see that. =C2=A0i was thinking the pure= C >> drivers though. =C2=A0thanks for the clarification. >> -mike >> > --0016361e893c8c74f5048222011f Content-Type: application/octet-stream; name="0001-rename-ad1938-to-ad193x.patch" Content-Disposition: attachment; filename="0001-rename-ad1938-to-ad193x.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g6yncfdz0 RnJvbSA4MDgyZmI5YWYzOTkyNmE0YmY0ZmI2NjNiMTQxNzJhY2IyOTFjYjhjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCYXJyeSBTb25nIDwyMWNuYmFvQGdtYWlsLmNvbT4KRGF0ZTog RnJpLCAxOSBNYXIgMjAxMCAxNDo0ODozMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSByZW5h bWUgYWQxOTM4IHRvIGFkMTkzeAoKU2lnbmVkLW9mZi1ieTogQmFycnkgU29uZyA8YmFycnkuc29u Z0BhbmFsb2cuY29tPgotLS0KIHNvdW5kL3NvYy9jb2RlY3Mve2FkMTkzOC5jID0+IGFkMTkzeC5j fSB8ICAgIDAgCiBzb3VuZC9zb2MvY29kZWNzL3thZDE5MzguaCA9PiBhZDE5M3guaH0gfCAgICAw IAogMiBmaWxlcyBjaGFuZ2VkLCAwIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiByZW5h bWUgc291bmQvc29jL2NvZGVjcy97YWQxOTM4LmMgPT4gYWQxOTN4LmN9ICgxMDAlKQogcmVuYW1l IHNvdW5kL3NvYy9jb2RlY3Mve2FkMTkzOC5oID0+IGFkMTkzeC5ofSAoMTAwJSkKCmRpZmYgLS1n aXQgYS9zb3VuZC9zb2MvY29kZWNzL2FkMTkzOC5jIGIvc291bmQvc29jL2NvZGVjcy9hZDE5M3gu YwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc291bmQvc29jL2NvZGVjcy9hZDE5 MzguYwpyZW5hbWUgdG8gc291bmQvc29jL2NvZGVjcy9hZDE5M3guYwpkaWZmIC0tZ2l0IGEvc291 bmQvc29jL2NvZGVjcy9hZDE5MzguaCBiL3NvdW5kL3NvYy9jb2RlY3MvYWQxOTN4LmgKc2ltaWxh cml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHNvdW5kL3NvYy9jb2RlY3MvYWQxOTM4LmgKcmVu YW1lIHRvIHNvdW5kL3NvYy9jb2RlY3MvYWQxOTN4LmgKLS0gCjEuNS42LjMKCg== --0016361e893c8c74f5048222011f Content-Type: application/octet-stream; name="0002-extend-ad1938-codec-driver-to-ad193x-supporting-ad19.patch" Content-Disposition: attachment; filename="0002-extend-ad1938-codec-driver-to-ad193x-supporting-ad19.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g6yncido1 RnJvbSBkYmZkZjRjNjMwNTY1MTVjNDBkNTg5Nzk5Y2YwOGMxNGUzOTYyZmVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCYXJyeSBTb25nIDwyMWNuYmFvQGdtYWlsLmNvbT4KRGF0ZTog RnJpLCAxOSBNYXIgMjAxMCAxNDo0OTozNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBleHRl bmQgYWQxOTM4IGNvZGVjIGRyaXZlciB0byBhZDE5M3ggc3VwcG9ydGluZyBhZDE5MzYvNy84LzkK ClRoaXMgcGF0Y2ggZXh0ZW5kcyBhZDE5MzggY29kZWMgZHJpdmVyIHRvIHN1cHBvcnQgYWQxOTM2 LzcvOC85LAphZDE5MzYvNyB1c2UgaTJjIGJ1cywgYWQxOTM4LzkgdXNlIHNwaSBidXMuCgpTaWdu ZWQtb2ZmLWJ5OiBCYXJyeSBTb25nIDxiYXJyeS5zb25nQGFuYWxvZy5jb20+ClNpZ25lZC1vZmYt Ynk6IFlpIExpIDx5aS5saUBhbmFsb2cuY29tPgotLS0KIHNvdW5kL3NvYy9jb2RlY3MvS2NvbmZp ZyAgfCAgICA0ICstCiBzb3VuZC9zb2MvY29kZWNzL01ha2VmaWxlIHwgICAgNCArLQogc291bmQv c29jL2NvZGVjcy9hZDE5M3guYyB8ICA0NzUgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiBzb3VuZC9zb2MvY29kZWNzL2FkMTkzeC5oIHwgIDE2NCArKysrKysr LS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDMzNCBpbnNlcnRpb25zKCspLCAzMTMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9LY29uZmlnIGIvc291bmQvc29j L2NvZGVjcy9LY29uZmlnCmluZGV4IDE2YzQ3ZWQuLjYzYjZkMTMgMTAwNjQ0Ci0tLSBhL3NvdW5k L3NvYy9jb2RlY3MvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcKQEAgLTEz LDcgKzEzLDcgQEAgY29uZmlnIFNORF9TT0NfQUxMX0NPREVDUwogCXNlbGVjdCBTTkRfU09DX0wz CiAJc2VsZWN0IFNORF9TT0NfQUM5N19DT0RFQyBpZiBTTkRfU09DX0FDOTdfQlVTCiAJc2VsZWN0 IFNORF9TT0NfQUQxODM2IGlmIFNQSV9NQVNURVIKLQlzZWxlY3QgU05EX1NPQ19BRDE5MzggaWYg U1BJX01BU1RFUgorCXNlbGVjdCBTTkRfU09DX0FEMTkzWCBpZiBTTkRfU09DX0kyQ19BTkRfU1BJ CiAJc2VsZWN0IFNORF9TT0NfQUQxOTgwIGlmIFNORF9TT0NfQUM5N19CVVMKIAlzZWxlY3QgU05E X1NPQ19BRFMxMTdYCiAJc2VsZWN0IFNORF9TT0NfQUQ3MzMxMSBpZiBJMkMKQEAgLTkxLDcgKzkx LDcgQEAgY29uZmlnIFNORF9TT0NfQUM5N19DT0RFQwogY29uZmlnIFNORF9TT0NfQUQxODM2CiAJ dHJpc3RhdGUKIAotY29uZmlnIFNORF9TT0NfQUQxOTM4Citjb25maWcgU05EX1NPQ19BRDE5M1gK IAl0cmlzdGF0ZQogCiBjb25maWcgU05EX1NPQ19BRDE5ODAKZGlmZiAtLWdpdCBhL3NvdW5kL3Nv Yy9jb2RlY3MvTWFrZWZpbGUgYi9zb3VuZC9zb2MvY29kZWNzL01ha2VmaWxlCmluZGV4IDY5ODE3 NzcuLjMwYjNjZTIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3MvTWFrZWZpbGUKKysrIGIv c291bmQvc29jL2NvZGVjcy9NYWtlZmlsZQpAQCAtMSw2ICsxLDYgQEAKIHNuZC1zb2MtYWM5Ny1v YmpzIDo9IGFjOTcubwogc25kLXNvYy1hZDE4MzYtb2JqcyA6PSBhZDE4MzYubwotc25kLXNvYy1h ZDE5Mzgtb2JqcyA6PSBhZDE5Mzgubworc25kLXNvYy1hZDE5M3gtb2JqcyA6PSBhZDE5M3gubwog c25kLXNvYy1hZDE5ODAtb2JqcyA6PSBhZDE5ODAubwogc25kLXNvYy1hZDczMzExLW9ianMgOj0g YWQ3MzMxMS5vCiBzbmQtc29jLWFkczExN3gtb2JqcyA6PSBhZHMxMTd4Lm8KQEAgLTYzLDcgKzYz LDcgQEAgc25kLXNvYy13bTIwMDAtb2JqcyA6PSB3bTIwMDAubwogCiBvYmotJChDT05GSUdfU05E X1NPQ19BQzk3X0NPREVDKQkrPSBzbmQtc29jLWFjOTcubwogb2JqLSQoQ09ORklHX1NORF9TT0Nf QUQxODM2KQkrPSBzbmQtc29jLWFkMTgzNi5vCi1vYmotJChDT05GSUdfU05EX1NPQ19BRDE5Mzgp CSs9IHNuZC1zb2MtYWQxOTM4Lm8KK29iai0kKENPTkZJR19TTkRfU09DX0FEMTkzWCkJKz0gc25k LXNvYy1hZDE5M3gubwogb2JqLSQoQ09ORklHX1NORF9TT0NfQUQxOTgwKQkrPSBzbmQtc29jLWFk MTk4MC5vCiBvYmotJChDT05GSUdfU05EX1NPQ19BRDczMzExKSArPSBzbmQtc29jLWFkNzMzMTEu bwogb2JqLSQoQ09ORklHX1NORF9TT0NfQURTMTE3WCkJKz0gc25kLXNvYy1hZHMxMTd4Lm8KZGlm ZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvYWQxOTN4LmMgYi9zb3VuZC9zb2MvY29kZWNzL2Fk MTkzeC5jCmluZGV4IGMyMzM4MTAuLmQ3NDI2OTkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2Rl Y3MvYWQxOTN4LmMKKysrIGIvc291bmQvc29jL2NvZGVjcy9hZDE5M3guYwpAQCAtMSwzNSArMSwx NyBAQAogLyoKLSAqIEZpbGU6ICAgICAgICAgc291bmQvc29jL2NvZGVjcy9hZDE5MzguYwotICog QXV0aG9yOiAgICAgICBCYXJyeSBTb25nIDxCYXJyeS5Tb25nQGFuYWxvZy5jb20+CisgKiBBRDE5 M1ggQXVkaW8gQ29kZWMgZHJpdmVyIHN1cHBvcnRpbmcgQUQxOTM2LzcvOC85CiAgKgotICogQ3Jl YXRlZDogICAgICBKdW5lIDA0IDIwMDkKLSAqIERlc2NyaXB0aW9uOiAgRHJpdmVyIGZvciBBRDE5 Mzggc291bmQgY2hpcAorICogQ29weXJpZ2h0IDIwMTAgQW5hbG9nIERldmljZXMgSW5jLgogICoK LSAqIE1vZGlmaWVkOgotICogICAgICAgICAgICAgICBDb3B5cmlnaHQgMjAwOSBBbmFsb2cgRGV2 aWNlcyBJbmMuCi0gKgotICogQnVnczogICAgICAgICBFbnRlciBidWdzIGF0IGh0dHA6Ly9ibGFj a2Zpbi51Y2xpbnV4Lm9yZy8KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAq IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExp Y2Vuc2UsIG9yCi0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHNlZSB0aGUgZmlsZSBDT1BZSU5HLCBvciB3cml0ZQotICogdG8gdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKLSAqIDUxIEZyYW5rbGluIFN0LCBGaWZ0 aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKiBMaWNlbnNlZCB1bmRlciB0 aGUgR1BMLTIgb3IgbGF0ZXIuCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNs dWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRl IDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51 eC9zcGkvc3BpLmg+CiAjaW5jbHVkZSA8c291bmQvY29yZS5oPgogI2luY2x1ZGUgPHNvdW5kL3Bj bS5oPgogI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KQEAgLTM3LDczICsxOSw3MiBAQAog I2luY2x1ZGUgPHNvdW5kL3NvYy5oPgogI2luY2x1ZGUgPHNvdW5kL3Rsdi5oPgogI2luY2x1ZGUg PHNvdW5kL3NvYy1kYXBtLmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgotI2luY2x1ZGUg ImFkMTkzOC5oIgorI2luY2x1ZGUgImFkMTkzeC5oIgogCiAvKiBjb2RlYyBwcml2YXRlIGRhdGEg Ki8KLXN0cnVjdCBhZDE5MzhfcHJpdiB7CitzdHJ1Y3QgYWQxOTN4X3ByaXYgewogCXN0cnVjdCBz bmRfc29jX2NvZGVjIGNvZGVjOwotCXU4IHJlZ19jYWNoZVtBRDE5MzhfTlVNX1JFR1NdOworCXU4 IHJlZ19jYWNoZVtBRDE5M1hfTlVNX1JFR1NdOwogfTsKIAotLyogYWQxOTM4IHJlZ2lzdGVyIGNh Y2hlICYgZGVmYXVsdCByZWdpc3RlciBzZXR0aW5ncyAqLwotc3RhdGljIGNvbnN0IHU4IGFkMTkz OF9yZWdbQUQxOTM4X05VTV9SRUdTXSA9IHsKKy8qIGFkMTkzeCByZWdpc3RlciBjYWNoZSAmIGRl ZmF1bHQgcmVnaXN0ZXIgc2V0dGluZ3MgKi8KK3N0YXRpYyBjb25zdCB1OCBhZDE5M3hfcmVnW0FE MTkzWF9OVU1fUkVHU10gPSB7CiAJMCwgMCwgMCwgMCwgMCwgMCwgMHhmZiwgMHhmZiwgMHhmZiwg MHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiwgMCwgMCwgMCwKIH07CiAKLXN0YXRpYyBzdHJ1 Y3Qgc25kX3NvY19jb2RlYyAqYWQxOTM4X2NvZGVjOwotc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2 aWNlIHNvY19jb2RlY19kZXZfYWQxOTM4Owotc3RhdGljIGludCBhZDE5MzhfcmVnaXN0ZXIoc3Ry dWN0IGFkMTkzOF9wcml2ICphZDE5MzgpOwotc3RhdGljIHZvaWQgYWQxOTM4X3VucmVnaXN0ZXIo c3RydWN0IGFkMTkzOF9wcml2ICphZDE5MzgpOworc3RhdGljIHN0cnVjdCBzbmRfc29jX2NvZGVj ICphZDE5M3hfY29kZWM7CitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rl dl9hZDE5M3g7CitzdGF0aWMgaW50IGFkMTkzeF9yZWdpc3RlcihzdHJ1Y3QgYWQxOTN4X3ByaXYg KmFkMTkzeCwgaW50IGJ1c190eXBlKTsKK3N0YXRpYyB2b2lkIGFkMTkzeF91bnJlZ2lzdGVyKHN0 cnVjdCBhZDE5M3hfcHJpdiAqYWQxOTN4KTsKIAogLyoKLSAqIEFEMTkzOCB2b2x1bWUvbXV0ZS9k ZS1lbXBoYXNpcyBldGMuIGNvbnRyb2xzCisgKiBBRDE5M1ggdm9sdW1lL211dGUvZGUtZW1waGFz aXMgZXRjLiBjb250cm9scwogICovCi1zdGF0aWMgY29uc3QgY2hhciAqYWQxOTM4X2RlZW1wW10g PSB7Ik5vbmUiLCAiNDhrSHoiLCAiNDQuMWtIeiIsICIzMmtIeiJ9Oworc3RhdGljIGNvbnN0IGNo YXIgKmFkMTkzeF9kZWVtcFtdID0geyJOb25lIiwgIjQ4a0h6IiwgIjQ0LjFrSHoiLCAiMzJrSHoi fTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSBhZDE5MzhfZGVlbXBfZW51bSA9Ci0J U09DX0VOVU1fU0lOR0xFKEFEMTkzOF9EQUNfQ1RSTDIsIDEsIDQsIGFkMTkzOF9kZWVtcCk7Citz dGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIGFkMTkzeF9kZWVtcF9lbnVtID0KKwlTT0NfRU5V TV9TSU5HTEUoQUQxOTNYX0RBQ19DVFJMMiwgMSwgNCwgYWQxOTN4X2RlZW1wKTsKIAotc3RhdGlj IGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFkMTkzOF9zbmRfY29udHJvbHNbXSA9IHsK K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhZDE5M3hfc25kX2NvbnRyb2xz W10gPSB7CiAJLyogREFDIHZvbHVtZSBjb250cm9sICovCi0JU09DX0RPVUJMRV9SKCJEQUMxICBW b2x1bWUiLCBBRDE5MzhfREFDX0wxX1ZPTCwKLQkJCUFEMTkzOF9EQUNfUjFfVk9MLCAwLCAweEZG LCAxKSwKLQlTT0NfRE9VQkxFX1IoIkRBQzIgIFZvbHVtZSIsIEFEMTkzOF9EQUNfTDJfVk9MLAot CQkJQUQxOTM4X0RBQ19SMl9WT0wsIDAsIDB4RkYsIDEpLAotCVNPQ19ET1VCTEVfUigiREFDMyAg Vm9sdW1lIiwgQUQxOTM4X0RBQ19MM19WT0wsCi0JCQlBRDE5MzhfREFDX1IzX1ZPTCwgMCwgMHhG RiwgMSksCi0JU09DX0RPVUJMRV9SKCJEQUM0ICBWb2x1bWUiLCBBRDE5MzhfREFDX0w0X1ZPTCwK LQkJCUFEMTkzOF9EQUNfUjRfVk9MLCAwLCAweEZGLCAxKSwKKwlTT0NfRE9VQkxFX1IoIkRBQzEg IFZvbHVtZSIsIEFEMTkzWF9EQUNfTDFfVk9MLAorCQkJQUQxOTNYX0RBQ19SMV9WT0wsIDAsIDB4 RkYsIDEpLAorCVNPQ19ET1VCTEVfUigiREFDMiAgVm9sdW1lIiwgQUQxOTNYX0RBQ19MMl9WT0ws CisJCQlBRDE5M1hfREFDX1IyX1ZPTCwgMCwgMHhGRiwgMSksCisJU09DX0RPVUJMRV9SKCJEQUMz ICBWb2x1bWUiLCBBRDE5M1hfREFDX0wzX1ZPTCwKKwkJCUFEMTkzWF9EQUNfUjNfVk9MLCAwLCAw eEZGLCAxKSwKKwlTT0NfRE9VQkxFX1IoIkRBQzQgIFZvbHVtZSIsIEFEMTkzWF9EQUNfTDRfVk9M LAorCQkJQUQxOTNYX0RBQ19SNF9WT0wsIDAsIDB4RkYsIDEpLAogCiAJLyogQURDIHN3aXRjaCBj b250cm9sICovCi0JU09DX0RPVUJMRSgiQURDMSBTd2l0Y2giLCBBRDE5MzhfQURDX0NUUkwwLCBB RDE5MzhfQURDTDFfTVVURSwKLQkJQUQxOTM4X0FEQ1IxX01VVEUsIDEsIDEpLAotCVNPQ19ET1VC TEUoIkFEQzIgU3dpdGNoIiwgQUQxOTM4X0FEQ19DVFJMMCwgQUQxOTM4X0FEQ0wyX01VVEUsCi0J CUFEMTkzOF9BRENSMl9NVVRFLCAxLCAxKSwKKwlTT0NfRE9VQkxFKCJBREMxIFN3aXRjaCIsIEFE MTkzWF9BRENfQ1RSTDAsIEFEMTkzWF9BRENMMV9NVVRFLAorCQlBRDE5M1hfQURDUjFfTVVURSwg MSwgMSksCisJU09DX0RPVUJMRSgiQURDMiBTd2l0Y2giLCBBRDE5M1hfQURDX0NUUkwwLCBBRDE5 M1hfQURDTDJfTVVURSwKKwkJQUQxOTNYX0FEQ1IyX01VVEUsIDEsIDEpLAogCiAJLyogREFDIHN3 aXRjaCBjb250cm9sICovCi0JU09DX0RPVUJMRSgiREFDMSBTd2l0Y2giLCBBRDE5MzhfREFDX0NI TkxfTVVURSwgQUQxOTM4X0RBQ0wxX01VVEUsCi0JCUFEMTkzOF9EQUNSMV9NVVRFLCAxLCAxKSwK LQlTT0NfRE9VQkxFKCJEQUMyIFN3aXRjaCIsIEFEMTkzOF9EQUNfQ0hOTF9NVVRFLCBBRDE5Mzhf REFDTDJfTVVURSwKLQkJQUQxOTM4X0RBQ1IyX01VVEUsIDEsIDEpLAotCVNPQ19ET1VCTEUoIkRB QzMgU3dpdGNoIiwgQUQxOTM4X0RBQ19DSE5MX01VVEUsIEFEMTkzOF9EQUNMM19NVVRFLAotCQlB RDE5MzhfREFDUjNfTVVURSwgMSwgMSksCi0JU09DX0RPVUJMRSgiREFDNCBTd2l0Y2giLCBBRDE5 MzhfREFDX0NITkxfTVVURSwgQUQxOTM4X0RBQ0w0X01VVEUsCi0JCUFEMTkzOF9EQUNSNF9NVVRF LCAxLCAxKSwKKwlTT0NfRE9VQkxFKCJEQUMxIFN3aXRjaCIsIEFEMTkzWF9EQUNfQ0hOTF9NVVRF LCBBRDE5M1hfREFDTDFfTVVURSwKKwkJQUQxOTNYX0RBQ1IxX01VVEUsIDEsIDEpLAorCVNPQ19E T1VCTEUoIkRBQzIgU3dpdGNoIiwgQUQxOTNYX0RBQ19DSE5MX01VVEUsIEFEMTkzWF9EQUNMMl9N VVRFLAorCQlBRDE5M1hfREFDUjJfTVVURSwgMSwgMSksCisJU09DX0RPVUJMRSgiREFDMyBTd2l0 Y2giLCBBRDE5M1hfREFDX0NITkxfTVVURSwgQUQxOTNYX0RBQ0wzX01VVEUsCisJCUFEMTkzWF9E QUNSM19NVVRFLCAxLCAxKSwKKwlTT0NfRE9VQkxFKCJEQUM0IFN3aXRjaCIsIEFEMTkzWF9EQUNf Q0hOTF9NVVRFLCBBRDE5M1hfREFDTDRfTVVURSwKKwkJQUQxOTNYX0RBQ1I0X01VVEUsIDEsIDEp LAogCiAJLyogQURDIGhpZ2gtcGFzcyBmaWx0ZXIgKi8KLQlTT0NfU0lOR0xFKCJBREMgSGlnaCBQ YXNzIEZpbHRlciBTd2l0Y2giLCBBRDE5MzhfQURDX0NUUkwwLAotCQkJQUQxOTM4X0FEQ19ISUdI UEFTU19GSUxURVIsIDEsIDApLAorCVNPQ19TSU5HTEUoIkFEQyBIaWdoIFBhc3MgRmlsdGVyIFN3 aXRjaCIsIEFEMTkzWF9BRENfQ1RSTDAsCisJCQlBRDE5M1hfQURDX0hJR0hQQVNTX0ZJTFRFUiwg MSwgMCksCiAKIAkvKiBEQUMgZGUtZW1waGFzaXMgKi8KLQlTT0NfRU5VTSgiUGxheWJhY2sgRGVl bXBoYXNpcyIsIGFkMTkzOF9kZWVtcF9lbnVtKSwKKwlTT0NfRU5VTSgiUGxheWJhY2sgRGVlbXBo YXNpcyIsIGFkMTkzeF9kZWVtcF9lbnVtKSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25k X3NvY19kYXBtX3dpZGdldCBhZDE5MzhfZGFwbV93aWRnZXRzW10gPSB7Ci0JU05EX1NPQ19EQVBN X0RBQygiREFDIiwgIlBsYXliYWNrIiwgQUQxOTM4X0RBQ19DVFJMMCwgMCwgMSksCitzdGF0aWMg Y29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgYWQxOTN4X2RhcG1fd2lkZ2V0c1tdID0g eworCVNORF9TT0NfREFQTV9EQUMoIkRBQyIsICJQbGF5YmFjayIsIEFEMTkzWF9EQUNfQ1RSTDAs IDAsIDEpLAogCVNORF9TT0NfREFQTV9BREMoIkFEQyIsICJDYXB0dXJlIiwgU05EX1NPQ19OT1BN LCAwLCAwKSwKLQlTTkRfU09DX0RBUE1fU1VQUExZKCJQTExfUFdSIiwgQUQxOTM4X1BMTF9DTEtf Q1RSTDAsIDAsIDEsIE5VTEwsIDApLAotCVNORF9TT0NfREFQTV9TVVBQTFkoIkFEQ19QV1IiLCBB RDE5MzhfQURDX0NUUkwwLCAwLCAxLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fU1VQUExZKCJQ TExfUFdSIiwgQUQxOTNYX1BMTF9DTEtfQ1RSTDAsIDAsIDEsIE5VTEwsIDApLAorCVNORF9TT0Nf REFQTV9TVVBQTFkoIkFEQ19QV1IiLCBBRDE5M1hfQURDX0NUUkwwLCAwLCAxLCBOVUxMLCAwKSwK IAlTTkRfU09DX0RBUE1fT1VUUFVUKCJEQUMxT1VUIiksCiAJU05EX1NPQ19EQVBNX09VVFBVVCgi REFDMk9VVCIpLAogCVNORF9TT0NfREFQTV9PVVRQVVQoIkRBQzNPVVQiKSwKQEAgLTEyOSw3NiAr MTEwLDc2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX3Bh dGhzW10gPSB7CiAgKiBEQUkgb3BzIGVudHJpZXMKICAqLwogCi1zdGF0aWMgaW50IGFkMTkzOF9t dXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKK3N0YXRpYyBpbnQgYWQxOTN4 X211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQogewogCXN0cnVjdCBzbmRf c29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CiAJaW50IHJlZzsKIAotCXJlZyA9IHNuZF9z b2NfcmVhZChjb2RlYywgQUQxOTM4X0RBQ19DVFJMMik7Ci0JcmVnID0gKG11dGUgPiAwKSA/IHJl ZyB8IEFEMTkzOF9EQUNfTUFTVEVSX01VVEUgOiByZWcgJgotCQkofkFEMTkzOF9EQUNfTUFTVEVS X01VVEUpOwotCXNuZF9zb2Nfd3JpdGUoY29kZWMsIEFEMTkzOF9EQUNfQ1RSTDIsIHJlZyk7CisJ cmVnID0gc25kX3NvY19yZWFkKGNvZGVjLCBBRDE5M1hfREFDX0NUUkwyKTsKKwlyZWcgPSAobXV0 ZSA+IDApID8gcmVnIHwgQUQxOTNYX0RBQ19NQVNURVJfTVVURSA6IHJlZyAmCisJCSh+QUQxOTNY X0RBQ19NQVNURVJfTVVURSk7CisJc25kX3NvY193cml0ZShjb2RlYywgQUQxOTNYX0RBQ19DVFJM MiwgcmVnKTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGFkMTkzOF9zZXRfdGRtX3Ns b3Qoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIHVuc2lnbmVkIGludCB0eF9tYXNrLAorc3RhdGlj IGludCBhZDE5M3hfc2V0X3RkbV9zbG90KHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCB1bnNpZ25l ZCBpbnQgdHhfbWFzaywKIAkJCSAgICAgICB1bnNpZ25lZCBpbnQgcnhfbWFzaywgaW50IHNsb3Rz LCBpbnQgd2lkdGgpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gZGFpLT5jb2Rl YzsKLQlpbnQgZGFjX3JlZyA9IHNuZF9zb2NfcmVhZChjb2RlYywgQUQxOTM4X0RBQ19DVFJMMSk7 Ci0JaW50IGFkY19yZWcgPSBzbmRfc29jX3JlYWQoY29kZWMsIEFEMTkzOF9BRENfQ1RSTDIpOwor CWludCBkYWNfcmVnID0gc25kX3NvY19yZWFkKGNvZGVjLCBBRDE5M1hfREFDX0NUUkwxKTsKKwlp bnQgYWRjX3JlZyA9IHNuZF9zb2NfcmVhZChjb2RlYywgQUQxOTNYX0FEQ19DVFJMMik7CiAKLQlk YWNfcmVnICY9IH5BRDE5MzhfREFDX0NIQU5fTUFTSzsKLQlhZGNfcmVnICY9IH5BRDE5MzhfQURD X0NIQU5fTUFTSzsKKwlkYWNfcmVnICY9IH5BRDE5M1hfREFDX0NIQU5fTUFTSzsKKwlhZGNfcmVn ICY9IH5BRDE5M1hfQURDX0NIQU5fTUFTSzsKIAogCXN3aXRjaCAoc2xvdHMpIHsKIAljYXNlIDI6 Ci0JCWRhY19yZWcgfD0gQUQxOTM4X0RBQ18yX0NIQU5ORUxTIDw8IEFEMTkzOF9EQUNfQ0hBTl9T SEZUOwotCQlhZGNfcmVnIHw9IEFEMTkzOF9BRENfMl9DSEFOTkVMUyA8PCBBRDE5MzhfQURDX0NI QU5fU0hGVDsKKwkJZGFjX3JlZyB8PSBBRDE5M1hfREFDXzJfQ0hBTk5FTFMgPDwgQUQxOTNYX0RB Q19DSEFOX1NIRlQ7CisJCWFkY19yZWcgfD0gQUQxOTNYX0FEQ18yX0NIQU5ORUxTIDw8IEFEMTkz WF9BRENfQ0hBTl9TSEZUOwogCQlicmVhazsKIAljYXNlIDQ6Ci0JCWRhY19yZWcgfD0gQUQxOTM4 X0RBQ180X0NIQU5ORUxTIDw8IEFEMTkzOF9EQUNfQ0hBTl9TSEZUOwotCQlhZGNfcmVnIHw9IEFE MTkzOF9BRENfNF9DSEFOTkVMUyA8PCBBRDE5MzhfQURDX0NIQU5fU0hGVDsKKwkJZGFjX3JlZyB8 PSBBRDE5M1hfREFDXzRfQ0hBTk5FTFMgPDwgQUQxOTNYX0RBQ19DSEFOX1NIRlQ7CisJCWFkY19y ZWcgfD0gQUQxOTNYX0FEQ180X0NIQU5ORUxTIDw8IEFEMTkzWF9BRENfQ0hBTl9TSEZUOwogCQli cmVhazsKIAljYXNlIDg6Ci0JCWRhY19yZWcgfD0gQUQxOTM4X0RBQ184X0NIQU5ORUxTIDw8IEFE MTkzOF9EQUNfQ0hBTl9TSEZUOwotCQlhZGNfcmVnIHw9IEFEMTkzOF9BRENfOF9DSEFOTkVMUyA8 PCBBRDE5MzhfQURDX0NIQU5fU0hGVDsKKwkJZGFjX3JlZyB8PSBBRDE5M1hfREFDXzhfQ0hBTk5F TFMgPDwgQUQxOTNYX0RBQ19DSEFOX1NIRlQ7CisJCWFkY19yZWcgfD0gQUQxOTNYX0FEQ184X0NI QU5ORUxTIDw8IEFEMTkzWF9BRENfQ0hBTl9TSEZUOwogCQlicmVhazsKIAljYXNlIDE2OgotCQlk YWNfcmVnIHw9IEFEMTkzOF9EQUNfMTZfQ0hBTk5FTFMgPDwgQUQxOTM4X0RBQ19DSEFOX1NIRlQ7 Ci0JCWFkY19yZWcgfD0gQUQxOTM4X0FEQ18xNl9DSEFOTkVMUyA8PCBBRDE5MzhfQURDX0NIQU5f U0hGVDsKKwkJZGFjX3JlZyB8PSBBRDE5M1hfREFDXzE2X0NIQU5ORUxTIDw8IEFEMTkzWF9EQUNf Q0hBTl9TSEZUOworCQlhZGNfcmVnIHw9IEFEMTkzWF9BRENfMTZfQ0hBTk5FTFMgPDwgQUQxOTNY X0FEQ19DSEFOX1NIRlQ7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVybiAtRUlOVkFMOwog CX0KIAotCXNuZF9zb2Nfd3JpdGUoY29kZWMsIEFEMTkzOF9EQUNfQ1RSTDEsIGRhY19yZWcpOwot CXNuZF9zb2Nfd3JpdGUoY29kZWMsIEFEMTkzOF9BRENfQ1RSTDIsIGFkY19yZWcpOworCXNuZF9z b2Nfd3JpdGUoY29kZWMsIEFEMTkzWF9EQUNfQ1RSTDEsIGRhY19yZWcpOworCXNuZF9zb2Nfd3Jp dGUoY29kZWMsIEFEMTkzWF9BRENfQ1RSTDIsIGFkY19yZWcpOwogCiAJcmV0dXJuIDA7CiB9CiAK LXN0YXRpYyBpbnQgYWQxOTM4X3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNf ZGFpLAorc3RhdGljIGludCBhZDE5M3hfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpj b2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMg KmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKIAlpbnQgYWRjX3JlZywgZGFjX3JlZzsKIAotCWFk Y19yZWcgPSBzbmRfc29jX3JlYWQoY29kZWMsIEFEMTkzOF9BRENfQ1RSTDIpOwotCWRhY19yZWcg PSBzbmRfc29jX3JlYWQoY29kZWMsIEFEMTkzOF9EQUNfQ1RSTDEpOworCWFkY19yZWcgPSBzbmRf c29jX3JlYWQoY29kZWMsIEFEMTkzWF9BRENfQ1RSTDIpOworCWRhY19yZWcgPSBzbmRfc29jX3Jl YWQoY29kZWMsIEFEMTkzWF9EQUNfQ1RSTDEpOwogCiAJLyogQXQgcHJlc2VudCwgdGhlIGRyaXZl ciBvbmx5IHN1cHBvcnQgQVVYIEFEQyBtb2RlKFNORF9TT0NfREFJRk1UX0kyUwogCSAqIHdpdGgg VERNKSBhbmQgQURDJkRBQyBURE0gbW9kZShTTkRfU09DX0RBSUZNVF9EU1BfQSkKIAkgKi8KIAlz d2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSB7CiAJY2FzZSBTTkRfU09D X0RBSUZNVF9JMlM6Ci0JCWFkY19yZWcgJj0gfkFEMTkzOF9BRENfU0VSRk1UX01BU0s7Ci0JCWFk Y19yZWcgfD0gQUQxOTM4X0FEQ19TRVJGTVRfVERNOworCQlhZGNfcmVnICY9IH5BRDE5M1hfQURD X1NFUkZNVF9NQVNLOworCQlhZGNfcmVnIHw9IEFEMTkzWF9BRENfU0VSRk1UX1RETTsKIAkJYnJl YWs7CiAJY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQToKLQkJYWRjX3JlZyAmPSB+QUQxOTM4X0FE Q19TRVJGTVRfTUFTSzsKLQkJYWRjX3JlZyB8PSBBRDE5MzhfQURDX1NFUkZNVF9BVVg7CisJCWFk Y19yZWcgJj0gfkFEMTkzWF9BRENfU0VSRk1UX01BU0s7CisJCWFkY19yZWcgfD0gQUQxOTNYX0FE Q19TRVJGTVRfQVVYOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVJTlZBTDsKQEAg LTIwNiwyOSArMTg3LDI5IEBAIHN0YXRpYyBpbnQgYWQxOTM4X3NldF9kYWlfZm10KHN0cnVjdCBz bmRfc29jX2RhaSAqY29kZWNfZGFpLAogCiAJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9J TlZfTUFTSykgewogCWNhc2UgU05EX1NPQ19EQUlGTVRfTkJfTkY6IC8qIG5vcm1hbCBiaXQgY2xv Y2sgKyBmcmFtZSAqLwotCQlhZGNfcmVnICY9IH5BRDE5MzhfQURDX0xFRlRfSElHSDsKLQkJYWRj X3JlZyAmPSB+QUQxOTM4X0FEQ19CQ0xLX0lOVjsKLQkJZGFjX3JlZyAmPSB+QUQxOTM4X0RBQ19M RUZUX0hJR0g7Ci0JCWRhY19yZWcgJj0gfkFEMTkzOF9EQUNfQkNMS19JTlY7CisJCWFkY19yZWcg Jj0gfkFEMTkzWF9BRENfTEVGVF9ISUdIOworCQlhZGNfcmVnICY9IH5BRDE5M1hfQURDX0JDTEtf SU5WOworCQlkYWNfcmVnICY9IH5BRDE5M1hfREFDX0xFRlRfSElHSDsKKwkJZGFjX3JlZyAmPSB+ QUQxOTNYX0RBQ19CQ0xLX0lOVjsKIAkJYnJlYWs7CiAJY2FzZSBTTkRfU09DX0RBSUZNVF9OQl9J RjogLyogbm9ybWFsIGJjbGsgKyBpbnZlcnQgZnJtICovCi0JCWFkY19yZWcgfD0gQUQxOTM4X0FE Q19MRUZUX0hJR0g7Ci0JCWFkY19yZWcgJj0gfkFEMTkzOF9BRENfQkNMS19JTlY7Ci0JCWRhY19y ZWcgfD0gQUQxOTM4X0RBQ19MRUZUX0hJR0g7Ci0JCWRhY19yZWcgJj0gfkFEMTkzOF9EQUNfQkNM S19JTlY7CisJCWFkY19yZWcgfD0gQUQxOTNYX0FEQ19MRUZUX0hJR0g7CisJCWFkY19yZWcgJj0g fkFEMTkzWF9BRENfQkNMS19JTlY7CisJCWRhY19yZWcgfD0gQUQxOTNYX0RBQ19MRUZUX0hJR0g7 CisJCWRhY19yZWcgJj0gfkFEMTkzWF9EQUNfQkNMS19JTlY7CiAJCWJyZWFrOwogCWNhc2UgU05E X1NPQ19EQUlGTVRfSUJfTkY6IC8qIGludmVydCBiY2xrICsgbm9ybWFsIGZybSAqLwotCQlhZGNf cmVnICY9IH5BRDE5MzhfQURDX0xFRlRfSElHSDsKLQkJYWRjX3JlZyB8PSBBRDE5MzhfQURDX0JD TEtfSU5WOwotCQlkYWNfcmVnICY9IH5BRDE5MzhfREFDX0xFRlRfSElHSDsKLQkJZGFjX3JlZyB8 PSBBRDE5MzhfREFDX0JDTEtfSU5WOworCQlhZGNfcmVnICY9IH5BRDE5M1hfQURDX0xFRlRfSElH SDsKKwkJYWRjX3JlZyB8PSBBRDE5M1hfQURDX0JDTEtfSU5WOworCQlkYWNfcmVnICY9IH5BRDE5 M1hfREFDX0xFRlRfSElHSDsKKwkJZGFjX3JlZyB8PSBBRDE5M1hfREFDX0JDTEtfSU5WOwogCQli cmVhazsKIAogCWNhc2UgU05EX1NPQ19EQUlGTVRfSUJfSUY6IC8qIGludmVydCBiY2xrICsgZnJt ICovCi0JCWFkY19yZWcgfD0gQUQxOTM4X0FEQ19MRUZUX0hJR0g7Ci0JCWFkY19yZWcgfD0gQUQx OTM4X0FEQ19CQ0xLX0lOVjsKLQkJZGFjX3JlZyB8PSBBRDE5MzhfREFDX0xFRlRfSElHSDsKLQkJ ZGFjX3JlZyB8PSBBRDE5MzhfREFDX0JDTEtfSU5WOworCQlhZGNfcmVnIHw9IEFEMTkzWF9BRENf TEVGVF9ISUdIOworCQlhZGNfcmVnIHw9IEFEMTkzWF9BRENfQkNMS19JTlY7CisJCWRhY19yZWcg fD0gQUQxOTNYX0RBQ19MRUZUX0hJR0g7CisJCWRhY19yZWcgfD0gQUQxOTNYX0RBQ19CQ0xLX0lO VjsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0yMzYsNDAgKzIx Nyw0MCBAQCBzdGF0aWMgaW50IGFkMTkzOF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkg KmNvZGVjX2RhaSwKIAogCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfTUFTVEVSX01BU0sp IHsKIAljYXNlIFNORF9TT0NfREFJRk1UX0NCTV9DRk06IC8qIGNvZGVjIGNsayAmIGZybSBtYXN0 ZXIgKi8KLQkJYWRjX3JlZyB8PSBBRDE5MzhfQURDX0xDUl9NQVNURVI7Ci0JCWFkY19yZWcgfD0g QUQxOTM4X0FEQ19CQ0xLX01BU1RFUjsKLQkJZGFjX3JlZyB8PSBBRDE5MzhfREFDX0xDUl9NQVNU RVI7Ci0JCWRhY19yZWcgfD0gQUQxOTM4X0RBQ19CQ0xLX01BU1RFUjsKKwkJYWRjX3JlZyB8PSBB RDE5M1hfQURDX0xDUl9NQVNURVI7CisJCWFkY19yZWcgfD0gQUQxOTNYX0FEQ19CQ0xLX01BU1RF UjsKKwkJZGFjX3JlZyB8PSBBRDE5M1hfREFDX0xDUl9NQVNURVI7CisJCWRhY19yZWcgfD0gQUQx OTNYX0RBQ19CQ0xLX01BU1RFUjsKIAkJYnJlYWs7CiAJY2FzZSBTTkRfU09DX0RBSUZNVF9DQlNf Q0ZNOiAvKiBjb2RlYyBjbGsgc2xhdmUgJiBmcm0gbWFzdGVyICovCi0JCWFkY19yZWcgfD0gQUQx OTM4X0FEQ19MQ1JfTUFTVEVSOwotCQlhZGNfcmVnICY9IH5BRDE5MzhfQURDX0JDTEtfTUFTVEVS OwotCQlkYWNfcmVnIHw9IEFEMTkzOF9EQUNfTENSX01BU1RFUjsKLQkJZGFjX3JlZyAmPSB+QUQx OTM4X0RBQ19CQ0xLX01BU1RFUjsKKwkJYWRjX3JlZyB8PSBBRDE5M1hfQURDX0xDUl9NQVNURVI7 CisJCWFkY19yZWcgJj0gfkFEMTkzWF9BRENfQkNMS19NQVNURVI7CisJCWRhY19yZWcgfD0gQUQx OTNYX0RBQ19MQ1JfTUFTVEVSOworCQlkYWNfcmVnICY9IH5BRDE5M1hfREFDX0JDTEtfTUFTVEVS OwogCQlicmVhazsKIAljYXNlIFNORF9TT0NfREFJRk1UX0NCTV9DRlM6IC8qIGNvZGVjIGNsayBt YXN0ZXIgJiBmcmFtZSBzbGF2ZSAqLwotCQlhZGNfcmVnICY9IH5BRDE5MzhfQURDX0xDUl9NQVNU RVI7Ci0JCWFkY19yZWcgfD0gQUQxOTM4X0FEQ19CQ0xLX01BU1RFUjsKLQkJZGFjX3JlZyAmPSB+ QUQxOTM4X0RBQ19MQ1JfTUFTVEVSOwotCQlkYWNfcmVnIHw9IEFEMTkzOF9EQUNfQkNMS19NQVNU RVI7CisJCWFkY19yZWcgJj0gfkFEMTkzWF9BRENfTENSX01BU1RFUjsKKwkJYWRjX3JlZyB8PSBB RDE5M1hfQURDX0JDTEtfTUFTVEVSOworCQlkYWNfcmVnICY9IH5BRDE5M1hfREFDX0xDUl9NQVNU RVI7CisJCWRhY19yZWcgfD0gQUQxOTNYX0RBQ19CQ0xLX01BU1RFUjsKIAkJYnJlYWs7CiAJY2Fz ZSBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTOiAvKiBjb2RlYyBjbGsgJiBmcm0gc2xhdmUgKi8KLQkJ YWRjX3JlZyAmPSB+QUQxOTM4X0FEQ19MQ1JfTUFTVEVSOwotCQlhZGNfcmVnICY9IH5BRDE5Mzhf QURDX0JDTEtfTUFTVEVSOwotCQlkYWNfcmVnICY9IH5BRDE5MzhfREFDX0xDUl9NQVNURVI7Ci0J CWRhY19yZWcgJj0gfkFEMTkzOF9EQUNfQkNMS19NQVNURVI7CisJCWFkY19yZWcgJj0gfkFEMTkz WF9BRENfTENSX01BU1RFUjsKKwkJYWRjX3JlZyAmPSB+QUQxOTNYX0FEQ19CQ0xLX01BU1RFUjsK KwkJZGFjX3JlZyAmPSB+QUQxOTNYX0RBQ19MQ1JfTUFTVEVSOworCQlkYWNfcmVnICY9IH5BRDE5 M1hfREFDX0JDTEtfTUFTVEVSOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVJTlZB TDsKIAl9CiAKLQlzbmRfc29jX3dyaXRlKGNvZGVjLCBBRDE5MzhfQURDX0NUUkwyLCBhZGNfcmVn KTsKLQlzbmRfc29jX3dyaXRlKGNvZGVjLCBBRDE5MzhfREFDX0NUUkwxLCBkYWNfcmVnKTsKKwlz bmRfc29jX3dyaXRlKGNvZGVjLCBBRDE5M1hfQURDX0NUUkwyLCBhZGNfcmVnKTsKKwlzbmRfc29j X3dyaXRlKGNvZGVjLCBBRDE5M1hfREFDX0NUUkwxLCBkYWNfcmVnKTsKIAogCXJldHVybiAwOwog fQogCi1zdGF0aWMgaW50IGFkMTkzOF9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFt ICpzdWJzdHJlYW0sCitzdGF0aWMgaW50IGFkMTkzeF9od19wYXJhbXMoc3RydWN0IHNuZF9wY21f c3Vic3RyZWFtICpzdWJzdHJlYW0sCiAJCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1z LAogCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKQEAgLTI5Myw2MiArMjc0LDU1IEBAIHN0 YXRpYyBpbnQgYWQxOTM4X2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0 cmVhbSwKIAkJYnJlYWs7CiAJfQogCi0JcmVnID0gc25kX3NvY19yZWFkKGNvZGVjLCBBRDE5Mzhf REFDX0NUUkwyKTsKLQlyZWcgPSAocmVnICYgKH5BRDE5MzhfREFDX1dPUkRfTEVOX01BU0spKSB8 IHdvcmRfbGVuOwotCXNuZF9zb2Nfd3JpdGUoY29kZWMsIEFEMTkzOF9EQUNfQ1RSTDIsIHJlZyk7 CisJcmVnID0gc25kX3NvY19yZWFkKGNvZGVjLCBBRDE5M1hfREFDX0NUUkwyKTsKKwlyZWcgPSAo cmVnICYgKH5BRDE5M1hfREFDX1dPUkRfTEVOX01BU0spKSB8IHdvcmRfbGVuOworCXNuZF9zb2Nf d3JpdGUoY29kZWMsIEFEMTkzWF9EQUNfQ1RSTDIsIHJlZyk7CiAKLQlyZWcgPSBzbmRfc29jX3Jl YWQoY29kZWMsIEFEMTkzOF9BRENfQ1RSTDEpOwotCXJlZyA9IChyZWcgJiAofkFEMTkzOF9BRENf V09SRF9MRU5fTUFTSykpIHwgd29yZF9sZW47Ci0Jc25kX3NvY193cml0ZShjb2RlYywgQUQxOTM4 X0FEQ19DVFJMMSwgcmVnKTsKKwlyZWcgPSBzbmRfc29jX3JlYWQoY29kZWMsIEFEMTkzWF9BRENf Q1RSTDEpOworCXJlZyA9IChyZWcgJiAofkFEMTkzWF9BRENfV09SRF9MRU5fTUFTSykpIHwgd29y ZF9sZW47CisJc25kX3NvY193cml0ZShjb2RlYywgQUQxOTNYX0FEQ19DVFJMMSwgcmVnKTsKIAog CXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9fZGV2aW5pdCBhZDE5Mzhfc3BpX3Byb2JlKHN0 cnVjdCBzcGlfZGV2aWNlICpzcGkpCitpbnQgYWQxOTN4X2J1c19wcm9iZShzdHJ1Y3QgZGV2aWNl ICpkZXYsIHZvaWQgKmN0cmxfZGF0YSwgaW50IGJ1c190eXBlKQogewogCXN0cnVjdCBzbmRfc29j X2NvZGVjICpjb2RlYzsKLQlzdHJ1Y3QgYWQxOTM4X3ByaXYgKmFkMTkzODsKKwlzdHJ1Y3QgYWQx OTN4X3ByaXYgKmFkMTkzeDsKIAotCWFkMTkzOCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhZDE5 MzhfcHJpdiksIEdGUF9LRVJORUwpOwotCWlmIChhZDE5MzggPT0gTlVMTCkKKwlhZDE5M3ggPSBr emFsbG9jKHNpemVvZihzdHJ1Y3QgYWQxOTN4X3ByaXYpLCBHRlBfS0VSTkVMKTsKKwlpZiAoYWQx OTN4ID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JY29kZWMgPSAmYWQxOTM4LT5jb2Rl YzsKLQljb2RlYy0+Y29udHJvbF9kYXRhID0gc3BpOwotCWNvZGVjLT5kZXYgPSAmc3BpLT5kZXY7 CisJY29kZWMgPSAmYWQxOTN4LT5jb2RlYzsKKwljb2RlYy0+Y29udHJvbF9kYXRhID0gY3RybF9k YXRhOworCWNvZGVjLT5kZXYgPSBkZXY7CiAKLQlkZXZfc2V0X2RydmRhdGEoJnNwaS0+ZGV2LCBh ZDE5MzgpOworCWRldl9zZXRfZHJ2ZGF0YShkZXYsIGFkMTkzeCk7CiAKLQlyZXR1cm4gYWQxOTM4 X3JlZ2lzdGVyKGFkMTkzOCk7CisJcmV0dXJuIGFkMTkzeF9yZWdpc3RlcihhZDE5M3gsIGJ1c190 eXBlKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGFkMTkzeF9idXNfcHJvYmUpOwogCi1zdGF0aWMg aW50IF9fZGV2ZXhpdCBhZDE5Mzhfc3BpX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQor aW50IGFkMTkzeF9idXNfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlzdHJ1Y3QgYWQx OTM4X3ByaXYgKmFkMTkzOCA9IGRldl9nZXRfZHJ2ZGF0YSgmc3BpLT5kZXYpOworCXN0cnVjdCBh ZDE5M3hfcHJpdiAqYWQxOTN4ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CiAKLQlhZDE5MzhfdW5y ZWdpc3RlcihhZDE5MzgpOworCWFkMTkzeF91bnJlZ2lzdGVyKGFkMTkzeCk7CiAJcmV0dXJuIDA7 CiB9CitFWFBPUlRfU1lNQk9MX0dQTChhZDE5M3hfYnVzX3JlbW92ZSk7CiAKLXN0YXRpYyBzdHJ1 Y3Qgc3BpX2RyaXZlciBhZDE5Mzhfc3BpX2RyaXZlciA9IHsKLQkuZHJpdmVyID0gewotCQkubmFt ZQk9ICJhZDE5MzgiLAotCQkub3duZXIJPSBUSElTX01PRFVMRSwKLQl9LAotCS5wcm9iZQkJPSBh ZDE5Mzhfc3BpX3Byb2JlLAotCS5yZW1vdmUJCT0gX19kZXZleGl0X3AoYWQxOTM4X3NwaV9yZW1v dmUpLAotfTsKLQotc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaV9vcHMgYWQxOTM4X2RhaV9vcHMg PSB7Ci0JLmh3X3BhcmFtcyA9IGFkMTkzOF9od19wYXJhbXMsCi0JLmRpZ2l0YWxfbXV0ZSA9IGFk MTkzOF9tdXRlLAotCS5zZXRfdGRtX3Nsb3QgPSBhZDE5Mzhfc2V0X3RkbV9zbG90LAotCS5zZXRf Zm10ID0gYWQxOTM4X3NldF9kYWlfZm10LAorc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaV9vcHMg YWQxOTN4X2RhaV9vcHMgPSB7CisJLmh3X3BhcmFtcyA9IGFkMTkzeF9od19wYXJhbXMsCisJLmRp Z2l0YWxfbXV0ZSA9IGFkMTkzeF9tdXRlLAorCS5zZXRfdGRtX3Nsb3QgPSBhZDE5M3hfc2V0X3Rk bV9zbG90LAorCS5zZXRfZm10ID0gYWQxOTN4X3NldF9kYWlfZm10LAogfTsKIAogLyogY29kZWMg REFJIGluc3RhbmNlICovCi1zdHJ1Y3Qgc25kX3NvY19kYWkgYWQxOTM4X2RhaSA9IHsKLQkubmFt ZSA9ICJBRDE5MzgiLAorc3RydWN0IHNuZF9zb2NfZGFpIGFkMTkzeF9kYWkgPSB7CisJLm5hbWUg PSAiQUQxOTNYIiwKIAkucGxheWJhY2sgPSB7CiAJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIs CiAJCS5jaGFubmVsc19taW4gPSAyLApAQCAtMzY1LDEwMSArMzM5LDEwMiBAQCBzdHJ1Y3Qgc25k X3NvY19kYWkgYWQxOTM4X2RhaSA9IHsKIAkJLmZvcm1hdHMgPSBTTkRSVl9QQ01fRk1UQklUX1Mz Ml9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwKIAkJCVNORFJWX1BDTV9GTVRCSVRfUzIw XzNMRSB8IFNORFJWX1BDTV9GTVRCSVRfUzI0X0xFLAogCX0sCi0JLm9wcyA9ICZhZDE5MzhfZGFp X29wcywKKwkub3BzID0gJmFkMTkzeF9kYWlfb3BzLAogfTsKLUVYUE9SVF9TWU1CT0xfR1BMKGFk MTkzOF9kYWkpOworRVhQT1JUX1NZTUJPTF9HUEwoYWQxOTN4X2RhaSk7CiAKLXN0YXRpYyBpbnQg YWQxOTM4X3JlZ2lzdGVyKHN0cnVjdCBhZDE5MzhfcHJpdiAqYWQxOTM4KQorc3RhdGljIGludCBh ZDE5M3hfcmVnaXN0ZXIoc3RydWN0IGFkMTkzeF9wcml2ICphZDE5M3gsIGludCBidXNfdHlwZSkK IHsKIAlpbnQgcmV0OwotCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9ICZhZDE5MzgtPmNv ZGVjOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9ICZhZDE5M3gtPmNvZGVjOwogCi0J aWYgKGFkMTkzOF9jb2RlYykgewotCQlkZXZfZXJyKGNvZGVjLT5kZXYsICJBbm90aGVyIGFkMTkz OCBpcyByZWdpc3RlcmVkXG4iKTsKKwlpZiAoYWQxOTN4X2NvZGVjKSB7CisJCWRldl9lcnIoY29k ZWMtPmRldiwgIkFub3RoZXIgYWQxOTN4IGlzIHJlZ2lzdGVyZWRcbiIpOwogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKIAltdXRleF9pbml0KCZjb2RlYy0+bXV0ZXgpOwotCUlOSVRfTElTVF9IRUFE KCZjb2RlYy0+ZGFwbV93aWRnZXRzKTsKLQlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fcGF0 aHMpOwotCWNvZGVjLT5wcml2YXRlX2RhdGEgPSBhZDE5Mzg7Ci0JY29kZWMtPnJlZ19jYWNoZSA9 IGFkMTkzOC0+cmVnX2NhY2hlOwotCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFEMTkzOF9OVU1f UkVHUzsKLQljb2RlYy0+bmFtZSA9ICJBRDE5MzgiOworCWNvZGVjLT5wcml2YXRlX2RhdGEgPSBh ZDE5M3g7CisJY29kZWMtPnJlZ19jYWNoZSA9IGFkMTkzeC0+cmVnX2NhY2hlOworCWNvZGVjLT5y ZWdfY2FjaGVfc2l6ZSA9IEFEMTkzWF9OVU1fUkVHUzsKKwljb2RlYy0+bmFtZSA9ICJBRDE5M1gi OwogCWNvZGVjLT5vd25lciA9IFRISVNfTU9EVUxFOwotCWNvZGVjLT5kYWkgPSAmYWQxOTM4X2Rh aTsKKwljb2RlYy0+ZGFpID0gJmFkMTkzeF9kYWk7CiAJY29kZWMtPm51bV9kYWkgPSAxOwogCUlO SVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV93aWRnZXRzKTsKIAlJTklUX0xJU1RfSEVBRCgmY29k ZWMtPmRhcG1fcGF0aHMpOwogCi0JYWQxOTM4X2RhaS5kZXYgPSBjb2RlYy0+ZGV2OwotCWFkMTkz OF9jb2RlYyA9IGNvZGVjOworCWFkMTkzeF9kYWkuZGV2ID0gY29kZWMtPmRldjsKKwlhZDE5M3hf Y29kZWMgPSBjb2RlYzsKIAotCW1lbWNweShjb2RlYy0+cmVnX2NhY2hlLCBhZDE5MzhfcmVnLCBB RDE5MzhfTlVNX1JFR1MpOworCW1lbWNweShjb2RlYy0+cmVnX2NhY2hlLCBhZDE5M3hfcmVnLCBB RDE5M1hfTlVNX1JFR1MpOwogCi0JcmV0ID0gc25kX3NvY19jb2RlY19zZXRfY2FjaGVfaW8oY29k ZWMsIDE2LCA4LCBTTkRfU09DX1NQSSk7CisJaWYgKGJ1c190eXBlID09IFNORF9TT0NfSTJDKQor CQlyZXQgPSBzbmRfc29jX2NvZGVjX3NldF9jYWNoZV9pbyhjb2RlYywgOCwgOCwgYnVzX3R5cGUp OworCWVsc2UKKwkJcmV0ID0gc25kX3NvY19jb2RlY19zZXRfY2FjaGVfaW8oY29kZWMsIDE2LCA4 LCBidXNfdHlwZSk7CiAJaWYgKHJldCA8IDApIHsKIAkJZGV2X2Vycihjb2RlYy0+ZGV2LCAiZmFp bGVkIHRvIHNldCBjYWNoZSBJL086ICVkXG4iLAogCQkJCXJldCk7Ci0JCWtmcmVlKGFkMTkzOCk7 CisJCWtmcmVlKGFkMTkzeCk7CiAJCXJldHVybiByZXQ7CiAJfQogCi0JLyogZGVmYXVsdCBzZXR0 aW5nIGZvciBhZDE5MzggKi8KKwkvKiBkZWZhdWx0IHNldHRpbmcgZm9yIGFkMTkzeCAqLwogCiAJ LyogdW5tdXRlIGRhYyBjaGFubmVscyAqLwotCXNuZF9zb2Nfd3JpdGUoY29kZWMsIEFEMTkzOF9E QUNfQ0hOTF9NVVRFLCAweDApOworCXNuZF9zb2Nfd3JpdGUoY29kZWMsIEFEMTkzWF9EQUNfQ0hO TF9NVVRFLCAweDApOwogCS8qIGRlLWVtcGhhc2lzOiA0OGtIeiwgcG93ZWRvd24gZGFjICovCi0J c25kX3NvY193cml0ZShjb2RlYywgQUQxOTM4X0RBQ19DVFJMMiwgMHgxQSk7CisJc25kX3NvY193 cml0ZShjb2RlYywgQUQxOTNYX0RBQ19DVFJMMiwgMHgxQSk7CiAJLyogcG93ZXJkb3duIGRhYywg ZGFjIGluIHRkbSBtb2RlICovCi0Jc25kX3NvY193cml0ZShjb2RlYywgQUQxOTM4X0RBQ19DVFJM MCwgMHg0MSk7CisJc25kX3NvY193cml0ZShjb2RlYywgQUQxOTNYX0RBQ19DVFJMMCwgMHg0MSk7 CiAJLyogaGlnaC1wYXNzIGZpbHRlciBlbmFibGUgKi8KLQlzbmRfc29jX3dyaXRlKGNvZGVjLCBB RDE5MzhfQURDX0NUUkwwLCAweDMpOworCXNuZF9zb2Nfd3JpdGUoY29kZWMsIEFEMTkzWF9BRENf Q1RSTDAsIDB4Myk7CiAJLyogc2F0YSBkZWxheT0xLCBhZGMgYXV4IG1vZGUgKi8KLQlzbmRfc29j X3dyaXRlKGNvZGVjLCBBRDE5MzhfQURDX0NUUkwxLCAweDQzKTsKKwlzbmRfc29jX3dyaXRlKGNv ZGVjLCBBRDE5M1hfQURDX0NUUkwxLCAweDQzKTsKIAkvKiBwbGwgaW5wdXQ6IG1jbGtpL3hpICov Ci0Jc25kX3NvY193cml0ZShjb2RlYywgQUQxOTM4X1BMTF9DTEtfQ1RSTDAsIDB4OUQpOwotCXNu ZF9zb2Nfd3JpdGUoY29kZWMsIEFEMTkzOF9QTExfQ0xLX0NUUkwxLCAweDA0KTsKKwlzbmRfc29j X3dyaXRlKGNvZGVjLCBBRDE5M1hfUExMX0NMS19DVFJMMCwgMHg5OSk7IC8qIG1jbGs9MjQuNTc2 TWh6OiAweDlEOyBtY2xrPTEyLjI4OE1oejogMHg5OSAqLworCXNuZF9zb2Nfd3JpdGUoY29kZWMs IEFEMTkzWF9QTExfQ0xLX0NUUkwxLCAweDA0KTsKIAogCXJldCA9IHNuZF9zb2NfcmVnaXN0ZXJf Y29kZWMoY29kZWMpOwogCWlmIChyZXQgIT0gMCkgewogCQlkZXZfZXJyKGNvZGVjLT5kZXYsICJG YWlsZWQgdG8gcmVnaXN0ZXIgY29kZWM6ICVkXG4iLCByZXQpOwotCQlrZnJlZShhZDE5MzgpOwor CQlrZnJlZShhZDE5M3gpOwogCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldCA9IHNuZF9zb2NfcmVn aXN0ZXJfZGFpKCZhZDE5MzhfZGFpKTsKKwlyZXQgPSBzbmRfc29jX3JlZ2lzdGVyX2RhaSgmYWQx OTN4X2RhaSk7CiAJaWYgKHJldCAhPSAwKSB7CiAJCWRldl9lcnIoY29kZWMtPmRldiwgIkZhaWxl ZCB0byByZWdpc3RlciBEQUk6ICVkXG4iLCByZXQpOwogCQlzbmRfc29jX3VucmVnaXN0ZXJfY29k ZWMoY29kZWMpOwotCQlrZnJlZShhZDE5MzgpOworCQlrZnJlZShhZDE5M3gpOwogCQlyZXR1cm4g cmV0OwogCX0KIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBhZDE5MzhfdW5yZWdpc3Rl cihzdHJ1Y3QgYWQxOTM4X3ByaXYgKmFkMTkzOCkKK3N0YXRpYyB2b2lkIGFkMTkzeF91bnJlZ2lz dGVyKHN0cnVjdCBhZDE5M3hfcHJpdiAqYWQxOTN4KQogewotCXNuZF9zb2NfdW5yZWdpc3Rlcl9k YWkoJmFkMTkzOF9kYWkpOwotCXNuZF9zb2NfdW5yZWdpc3Rlcl9jb2RlYygmYWQxOTM4LT5jb2Rl Yyk7Ci0Ja2ZyZWUoYWQxOTM4KTsKLQlhZDE5MzhfY29kZWMgPSBOVUxMOworCXNuZF9zb2NfdW5y ZWdpc3Rlcl9kYWkoJmFkMTkzeF9kYWkpOworCXNuZF9zb2NfdW5yZWdpc3Rlcl9jb2RlYygmYWQx OTN4LT5jb2RlYyk7CisJa2ZyZWUoYWQxOTN4KTsKKwlhZDE5M3hfY29kZWMgPSBOVUxMOwogfQog Ci1zdGF0aWMgaW50IGFkMTkzOF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQor c3RhdGljIGludCBhZDE5M3hfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsK IAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBk ZXYpOwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYzsKIAlpbnQgcmV0ID0gMDsKIAotCWlm IChhZDE5MzhfY29kZWMgPT0gTlVMTCkgeworCWlmIChhZDE5M3hfY29kZWMgPT0gTlVMTCkgewog CQlkZXZfZXJyKCZwZGV2LT5kZXYsICJDb2RlYyBkZXZpY2Ugbm90IHJlZ2lzdGVyZWRcbiIpOwog CQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKLQlzb2NkZXYtPmNhcmQtPmNvZGVjID0gYWQxOTM4X2Nv ZGVjOwotCWNvZGVjID0gYWQxOTM4X2NvZGVjOworCXNvY2Rldi0+Y2FyZC0+Y29kZWMgPSBhZDE5 M3hfY29kZWM7CisJY29kZWMgPSBhZDE5M3hfY29kZWM7CiAKIAkvKiByZWdpc3RlciBwY21zICov CiAJcmV0ID0gc25kX3NvY19uZXdfcGNtcyhzb2NkZXYsIFNORFJWX0RFRkFVTFRfSURYMSwgU05E UlZfREVGQVVMVF9TVFIxKTsKQEAgLTQ2OCwxOSArNDQzLDE4IEBAIHN0YXRpYyBpbnQgYWQxOTM4 X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCWdvdG8gcGNtX2VycjsKIAl9 CiAKLQlzbmRfc29jX2FkZF9jb250cm9scyhjb2RlYywgYWQxOTM4X3NuZF9jb250cm9scywKLQkJ CSAgICAgQVJSQVlfU0laRShhZDE5Mzhfc25kX2NvbnRyb2xzKSk7Ci0Jc25kX3NvY19kYXBtX25l d19jb250cm9scyhjb2RlYywgYWQxOTM4X2RhcG1fd2lkZ2V0cywKLQkJCQkgIEFSUkFZX1NJWkUo YWQxOTM4X2RhcG1fd2lkZ2V0cykpOworCXNuZF9zb2NfYWRkX2NvbnRyb2xzKGNvZGVjLCBhZDE5 M3hfc25kX2NvbnRyb2xzLAorCQkJICAgICBBUlJBWV9TSVpFKGFkMTkzeF9zbmRfY29udHJvbHMp KTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCBhZDE5M3hfZGFwbV93aWRnZXRz LAorCQkJCSAgQVJSQVlfU0laRShhZDE5M3hfZGFwbV93aWRnZXRzKSk7CiAJc25kX3NvY19kYXBt X2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX3BhdGhzLCBBUlJBWV9TSVpFKGF1ZGlvX3BhdGhzKSk7 CiAKLQogcGNtX2VycjoKIAlyZXR1cm4gcmV0OwogfQogCiAvKiBwb3dlciBkb3duIGNoaXAgKi8K LXN0YXRpYyBpbnQgYWQxOTM4X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQor c3RhdGljIGludCBhZDE5M3hfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7 CiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShw ZGV2KTsKIApAQCAtNDkwLDMyICs0NjQsOTcgQEAgc3RhdGljIGludCBhZDE5MzhfcmVtb3ZlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLXN0cnVjdCBzbmRf c29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X2FkMTkzOCA9IHsKLQkucHJvYmUgPSAJYWQx OTM4X3Byb2JlLAotCS5yZW1vdmUgPSAJYWQxOTM4X3JlbW92ZSwKK3N0cnVjdCBzbmRfc29jX2Nv ZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X2FkMTkzeCA9IHsKKwkucHJvYmUgPSAJYWQxOTN4X3By b2JlLAorCS5yZW1vdmUgPSAJYWQxOTN4X3JlbW92ZSwKIH07Ci1FWFBPUlRfU1lNQk9MX0dQTChz b2NfY29kZWNfZGV2X2FkMTkzOCk7CitFWFBPUlRfU1lNQk9MX0dQTChzb2NfY29kZWNfZGV2X2Fk MTkzeCk7CisKKyNpZiBkZWZpbmVkKENPTkZJR19TUElfTUFTVEVSKQorc3RhdGljIGludCBfX2Rl dmluaXQgYWQxOTN4X3NwaV9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXJldHVy biBhZDE5M3hfYnVzX3Byb2JlKCZzcGktPmRldiwgc3BpLCBTTkRfU09DX1NQSSk7Cit9CiAKLXN0 YXRpYyBpbnQgX19pbml0IGFkMTkzOF9pbml0KHZvaWQpCitzdGF0aWMgaW50IF9fZGV2ZXhpdCBh ZDE5M3hfc3BpX3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQoreworCXJldHVybiBhZDE5 M3hfYnVzX3JlbW92ZSgmc3BpLT5kZXYpOworfQorCitzdGF0aWMgc3RydWN0IHNwaV9kcml2ZXIg YWQxOTN4X3NwaV9kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUJPSAiYWQxOTN4IiwK KwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJfSwKKwkucHJvYmUJCT0gYWQxOTN4X3NwaV9wcm9i ZSwKKwkucmVtb3ZlCQk9IF9fZGV2ZXhpdF9wKGFkMTkzeF9zcGlfcmVtb3ZlKSwKK307CisjZW5k aWYKKworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVM RSkKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCBhZDE5M3hfaWRbXSA9IHsKKwl7 ICJhZDE5MzYiLCAwIH0sCisJeyAiYWQxOTM3IiwgMCB9LAorCXsgfQorfTsKK01PRFVMRV9ERVZJ Q0VfVEFCTEUoaTJjLCBhZDE5M3hfaWQpOworCitzdGF0aWMgaW50IF9fZGV2aW5pdCBhZDE5M3hf aTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCisJCWNvbnN0IHN0cnVjdCBpMmNf ZGV2aWNlX2lkICppZCkKK3sKKwlyZXR1cm4gYWQxOTN4X2J1c19wcm9iZSgmY2xpZW50LT5kZXYs IGNsaWVudCwgU05EX1NPQ19JMkMpOworfQorCitzdGF0aWMgaW50IF9fZGV2ZXhpdCBhZDE5M3hf aTJjX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQoreworCXJldHVybiBhZDE5M3hf YnVzX3JlbW92ZSgmY2xpZW50LT5kZXYpOworfQorCitzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIg YWQxOTN4X2kyY19kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiYWQxOTN4IiwK Kwl9LAorCS5wcm9iZSAgICA9IGFkMTkzeF9pMmNfcHJvYmUsCisJLnJlbW92ZSAgID0gX19kZXZl eGl0X3AoYWQxOTN4X2kyY19yZW1vdmUpLAorCS5pZF90YWJsZSA9IGFkMTkzeF9pZCwKK307Cisj ZW5kaWYKKworc3RhdGljIGludCBfX2luaXQgYWQxOTN4X21vZGluaXQodm9pZCkKIHsKIAlpbnQg cmV0OwogCi0JcmV0ID0gc3BpX3JlZ2lzdGVyX2RyaXZlcigmYWQxOTM4X3NwaV9kcml2ZXIpOwor I2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwly ZXQgPSAgaTJjX2FkZF9kcml2ZXIoJmFkMTkzeF9pMmNfZHJpdmVyKTsKIAlpZiAocmV0ICE9IDAp IHsKLQkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gcmVnaXN0ZXIgYWQxOTM4IFNQSSBkcml2 ZXI6ICVkXG4iLAorCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byByZWdpc3RlciBBRDE5M1gg STJDIGRyaXZlcjogJWRcbiIsCiAJCQkJcmV0KTsKIAl9CisjZW5kaWYKIAorI2lmIGRlZmluZWQo Q09ORklHX1NQSV9NQVNURVIpCisJcmV0ID0gc3BpX3JlZ2lzdGVyX2RyaXZlcigmYWQxOTN4X3Nw aV9kcml2ZXIpOworCWlmIChyZXQgIT0gMCkgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0 byByZWdpc3RlciBBRDE5M1ggU1BJIGRyaXZlcjogJWRcbiIsCisJCQkJcmV0KTsKKwl9CisjZW5k aWYKIAlyZXR1cm4gcmV0OwogfQotbW9kdWxlX2luaXQoYWQxOTM4X2luaXQpOworbW9kdWxlX2lu aXQoYWQxOTN4X21vZGluaXQpOwogCi1zdGF0aWMgdm9pZCBfX2V4aXQgYWQxOTM4X2V4aXQodm9p ZCkKK3N0YXRpYyB2b2lkIF9fZXhpdCBhZDE5M3hfbW9kZXhpdCh2b2lkKQogewotCXNwaV91bnJl Z2lzdGVyX2RyaXZlcigmYWQxOTM4X3NwaV9kcml2ZXIpOworI2lmIGRlZmluZWQoQ09ORklHX1NQ SV9NQVNURVIpCisJc3BpX3VucmVnaXN0ZXJfZHJpdmVyKCZhZDE5M3hfc3BpX2RyaXZlcik7Cisj ZW5kaWYKKworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01P RFVMRSkKKwlpMmNfZGVsX2RyaXZlcigmYWQxOTN4X2kyY19kcml2ZXIpOworI2VuZGlmCiB9Ci1t b2R1bGVfZXhpdChhZDE5MzhfZXhpdCk7Cittb2R1bGVfZXhpdChhZDE5M3hfbW9kZXhpdCk7CiAK LU1PRFVMRV9ERVNDUklQVElPTigiQVNvQyBhZDE5MzggZHJpdmVyIik7Ci1NT0RVTEVfQVVUSE9S KCJCYXJyeSBTb25nICIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBU29DIGFkMTkzeCBkcml2ZXIi KTsKK01PRFVMRV9BVVRIT1IoIkJhcnJ5IFNvbmcgPDIxY25iYW9AZ21haWwuY29tPiIpOwogTU9E VUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9hZDE5M3gu aCBiL3NvdW5kL3NvYy9jb2RlY3MvYWQxOTN4LmgKaW5kZXggZmUzYzQ4Yy4uNzgxMzUzYyAxMDA2 NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9hZDE5M3guaAorKysgYi9zb3VuZC9zb2MvY29kZWNz L2FkMTkzeC5oCkBAIC0xLDEwMCArMSw4MiBAQAogLyoKLSAqIEZpbGU6ICAgICAgICAgc291bmQv c29jL2NvZGVjcy9hZDE4MzYuaAotICogQmFzZWQgb246Ci0gKiBBdXRob3I6ICAgICAgIEJhcnJ5 IFNvbmcgPEJhcnJ5LlNvbmdAYW5hbG9nLmNvbT4KKyAqIEFEMTkzWCBBdWRpbyBDb2RlYyBkcml2 ZXIKICAqCi0gKiBDcmVhdGVkOiAgICAgIE1heSAyNSwgMjAwOQotICogRGVzY3JpcHRpb246ICBk ZWZpbml0aW9ucyBmb3IgQUQxOTM4IHJlZ2lzdGVycworICogQ29weXJpZ2h0IDIwMTAgQW5hbG9n IERldmljZXMgSW5jLgogICoKLSAqIE1vZGlmaWVkOgotICoKLSAqIEJ1Z3M6ICAgICAgICAgRW50 ZXIgYnVncyBhdCBodHRwOi8vYmxhY2tmaW4udWNsaW51eC5vcmcvCi0gKgotICogVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Ci0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgdGhlIGZpbGUgQ09QWUlO Rywgb3Igd3JpdGUKLSAqIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCi0g KiA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT QQorICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTC0yIG9yIGxhdGVyLgogICovCiAKLSNpZm5kZWYg X19BRDE5MzhfSF9fCi0jZGVmaW5lIF9fQUQxOTM4X0hfXworI2lmbmRlZiBfX0FEMTkzWF9IX18K KyNkZWZpbmUgX19BRDE5M1hfSF9fCiAKLSNkZWZpbmUgQUQxOTM4X1BMTF9DTEtfQ1RSTDAgICAg MAotI2RlZmluZSBBRDE5MzhfUExMX1BPV0VSRE9XTiAgICAgICAgICAgMHgwMQotI2RlZmluZSBB RDE5MzhfUExMX0NMS19DVFJMMSAgICAxCi0jZGVmaW5lIEFEMTkzOF9EQUNfQ1RSTDAgICAgICAg IDIKLSNkZWZpbmUgQUQxOTM4X0RBQ19QT1dFUkRPV04gICAgICAgICAgIDB4MDEKLSNkZWZpbmUg QUQxOTM4X0RBQ19TRVJGTVRfTUFTSwkJMHhDMAotI2RlZmluZSBBRDE5MzhfREFDX1NFUkZNVF9T VEVSRU8JKDAgPDwgNikKLSNkZWZpbmUgQUQxOTM4X0RBQ19TRVJGTVRfVERNCQkoMSA8PCA2KQot I2RlZmluZSBBRDE5MzhfREFDX0NUUkwxICAgICAgICAzCi0jZGVmaW5lIEFEMTkzOF9EQUNfMl9D SEFOTkVMUyAgIDAKLSNkZWZpbmUgQUQxOTM4X0RBQ180X0NIQU5ORUxTICAgMQotI2RlZmluZSBB RDE5MzhfREFDXzhfQ0hBTk5FTFMgICAyCi0jZGVmaW5lIEFEMTkzOF9EQUNfMTZfQ0hBTk5FTFMg IDMKLSNkZWZpbmUgQUQxOTM4X0RBQ19DSEFOX1NIRlQgICAgMQotI2RlZmluZSBBRDE5MzhfREFD X0NIQU5fTUFTSyAgICAoMyA8PCBBRDE5MzhfREFDX0NIQU5fU0hGVCkKLSNkZWZpbmUgQUQxOTM4 X0RBQ19MQ1JfTUFTVEVSICAgKDEgPDwgNCkKLSNkZWZpbmUgQUQxOTM4X0RBQ19CQ0xLX01BU1RF UiAgKDEgPDwgNSkKLSNkZWZpbmUgQUQxOTM4X0RBQ19MRUZUX0hJR0ggICAgKDEgPDwgMykKLSNk ZWZpbmUgQUQxOTM4X0RBQ19CQ0xLX0lOViAgICAgKDEgPDwgNykKLSNkZWZpbmUgQUQxOTM4X0RB Q19DVFJMMiAgICAgICAgNAotI2RlZmluZSBBRDE5MzhfREFDX1dPUkRfTEVOX01BU0sJMHhDCi0j ZGVmaW5lIEFEMTkzOF9EQUNfTUFTVEVSX01VVEUgIDEKLSNkZWZpbmUgQUQxOTM4X0RBQ19DSE5M X01VVEUgICAgNQotI2RlZmluZSBBRDE5MzhfREFDTDFfTVVURSAgICAgICAwCi0jZGVmaW5lIEFE MTkzOF9EQUNSMV9NVVRFICAgICAgIDEKLSNkZWZpbmUgQUQxOTM4X0RBQ0wyX01VVEUgICAgICAg MgotI2RlZmluZSBBRDE5MzhfREFDUjJfTVVURSAgICAgICAzCi0jZGVmaW5lIEFEMTkzOF9EQUNM M19NVVRFICAgICAgIDQKLSNkZWZpbmUgQUQxOTM4X0RBQ1IzX01VVEUgICAgICAgNQotI2RlZmlu ZSBBRDE5MzhfREFDTDRfTVVURSAgICAgICA2Ci0jZGVmaW5lIEFEMTkzOF9EQUNSNF9NVVRFICAg ICAgIDcKLSNkZWZpbmUgQUQxOTM4X0RBQ19MMV9WT0wgICAgICAgNgotI2RlZmluZSBBRDE5Mzhf REFDX1IxX1ZPTCAgICAgICA3Ci0jZGVmaW5lIEFEMTkzOF9EQUNfTDJfVk9MICAgICAgIDgKLSNk ZWZpbmUgQUQxOTM4X0RBQ19SMl9WT0wgICAgICAgOQotI2RlZmluZSBBRDE5MzhfREFDX0wzX1ZP TCAgICAgICAxMAotI2RlZmluZSBBRDE5MzhfREFDX1IzX1ZPTCAgICAgICAxMQotI2RlZmluZSBB RDE5MzhfREFDX0w0X1ZPTCAgICAgICAxMgotI2RlZmluZSBBRDE5MzhfREFDX1I0X1ZPTCAgICAg ICAxMwotI2RlZmluZSBBRDE5MzhfQURDX0NUUkwwICAgICAgICAxNAotI2RlZmluZSBBRDE5Mzhf QURDX1BPV0VSRE9XTiAgICAgICAgICAgMHgwMQotI2RlZmluZSBBRDE5MzhfQURDX0hJR0hQQVNT X0ZJTFRFUgkxCi0jZGVmaW5lIEFEMTkzOF9BRENMMV9NVVRFIAkJMgotI2RlZmluZSBBRDE5Mzhf QURDUjFfTVVURSAJCTMKLSNkZWZpbmUgQUQxOTM4X0FEQ0wyX01VVEUgCQk0Ci0jZGVmaW5lIEFE MTkzOF9BRENSMl9NVVRFIAkJNQotI2RlZmluZSBBRDE5MzhfQURDX0NUUkwxICAgICAgICAxNQot I2RlZmluZSBBRDE5MzhfQURDX1NFUkZNVF9NQVNLCQkweDYwCi0jZGVmaW5lIEFEMTkzOF9BRENf U0VSRk1UX1NURVJFTwkoMCA8PCA1KQotI2RlZmluZSBBRDE5MzhfQURDX1NFUkZNVF9URE0JCSgx IDw8IDIpCi0jZGVmaW5lIEFEMTkzOF9BRENfU0VSRk1UX0FVWAkJKDIgPDwgNSkKLSNkZWZpbmUg QUQxOTM4X0FEQ19XT1JEX0xFTl9NQVNLCTB4MwotI2RlZmluZSBBRDE5MzhfQURDX0NUUkwyICAg ICAgICAxNgotI2RlZmluZSBBRDE5MzhfQURDXzJfQ0hBTk5FTFMgICAwCi0jZGVmaW5lIEFEMTkz OF9BRENfNF9DSEFOTkVMUyAgIDEKLSNkZWZpbmUgQUQxOTM4X0FEQ184X0NIQU5ORUxTICAgMgot I2RlZmluZSBBRDE5MzhfQURDXzE2X0NIQU5ORUxTICAzCi0jZGVmaW5lIEFEMTkzOF9BRENfQ0hB Tl9TSEZUICAgIDQKLSNkZWZpbmUgQUQxOTM4X0FEQ19DSEFOX01BU0sgICAgKDMgPDwgQUQxOTM4 X0FEQ19DSEFOX1NIRlQpCi0jZGVmaW5lIEFEMTkzOF9BRENfTENSX01BU1RFUiAgICgxIDw8IDMp Ci0jZGVmaW5lIEFEMTkzOF9BRENfQkNMS19NQVNURVIgICgxIDw8IDYpCi0jZGVmaW5lIEFEMTkz OF9BRENfTEVGVF9ISUdIICAgICgxIDw8IDIpCi0jZGVmaW5lIEFEMTkzOF9BRENfQkNMS19JTlYg ICAgICgxIDw8IDEpCisjZGVmaW5lIEFEMTkzWF9QTExfQ0xLX0NUUkwwICAgIDB4ODAwCisjZGVm aW5lIEFEMTkzWF9QTExfUE9XRVJET1dOICAgICAgICAgICAweDAxCisjZGVmaW5lIEFEMTkzWF9Q TExfQ0xLX0NUUkwxICAgIDB4ODAxCisjZGVmaW5lIEFEMTkzWF9EQUNfQ1RSTDAgICAgICAgIDB4 ODAyCisjZGVmaW5lIEFEMTkzWF9EQUNfUE9XRVJET1dOICAgICAgICAgICAweDAxCisjZGVmaW5l IEFEMTkzWF9EQUNfU0VSRk1UX01BU0sJCTB4QzAKKyNkZWZpbmUgQUQxOTNYX0RBQ19TRVJGTVRf U1RFUkVPCSgwIDw8IDYpCisjZGVmaW5lIEFEMTkzWF9EQUNfU0VSRk1UX1RETQkJKDEgPDwgNikK KyNkZWZpbmUgQUQxOTNYX0RBQ19DVFJMMSAgICAgICAgMHg4MDMKKyNkZWZpbmUgQUQxOTNYX0RB Q18yX0NIQU5ORUxTICAgMAorI2RlZmluZSBBRDE5M1hfREFDXzRfQ0hBTk5FTFMgICAxCisjZGVm aW5lIEFEMTkzWF9EQUNfOF9DSEFOTkVMUyAgIDIKKyNkZWZpbmUgQUQxOTNYX0RBQ18xNl9DSEFO TkVMUyAgMworI2RlZmluZSBBRDE5M1hfREFDX0NIQU5fU0hGVCAgICAxCisjZGVmaW5lIEFEMTkz WF9EQUNfQ0hBTl9NQVNLICAgICgzIDw8IEFEMTkzWF9EQUNfQ0hBTl9TSEZUKQorI2RlZmluZSBB RDE5M1hfREFDX0xDUl9NQVNURVIgICAoMSA8PCA0KQorI2RlZmluZSBBRDE5M1hfREFDX0JDTEtf TUFTVEVSICAoMSA8PCA1KQorI2RlZmluZSBBRDE5M1hfREFDX0xFRlRfSElHSCAgICAoMSA8PCAz KQorI2RlZmluZSBBRDE5M1hfREFDX0JDTEtfSU5WICAgICAoMSA8PCA3KQorI2RlZmluZSBBRDE5 M1hfREFDX0NUUkwyICAgICAgICAweDgwNAorI2RlZmluZSBBRDE5M1hfREFDX1dPUkRfTEVOX01B U0sJMHhDCisjZGVmaW5lIEFEMTkzWF9EQUNfTUFTVEVSX01VVEUgIDEKKyNkZWZpbmUgQUQxOTNY X0RBQ19DSE5MX01VVEUgICAgMHg4MDUKKyNkZWZpbmUgQUQxOTNYX0RBQ0wxX01VVEUgICAgICAg MAorI2RlZmluZSBBRDE5M1hfREFDUjFfTVVURSAgICAgICAxCisjZGVmaW5lIEFEMTkzWF9EQUNM Ml9NVVRFICAgICAgIDIKKyNkZWZpbmUgQUQxOTNYX0RBQ1IyX01VVEUgICAgICAgMworI2RlZmlu ZSBBRDE5M1hfREFDTDNfTVVURSAgICAgICA0CisjZGVmaW5lIEFEMTkzWF9EQUNSM19NVVRFICAg ICAgIDUKKyNkZWZpbmUgQUQxOTNYX0RBQ0w0X01VVEUgICAgICAgNgorI2RlZmluZSBBRDE5M1hf REFDUjRfTVVURSAgICAgICA3CisjZGVmaW5lIEFEMTkzWF9EQUNfTDFfVk9MICAgICAgIDB4ODA2 CisjZGVmaW5lIEFEMTkzWF9EQUNfUjFfVk9MICAgICAgIDB4ODA3CisjZGVmaW5lIEFEMTkzWF9E QUNfTDJfVk9MICAgICAgIDB4ODA4CisjZGVmaW5lIEFEMTkzWF9EQUNfUjJfVk9MICAgICAgIDB4 ODA5CisjZGVmaW5lIEFEMTkzWF9EQUNfTDNfVk9MICAgICAgIDB4ODBhCisjZGVmaW5lIEFEMTkz WF9EQUNfUjNfVk9MICAgICAgIDB4ODBiCisjZGVmaW5lIEFEMTkzWF9EQUNfTDRfVk9MICAgICAg IDB4ODBjCisjZGVmaW5lIEFEMTkzWF9EQUNfUjRfVk9MICAgICAgIDB4ODBkCisjZGVmaW5lIEFE MTkzWF9BRENfQ1RSTDAgICAgICAgIDB4ODBlCisjZGVmaW5lIEFEMTkzWF9BRENfUE9XRVJET1dO ICAgICAgICAgICAweDAxCisjZGVmaW5lIEFEMTkzWF9BRENfSElHSFBBU1NfRklMVEVSCTEKKyNk ZWZpbmUgQUQxOTNYX0FEQ0wxX01VVEUgCQkyCisjZGVmaW5lIEFEMTkzWF9BRENSMV9NVVRFIAkJ MworI2RlZmluZSBBRDE5M1hfQURDTDJfTVVURSAJCTQKKyNkZWZpbmUgQUQxOTNYX0FEQ1IyX01V VEUgCQk1CisjZGVmaW5lIEFEMTkzWF9BRENfQ1RSTDEgICAgICAgIDB4ODBmCisjZGVmaW5lIEFE MTkzWF9BRENfU0VSRk1UX01BU0sJCTB4NjAKKyNkZWZpbmUgQUQxOTNYX0FEQ19TRVJGTVRfU1RF UkVPCSgwIDw8IDUpCisjZGVmaW5lIEFEMTkzWF9BRENfU0VSRk1UX1RETQkJKDEgPDwgMikKKyNk ZWZpbmUgQUQxOTNYX0FEQ19TRVJGTVRfQVVYCQkoMiA8PCA1KQorI2RlZmluZSBBRDE5M1hfQURD X1dPUkRfTEVOX01BU0sJMHgzCisjZGVmaW5lIEFEMTkzWF9BRENfQ1RSTDIgICAgICAgIDB4ODEw CisjZGVmaW5lIEFEMTkzWF9BRENfMl9DSEFOTkVMUyAgIDAKKyNkZWZpbmUgQUQxOTNYX0FEQ180 X0NIQU5ORUxTICAgMQorI2RlZmluZSBBRDE5M1hfQURDXzhfQ0hBTk5FTFMgICAyCisjZGVmaW5l IEFEMTkzWF9BRENfMTZfQ0hBTk5FTFMgIDMKKyNkZWZpbmUgQUQxOTNYX0FEQ19DSEFOX1NIRlQg ICAgNAorI2RlZmluZSBBRDE5M1hfQURDX0NIQU5fTUFTSyAgICAoMyA8PCBBRDE5M1hfQURDX0NI QU5fU0hGVCkKKyNkZWZpbmUgQUQxOTNYX0FEQ19MQ1JfTUFTVEVSICAgKDEgPDwgMykKKyNkZWZp bmUgQUQxOTNYX0FEQ19CQ0xLX01BU1RFUiAgKDEgPDwgNikKKyNkZWZpbmUgQUQxOTNYX0FEQ19M RUZUX0hJR0ggICAgKDEgPDwgMikKKyNkZWZpbmUgQUQxOTNYX0FEQ19CQ0xLX0lOViAgICAgKDEg PDwgMSkKIAotI2RlZmluZSBBRDE5MzhfTlVNX1JFR1MgICAgICAgICAgMTcKKyNkZWZpbmUgQUQx OTNYX05VTV9SRUdTICAgICAgICAgIDE3CiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgYWQx OTM4X2RhaTsKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rl dl9hZDE5Mzg7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGFkMTkzeF9kYWk7CitleHRlcm4g c3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfYWQxOTN4OworZXh0ZXJu IGludCBhZDE5M3hfYnVzX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqY3RybF9kYXRh LCBpbnQgYnVzX3R5cGUpOworZXh0ZXJuIGludCBhZDE5M3hfYnVzX3JlbW92ZShzdHJ1Y3QgZGV2 aWNlICpkZXYpOwogI2VuZGlmCi0tIAoxLjUuNi4zCgo= --0016361e893c8c74f5048222011f Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel --0016361e893c8c74f5048222011f--