From owner-freebsd-embedded@FreeBSD.ORG Sun Jun 9 18:39:19 2013 Return-Path: Delivered-To: freebsd-embedded@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 1C8E9FF7; Sun, 9 Jun 2013 18:39:19 +0000 (UTC) (envelope-from loos.br@gmail.com) Received: from mail-gg0-x233.google.com (mail-gg0-x233.google.com [IPv6:2607:f8b0:4002:c02::233]) by mx1.freebsd.org (Postfix) with ESMTP id C85E01948; Sun, 9 Jun 2013 18:39:18 +0000 (UTC) Received: by mail-gg0-f179.google.com with SMTP id c2so152686ggn.38 for ; Sun, 09 Jun 2013 11:39:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; bh=pGBZ1n3E+Jg/GMQYp4tYiMu/4bwFqiAJJAdotOQA27g=; b=XRkmxPv9URe8BeiHWqBAEKqdpbe8Bupo7I+N3wOFZmb1+jlo8j98zyqoCVYUbhHpPP Oky7q2ZJbSYBuwyLLSxcStqKUsqT/c/X3ywp6rYUJBYSjOuCQbUiOVpK0qf63JR2U1yp BSG8VkYYRMauL3DCpyjIBxAIJedK+SEzFsYlmVvIxPPYgoNV/VpUC8eWvFNd+embajrh TeAclmVyk4yspjzF6IkHV+67xVIG5qwveUfYF92Q7t1urU0DY+67ye2V0rnVzlGdJ5FM CD8ODX3LgHTRhJ2AB9yVViG3XdZKjkkxKDNXtNPsO5t9/Ks8F5R1BJ4CjekS9Lxs/fTp 8yVg== X-Received: by 10.236.28.112 with SMTP id f76mr2914031yha.93.1370803158406; Sun, 09 Jun 2013 11:39:18 -0700 (PDT) Received: from [192.168.1.109] ([186.222.89.195]) by mx.google.com with ESMTPSA id c67sm11112807yhc.22.2013.06.09.11.39.15 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 09 Jun 2013 11:39:17 -0700 (PDT) Subject: Re: etherswitch regression? Mime-Version: 1.0 (Apple Message framework v1085) Content-Type: text/plain; charset=us-ascii From: Luiz Otavio O Souza In-Reply-To: Date: Sun, 9 Jun 2013 15:39:12 -0300 Content-Transfer-Encoding: quoted-printable Message-Id: <153E652C-3C4F-4BEC-BDF9-C6038813A369@gmail.com> References: To: Adrian Chadd X-Mailer: Apple Mail (2.1085) Cc: Aleksandr Rybalko , freebsd-embedded@freebsd.org X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Jun 2013 18:39:19 -0000 On Jun 8, 2013, at 5:26 PM, Adrian Chadd wrote: > Hi guys, >=20 > I've noticed this regression: >=20 > # etherswitchcfg > etherswitchcfg: ioctl(IOETHERSWITCHGETINFO): Inappropriate ioctl for = device >=20 > Is this just a userland mismatch? or? >=20 >=20 >=20 > adrian Hi Adrian, Yes this looks like a userland mismatch. Usually rebuilding = etherswitchcfg (with the new etherswitch.h) is enough to fix this. Luiz= From owner-freebsd-embedded@FreeBSD.ORG Mon Jun 10 11:06:46 2013 Return-Path: Delivered-To: freebsd-embedded@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id A0A15F92 for ; Mon, 10 Jun 2013 11:06:46 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:1900:2254:206c::16:87]) by mx1.freebsd.org (Postfix) with ESMTP id 925371C7D for ; Mon, 10 Jun 2013 11:06:46 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.7/8.14.7) with ESMTP id r5AB6kMS096911 for ; Mon, 10 Jun 2013 11:06:46 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.7/8.14.7/Submit) id r5AB6ka5096909 for freebsd-embedded@FreeBSD.org; Mon, 10 Jun 2013 11:06:46 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 10 Jun 2013 11:06:46 GMT Message-Id: <201306101106.r5AB6ka5096909@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-embedded@FreeBSD.org Subject: Current problem reports assigned to freebsd-embedded@FreeBSD.org X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Jun 2013 11:06:46 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/177878 embedded [rtl8366rb] [patch] Update rtl8366rb switch driver to o bin/177873 embedded [patch] etherswitchcfg(): Change the per port vlangrou o bin/177872 embedded [patch] etherswitchcfg(8) crashes if called with no ar o bin/177871 embedded [patch] etherswitchcfg(8): uninitialized variable whil o kern/172968 embedded [arge] probe/attach occasionally fails to find a PHY o misc/52256 embedded [picobsd] picobsd build script does not read in user/s o kern/42728 embedded [picobsd] many problems in src/usr.sbin/ppp/* after c 7 problems total. From owner-freebsd-embedded@FreeBSD.ORG Thu Jun 13 14:41:12 2013 Return-Path: Delivered-To: freebsd-embedded@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id E3C01E88; Thu, 13 Jun 2013 14:41:12 +0000 (UTC) (envelope-from lists.br@gmail.com) Received: from mail-wi0-x235.google.com (mail-wi0-x235.google.com [IPv6:2a00:1450:400c:c05::235]) by mx1.freebsd.org (Postfix) with ESMTP id EA0F8105B; Thu, 13 Jun 2013 14:41:11 +0000 (UTC) Received: by mail-wi0-f181.google.com with SMTP id hq4so1630777wib.2 for ; Thu, 13 Jun 2013 07:41:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=auy8WEs9STZRaEUMfLQhrbKqyHiWsq2kwa4CQyN6YPI=; b=Sw45zRG3MNkcBWQuX0/BZZg2Z+48mMIs3EaEpoHyFt1nV/JaDRly2KeQ0BjFxdSvZh sx3SD2udMDucmzBuyJhfoFJyR8TV4pB3DSoLG/1Nw7wHJewihPLDwVjP0DetkKguEI1d ffmUu+QfNFKWNMTx/BJg50LExCx0YaAL8j760WGkd2cYzI+Vy6ObIZeynJRjDEFOi1vy 88jULkbgluwkMOzkVVwmPeZjqp39QcWSA/BSqHEmBdse/t02jdRNeN+9xiv8jHAhmC0m yMvZcwE8GAf6Y1sw5N2iETVW6KLhsyV3tTcY1S+IHO9zoPrsNGscu66Q3VL5vafRdW2e COEw== MIME-Version: 1.0 X-Received: by 10.180.211.49 with SMTP id mz17mr7690306wic.43.1371134470960; Thu, 13 Jun 2013 07:41:10 -0700 (PDT) Received: by 10.217.110.199 with HTTP; Thu, 13 Jun 2013 07:41:10 -0700 (PDT) Date: Thu, 13 Jun 2013 11:41:10 -0300 Message-ID: Subject: arswitch vlan support From: Luiz Otavio O Souza To: freebsd-embedded@freebsd.org, ray@freebsd.org, Adrian Chadd Content-Type: multipart/mixed; boundary=001a11c25f8c14fa0604df0a1f5c X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Jun 2013 14:41:13 -0000 --001a11c25f8c14fa0604df0a1f5c Content-Type: text/plain; charset=ISO-8859-1 Hello, I've been working for a while to support vlans management on arswitch and the result seems to work quite well. I'd to change etherswitchcfg(8) again to better support port based vlans setups. There was a bug in arswitch_writereg() where the lsb/msb parts were written in the wrong order and that was causing all kinds of instability. Fixing that allows me to bring back the page code (which only change the switch register page when needed) and also remove some previous workarounds. Here are the patches (and urls if the list eat them): http://loos.no-ip.org/switch/001-etherswitch-vid-valid.diff Adds a flag to tell to etherswitch consumers when a vlangroup is valid (in use, even when there are no members on the vlangroup). http://loos.no-ip.org/switch/002-ip17x-vid-valid.diff Add the support to report valid vlans and fix a few bugs (don't allow change the vlan when working in port based vlan mode, don't allow setup the same vlan id on different vlangroups). Tested on RB433U (IP175D) and an old RB450 (IP1757C). http://loos.no-ip.org/switch/003-rtl8366rb-vid-valid.diff Report valid vlans for rtl8366 based switches (just a mechanical change, i'll test the changes now that i have the hardware). http://loos.no-ip.org/switch/004-arswitch-vlans.diff Implement port and 802.1q vlan support for ar8x16 (and ar724x) based switches. Fix the instability bug. Tested on RSPRO (standalone ar8316), RB450G (standalone ar8316) and on TPLink MR-3220 (ar7240 integrated switch). Do you guys have suggestions, comments ? Thanks, Luiz --001a11c25f8c14fa0604df0a1f5c Content-Type: application/octet-stream; name="001-etherswitch-vid-valid.diff" Content-Disposition: attachment; filename="001-etherswitch-vid-valid.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hhw0zcks0 SW5kZXg6IHNiaW4vZXRoZXJzd2l0Y2hjZmcvZXRoZXJzd2l0Y2hjZmcuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBzYmluL2V0aGVyc3dpdGNoY2ZnL2V0aGVyc3dpdGNoY2ZnLmMJKHJldmlzaW9uIDI1MDkwOCkK KysrIHNiaW4vZXRoZXJzd2l0Y2hjZmcvZXRoZXJzd2l0Y2hjZmcuYwkod29ya2luZyBjb3B5KQpA QCAtNDcxLDggKzQ3MSw5IEBACiAJdmcuZXNfdmxhbmdyb3VwID0gdmxhbmdyb3VwOwogCWlmIChp b2N0bChjZmctPmZkLCBJT0VUSEVSU1dJVENIR0VUVkxBTkdST1VQLCAmdmcpICE9IDApCiAJCWVy cihFWF9PU0VSUiwgImlvY3RsKElPRVRIRVJTV0lUQ0hHRVRWTEFOR1JPVVApIik7Ci0JaWYgKHZn LmVzX3ZpZCA9PSAwICYmIHZnLmVzX21lbWJlcl9wb3J0cyA9PSAwKQorCWlmICgodmcuZXNfdmlk ICYgRVRIRVJTV0lUQ0hfVklEX1ZBTElEKSA9PSAwKQogCQlyZXR1cm47CisJdmcuZXNfdmlkICY9 IEVUSEVSU1dJVENIX1ZJRF9NQVNLOwogCXByaW50Zigidmxhbmdyb3VwJWQ6XG4iLCB2bGFuZ3Jv dXApOwogCWlmIChjZmctPmNvbmYudmxhbl9tb2RlID09IEVUSEVSU1dJVENIX1ZMQU5fUE9SVCkK IAkJcHJpbnRmKCJcdHBvcnQ6ICVkXG4iLCB2Zy5lc192aWQpOwpAQCAtNjI2LDcgKzYyNyw5IEBA CiAJCQkJbmV3bW9kZSgmY2ZnLCBNT0RFX1BPUlQpOwogCQkJfSBlbHNlIGlmIChzc2NhbmYoYXJn dlswXSwgInZsYW5ncm91cCVkIiwgJmNmZy51bml0KSA9PSAxKSB7CiAJCQkJaWYgKGNmZy51bml0 IDwgMCB8fCBjZmcudW5pdCA+PSBjZmcuaW5mby5lc19udmxhbmdyb3VwcykKLQkJCQkJZXJyeChF WF9VU0FHRSwgInBvcnQgdW5pdCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgJWQiLCBjZmcuaW5mby5l c19udmxhbmdyb3Vwcyk7CisJCQkJCWVycngoRVhfVVNBR0UsCisJCQkJCSAgICAidmxhbmdyb3Vw IHVuaXQgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kICVkIiwKKwkJCQkJICAgIGNmZy5pbmZvLmVzX252 bGFuZ3JvdXBzIC0gMSk7CiAJCQkJbmV3bW9kZSgmY2ZnLCBNT0RFX1ZMQU5HUk9VUCk7CiAJCQl9 IGVsc2UgaWYgKHN0cmNtcChhcmd2WzBdLCAiY29uZmlnIikgPT0gMCkgewogCQkJCW5ld21vZGUo JmNmZywgTU9ERV9DT05GSUcpOwpJbmRleDogc3lzL2Rldi9ldGhlcnN3aXRjaC9ldGhlcnN3aXRj aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHN5cy9kZXYvZXRoZXJzd2l0Y2gvZXRoZXJzd2l0Y2guaAkocmV2 aXNpb24gMjUwOTA4KQorKysgc3lzL2Rldi9ldGhlcnN3aXRjaC9ldGhlcnN3aXRjaC5oCSh3b3Jr aW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiB0eXBlZGVmIHN0cnVjdCBldGhlcnN3aXRjaF9w aHlyZWcgZXRoZXJzd2l0Y2hfcGh5cmVnX3Q7CiAKICNkZWZpbmUJRVRIRVJTV0lUQ0hfTkFNRU1B WAkJNjQKKyNkZWZpbmUJRVRIRVJTV0lUQ0hfVklEX01BU0sJCTB4ZmZmCisjZGVmaW5lCUVUSEVS U1dJVENIX1ZJRF9WQUxJRAkJKDEgPDwgMTIpCiAjZGVmaW5lCUVUSEVSU1dJVENIX1ZMQU5fSVNM CQkoMSA8PCAwKQkvKiBJU0wgKi8KICNkZWZpbmUJRVRIRVJTV0lUQ0hfVkxBTl9QT1JUCQkoMSA8 PCAxKQkvKiBQb3J0IGJhc2VkIHZsYW4gKi8KICNkZWZpbmUJRVRIRVJTV0lUQ0hfVkxBTl9ET1Qx UQkJKDEgPDwgMikJLyogODAyLjFxICovCg== --001a11c25f8c14fa0604df0a1f5c Content-Type: application/octet-stream; name="002-ip17x-vid-valid.diff" Content-Disposition: attachment; filename="002-ip17x-vid-valid.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hhw0zcms1 SW5kZXg6IGRldi9ldGhlcnN3aXRjaC9pcDE3eC9pcDE3NWMuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkZXYv ZXRoZXJzd2l0Y2gvaXAxN3gvaXAxNzVjLmMJKHJldmlzaW9uIDI1MDkwMSkKKysrIGRldi9ldGhl cnN3aXRjaC9pcDE3eC9pcDE3NWMuYwkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDkgKzE0Nyw5IEBA CiAJbWVtc2V0KHZsYW5zLCAwLCBzaXplb2YodmxhbnMpKTsKIAlmb3IgKGkgPSAwOyBpIDwgSVAx N1hfTUFYX1ZMQU5TOyBpKyspIHsKIAkJdiA9ICZzYy0+dmxhbltpXTsKLQkJaWYgKHYtPnZsYW5p ZCA9PSAwKQorCQlpZiAoKHYtPnZsYW5pZCAmIEVUSEVSU1dJVENIX1ZJRF9WQUxJRCkgPT0gMCkK IAkJCWNvbnRpbnVlOwotCQl2bGFuc1t2LT52bGFuaWRdID0gdi0+cG9ydHM7CisJCXZsYW5zW3Yt PnZsYW5pZCAmIEVUSEVSU1dJVENIX1ZJRF9NQVNLXSA9IHYtPnBvcnRzOwogCX0KIAogCWZvciAo aiA9IDAsIGkgPSAxOyBpIDw9IElQMTdYX01BWF9WTEFOUyAvIDI7IGkrKykgewpJbmRleDogZGV2 L2V0aGVyc3dpdGNoL2lwMTd4L2lwMTc1ZC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRldi9ldGhlcnN3aXRj aC9pcDE3eC9pcDE3NWQuYwkocmV2aXNpb24gMjUwOTAxKQorKysgZGV2L2V0aGVyc3dpdGNoL2lw MTd4L2lwMTc1ZC5jCSh3b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw4IEBACiAJCXN0cmlwdGFn W2ldID0gMDsKIAogCQl2ID0gJnNjLT52bGFuW2ldOwotCQlpZiAodi0+dmxhbmlkID09IDAgfHwg c2MtPnZsYW5fbW9kZSA9PSAwKSB7CisJCWlmICgodi0+dmxhbmlkICYgRVRIRVJTV0lUQ0hfVklE X1ZBTElEKSA9PSAwIHx8CisJCSAgICBzYy0+dmxhbl9tb2RlID09IDApIHsKIAkJCS8qIFZsYW5n cm91cCBkaXNhYmxlZC4gIFJlc2V0IHRoZSBmaWx0ZXIuICovCiAJCQlpcDE3eF93cml0ZXBoeShz Yy0+c2NfZGV2LCAyMiwgMTQgKyBpLCBpICsgMSk7CiAJCQlwb3J0c1tpXSA9IDB4M2Y7CkBAIC0x MDUsNyArMTA2LDggQEAKIAkJcG9ydHNbaV0gPSB2LT5wb3J0czsKIAogCQkvKiBTZXR1cCB0aGUg ZmlsdGVyLCB3cml0ZSB0aGUgVkxBTiBpZC4gKi8KLQkJaXAxN3hfd3JpdGVwaHkoc2MtPnNjX2Rl diwgMjIsIDE0ICsgaSwgdi0+dmxhbmlkKTsKKwkJaXAxN3hfd3JpdGVwaHkoc2MtPnNjX2Rldiwg MjIsIDE0ICsgaSwKKwkJICAgIHYtPnZsYW5pZCAmIEVUSEVSU1dJVENIX1ZJRF9NQVNLKTsKIAog CQlmb3IgKGogPSAwOyBqIDwgTUlJX05QSFk7IGorKykgewogCQkJaWYgKChwb3J0c1tpXSAmICgx IDw8IGopKSA9PSAwKQpJbmRleDogZGV2L2V0aGVyc3dpdGNoL2lwMTd4L2lwMTd4X3ZsYW5zLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gZGV2L2V0aGVyc3dpdGNoL2lwMTd4L2lwMTd4X3ZsYW5zLmMJKHJldmlz aW9uIDI1MDkwMSkKKysrIGRldi9ldGhlcnN3aXRjaC9pcDE3eC9pcDE3eF92bGFucy5jCSh3b3Jr aW5nIGNvcHkpCkBAIC03NCw3ICs3NCw3IEBACiAJCQlpZiAoKCgxIDw8IHBoeSkgJiBzYy0+cGh5 bWFzaykgPT0gMCkKIAkJCQljb250aW51ZTsKIAkJCXYgPSAmc2MtPnZsYW5baV07Ci0JCQl2LT52 bGFuaWQgPSBpKys7CisJCQl2LT52bGFuaWQgPSBpKysgfCBFVEhFUlNXSVRDSF9WSURfVkFMSUQ7 CiAJCQl2LT5wb3J0cyA9ICgxIDw8IHNjLT5jcHVwb3J0KTsKIAkJCWZvciAoaiA9IDA7IGogPCBN SUlfTlBIWTsgaisrKSB7CiAJCQkJaWYgKCgoMSA8PCBqKSAmIHNjLT5waHltYXNrKSA9PSAwKQpA QCAtOTAsMTAgKzkwLDEwIEBACiAJCSAqIG1lbWJlcnMgb2YgdmxhbiAxLgogCQkgKi8KIAkJdiA9 ICZzYy0+dmxhblswXTsKLQkJdi0+dmxhbmlkID0gMTsKLQkJLyogU2V0IFBWSUQgZm9yIGV2ZXJ5 b25lLiAqLworCQl2LT52bGFuaWQgPSAxIHwgRVRIRVJTV0lUQ0hfVklEX1ZBTElEOworCQkvKiBT ZXQgUFZJRCB0byAxIGZvciBldmVyeW9uZS4gKi8KIAkJZm9yIChpID0gMDsgaSA8IHNjLT5udW1w b3J0czsgaSsrKQotCQkJc2MtPnB2aWRbaV0gPSB2LT52bGFuaWQ7CisJCQlzYy0+cHZpZFtpXSA9 IDE7CiAJCWZvciAoaSA9IDA7IGkgPCBNSUlfTlBIWTsgaSsrKSB7CiAJCQlpZiAoKHNjLT5waHlt YXNrICYgKDEgPDwgaSkpID09IDApCiAJCQkJY29udGludWU7CkBAIC0xNDgsMTEgKzE0OCwyOSBA QAogCQlyZXR1cm4gKEVJTlZBTCk7CiAKIAkvKiBJUDE3NUMgZG9uJ3Qgc3VwcG9ydCBWTEFOIElE cyA+IDE1LiAqLwotCWlmIChJUDE3WF9JU19TV0lUQ0goc2MsIElQMTc1QykgJiYgdmctPmVzX3Zp ZCA+IElQMTc1Q19MQVNUX1ZMQU4pCisJaWYgKElQMTdYX0lTX1NXSVRDSChzYywgSVAxNzVDKSAm JgorCSAgICAodmctPmVzX3ZpZCAmIEVUSEVSU1dJVENIX1ZJRF9NQVNLKSA+IElQMTc1Q19MQVNU X1ZMQU4pCiAJCXJldHVybiAoRUlOVkFMKTsKIAogCS8qIFZsYW4gSUQuICovCi0Jc2MtPnZsYW5b dmctPmVzX3ZsYW5ncm91cF0udmxhbmlkID0gdmctPmVzX3ZpZDsKKwlpZiAoc2MtPnZsYW5fbW9k ZSA9PSBFVEhFUlNXSVRDSF9WTEFOX0RPVDFRKSB7CisJCWZvciAoaSA9IDA7IGkgPCBzYy0+aW5m by5lc19udmxhbmdyb3VwczsgaSsrKSB7CisJCQkvKiBJcyB0aGlzIFZsYW4gSUQgYWxyZWFkeSBz ZXQgaW4gYW5vdGhlciB2bGFuZ3JvdXAgPyAqLworCQkJaWYgKGkgIT0gdmctPmVzX3ZsYW5ncm91 cCAmJgorCQkJICAgIHNjLT52bGFuW2ldLnZsYW5pZCAmIEVUSEVSU1dJVENIX1ZJRF9WQUxJRCAm JgorCQkJICAgIChzYy0+dmxhbltpXS52bGFuaWQgJiBFVEhFUlNXSVRDSF9WSURfTUFTSykgPT0K KwkJCSAgICAodmctPmVzX3ZpZCAmIEVUSEVSU1dJVENIX1ZJRF9NQVNLKSkKKwkJCQlyZXR1cm4g KEVJTlZBTCk7CisJCX0KKwkJc2MtPnZsYW5bdmctPmVzX3ZsYW5ncm91cF0udmxhbmlkID0gdmct PmVzX3ZpZCAmCisJCSAgICBFVEhFUlNXSVRDSF9WSURfTUFTSzsKKwkJLyogU2V0dGluZyB0aGUg dmxhbmlkIHRvIHplcm8gZGlzYWJsZXMgdGhlIHZsYW5ncm91cC4gKi8KKwkJaWYgKHNjLT52bGFu W3ZnLT5lc192bGFuZ3JvdXBdLnZsYW5pZCA9PSAwKSB7CisJCQlzYy0+dmxhblt2Zy0+ZXNfdmxh bmdyb3VwXS5wb3J0cyA9IDA7CisJCQlyZXR1cm4gKHNjLT5oYWwuaXAxN3hfaHdfc2V0dXAoc2Mp KTsKKwkJfQorCQlzYy0+dmxhblt2Zy0+ZXNfdmxhbmdyb3VwXS52bGFuaWQgfD0gRVRIRVJTV0lU Q0hfVklEX1ZBTElEOworCX0KIAogCS8qIE1lbWJlciBQb3J0cy4gKi8KIAlzYy0+dmxhblt2Zy0+ ZXNfdmxhbmdyb3VwXS5wb3J0cyA9IDA7Cg== --001a11c25f8c14fa0604df0a1f5c Content-Type: application/octet-stream; name="003-rtl8366rb-vid-valid.diff" Content-Disposition: attachment; filename="003-rtl8366rb-vid-valid.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hhw0zcnr2 SW5kZXg6IGRldi9ldGhlcnN3aXRjaC9ydGw4MzY2L3J0bDgzNjZyYi5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGRldi9ldGhlcnN3aXRjaC9ydGw4MzY2L3J0bDgzNjZyYi5jCShyZXZpc2lvbiAyNTA5MDEpCisr KyBkZXYvZXRoZXJzd2l0Y2gvcnRsODM2Ni9ydGw4MzY2cmIuYwkod29ya2luZyBjb3B5KQpAQCAt NjE5LDcgKzYxOSw3IEBACiAJZm9yIChpPTA7IGk8MzsgaSsrKQogCQl2bWNyW2ldID0gcnRsX3Jl YWRyZWcoZGV2LCBSVEw4MzY2UkJfVk1DUihpLCB2Zy0+ZXNfdmxhbmdyb3VwKSk7CiAJCQotCXZn LT5lc192aWQgPSBSVEw4MzY2UkJfVk1DUl9WSUQodm1jcik7CisJdmctPmVzX3ZpZCA9IFJUTDgz NjZSQl9WTUNSX1ZJRCh2bWNyKSB8IEVUSEVSU1dJVENIX1ZJRF9WQUxJRDsKIAl2Zy0+ZXNfbWVt YmVyX3BvcnRzID0gUlRMODM2NlJCX1ZNQ1JfTUVNQkVSKHZtY3IpOwogCXZnLT5lc191bnRhZ2dl ZF9wb3J0cyA9IFJUTDgzNjZSQl9WTUNSX1VOVEFHKHZtY3IpOwogCXZnLT5lc19maWQgPSBSVEw4 MzY2UkJfVk1DUl9GSUQodm1jcik7Cg== --001a11c25f8c14fa0604df0a1f5c Content-Type: application/octet-stream; name="004-arswitch-vlans.diff" Content-Disposition: attachment; filename="004-arswitch-vlans.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hhw0zcop3 LS0tIGRldi9ldGhlcnN3aXRjaC9hcnN3aXRjaC9hcnN3aXRjaF92bGFucy5oLm9yaWcJMjAxMy0w Ni0xMiAxMDozNjozMC4wMDAwMDAwMDAgLTAzMDAKKysrIGRldi9ldGhlcnN3aXRjaC9hcnN3aXRj aC9hcnN3aXRjaF92bGFucy5oCTIwMTMtMDUtMjUgMTc6MzQ6NTAuMDAwMDAwMDAwIC0wMzAwCkBA IC0wLDAgKzEsMzggQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDEzIEx1aXogT3RhdmlvIE8g U291emEuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiBTdGVmYW4gQmV0aGtlLgorICogQWxs IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0 aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90 aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ REVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkg RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5P IEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9S IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S IENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBP RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhP V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD T05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBP RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisg KiBTVUNIIERBTUFHRS4KKyAqCisgKiAkRnJlZUJTRCQKKyAqLworI2lmbmRlZglfX0FSU1dJVENI X1ZMQU5TX0hfXworI2RlZmluZQlfX0FSU1dJVENIX1ZMQU5TX0hfXworCit2b2lkIGFyc3dpdGNo X3Jlc2V0X3ZsYW5zKHN0cnVjdCBhcnN3aXRjaF9zb2Z0YyAqKTsKK2ludCBhcnN3aXRjaF9nZXR2 Z3JvdXAoZGV2aWNlX3QsIGV0aGVyc3dpdGNoX3ZsYW5ncm91cF90ICopOworaW50IGFyc3dpdGNo X3NldHZncm91cChkZXZpY2VfdCwgZXRoZXJzd2l0Y2hfdmxhbmdyb3VwX3QgKik7CitpbnQgYXJz d2l0Y2hfZ2V0X3B2aWQoc3RydWN0IGFyc3dpdGNoX3NvZnRjICosIGludCwgaW50ICopOworaW50 IGFyc3dpdGNoX3NldF9wdmlkKHN0cnVjdCBhcnN3aXRjaF9zb2Z0YyAqLCBpbnQsIGludCk7CisK KyNlbmRpZgkvKiBfX0FSU1dJVENIX1ZMQU5TX0hfXyAqLwotLS0gZGV2L2V0aGVyc3dpdGNoL2Fy c3dpdGNoL2Fyc3dpdGNoX3ZsYW5zLmMub3JpZwkyMDEzLTA2LTEyIDEwOjM2OjMwLjAwMDAwMDAw MCAtMDMwMAorKysgZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNoX3ZsYW5zLmMJMjAx My0wNi0xMCAxMjoxNjoyMy44MjMxMDMzOTggLTAzMDAKQEAgLTAsMCArMSwzNzUgQEAKKy8qLQor ICogQ29weXJpZ2h0IChjKSAyMDEzIEx1aXogT3RhdmlvIE8gU291emEuCisgKiBDb3B5cmlnaHQg KGMpIDIwMTEtMjAxMiBTdGVmYW4gQmV0aGtlLgorICogQ29weXJpZ2h0IChjKSAyMDEyIEFkcmlh biBDaGFkZC4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5 cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJ UycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJ U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBC RSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJV VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1Ig U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF UlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJ TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICog T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ T1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogJEZyZWVCU0QkCisgKi8KKwor I2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9idXMuaD4KKyNpbmNsdWRlIDxz eXMvZXJybm8uaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL3N5c3Rt Lmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorCisjaW5jbHVkZSA8bmV0L2lmLmg+CisKKyNp bmNsdWRlIDxkZXYvbWlpL21paS5oPgorCisjaW5jbHVkZSA8ZGV2L2V0aGVyc3dpdGNoL2V0aGVy c3dpdGNoLmg+CisjaW5jbHVkZSA8ZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNocmVn Lmg+CisjaW5jbHVkZSA8ZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNodmFyLmg+Cisj aW5jbHVkZSA8ZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNoX3JlZy5oPgorI2luY2x1 ZGUgPGRldi9ldGhlcnN3aXRjaC9hcnN3aXRjaC9hcnN3aXRjaF92bGFucy5oPgorCisjaW5jbHVk ZSAibWRpb19pZi5oIgorI2luY2x1ZGUgIm1paWJ1c19pZi5oIgorI2luY2x1ZGUgImV0aGVyc3dp dGNoX2lmLmgiCisKK3N0YXRpYyBpbnQKK2Fyc3dpdGNoX3ZsYW5fb3Aoc3RydWN0IGFyc3dpdGNo X3NvZnRjICpzYywgdWludDMyX3Qgb3AsIHVpbnQzMl90IHZpZCwKKwl1aW50MzJfdCBkYXRhKQor eworCWludCBlcnI7CisKKwlpZiAoYXJzd2l0Y2hfd2FpdHJlZyhzYy0+c2NfZGV2LCBBUjhYMTZf UkVHX1ZMQU5fQ1RSTCwKKwkgICAgQVI4WDE2X1ZMQU5fQUNUSVZFLCAwLCA1KSkKKwkJcmV0dXJu IChFQlVTWSk7CisKKwkvKiBMb2FkIHRoZSB2bGFuIGRhdGEgaWYgbmVlZGVkLiAqLworCWlmIChv cCA9PSBBUjhYMTZfVkxBTl9PUF9MT0FEKSB7CisJCWVyciA9IGFyc3dpdGNoX3dyaXRlcmVnKHNj LT5zY19kZXYsIEFSOFgxNl9SRUdfVkxBTl9EQVRBLAorCQkgICAgKGRhdGEgJiBBUjhYMTZfVkxB Tl9NRU1CRVIpIHwgQVI4WDE2X1ZMQU5fVkFMSUQpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIChl cnIpOworCX0KKworCWlmICh2aWQgIT0gMCkKKwkJb3AgfD0gKCh2aWQgJiBFVEhFUlNXSVRDSF9W SURfTUFTSykgPDwgQVI4WDE2X1ZMQU5fVklEX1NISUZUKTsKKwlvcCB8PSBBUjhYMTZfVkxBTl9B Q1RJVkU7CisJYXJzd2l0Y2hfd3JpdGVyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JFR19WTEFOX0NU UkwsIG9wKTsKKworCS8qIFdhaXQgZm9yIGNvbW1hbmQgcHJvY2Vzc2luZy4gKi8KKwlpZiAoYXJz d2l0Y2hfd2FpdHJlZyhzYy0+c2NfZGV2LCBBUjhYMTZfUkVHX1ZMQU5fQ1RSTCwKKwkgICAgQVI4 WDE2X1ZMQU5fQUNUSVZFLCAwLCA1KSkKKwkJcmV0dXJuIChFQlVTWSk7CisKKwlyZXR1cm4gKDAp OworfQorCitzdGF0aWMgaW50CithcnN3aXRjaF9mbHVzaF9kb3QxcV92bGFuKHN0cnVjdCBhcnN3 aXRjaF9zb2Z0YyAqc2MpCit7CisKKwlBUlNXSVRDSF9MT0NLX0FTU0VSVChzYywgTUFfT1dORUQp OworCXJldHVybiAoYXJzd2l0Y2hfdmxhbl9vcChzYywgQVI4WDE2X1ZMQU5fT1BfRkxVU0gsIDAs IDApKTsKK30KKworc3RhdGljIGludAorYXJzd2l0Y2hfcHVyZ2VfZG90MXFfdmxhbihzdHJ1Y3Qg YXJzd2l0Y2hfc29mdGMgKnNjLCBpbnQgdmlkKQoreworCisJQVJTV0lUQ0hfTE9DS19BU1NFUlQo c2MsIE1BX09XTkVEKTsKKwlyZXR1cm4gKGFyc3dpdGNoX3ZsYW5fb3Aoc2MsIEFSOFgxNl9WTEFO X09QX1BVUkdFLCB2aWQsIDApKTsKK30KKworc3RhdGljIGludAorYXJzd2l0Y2hfZ2V0X2RvdDFx X3ZsYW4oc3RydWN0IGFyc3dpdGNoX3NvZnRjICpzYywgdWludDMyX3QgKnBvcnRzLCBpbnQgdmlk KQoreworCXVpbnQzMl90IHJlZzsKKwlpbnQgZXJyOworCisJQVJTV0lUQ0hfTE9DS19BU1NFUlQo c2MsIE1BX09XTkVEKTsKKwllcnIgPSBhcnN3aXRjaF92bGFuX29wKHNjLCBBUjhYMTZfVkxBTl9P UF9HRVQsIHZpZCwgMCk7CisJaWYgKGVycikKKwkJcmV0dXJuIChlcnIpOworCisJcmVnID0gYXJz d2l0Y2hfcmVhZHJlZyhzYy0+c2NfZGV2LCBBUjhYMTZfUkVHX1ZMQU5fREFUQSk7CisJaWYgKChy ZWcgJiBBUjhYMTZfVkxBTl9WQUxJRCkgPT0gMCkgeworCQkqcG9ydHMgPSAwOworCQlyZXR1cm4g KEVJTlZBTCk7CisJfQorCXJlZyAmPSAoKDEgPDwgKHNjLT5udW1waHlzICsgMSkpIC0gMSk7CisJ KnBvcnRzID0gcmVnOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK2Fyc3dpdGNoX3Nl dF9kb3QxcV92bGFuKHN0cnVjdCBhcnN3aXRjaF9zb2Z0YyAqc2MsIHVpbnQzMl90IHBvcnRzLCBp bnQgdmlkKQoreworCWludCBlcnI7CisKKwlBUlNXSVRDSF9MT0NLX0FTU0VSVChzYywgTUFfT1dO RUQpOworCWVyciA9IGFyc3dpdGNoX3ZsYW5fb3Aoc2MsIEFSOFgxNl9WTEFOX09QX0xPQUQsIHZp ZCwgcG9ydHMpOworCWlmIChlcnIpCisJCXJldHVybiAoZXJyKTsKKwlyZXR1cm4gKDApOworfQor CitzdGF0aWMgaW50CithcnN3aXRjaF9nZXRfcG9ydF92bGFuKHN0cnVjdCBhcnN3aXRjaF9zb2Z0 YyAqc2MsIHVpbnQzMl90ICpwb3J0cywgaW50IHZpZCkKK3sKKwlpbnQgcG9ydDsKKwl1aW50MzJf dCByZWc7CisKKwlBUlNXSVRDSF9MT0NLX0FTU0VSVChzYywgTUFfT1dORUQpOworCS8qIEZvciBw b3J0IGJhc2VkIHZsYW5zIHRoZSB2bGFuaWQgaXMgdGhlIHNhbWUgYXMgdGhlIHBvcnQgaW5kZXgu ICovCisJcG9ydCA9IHZpZCAmIEVUSEVSU1dJVENIX1ZJRF9NQVNLOworCXJlZyA9IGFyc3dpdGNo X3JlYWRyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JFR19QT1JUX1ZMQU4ocG9ydCkpOworCSpwb3J0 cyA9IChyZWcgPj4gQVI4WDE2X1BPUlRfVkxBTl9ERVNUX1BPUlRTX1NISUZUKTsKKwkqcG9ydHMg Jj0gQVI4WDE2X1ZMQU5fTUVNQkVSOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK2Fy c3dpdGNoX3NldF9wb3J0X3ZsYW4oc3RydWN0IGFyc3dpdGNoX3NvZnRjICpzYywgdWludDMyX3Qg cG9ydHMsIGludCB2aWQpCit7CisJaW50IGVyciwgcG9ydDsKKworCUFSU1dJVENIX0xPQ0tfQVNT RVJUKHNjLCBNQV9PV05FRCk7CisJLyogRm9yIHBvcnQgYmFzZWQgdmxhbnMgdGhlIHZsYW5pZCBp cyB0aGUgc2FtZSBhcyB0aGUgcG9ydCBpbmRleC4gKi8KKwlwb3J0ID0gdmlkICYgRVRIRVJTV0lU Q0hfVklEX01BU0s7CisJZXJyID0gYXJzd2l0Y2hfbW9kaWZ5cmVnKHNjLT5zY19kZXYsIEFSOFgx Nl9SRUdfUE9SVF9WTEFOKHBvcnQpLAorCSAgICBBUjhYMTZfVkxBTl9NRU1CRVIgPDwgQVI4WDE2 X1BPUlRfVkxBTl9ERVNUX1BPUlRTX1NISUZULAorCSAgICAocG9ydHMgJiBBUjhYMTZfVkxBTl9N RU1CRVIpIDw8IEFSOFgxNl9QT1JUX1ZMQU5fREVTVF9QT1JUU19TSElGVCk7CisJaWYgKGVycikK KwkJcmV0dXJuIChlcnIpOworCXJldHVybiAoMCk7Cit9CisKKy8qCisgKiBSZXNldCB2bGFucyB0 byBkZWZhdWx0IHN0YXRlLgorICovCit2b2lkCithcnN3aXRjaF9yZXNldF92bGFucyhzdHJ1Y3Qg YXJzd2l0Y2hfc29mdGMgKnNjKQoreworCXVpbnQzMl90IHBvcnRzOworCWludCBpLCBqOworCisJ QVJTV0lUQ0hfTE9DS19BU1NFUlQoc2MsIE1BX05PVE9XTkVEKTsKKworCUFSU1dJVENIX0xPQ0so c2MpOworCisJLyogUmVzZXQgYWxsIHZsYW4gZGF0YS4gKi8KKwltZW1zZXQoc2MtPnZpZCwgMCwg c2l6ZW9mKHNjLT52aWQpKTsKKworCS8qIERpc2FibGUgdGhlIFFpblEgYW5kIGVncmVzcyBmaWx0 ZXJzIGZvciBhbGwgcG9ydHMuICovCisJZm9yIChpID0gMDsgaSA8PSBzYy0+bnVtcGh5czsgaSsr KSB7CisJCWlmIChhcnN3aXRjaF9tb2RpZnlyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JFR19QT1JU X0NUUkwoaSksCisJCSAgICAweDMgPDwgQVI4WDE2X1BPUlRfQ1RSTF9FR1JFU1NfVkxBTl9NT0RF X1NISUZUIHwKKwkJICAgIEFSOFgxNl9QT1JUX0NUUkxfRE9VQkxFX1RBRywgMCkpIHsKKwkJCUFS U1dJVENIX1VOTE9DSyhzYyk7CisJCQlyZXR1cm47CisJCX0KKwl9CisKKwlpZiAoYXJzd2l0Y2hf Zmx1c2hfZG90MXFfdmxhbihzYykpIHsKKwkJQVJTV0lUQ0hfVU5MT0NLKHNjKTsKKwkJcmV0dXJu OworCX0KKworCWlmIChzYy0+dmxhbl9tb2RlID09IEVUSEVSU1dJVENIX1ZMQU5fRE9UMVEpIHsK KwkJLyoKKwkJICogUmVzZXQgdGhlIHBvcnQgYmFzZWQgdmxhbiBzZXR0aW5ncyBhbmQgdHVybiBv biB0aGUKKwkJICogaW5ncmVzcyBmaWx0ZXIgZm9yIGFsbCBwb3J0cy4KKwkJICovCisJCXBvcnRz ID0gMDsKKwkJZm9yIChpID0gMDsgaSA8PSBzYy0+bnVtcGh5czsgaSsrKQorCQkJYXJzd2l0Y2hf bW9kaWZ5cmVnKHNjLT5zY19kZXYsCisJCQkgICAgQVI4WDE2X1JFR19QT1JUX1ZMQU4oaSksCisJ CQkgICAgQVI4WDE2X1BPUlRfVkxBTl9NT0RFX01BU0sgfAorCQkJICAgIEFSOFgxNl9WTEFOX01F TUJFUiA8PAorCQkJICAgIEFSOFgxNl9QT1JUX1ZMQU5fREVTVF9QT1JUU19TSElGVCwKKwkJCSAg ICBBUjhYMTZfUE9SVF9WTEFOX01PREVfU0VDVVJFIDw8CisJCQkgICAgQVI4WDE2X1BPUlRfVkxB Tl9NT0RFX1NISUZUKTsKKworCQkvKgorCQkgKiBTZXR1cCB2bGFuIDEgYXMgUFZJRCBmb3IgYWxs IHN3aXRjaCBwb3J0cy4gIEFkZCBhbGwgcG9ydHMKKwkJICogYXMgbWVtYmVycyBvZiB2bGFuIDEu CisJCSAqLworCQlzYy0+dmlkWzBdID0gMTsKKwkJLyogU2V0IFBWSUQgZm9yIGV2ZXJ5b25lLiAq LworCQlmb3IgKGkgPSAwOyBpIDw9IHNjLT5udW1waHlzOyBpKyspCisJCQlhcnN3aXRjaF9zZXRf cHZpZChzYywgaSwgc2MtPnZpZFswXSk7CisJCXBvcnRzID0gMDsKKwkJZm9yIChpID0gMDsgaSA8 PSBzYy0+bnVtcGh5czsgaSsrKQorCQkJcG9ydHMgfD0gKDEgPDwgaSk7CisJCWFyc3dpdGNoX3Nl dF9kb3QxcV92bGFuKHNjLCBwb3J0cywgc2MtPnZpZFswXSk7CisJCXNjLT52aWRbMF0gfD0gRVRI RVJTV0lUQ0hfVklEX1ZBTElEOworCX0gZWxzZSBpZiAoc2MtPnZsYW5fbW9kZSA9PSBFVEhFUlNX SVRDSF9WTEFOX1BPUlQpIHsKKwkJLyogSW5pdGlhbGl6ZSB0aGUgcG9ydCBiYXNlZCB2bGFucy4g Ki8KKwkJZm9yIChpID0gMDsgaSA8PSBzYy0+bnVtcGh5czsgaSsrKSB7CisJCQlzYy0+dmlkW2ld ID0gaSB8IEVUSEVSU1dJVENIX1ZJRF9WQUxJRDsKKwkJCXBvcnRzID0gMDsKKwkJCWZvciAoaiA9 IDA7IGogPD0gc2MtPm51bXBoeXM7IGorKykKKwkJCQlwb3J0cyB8PSAoMSA8PCBqKTsKKwkJCWFy c3dpdGNoX21vZGlmeXJlZyhzYy0+c2NfZGV2LAorCQkJICAgIEFSOFgxNl9SRUdfUE9SVF9WTEFO KGkpLAorCQkJICAgIEFSOFgxNl9QT1JUX1ZMQU5fTU9ERV9NQVNLIHwKKwkJCSAgICBBUjhYMTZf VkxBTl9NRU1CRVIgPDwKKwkJCSAgICBBUjhYMTZfUE9SVF9WTEFOX0RFU1RfUE9SVFNfU0hJRlQs CisJCQkgICAgcG9ydHMgPDwgQVI4WDE2X1BPUlRfVkxBTl9ERVNUX1BPUlRTX1NISUZUIHwKKwkJ CSAgICBBUjhYMTZfUE9SVF9WTEFOX01PREVfU0VDVVJFIDw8CisJCQkgICAgQVI4WDE2X1BPUlRf VkxBTl9NT0RFX1BPUlRfT05MWSk7CisJCX0KKwl9IGVsc2UgeworCQkvKiBEaXNhYmxlIHRoZSBp bmdyZXNzIGZpbHRlciBhbmQgZ2V0IGV2ZXJ5b25lIG9uIGFsbCB2bGFucy4gKi8KKwkJZm9yIChp ID0gMDsgaSA8PSBzYy0+bnVtcGh5czsgaSsrKQorCQkJYXJzd2l0Y2hfbW9kaWZ5cmVnKHNjLT5z Y19kZXYsCisJCQkgICAgQVI4WDE2X1JFR19QT1JUX1ZMQU4oaSksCisJCQkgICAgQVI4WDE2X1BP UlRfVkxBTl9NT0RFX01BU0sgfAorCQkJICAgIEFSOFgxNl9WTEFOX01FTUJFUiA8PAorCQkJICAg IEFSOFgxNl9QT1JUX1ZMQU5fREVTVF9QT1JUU19TSElGVCwKKwkJCSAgICBBUjhYMTZfVkxBTl9N RU1CRVIgPDwKKwkJCSAgICBBUjhYMTZfUE9SVF9WTEFOX0RFU1RfUE9SVFNfU0hJRlQgfAorCQkJ ICAgIEFSOFgxNl9QT1JUX1ZMQU5fTU9ERV9TRUNVUkUgPDwKKwkJCSAgICBBUjhYMTZfUE9SVF9W TEFOX01PREVfUE9SVF9PTkxZKTsKKwl9CisJQVJTV0lUQ0hfVU5MT0NLKHNjKTsKK30KKworaW50 CithcnN3aXRjaF9nZXR2Z3JvdXAoZGV2aWNlX3QgZGV2LCBldGhlcnN3aXRjaF92bGFuZ3JvdXBf dCAqdmcpCit7CisJc3RydWN0IGFyc3dpdGNoX3NvZnRjICpzYzsKKwlpbnQgZXJyOworCisJc2Mg PSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJQVJTV0lUQ0hfTE9DS19BU1NFUlQoc2MsIE1BX05P VE9XTkVEKTsKKworCWlmICh2Zy0+ZXNfdmxhbmdyb3VwID4gc2MtPmluZm8uZXNfbnZsYW5ncm91 cHMpCisJCXJldHVybiAoRUlOVkFMKTsKKworCS8qIFJlc2V0IHRoZSBtZW1iZXJzIHBvcnRzLiAq LworCXZnLT5lc191bnRhZ2dlZF9wb3J0cyA9IDA7CisJdmctPmVzX21lbWJlcl9wb3J0cyA9IDA7 CisKKwkvKiBOb3Qgc3VwcG9ydGVkLiAqLworCXZnLT5lc19maWQgPSAwOworCisJLyogVmxhbiBJ RC4gKi8KKwlBUlNXSVRDSF9MT0NLKHNjKTsKKwl2Zy0+ZXNfdmlkID0gc2MtPnZpZFt2Zy0+ZXNf dmxhbmdyb3VwXTsKKwlpZiAoKHZnLT5lc192aWQgJiBFVEhFUlNXSVRDSF9WSURfVkFMSUQpID09 IDApIHsKKwkJQVJTV0lUQ0hfVU5MT0NLKHNjKTsKKwkJcmV0dXJuICgwKTsKKwl9CisKKwkvKiBN ZW1iZXIgUG9ydHMuICovCisJc3dpdGNoIChzYy0+dmxhbl9tb2RlKSB7CisJY2FzZSBFVEhFUlNX SVRDSF9WTEFOX0RPVDFROgorCQllcnIgPSBhcnN3aXRjaF9nZXRfZG90MXFfdmxhbihzYywgJnZn LT5lc19tZW1iZXJfcG9ydHMsCisJCSAgICB2Zy0+ZXNfdmlkKTsKKwkJYnJlYWs7CisJY2FzZSBF VEhFUlNXSVRDSF9WTEFOX1BPUlQ6CisJCWVyciA9IGFyc3dpdGNoX2dldF9wb3J0X3ZsYW4oc2Ms ICZ2Zy0+ZXNfbWVtYmVyX3BvcnRzLAorCQkgICAgdmctPmVzX3ZpZCk7CisJCWJyZWFrOworCWRl ZmF1bHQ6CisJCXZnLT5lc19tZW1iZXJfcG9ydHMgPSAwOworCQllcnIgPSAtMTsKKwl9CisJQVJT V0lUQ0hfVU5MT0NLKHNjKTsKKwl2Zy0+ZXNfdW50YWdnZWRfcG9ydHMgPSB2Zy0+ZXNfbWVtYmVy X3BvcnRzOworCXJldHVybiAoZXJyKTsKK30KKworaW50CithcnN3aXRjaF9zZXR2Z3JvdXAoZGV2 aWNlX3QgZGV2LCBldGhlcnN3aXRjaF92bGFuZ3JvdXBfdCAqdmcpCit7CisJc3RydWN0IGFyc3dp dGNoX3NvZnRjICpzYzsKKwlpbnQgZXJyLCB2aWQ7CisKKwlzYyA9IGRldmljZV9nZXRfc29mdGMo ZGV2KTsKKwlBUlNXSVRDSF9MT0NLX0FTU0VSVChzYywgTUFfTk9UT1dORUQpOworCisJLyogQ2hl Y2sgVkxBTiBtb2RlLiAqLworCWlmIChzYy0+dmxhbl9tb2RlID09IDApCisJCXJldHVybiAoRUlO VkFMKTsKKworCS8qCisJICogQ2hlY2sgaWYgd2UgYXJlIGNoYW5naW5nIHRoZSB2bGFuaWQgZm9y IGFuIGFscmVhZHkgdXNlZCB2dHUgZW50cnkuCisJICogVGhlbiBwdXJnZSB0aGUgZW50cnkgZmly c3QuCisJICovCisJQVJTV0lUQ0hfTE9DSyhzYyk7CisJdmlkID0gc2MtPnZpZFt2Zy0+ZXNfdmxh bmdyb3VwXTsKKwlpZiAoc2MtPnZsYW5fbW9kZSA9PSBFVEhFUlNXSVRDSF9WTEFOX0RPVDFRICYm CisJICAgICh2aWQgJiBFVEhFUlNXSVRDSF9WSURfVkFMSUQpICE9IDAgJiYKKwkgICAgKHZpZCAm IEVUSEVSU1dJVENIX1ZJRF9NQVNLKSAhPQorCSAgICAodmctPmVzX3ZpZCAmIEVUSEVSU1dJVENI X1ZJRF9NQVNLKSkgeworCQllcnIgPSBhcnN3aXRjaF9wdXJnZV9kb3QxcV92bGFuKHNjLCB2aWQp OworCQlpZiAoZXJyKSB7CisJCQlBUlNXSVRDSF9VTkxPQ0soc2MpOworCQkJcmV0dXJuIChlcnIp OworCQl9CisJfQorCisJLyogVmxhbiBJRC4gKi8KKwlpZiAoc2MtPnZsYW5fbW9kZSA9PSBFVEhF UlNXSVRDSF9WTEFOX0RPVDFRKSB7CisJCXNjLT52aWRbdmctPmVzX3ZsYW5ncm91cF0gPSB2Zy0+ ZXNfdmlkICYgRVRIRVJTV0lUQ0hfVklEX01BU0s7CisJCS8qIFNldHRpbmcgdGhlIHZsYW5pZCB0 byB6ZXJvIGRpc2FibGVzIHRoZSB2bGFuZ3JvdXAuICovCisJCWlmIChzYy0+dmlkW3ZnLT5lc192 bGFuZ3JvdXBdID09IDApIHsKKwkJCUFSU1dJVENIX1VOTE9DSyhzYyk7CisJCQlyZXR1cm4gKDAp OworCQl9CisJCXNjLT52aWRbdmctPmVzX3ZsYW5ncm91cF0gfD0gRVRIRVJTV0lUQ0hfVklEX1ZB TElEOworCQl2aWQgPSBzYy0+dmlkW3ZnLT5lc192bGFuZ3JvdXBdOworCX0KKworCS8qIE1lbWJl ciBQb3J0cy4gKi8KKwlzd2l0Y2ggKHNjLT52bGFuX21vZGUpIHsKKwljYXNlIEVUSEVSU1dJVENI X1ZMQU5fRE9UMVE6CisJCWVyciA9IGFyc3dpdGNoX3NldF9kb3QxcV92bGFuKHNjLCB2Zy0+ZXNf bWVtYmVyX3BvcnRzLCB2aWQpOworCQlicmVhazsKKwljYXNlIEVUSEVSU1dJVENIX1ZMQU5fUE9S VDoKKwkJZXJyID0gYXJzd2l0Y2hfc2V0X3BvcnRfdmxhbihzYywgdmctPmVzX21lbWJlcl9wb3J0 cywgdmlkKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZXJyID0gLTE7CisJfQorCUFSU1dJVENI X1VOTE9DSyhzYyk7CisJcmV0dXJuIChlcnIpOworfQorCitpbnQKK2Fyc3dpdGNoX2dldF9wdmlk KHN0cnVjdCBhcnN3aXRjaF9zb2Z0YyAqc2MsIGludCBwb3J0LCBpbnQgKnB2aWQpCit7CisJdWlu dDMyX3QgcmVnOworCisJQVJTV0lUQ0hfTE9DS19BU1NFUlQoc2MsIE1BX09XTkVEKTsKKwlyZWcg PSBhcnN3aXRjaF9yZWFkcmVnKHNjLT5zY19kZXYsIEFSOFgxNl9SRUdfUE9SVF9WTEFOKHBvcnQp KTsKKwkqcHZpZCA9IHJlZyAmIDB4ZmZmOworCXJldHVybiAoMCk7Cit9CisKK2ludAorYXJzd2l0 Y2hfc2V0X3B2aWQoc3RydWN0IGFyc3dpdGNoX3NvZnRjICpzYywgaW50IHBvcnQsIGludCBwdmlk KQoreworCisJQVJTV0lUQ0hfTE9DS19BU1NFUlQoc2MsIE1BX09XTkVEKTsKKwlyZXR1cm4gKGFy c3dpdGNoX21vZGlmeXJlZyhzYy0+c2NfZGV2LAorCSAgICBBUjhYMTZfUkVHX1BPUlRfVkxBTihw b3J0KSwgMHhmZmYsIHB2aWQpKTsKK30KSW5kZXg6IGRldi9ldGhlcnN3aXRjaC9hcnN3aXRjaC9h cnN3aXRjaC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIGRldi9ldGhlcnN3aXRjaC9hcnN3aXRjaC9hcnN3aXRj aC5jCShyZXZpc2lvbiAyNTA5MDEpCisrKyBkZXYvZXRoZXJzd2l0Y2gvYXJzd2l0Y2gvYXJzd2l0 Y2guYwkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgPGRldi9ldGhl cnN3aXRjaC9hcnN3aXRjaC9hcnN3aXRjaHZhci5oPgogI2luY2x1ZGUgPGRldi9ldGhlcnN3aXRj aC9hcnN3aXRjaC9hcnN3aXRjaF9yZWcuaD4KICNpbmNsdWRlIDxkZXYvZXRoZXJzd2l0Y2gvYXJz d2l0Y2gvYXJzd2l0Y2hfcGh5Lmg+CisjaW5jbHVkZSA8ZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNo L2Fyc3dpdGNoX3ZsYW5zLmg+CiAKICNpbmNsdWRlIDxkZXYvZXRoZXJzd2l0Y2gvYXJzd2l0Y2gv YXJzd2l0Y2hfNzI0MC5oPgogI2luY2x1ZGUgPGRldi9ldGhlcnN3aXRjaC9hcnN3aXRjaC9hcnN3 aXRjaF84MjE2Lmg+CkBAIC0xNjIsNiArMTYzLDc0IEBACiB9CiAKIHN0YXRpYyBpbnQKK2Fyc3dp dGNoX3Jlc2V0KGRldmljZV90IGRldikKK3sKKworCWFyc3dpdGNoX3dyaXRlcmVnKGRldiwgQVI4 WDE2X1JFR19NQVNLX0NUUkwsCisJICAgIEFSOFgxNl9NQVNLX0NUUkxfU09GVF9SRVNFVCk7CisJ REVMQVkoMTAwMCk7CisJaWYgKGFyc3dpdGNoX3JlYWRyZWcoZGV2LCBBUjhYMTZfUkVHX01BU0tf Q1RSTCkgJgorCSAgICBBUjhYMTZfTUFTS19DVFJMX1NPRlRfUkVTRVQpIHsKKwkJZGV2aWNlX3By aW50ZihkZXYsICJ1bmFibGUgdG8gcmVzZXQgc3dpdGNoXG4iKTsKKwkJcmV0dXJuICgtMSk7CisJ fQorCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK2Fyc3dpdGNoX3NldF92bGFuX21vZGUo c3RydWN0IGFyc3dpdGNoX3NvZnRjICpzYywgdWludDMyX3QgbW9kZSkKK3sKKworCS8qIENoZWNr IGZvciBpbnZhbGlkIG1vZGVzLiAqLworCWlmICgobW9kZSAmIHNjLT5pbmZvLmVzX3ZsYW5fY2Fw cykgIT0gbW9kZSkKKwkJcmV0dXJuIChFSU5WQUwpOworCisJc3dpdGNoIChtb2RlKSB7CisJY2Fz ZSBFVEhFUlNXSVRDSF9WTEFOX0RPVDFROgorCQlzYy0+dmxhbl9tb2RlID0gRVRIRVJTV0lUQ0hf VkxBTl9ET1QxUTsKKwkJYnJlYWs7CisJY2FzZSBFVEhFUlNXSVRDSF9WTEFOX1BPUlQ6CisJCXNj LT52bGFuX21vZGUgPSBFVEhFUlNXSVRDSF9WTEFOX1BPUlQ7CisJCWJyZWFrOworCWRlZmF1bHQ6 CisJCXNjLT52bGFuX21vZGUgPSAwOworCX07CisKKwkvKiBSZXNldCBWTEFOcy4gKi8KKwlhcnN3 aXRjaF9yZXNldF92bGFucyhzYyk7CisKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgdm9pZAor YXJzd2l0Y2hfcG9ydHNfaW5pdChzdHJ1Y3QgYXJzd2l0Y2hfc29mdGMgKnNjKQoreworCWludCBw b3J0OworCisJLyogUG9ydDAgLSBDUFUgKi8KKwlhcnN3aXRjaF93cml0ZXJlZyhzYy0+c2NfZGV2 LCBBUjhYMTZfUkVHX1BPUlRfU1RTKDApLAorCSAgICAoQVI4WDE2X0lTX1NXSVRDSChzYywgQVI4 MjE2KSA/CisJICAgIEFSOFgxNl9QT1JUX1NUU19TUEVFRF8xMDAgOiBBUjhYMTZfUE9SVF9TVFNf U1BFRURfMTAwMCkgfAorCSAgICAoQVI4WDE2X0lTX1NXSVRDSChzYywgQVI4MjE2KSA/IDAgOiBB UjhYMTZfUE9SVF9TVFNfUlhGTE9XKSB8CisJICAgIChBUjhYMTZfSVNfU1dJVENIKHNjLCBBUjgy MTYpID8gMCA6IEFSOFgxNl9QT1JUX1NUU19UWEZMT1cpIHwKKwkgICAgQVI4WDE2X1BPUlRfU1RT X1JYTUFDIHwKKwkgICAgQVI4WDE2X1BPUlRfU1RTX1RYTUFDIHwKKwkgICAgQVI4WDE2X1BPUlRf U1RTX0RVUExFWCk7CisJYXJzd2l0Y2hfd3JpdGVyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JFR19Q T1JUX0NUUkwoMCksCisJICAgIGFyc3dpdGNoX3JlYWRyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JF R19QT1JUX0NUUkwoMCkpICYKKwkgICAgfkFSOFgxNl9QT1JUX0NUUkxfSEVBREVSKTsKKworCWZv ciAocG9ydCA9IDE7IHBvcnQgPD0gc2MtPm51bXBoeXM7IHBvcnQrKykgeyAKKwkJLyogU2V0IHBv cnRzIHRvIGF1dG8gbmVnb3RpYXRpb24uICovCisJCWFyc3dpdGNoX3dyaXRlcmVnKHNjLT5zY19k ZXYsIEFSOFgxNl9SRUdfUE9SVF9TVFMocG9ydCksCisJCSAgICBBUjhYMTZfUE9SVF9TVFNfTElO S19BVVRPKTsKKwkJYXJzd2l0Y2hfd3JpdGVyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JFR19QT1JU X0NUUkwocG9ydCksCisJCSAgICBhcnN3aXRjaF9yZWFkcmVnKHNjLT5zY19kZXYsIEFSOFgxNl9S RUdfUE9SVF9DVFJMKHBvcnQpKSAmCisJCSAgICB+QVI4WDE2X1BPUlRfQ1RSTF9IRUFERVIpOwor CX0KK30KKworc3RhdGljIGludAogYXJzd2l0Y2hfYXR0YWNoKGRldmljZV90IGRldikKIHsKIAlz dHJ1Y3QgYXJzd2l0Y2hfc29mdGMgKnNjOwpAQCAtMTkwLDExICsyNTksOCBAQAogCWVsc2UKIAkJ cmV0dXJuIChFTlhJTyk7CiAKLQkvKgotCSAqIFhYWCB0aGVzZSB0d28gc2hvdWxkIGJlIHBhcnQg b2YgdGhlIHN3aXRjaCBhdHRhY2ggZnVuY3Rpb24KLQkgKi8KKwkvKiBDb21tb24gZGVmYXVsdHMu ICovCiAJc2MtPmluZm8uZXNfbnBvcnRzID0gNTsgLyogWFhYIHRlY2huaWNhbGx5IDYsIGJ1dCA2 dGggbm90IHVzZWQgKi8KLQlzYy0+aW5mby5lc19udmxhbmdyb3VwcyA9IDE2OwogCiAJLyogWFhY IERlZmF1bHRzIGZvciBleHRlcm5hbGx5IGNvbm5lY3RlZCBBUjgzMTYgKi8KIAlzYy0+bnVtcGh5 cyA9IDQ7CkBAIC0yMTEsMzQgKzI3NywyMCBAQAogCSh2b2lkKSByZXNvdXJjZV9pbnRfdmFsdWUo ZGV2aWNlX2dldF9uYW1lKGRldiksIGRldmljZV9nZXRfdW5pdChkZXYpLAogCSAgICAiaXNfZ21p aSIsICZzYy0+aXNfZ21paSk7CiAKLQkvKgotCSAqIFRoaXMgcmVxdWlyZXMgbXVjaCBtb3JlIHNl dHVwIGRlcGVuZGluZyB1cG9uIGVhY2ggY2hpcCwgaW5jbHVkaW5nOgotCSAqCi0JICogKyBQcm9w ZXIgcmVpbml0aWFsaXNhdGlvbiBvZiB0aGUgUEhZczsKLQkgKiArIEluaXRpYWxpc2luZyB0aGUg VkxBTiB0YWJsZTsKLQkgKiArIEluaXRpYWxpc2luZyB0aGUgcG9ydCBhY2Nlc3MgdGFibGUgYW5k IENQVSBmbG9vZC9icm9hZGNhc3QKLQkgKiAgIGNvbmZpZ3VyYXRpb247Ci0JICogKyBPdGhlciB0 aGluZ3MgSSBoYXZlbid0IHlldCB0aG91Z2h0IG9mLgotCSAqLwotI2lmZGVmIE5PVFlFVAotCWFy c3dpdGNoX3dyaXRlcmVnKGRldiwgQVI4WDE2X1JFR19NQVNLX0NUUkwsCi0JICAgIEFSOFgxNl9N QVNLX0NUUkxfU09GVF9SRVNFVCk7Ci0JREVMQVkoMTAwMCk7Ci0JaWYgKGFyc3dpdGNoX3JlYWRy ZWcoZGV2LCBBUjhYMTZfUkVHX01BU0tfQ1RSTCkgJgotCSAgICBBUjhYMTZfTUFTS19DVFJMX1NP RlRfUkVTRVQpIHsKLQkJZGV2aWNlX3ByaW50ZihkZXYsICJ1bmFibGUgdG8gcmVzZXQgc3dpdGNo XG4iKTsKKwlpZiAoc2MtPm51bXBoeXMgPiBBUjhYMTZfTlVNX1BIWVMpCisJCXNjLT5udW1waHlz ID0gQVI4WDE2X05VTV9QSFlTOworCisJLyogUmVzZXQgdGhlIHN3aXRjaC4gKi8KKwlpZiAoYXJz d2l0Y2hfcmVzZXQoZGV2KSkKIAkJcmV0dXJuIChFTlhJTyk7Ci0JfQotI2VuZGlmCiAKLQllcnIg PSBzYy0+aGFsLmFyc3dpdGNoX2h3X3NldHVwKHNjKTsKLQlpZiAoZXJyICE9IDApCi0JCXJldHVy biAoZXJyKTsKLQogCWVyciA9IHNjLT5oYWwuYXJzd2l0Y2hfaHdfZ2xvYmFsX3NldHVwKHNjKTsK IAlpZiAoZXJyICE9IDApCiAJCXJldHVybiAoZXJyKTsKIAorCS8qIEluaXRpYWxpemUgdGhlIHN3 aXRjaCBwb3J0cy4gKi8KKwlhcnN3aXRjaF9wb3J0c19pbml0KHNjKTsKKwogCS8qCiAJICogQXR0 YWNoIHRoZSBQSFlzIGFuZCBjb21wbGV0ZSB0aGUgYnVzIGVudW1lcmF0aW9uLgogCSAqLwpAQCAt MjQ2LDYgKzI5OCwxNSBAQAogCWlmIChlcnIgIT0gMCkKIAkJcmV0dXJuIChlcnIpOwogCisJLyog RGVmYXVsdCB0byBpbmdyZXNzIGZpbHRlcnMgb2ZmLiAqLworCWVyciA9IGFyc3dpdGNoX3NldF92 bGFuX21vZGUoc2MsIDApOworCWlmIChlcnIgIT0gMCkKKwkJcmV0dXJuIChlcnIpOworCisJZXJy ID0gc2MtPmhhbC5hcnN3aXRjaF9od19zZXR1cChzYyk7CisJaWYgKGVyciAhPSAwKQorCQlyZXR1 cm4gKGVycik7CisKIAlidXNfZ2VuZXJpY19wcm9iZShkZXYpOwogCWJ1c19lbnVtZXJhdGVfaGlu dGVkX2NoaWxkcmVuKGRldik7CiAJZXJyID0gYnVzX2dlbmVyaWNfYXR0YWNoKGRldik7CkBAIC00 MjgsMTkgKzQ4OSwzNyBAQAogc3RhdGljIGludAogYXJzd2l0Y2hfZ2V0cG9ydChkZXZpY2VfdCBk ZXYsIGV0aGVyc3dpdGNoX3BvcnRfdCAqcCkKIHsKLQlzdHJ1Y3QgYXJzd2l0Y2hfc29mdGMgKnNj ID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOworCXN0cnVjdCBhcnN3aXRjaF9zb2Z0YyAqc2M7CisJ c3RydWN0IGlmbWVkaWFyZXEgKmlmbXI7CiAJc3RydWN0IG1paV9kYXRhICptaWk7Ci0Jc3RydWN0 IGlmbWVkaWFyZXEgKmlmbXIgPSAmcC0+ZXNfaWZtcjsKKwl1aW50MzJfdCByZWc7CiAJaW50IGVy cjsKLQkKLQlpZiAocC0+ZXNfcG9ydCA8IDAgfHwgcC0+ZXNfcG9ydCA+PSBBUjhYMTZfTlVNX1BP UlRTKQorCisJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJaWYgKHAtPmVzX3BvcnQgPCAw IHx8IHAtPmVzX3BvcnQgPiBzYy0+bnVtcGh5cykKIAkJcmV0dXJuIChFTlhJTyk7Ci0JcC0+ZXNf cHZpZCA9IDA7CiAKKwlBUlNXSVRDSF9MT0NLKHNjKTsKKworCS8qIFJldHJpZXZlIHRoZSBQVklE LiAqLworCWFyc3dpdGNoX2dldF9wdmlkKHNjLCBwLT5lc19wb3J0LCAmcC0+ZXNfcHZpZCk7CisK KwkvKiBQb3J0IGZsYWdzLiAqLworCXJlZyA9IGFyc3dpdGNoX3JlYWRyZWcoc2MtPnNjX2Rldiwg QVI4WDE2X1JFR19QT1JUX0NUUkwocC0+ZXNfcG9ydCkpOworCWlmIChyZWcgJiBBUjhYMTZfUE9S VF9DVFJMX0RPVUJMRV9UQUcpCisJCXAtPmVzX2ZsYWdzIHw9IEVUSEVSU1dJVENIX1BPUlRfRE9V QkxFX1RBRzsKKwlyZWcgPj49IEFSOFgxNl9QT1JUX0NUUkxfRUdSRVNTX1ZMQU5fTU9ERV9TSElG VDsKKwlpZiAoKHJlZyAmIDB4MykgPT0gQVI4WDE2X1BPUlRfQ1RSTF9FR1JFU1NfVkxBTl9NT0RF X0FERCkKKwkJcC0+ZXNfZmxhZ3MgfD0gRVRIRVJTV0lUQ0hfUE9SVF9BRERUQUc7CisJaWYgKChy ZWcgJiAweDMpID09IEFSOFgxNl9QT1JUX0NUUkxfRUdSRVNTX1ZMQU5fTU9ERV9TVFJJUCkKKwkJ cC0+ZXNfZmxhZ3MgfD0gRVRIRVJTV0lUQ0hfUE9SVF9TVFJJUFRBRzsKKwlBUlNXSVRDSF9VTkxP Q0soc2MpOworCiAJbWlpID0gYXJzd2l0Y2hfbWlpZm9ycG9ydChzYywgcC0+ZXNfcG9ydCk7CiAJ aWYgKHAtPmVzX3BvcnQgPT0gMCkgewogCQkvKiBmaWxsIGluIGZpeGVkIHZhbHVlcyBmb3IgQ1BV IHBvcnQgKi8KIAkJcC0+ZXNfZmxhZ3MgfD0gRVRIRVJTV0lUQ0hfUE9SVF9DUFU7CisJCWlmbXIg PSAmcC0+ZXNfaWZtcjsKIAkJaWZtci0+aWZtX2NvdW50ID0gMDsKIAkJaWZtci0+aWZtX2N1cnJl bnQgPSBpZm1yLT5pZm1fYWN0aXZlID0KIAkJICAgIElGTV9FVEhFUiB8IElGTV8xMDAwX1QgfCBJ Rk1fRkRYOwpAQCAtNDU3LDMwICs1MzYsNTkgQEAKIAlyZXR1cm4gKDApOwogfQogCi0vKgotICog WFhYIGRvZXNuJ3QgeWV0IHdvcms/Ci0gKi8KIHN0YXRpYyBpbnQKIGFyc3dpdGNoX3NldHBvcnQo ZGV2aWNlX3QgZGV2LCBldGhlcnN3aXRjaF9wb3J0X3QgKnApCiB7CiAJaW50IGVycjsKKwl1aW50 MzJfdCByZWc7CiAJc3RydWN0IGFyc3dpdGNoX3NvZnRjICpzYzsKIAlzdHJ1Y3QgaWZtZWRpYSAq aWZtOwogCXN0cnVjdCBtaWlfZGF0YSAqbWlpOwogCXN0cnVjdCBpZm5ldCAqaWZwOwogCi0JLyoK LQkgKiBYWFggY2hlY2sgdGhlIHNjIG51bXBoeXMsIG9yIHRoZSAjZGVmaW5lID8KLQkgKi8KLQlp ZiAocC0+ZXNfcG9ydCA8IDAgfHwgcC0+ZXNfcG9ydCA+PSBBUjhYMTZfTlVNX1BIWVMpCisJc2Mg PSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJaWYgKHAtPmVzX3BvcnQgPCAwIHx8IHAtPmVzX3Bv cnQgPiBzYy0+bnVtcGh5cykKIAkJcmV0dXJuIChFTlhJTyk7CiAKLQlzYyA9IGRldmljZV9nZXRf c29mdGMoZGV2KTsKKwkvKiBQb3J0IGZsYWdzLiAqLworCWlmIChzYy0+dmxhbl9tb2RlID09IEVU SEVSU1dJVENIX1ZMQU5fRE9UMVEpIHsKIAotCS8qCi0JICogWFhYIFRPRE86IGRvbid0IHNldCB0 aGUgQ1BVIHBvcnQ/Ci0JICovCisJCUFSU1dJVENIX0xPQ0soc2MpOworCQkvKiBTZXQgdGhlIFBW SUQuICovCisJCWlmIChwLT5lc19wdmlkICE9IDApCisJCQlhcnN3aXRjaF9zZXRfcHZpZChzYywg cC0+ZXNfcG9ydCwgcC0+ZXNfcHZpZCk7CiAKKwkJLyogTXV0dWFsbHkgZXhjbHVzaXZlLiAqLwor CQlpZiAocC0+ZXNfZmxhZ3MgJiBFVEhFUlNXSVRDSF9QT1JUX0FERFRBRyAmJgorCQkgICAgcC0+ ZXNfZmxhZ3MgJiBFVEhFUlNXSVRDSF9QT1JUX1NUUklQVEFHKSB7CisJCQlBUlNXSVRDSF9VTkxP Q0soc2MpOworCQkJcmV0dXJuIChFSU5WQUwpOworCQl9CisKKwkJcmVnID0gMDsKKwkJaWYgKHAt PmVzX2ZsYWdzICYgRVRIRVJTV0lUQ0hfUE9SVF9ET1VCTEVfVEFHKQorCQkJcmVnIHw9IEFSOFgx Nl9QT1JUX0NUUkxfRE9VQkxFX1RBRzsKKwkJaWYgKHAtPmVzX2ZsYWdzICYgRVRIRVJTV0lUQ0hf UE9SVF9BRERUQUcpCisJCQlyZWcgfD0gQVI4WDE2X1BPUlRfQ1RSTF9FR1JFU1NfVkxBTl9NT0RF X0FERCA8PAorCQkJICAgIEFSOFgxNl9QT1JUX0NUUkxfRUdSRVNTX1ZMQU5fTU9ERV9TSElGVDsK KwkJaWYgKHAtPmVzX2ZsYWdzICYgRVRIRVJTV0lUQ0hfUE9SVF9TVFJJUFRBRykKKwkJCXJlZyB8 PSBBUjhYMTZfUE9SVF9DVFJMX0VHUkVTU19WTEFOX01PREVfU1RSSVAgPDwKKwkJCSAgICBBUjhY MTZfUE9SVF9DVFJMX0VHUkVTU19WTEFOX01PREVfU0hJRlQ7CisKKwkJZXJyID0gYXJzd2l0Y2hf bW9kaWZ5cmVnKHNjLT5zY19kZXYsCisJCSAgICBBUjhYMTZfUkVHX1BPUlRfQ1RSTChwLT5lc19w b3J0KSwKKwkJICAgIDB4MyA8PCBBUjhYMTZfUE9SVF9DVFJMX0VHUkVTU19WTEFOX01PREVfU0hJ RlQgfAorCQkgICAgQVI4WDE2X1BPUlRfQ1RSTF9ET1VCTEVfVEFHLCByZWcpOworCisJCUFSU1dJ VENIX1VOTE9DSyhzYyk7CisJCWlmIChlcnIpCisJCQlyZXR1cm4gKGVycik7CisgICAgICAgIH0K KworCS8qIERvIG5vdCBhbGxvdyBtZWRpYSBjaGFuZ2VzIG9uIENQVSBwb3J0LiAqLworCWlmIChw LT5lc19wb3J0ID09IEFSOFgxNl9QT1JUX0NQVSkKKwkJcmV0dXJuICgwKTsKKwogCW1paSA9IGFy c3dpdGNoX21paWZvcnBvcnQoc2MsIHAtPmVzX3BvcnQpOwogCWlmIChtaWkgPT0gTlVMTCkKIAkJ cmV0dXJuIChFTlhJTyk7CkBAIC00ODgsMzAgKzU5Niw5IEBACiAJaWZwID0gYXJzd2l0Y2hfaWZw Zm9ycG9ydChzYywgcC0+ZXNfcG9ydCk7CiAKIAlpZm0gPSAmbWlpLT5taWlfbWVkaWE7Ci0JZXJy ID0gaWZtZWRpYV9pb2N0bChpZnAsICZwLT5lc19pZnIsIGlmbSwgU0lPQ1NJRk1FRElBKTsKLQly ZXR1cm4gKGVycik7CisJcmV0dXJuIChpZm1lZGlhX2lvY3RsKGlmcCwgJnAtPmVzX2lmciwgaWZt LCBTSU9DU0lGTUVESUEpKTsKIH0KIAotc3RhdGljIGludAotYXJzd2l0Y2hfZ2V0dmdyb3VwKGRl dmljZV90IGRldiwgZXRoZXJzd2l0Y2hfdmxhbmdyb3VwX3QgKnZnKQotewotCi0JLyogWFhYIG5v dCBpbXBsZW1lbnRlZCB5ZXQgKi8KLQl2Zy0+ZXNfdmlkID0gMDsKLQl2Zy0+ZXNfbWVtYmVyX3Bv cnRzID0gMDsKLQl2Zy0+ZXNfdW50YWdnZWRfcG9ydHMgPSAwOwotCXZnLT5lc19maWQgPSAwOwot CXJldHVybiAoMCk7Ci19Ci0KLXN0YXRpYyBpbnQKLWFyc3dpdGNoX3NldHZncm91cChkZXZpY2Vf dCBkZXYsIGV0aGVyc3dpdGNoX3ZsYW5ncm91cF90ICp2ZykKLXsKLQotCS8qIFhYWCBub3QgaW1w bGVtZW50ZWQgeWV0ICovCi0JcmV0dXJuICgwKTsKLX0KLQogc3RhdGljIHZvaWQKIGFyc3dpdGNo X3N0YXRjaGcoZGV2aWNlX3QgZGV2KQogewpAQCAtNTQ2LDYgKzYzMywzOCBAQAogCWlmbXItPmlm bV9zdGF0dXMgPSBtaWktPm1paV9tZWRpYV9zdGF0dXM7CiB9CiAKK3N0YXRpYyBpbnQKK2Fyc3dp dGNoX2dldGNvbmYoZGV2aWNlX3QgZGV2LCBldGhlcnN3aXRjaF9jb25mX3QgKmNvbmYpCit7CisJ c3RydWN0IGFyc3dpdGNoX3NvZnRjICpzYzsKKworCXNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYp OworCisJLyogUmV0dXJuIHRoZSBWTEFOIG1vZGUuICovCisJY29uZi0+Y21kID0gRVRIRVJTV0lU Q0hfQ09ORl9WTEFOX01PREU7CisJY29uZi0+dmxhbl9tb2RlID0gc2MtPnZsYW5fbW9kZTsKKwor CXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK2Fyc3dpdGNoX3NldGNvbmYoZGV2aWNlX3Qg ZGV2LCBldGhlcnN3aXRjaF9jb25mX3QgKmNvbmYpCit7CisJc3RydWN0IGFyc3dpdGNoX3NvZnRj ICpzYzsKKwlpbnQgZXJyOworCisJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisKKwkvKiBT ZXQgdGhlIFZMQU4gbW9kZS4gKi8KKwlpZiAoY29uZi0+Y21kICYgRVRIRVJTV0lUQ0hfQ09ORl9W TEFOX01PREUpIHsKKwkJZXJyID0gYXJzd2l0Y2hfc2V0X3ZsYW5fbW9kZShzYywgY29uZi0+dmxh bl9tb2RlKTsKKwkJaWYgKGVyciAhPSAwKQorCQkJcmV0dXJuIChlcnIpOworCX0KKworCXJldHVy biAoMCk7Cit9CisKIHN0YXRpYyBkZXZpY2VfbWV0aG9kX3QgYXJzd2l0Y2hfbWV0aG9kc1tdID0g ewogCS8qIERldmljZSBpbnRlcmZhY2UgKi8KIAlERVZNRVRIT0QoZGV2aWNlX3Byb2JlLAkJYXJz d2l0Y2hfcHJvYmUpLApAQCAtNTc2LDYgKzY5NSw4IEBACiAJREVWTUVUSE9EKGV0aGVyc3dpdGNo X3NldHBvcnQsCWFyc3dpdGNoX3NldHBvcnQpLAogCURFVk1FVEhPRChldGhlcnN3aXRjaF9nZXR2 Z3JvdXAsCWFyc3dpdGNoX2dldHZncm91cCksCiAJREVWTUVUSE9EKGV0aGVyc3dpdGNoX3NldHZn cm91cCwJYXJzd2l0Y2hfc2V0dmdyb3VwKSwKKwlERVZNRVRIT0QoZXRoZXJzd2l0Y2hfZ2V0Y29u ZiwJYXJzd2l0Y2hfZ2V0Y29uZiksCisJREVWTUVUSE9EKGV0aGVyc3dpdGNoX3NldGNvbmYsCWFy c3dpdGNoX3NldGNvbmYpLAogCiAJREVWTUVUSE9EX0VORAogfTsKSW5kZXg6IGRldi9ldGhlcnN3 aXRjaC9hcnN3aXRjaC9hcnN3aXRjaF83MjQwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZGV2L2V0aGVyc3dp dGNoL2Fyc3dpdGNoL2Fyc3dpdGNoXzcyNDAuYwkocmV2aXNpb24gMjUwOTAxKQorKysgZGV2L2V0 aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNoXzcyNDAuYwkod29ya2luZyBjb3B5KQpAQCAtNzEs MTYgKzcxLDYgQEAKIGFyNzI0MF9od19zZXR1cChzdHJ1Y3QgYXJzd2l0Y2hfc29mdGMgKnNjKQog ewogCi0JLyogRW5hYmxlIENQVSBwb3J0OyBkaXNhYmxlIG1pcnJvciBwb3J0ICovCi0JYXJzd2l0 Y2hfd3JpdGVyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JFR19DUFVfUE9SVCwKLQkgICAgQVI4WDE2 X0NQVV9QT1JUX0VOIHwgQVI4WDE2X0NQVV9NSVJST1JfRElTKTsKLQotCS8qCi0JICogTGV0IHRo aW5ncyBzZXR0bGU7IHByb2JpbmcgUEhZNCBkb2Vzbid0IHNlZW0gcmVsaWFibGUKLQkgKiB3aXRo b3V0IGEgbGl0bGUgZGVsYXkuCi0JICovCi0JREVMQVkoMTAwMCk7Ci0KIAlyZXR1cm4gKDApOwog fQogCkBAIC05MSw2ICs4MSwxMCBAQAogYXI3MjQwX2h3X2dsb2JhbF9zZXR1cChzdHJ1Y3QgYXJz d2l0Y2hfc29mdGMgKnNjKQogewogCisJLyogRW5hYmxlIENQVSBwb3J0OyBkaXNhYmxlIG1pcnJv ciBwb3J0ICovCisJYXJzd2l0Y2hfd3JpdGVyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JFR19DUFVf UE9SVCwKKwkgICAgQVI4WDE2X0NQVV9QT1JUX0VOIHwgQVI4WDE2X0NQVV9NSVJST1JfRElTKTsK KwogCS8qIFNldHVwIFRBRyBwcmlvcml0eSBtYXBwaW5nICovCiAJYXJzd2l0Y2hfd3JpdGVyZWco c2MtPnNjX2RldiwgQVI4WDE2X1JFR19UQUdfUFJJTywgMHhmYTUwKTsKIApAQCAtMTM5LDQgKzEz Myw5IEBACiAKIAlzYy0+aGFsLmFyc3dpdGNoX2h3X3NldHVwID0gYXI3MjQwX2h3X3NldHVwOwog CXNjLT5oYWwuYXJzd2l0Y2hfaHdfZ2xvYmFsX3NldHVwID0gYXI3MjQwX2h3X2dsb2JhbF9zZXR1 cDsKKworCS8qIFNldCB0aGUgc3dpdGNoIHZsYW4gY2FwYWJpbGl0aWVzLiAqLworCXNjLT5pbmZv LmVzX3ZsYW5fY2FwcyA9IEVUSEVSU1dJVENIX1ZMQU5fRE9UMVEgfAorCSAgICBFVEhFUlNXSVRD SF9WTEFOX1BPUlQgfCBFVEhFUlNXSVRDSF9WTEFOX0RPVUJMRV9UQUc7CisJc2MtPmluZm8uZXNf bnZsYW5ncm91cHMgPSBBUjhYMTZfTUFYX1ZMQU5TOwogfQpJbmRleDogZGV2L2V0aGVyc3dpdGNo L2Fyc3dpdGNoL2Fyc3dpdGNoXzgyMTYuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkZXYvZXRoZXJzd2l0Y2gv YXJzd2l0Y2gvYXJzd2l0Y2hfODIxNi5jCShyZXZpc2lvbiAyNTA5MDEpCisrKyBkZXYvZXRoZXJz d2l0Y2gvYXJzd2l0Y2gvYXJzd2l0Y2hfODIxNi5jCSh3b3JraW5nIGNvcHkpCkBAIC04OSw0ICs4 OSw2IEBACiAKIAlzYy0+aGFsLmFyc3dpdGNoX2h3X3NldHVwID0gYXI4MjE2X2h3X3NldHVwOwog CXNjLT5oYWwuYXJzd2l0Y2hfaHdfZ2xvYmFsX3NldHVwID0gYXI4MjE2X2h3X2dsb2JhbF9zZXR1 cDsKKworCXNjLT5pbmZvLmVzX252bGFuZ3JvdXBzID0gMDsKIH0KSW5kZXg6IGRldi9ldGhlcnN3 aXRjaC9hcnN3aXRjaC9hcnN3aXRjaF84MjI2LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZGV2L2V0aGVyc3dp dGNoL2Fyc3dpdGNoL2Fyc3dpdGNoXzgyMjYuYwkocmV2aXNpb24gMjUwOTAxKQorKysgZGV2L2V0 aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNoXzgyMjYuYwkod29ya2luZyBjb3B5KQpAQCAtODks NCArODksNiBAQAogCiAJc2MtPmhhbC5hcnN3aXRjaF9od19zZXR1cCA9IGFyODIyNl9od19zZXR1 cDsKIAlzYy0+aGFsLmFyc3dpdGNoX2h3X2dsb2JhbF9zZXR1cCA9IGFyODIyNl9od19nbG9iYWxf c2V0dXA7CisKKwlzYy0+aW5mby5lc19udmxhbmdyb3VwcyA9IDA7CiB9CkluZGV4OiBkZXYvZXRo ZXJzd2l0Y2gvYXJzd2l0Y2gvYXJzd2l0Y2hfODMxNi5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRldi9ldGhl cnN3aXRjaC9hcnN3aXRjaC9hcnN3aXRjaF84MzE2LmMJKHJldmlzaW9uIDI1MDkwMSkKKysrIGRl di9ldGhlcnN3aXRjaC9hcnN3aXRjaC9hcnN3aXRjaF84MzE2LmMJKHdvcmtpbmcgY29weSkKQEAg LTEyNyw4ICsxMjcsMTkgQEAKIGFyODMxNl9od19nbG9iYWxfc2V0dXAoc3RydWN0IGFyc3dpdGNo X3NvZnRjICpzYykKIHsKIAotCWFyc3dpdGNoX3dyaXRlcmVnKHNjLT5zY19kZXYsIDB4MzgsIDB4 YzAwMDA1MGUpOworCWFyc3dpdGNoX3dyaXRlcmVnKHNjLT5zY19kZXYsIDB4MzgsIEFSOFgxNl9N QUdJQyk7CiAKKwkvKiBFbmFibGUgQ1BVIHBvcnQgYW5kIGRpc2FibGUgbWlycm9yIHBvcnQuICov CisJYXJzd2l0Y2hfd3JpdGVyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JFR19DUFVfUE9SVCwKKwkg ICAgQVI4WDE2X0NQVV9QT1JUX0VOIHwgQVI4WDE2X0NQVV9NSVJST1JfRElTKTsKKworCS8qIFNl dHVwIFRBRyBwcmlvcml0eSBtYXBwaW5nLiAqLworCWFyc3dpdGNoX3dyaXRlcmVnKHNjLT5zY19k ZXYsIEFSOFgxNl9SRUdfVEFHX1BSSU8sIDB4ZmE1MCk7CisKKwkvKiBFbmFibGUgQVJQIGZyYW1l IGFja25vd2xlZGdlLiAqLworCWFyc3dpdGNoX21vZGlmeXJlZyhzYy0+c2NfZGV2LCBBUjhYMTZf UkVHX0FUX0NUUkwsIDAsCisJICAgIEFSOFgxNl9BVF9DVFJMX0FSUF9FTik7CisKIAkvKgogCSAq IEZsb29kIGFkZHJlc3MgdGFibGUgbWlzc2VzIHRvIGFsbCBwb3J0cywgYW5kIGVuYWJsZSBmb3J3 YXJkaW5nIG9mCiAJICogYnJvYWRjYXN0cyB0byB0aGUgY3B1IHBvcnQuCkBAIC0xMzYsOSArMTQ3 LDE0IEBACiAJYXJzd2l0Y2hfd3JpdGVyZWcoc2MtPnNjX2RldiwgQVI4WDE2X1JFR19GTE9PRF9N QVNLLAogCSAgICBBUjhYMTZfRkxPT0RfTUFTS19CQ0FTVF9UT19DUFUgfCAweDAwM2YwMDNmKTsK IAorCS8qIEVuYWJsZSBqdW1ibyBmcmFtZXMuICovCiAJYXJzd2l0Y2hfbW9kaWZ5cmVnKHNjLT5z Y19kZXYsIEFSOFgxNl9SRUdfR0xPQkFMX0NUUkwsCiAJICAgIEFSODMxNl9HTE9CQUxfQ1RSTF9N VFVfTUFTSywgOTAxOCArIDggKyAyKTsKIAorCS8qIFNldHVwIHNlcnZpY2UgVEFHLiAqLworCWFy c3dpdGNoX21vZGlmeXJlZyhzYy0+c2NfZGV2LCBBUjhYMTZfUkVHX1NFUlZJQ0VfVEFHLAorCSAg ICBBUjhYMTZfU0VSVklDRV9UQUdfTUFTSywgMCk7CisKIAlyZXR1cm4gKDApOwogfQogCkBAIC0x NDgsNCArMTY0LDkgQEAKIAogCXNjLT5oYWwuYXJzd2l0Y2hfaHdfc2V0dXAgPSBhcjgzMTZfaHdf c2V0dXA7CiAJc2MtPmhhbC5hcnN3aXRjaF9od19nbG9iYWxfc2V0dXAgPSBhcjgzMTZfaHdfZ2xv YmFsX3NldHVwOworCisJLyogU2V0IHRoZSBzd2l0Y2ggdmxhbiBjYXBhYmlsaXRpZXMuICovCisJ c2MtPmluZm8uZXNfdmxhbl9jYXBzID0gRVRIRVJTV0lUQ0hfVkxBTl9ET1QxUSB8CisJICAgIEVU SEVSU1dJVENIX1ZMQU5fUE9SVCB8IEVUSEVSU1dJVENIX1ZMQU5fRE9VQkxFX1RBRzsKKwlzYy0+ aW5mby5lc19udmxhbmdyb3VwcyA9IEFSOFgxNl9NQVhfVkxBTlM7CiB9CkluZGV4OiBkZXYvZXRo ZXJzd2l0Y2gvYXJzd2l0Y2gvYXJzd2l0Y2hfcGh5LmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZGV2L2V0aGVy c3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNoX3BoeS5jCShyZXZpc2lvbiAyNTA5MDEpCisrKyBkZXYv ZXRoZXJzd2l0Y2gvYXJzd2l0Y2gvYXJzd2l0Y2hfcGh5LmMJKHdvcmtpbmcgY29weSkKQEAgLTEy NywxNiArMTI3LDEzIEBACiAJCXJldHVybiAoRU5YSU8pOwogCiAJQVJTV0lUQ0hfTE9DSyhzYyk7 Ci0JZXJyID0gYXJzd2l0Y2hfd3JpdGVyZWdfbHNiKGRldiwgQVI4WDE2X1JFR19NRElPX0NUUkws Ci0JICAgIChkYXRhICYgQVI4WDE2X01ESU9fQ1RSTF9EQVRBX01BU0spKTsKLQlpZiAoZXJyICE9 IDApCi0JCWdvdG8gb3V0OwotCWVyciA9IGFyc3dpdGNoX3dyaXRlcmVnX21zYihkZXYsIEFSOFgx Nl9SRUdfTURJT19DVFJMLAorCWVyciA9IGFyc3dpdGNoX3dyaXRlcmVnKGRldiwgQVI4WDE2X1JF R19NRElPX0NUUkwsCiAJICAgIEFSOFgxNl9NRElPX0NUUkxfQlVTWSB8CiAJICAgIEFSOFgxNl9N RElPX0NUUkxfTUFTVEVSX0VOIHwKIAkgICAgQVI4WDE2X01ESU9fQ1RSTF9DTURfV1JJVEUgfAog CSAgICAocGh5IDw8IEFSOFgxNl9NRElPX0NUUkxfUEhZX0FERFJfU0hJRlQpIHwKLQkgICAgKHJl ZyA8PCBBUjhYMTZfTURJT19DVFJMX1JFR19BRERSX1NISUZUKSk7CisJICAgIChyZWcgPDwgQVI4 WDE2X01ESU9fQ1RSTF9SRUdfQUREUl9TSElGVCkgfAorCSAgICAoZGF0YSAmIEFSOFgxNl9NRElP X0NUUkxfREFUQV9NQVNLKSk7CiAJaWYgKGVyciAhPSAwKQogCQlnb3RvIG91dDsKIAlmb3IgKHRp bWVvdXQgPSAxMDA7IHRpbWVvdXQtLTsgKSB7CkluZGV4OiBkZXYvZXRoZXJzd2l0Y2gvYXJzd2l0 Y2gvYXJzd2l0Y2hfcmVnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNo L2Fyc3dpdGNoX3JlZy5jCShyZXZpc2lvbiAyNTA5MDEpCisrKyBkZXYvZXRoZXJzd2l0Y2gvYXJz d2l0Y2gvYXJzd2l0Y2hfcmVnLmMJKHdvcmtpbmcgY29weSkKQEAgLTcyLDE3ICs3MiwxMCBAQAog CSpwaHkgPSAoKChhZGRyKSA+PiA2KSAmIDB4MDcpIHwgMHgxMDsKIAkqcmVnID0gKChhZGRyKSA+ PiAxKSAmIDB4MWY7CiAKLQkvKgotCSAqIFRoZSBlYXJsaWVyIGNvZGUgd291bGQgb25seSBzd2l0 Y2ggdGhlIHBhZ2UKLQkgKiBvdmVyIGlmIHRoZSBwYWdlIHdlcmUgZGlmZmVyZW50LiAgRXhwZXJp bWVudHMgaGF2ZQotCSAqIHNob3duIHRoYXQgdGhpcyBpcyB1bnN0YWJsZS4KLQkgKgotCSAqIEhl bmNlLCB0aGUgcGFnZSBpcyBhbHdheXMgc2V0IGhlcmUuCi0JICoKLQkgKiBTZWUgUFIga2Vybi8x NzI5NjgKLQkgKi8KLQlNRElPX1dSSVRFUkVHKGRldmljZV9nZXRfcGFyZW50KGRldiksIDB4MTgs IDAsIHBhZ2UpOwotCXNjLT5wYWdlID0gcGFnZTsKKwlpZiAoc2MtPnBhZ2UgIT0gcGFnZSkgewor CQlNRElPX1dSSVRFUkVHKGRldmljZV9nZXRfcGFyZW50KGRldiksIDB4MTgsIDAsIHBhZ2UpOwor CQlzYy0+cGFnZSA9IHBhZ2U7CisJfQogfQogCiAvKgpAQCAtMTcxLDggKzE2NCw4IEBACiB7CiAK IAkvKiBYWFggQ2hlY2sgdGhlIGZpcnN0IHdyaXRlIHRvbz8gKi8KLQlhcnN3aXRjaF93cml0ZXJl Z19sc2IoZGV2LCBhZGRyLCB2YWx1ZSk7Ci0JcmV0dXJuIChhcnN3aXRjaF93cml0ZXJlZ19tc2Io ZGV2LCBhZGRyLCB2YWx1ZSkpOworCWFyc3dpdGNoX3dyaXRlcmVnX21zYihkZXYsIGFkZHIsIHZh bHVlKTsKKwlyZXR1cm4gKGFyc3dpdGNoX3dyaXRlcmVnX2xzYihkZXYsIGFkZHIsIHZhbHVlKSk7 CiB9CiAKIGludApAQCAtMTg1LDMgKzE3OCwyNCBAQAogCXZhbHVlIHw9IHNldDsKIAlyZXR1cm4g KGFyc3dpdGNoX3dyaXRlcmVnKGRldiwgYWRkciwgdmFsdWUpKTsKIH0KKworaW50CithcnN3aXRj aF93YWl0cmVnKGRldmljZV90IGRldiwgaW50IGFkZHIsIGludCBtYXNrLCBpbnQgdmFsLCBpbnQg dGltZW91dCkKK3sKKwlpbnQgZXJyLCB2OworCisJZXJyID0gLTE7CisJd2hpbGUgKDEpIHsKKwkJ diA9IGFyc3dpdGNoX3JlYWRyZWcoZGV2LCBhZGRyKTsKKwkJdiAmPSBtYXNrOworCQlpZiAodiA9 PSB2YWwpIHsKKwkJCWVyciA9IDA7CisJCQlicmVhazsKKwkJfQorCQlpZiAoIXRpbWVvdXQpCisJ CQlicmVhazsKKwkJREVMQVkoMSk7CisJCXRpbWVvdXQtLTsKKwl9CisJcmV0dXJuIChlcnIpOwor fQpJbmRleDogZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNoX3JlZy5oCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIGRldi9ldGhlcnN3aXRjaC9hcnN3aXRjaC9hcnN3aXRjaF9yZWcuaAkocmV2aXNpb24g MjUwOTAxKQorKysgZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNoX3JlZy5oCSh3b3Jr aW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiBleHRlcm4JaW50IGFyc3dpdGNoX3JlYWRyZWco ZGV2aWNlX3QgZGV2LCBpbnQgYWRkcik7CiBleHRlcm4JaW50IGFyc3dpdGNoX3dyaXRlcmVnKGRl dmljZV90IGRldiwgaW50IGFkZHIsIGludCB2YWx1ZSk7CiBleHRlcm4JaW50IGFyc3dpdGNoX21v ZGlmeXJlZyhkZXZpY2VfdCBkZXYsIGludCBhZGRyLCBpbnQgbWFzaywgaW50IHNldCk7CitleHRl cm4JaW50IGFyc3dpdGNoX3dhaXRyZWcoZGV2aWNlX3QsIGludCwgaW50LCBpbnQsIGludCk7CiAK IGV4dGVybglpbnQgYXJzd2l0Y2hfcmVhZHJlZ19sc2IoZGV2aWNlX3QgZGV2LCBpbnQgYWRkcik7 CiBleHRlcm4JaW50IGFyc3dpdGNoX3JlYWRyZWdfbXNiKGRldmljZV90IGRldiwgaW50IGFkZHIp OwpJbmRleDogZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNocmVnLmgKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZGV2L2V0aGVyc3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNocmVnLmgJKHJldmlzaW9uIDI1 MDkwMSkKKysrIGRldi9ldGhlcnN3aXRjaC9hcnN3aXRjaC9hcnN3aXRjaHJlZy5oCSh3b3JraW5n IGNvcHkpCkBAIC0xMTQsNyArMTE0LDcgQEAKICNkZWZpbmUJCUFSOFgxNl9WTEFOX1BSSU9fRU4J CSgxIDw8IDMxKQogCiAjZGVmaW5lCUFSOFgxNl9SRUdfVkxBTl9EQVRBCQkweDAwNDQKLSNkZWZp bmUJCUFSOFgxNl9WTEFOX01FTUJFUgkJMHgwMDAwMDNmZgorI2RlZmluZQkJQVI4WDE2X1ZMQU5f TUVNQkVSCQkweDAwMDAwMDNmCiAjZGVmaW5lCQlBUjhYMTZfVkxBTl9WQUxJRAkJKDEgPDwgMTEp CiAKICNkZWZpbmUJQVI4WDE2X1JFR19BUkxfQ1RSTDAJCTB4MDA1MApJbmRleDogZGV2L2V0aGVy c3dpdGNoL2Fyc3dpdGNoL2Fyc3dpdGNodmFyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZGV2L2V0aGVyc3dp dGNoL2Fyc3dpdGNoL2Fyc3dpdGNodmFyLmgJKHJldmlzaW9uIDI1MDkwMSkKKysrIGRldi9ldGhl cnN3aXRjaC9hcnN3aXRjaC9hcnN3aXRjaHZhci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0 Miw2IEBACiAjZGVmaW5lCUFSOFgxNl9JU19TV0lUQ0goX3NjLCBfdHlwZSkgXAogCSAgICAoISEo KF9zYyktPnNjX3N3aXRjaHR5cGUgPT0gQVI4WDE2X1NXSVRDSF8gIyMgX3R5cGUpKQogCi1zdHJ1 Y3QgYXJzd2l0Y2hfc29mdGM7Ci0KIHN0cnVjdCBhcnN3aXRjaF9zb2Z0YyB7CiAJc3RydWN0IG10 eAlzY19tdHg7CQkvKiBzZXJpYWxpemUgYWNjZXNzIHRvIHNvZnRjICovCiAJZGV2aWNlX3QJc2Nf ZGV2OwpAQCAtNTksNiArNTcsMTAgQEAKIAlzdHJ1Y3QgY2FsbG91dAljYWxsb3V0X3RpY2s7CiAJ ZXRoZXJzd2l0Y2hfaW5mb190IGluZm87CiAKKwkvKiBWTEFOcyBzdXBwb3J0ICovCisJaW50CQl2 aWRbQVI4WDE2X01BWF9WTEFOU107CisJdWludDMyX3QJdmxhbl9tb2RlOworCiAJc3RydWN0IHsK IAkJaW50ICgqIGFyc3dpdGNoX2h3X3NldHVwKSAoc3RydWN0IGFyc3dpdGNoX3NvZnRjICopOwog CQlpbnQgKCogYXJzd2l0Y2hfaHdfZ2xvYmFsX3NldHVwKSAoc3RydWN0IGFyc3dpdGNoX3NvZnRj ICopOwo= --001a11c25f8c14fa0604df0a1f5c-- From owner-freebsd-embedded@FreeBSD.ORG Sat Jun 15 14:48:44 2013 Return-Path: Delivered-To: freebsd-embedded@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 17937122 for ; Sat, 15 Jun 2013 14:48:44 +0000 (UTC) (envelope-from a.buonanno@live.it) Received: from dub0-omc1-s22.dub0.hotmail.com (dub0-omc1-s22.dub0.hotmail.com [157.55.0.221]) by mx1.freebsd.org (Postfix) with ESMTP id B49551A5C for ; Sat, 15 Jun 2013 14:48:43 +0000 (UTC) Received: from DUB112-W135 ([157.55.0.237]) by dub0-omc1-s22.dub0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Sat, 15 Jun 2013 07:47:35 -0700 X-TMN: [HMr/lvGFpxOCao7K9IiQR5ndqJEyV0ef] X-Originating-Email: [a.buonanno@live.it] Message-ID: From: Antonio Buonanno To: "freebsd-embedded@FreeBSD.org" Subject: freebsd + raspberry pi + zigbee Date: Sat, 15 Jun 2013 16:47:35 +0200 Importance: Normal MIME-Version: 1.0 X-OriginalArrivalTime: 15 Jun 2013 14:47:35.0860 (UTC) FILETIME=[464C1740:01CE69D7] Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Jun 2013 14:48:44 -0000 hi to all and thanks for all =2C this i am a newbie for freebsd system and = i ask you this question: i wont use a raspberry pi=2C do you telle me a good book=2C how-to or other= can use freebsd with raspberry pi? do you now if i can use ZigBee USB Stick with freebsd and raspbarry pi= =2C do you think i have a problem? best regads Antonio =