From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C6D5BC9832F for ; Sun, 27 Sep 2026 20:14:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uVhjETUsV9wId57DTg1E6Bwq8kGZBHN8ipj4E9t8Bxc=; b=EthJqYJ6+bFUGl W5SzM75PeHBL1O5EYkB+BRcQalWFJpF2cY12b1nJhdxh/hMS8N8662pL1vPk+bvF6vAtsoAJb0zxh TcTn4bru5wKiF7hWVBut9ml/DYxWdgWxDQZid2Wm+cTFv39VG1++jCpinOZWGstDj9ZAbjTOohulD RKraGDDfCAhryXW84QFV3iAC/BdWRjHDGylt5ogtpTTUleKh0aun2YrSptbKV7sxLo07RRqSLoqmv 4Fgm+YRuODowoH3HZvVMh9Goe07hZ3c/OGLu76clGpV7tNOrDstC9SCX9p/Q/JX0IeRZIfiKeYPSu dvDXhL5cflgL3lf+SLSw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xAvGe-0000000Gnjn-1lqD; Sun, 27 Sep 2026 20:14:36 +0000 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xAvGP-0000000GnYJ-3ZgD for linux-phy@lists.infradead.org; Sun, 27 Sep 2026 20:14:23 +0000 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-48870973bddso1073263f8f.1 for ; Sun, 27 Sep 2026 13:14:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1790540060; x=1791144860; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=lcshcCFgPieIG5e8bwiFJkZupH8EGx8PYrfbPTGlSIU=; b=GVN9m7yy1+xE+cYOCJJv26t8b0AjDrBI1f9cyQyoM9iGbF0ROwtcRw7nBBxz5/NBuY 1zmjV2rHisQPBpslCPubeDPoipuCbAmWnHo3YPNRgu1IH7bWtftbpAH88W1hodJ4FvHv kdtMeasrGIETYCJjLY8ij5S1ypfyrGxLHhQsqlTKxTBxHM2WQT5TZ1WHVapeu1UvdV6j ohHZPZMBhp4XVYa97/V3wL5odMLawkXJhDSFp9NDRfwzODsRC01EIGrN+bxLM0Tam5er d1Xn75eqWYJlOmCC+ivaMHfo+QGjdHDFODY9XXNyXWslx66g66dAjulvFjGQKDX5jleS QcYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790540060; x=1791144860; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=lcshcCFgPieIG5e8bwiFJkZupH8EGx8PYrfbPTGlSIU=; b=Xu6kKqOgU5O74vp/wD44po0/wX9yYsqwgrWzj6AwZFuSH9ZQSQXFqBUOd/3YJh79p3 sUMlwLxSm93rdN9OxCsppu1NpF0NX+j5BVdcf/QWZlZgsG/+kldnnLGPqd6mzkT4881f U4N1sEvzWmqO9k4DLaUiJD6yTU7Xmxqt8xNbpN1DzkvQZmUCg+v6b7oo/jRO70ZOikzT YxQH5v2/v4uSd6AL53hPL5D6Z02eRBa6xjpqRl8JMiuh/U6+cgUTetTT47JQgYZbXzJh LyxTY72P3QRTDqdcNWd/SoF3SwbRyZeKpOn+d2/nrjsEO/FbKmLFkttvu5a/u5Gb0IEm FJyg== X-Forwarded-Encrypted: i=1; AKwUvBwqpFiXyFaicRp6X20DHSZADkaQQrlJO9TsWxkflVzpzRDWFvJpsywr3askqRP0sxrqcBMFvpzpA2w=@lists.infradead.org X-Gm-Message-State: AFuF++lfrGR3rzmMB6anDLqEYIQOpgaRZfc8RXEZpjnKdcGlKTHqP+1Y KWOpCj/pSXe3/EylMpfMp0gdjGjPbHRPa/IMT6pRROBAjQP5mSjY8VV4 X-Gm-Gg: AYBFou3urMbskYXNAyx8guYC9z1yFww7bXxC/N/Obup9z3mfCe42lZ216F66faRpTAG DVwQ8LLqbEe3pS1sgls+fFRNj/0FvXJosnlGWy06EGTXNF6QeIFRuh/VcM2cermZUnb55Yer3po ru7/CYYXJtBA3jJQCE+X83PkfCkIHmD4MrNfUqMbFm5wOrAlINfb84iYvo3tmxiT5x7EIfGpQDT NzCEildw2jE7jw8Lvjapv1jQiDLXooUSK4L0PpGKug2S2vkGbDGB0CAkPyIq3t6cnx/Yy9kIhU0 JRUIm9JuECcQvCZQD2hT/8mtQaD5KI5efbJlrwSlT2KMMiLi0uMtbK7TmUFUK65WTVJS8NpQ97A FK4ME9H6OtHZvlp/aFm8xPOUPjknj51wytOisOcgedOUb/aMtYg4YCWjPyMQtZ/vI0wAcwnwbdt yS9k4YiFw+d9aKcCjnMA9l5NG/d/U8wmJgJMZCgGwzVY43fA55nJiRTEM1ZSwaPmW/LU45Pmnvo qv2YfLY X-Received: by 2002:a05:600c:a211:b0:4a0:373:18f3 with SMTP id 5b1f17b1804b1-4a003731ce6mr17412175e9.2.1790540059698; Sun, 27 Sep 2026 13:14:19 -0700 (PDT) Received: from [192.168.0.2] ([197.250.96.148]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4887a34a570sm21781514f8f.13.2026.09.27.13.14.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 27 Sep 2026 13:14:19 -0700 (PDT) From: =?utf-8?q?Stefan_D=C3=B6singer?= Date: Sun, 27 Sep 2026 23:13:34 +0300 Subject: [PATCH v13 06/13] clk: zte: Add Clock registration infrastructure MIME-Version: 1.0 Message-Id: <20260927-zx29clk-v13-6-70d8f673386c@gmail.com> References: <20260927-zx29clk-v13-0-70d8f673386c@gmail.com> In-Reply-To: <20260927-zx29clk-v13-0-70d8f673386c@gmail.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Philipp Zabel , Brian Masney , Vinod Koul , Neil Armstrong , Russell King , Lee Jones , Brian Masney , Jerome Brunet , Manivannan Sadhasivam Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-phy@lists.infradead.org, mfd@lists.linux.dev, =?utf-8?q?Stefan_D=C3=B6singer?= X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=15712; i=stefandoesinger@gmail.com; h=from:subject:message-id; bh=ofd8rVoz0p52QzPz9+SkZywnce00Yrxb97abl1XuDdk=; b=owEBiQJ2/ZANAwAIAT0TvMhUTxoiAcsmYgBquXj0xo4v6acvpcXXLjh0HCgGV001IL5IGUtRJ yGe8+lHka2JAk8EAAEIADkWIQRDFvS2qgVbJ5UyXWw9E7zIVE8aIgUCarl49BsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDIACgkQPRO8yFRPGiLbgBAAnGF87HZUSY0U0jEK2edg3W0dwAtYFP6 d5Ba+oIshYPzqsuQxmSJaZSpw4FDkyr+/Umir9CaPXNQScQ9Nc4MH9UnuR/1B5EM6cOyPSnW92U kQlON84K6cnfR2oDNCDOY/c+7Bdnsl/sogWmumC7yZgGUesfjSn6fKIgZCSrBFdBsB3rn0Z5GlR JIe+QVtsQvWU2YOxdzz06FJfSxZoEjkmn+McNYUxkSy2vKfypIQsjaPrRvF8yRw82sEP5h28V2U 69TOG/NODpuLSSmwgrfwEMiR2r7/bWQLk/983slkY6uu9e7I12RHb/2fiPU4IlZ3g1GivqEci9U 9vLOL3gC/qf1yTpR+QSwyniOAYchFz2VtpjT6sgI/VXT4n+a8/1DIfidF1hnXHqA3pGcjIapRjg E5OQdORfr5exSwhEy+1tG59p/tdAIapNtsCqBLDhOM7TooOv7fgXuU5wknxbngCswX4vn4KCKSC l4j8n194ulvGhoo7LdFj6fD9TOPgaeW0XiryXNBGIqV0v/JEeJHA1zsnqxFAYybRm7W+OaySQHf QqDrcK0bq5FuKAyMTBA1KxWi72SPxpWPpD3oTWCsyRJT4R1D+382lV8inb0JULT9Ld8bQn0AyqY EtnftCZLDiF8ibKY2+frxG9VbxjXcTF+YDSApkK3SUDIef4aoZ4c= X-Developer-Key: i=stefandoesinger@gmail.com; a=openpgp; fpr=4F9C2C8728019633893EBBB98CB81F9A72BBA155 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260927_131422_060433_588E6736 X-CRM114-Status: GOOD ( 33.97 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhlIG5leHQgcGF0Y2hlcyB3aWxsIGltcGxlbWVudCB0aGUgcmVnbWFwIGNsb2NrcyBhbmQgUExM IGRyaXZlci4gVGhlCmFjdHVhbCBoYXJkd2FyZSBzcGVjaWZpYyBjbG9jayBsaXN0aW5nIHdpbGwg bGl2ZSBpbiBhIHNlcGFyYXRlIG1vZHVsZS4KClJldmlld2VkLWJ5OiBCcmlhbiBNYXNuZXkgPGJt YXNuZXlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogU3RlZmFuIETDtnNpbmdlciA8c3RlZmFu ZG9lc2luZ2VyQGdtYWlsLmNvbT4KLS0tCgpWZXJzaW9uIDExLCAxMjogVW5jaGFuZ2VkCgpAU2Fz aGlrbzogSSB0aGluayB5b3VyIGNvbmNlcm4gYWJvdXQgYSBOVUxMIG9mX25vZGUgaW4gdGhlIGNh bGwgdG8KZGV2bV9jbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yX2Z3bmFtZSBpcyBhIGZhbHNl IHBvc2l0aXZlLiBUaGUgQ0NGCmNvZGUgbG9va3MgZm9yIG9mX25vZGVzIGluIGRldiBhbmQgZGV2 LT5wYXJlbnQuCgpWZXJzaW9uIDEwIChCcmlhbik6ClJlbW92ZSB1bnVzZWQgc3RydWN0IHp4X2Ns a19leHBvcnQKUmVtb3ZlIGEgc3RyYXkgc2VtaWNvbG9uIGZyb20gc3dpdGNoL2Nhc2UgaW4genhf Z2V0X3BhcmVudApFeHBsYWluIHRoZSByYXRpb25hbGUgZm9yIHRoZSB2YWxpZGF0aW9uIGNvZGUg YW5kIGRpc2NvdXJhZ2UgY29weWluZyBpdAppbnRvIG90aGVyIGNsb2NrIGRyaXZlcnMKTWFrZSB0 aGUgZXhwb3J0cyBhcnJheSBjb25zdCAoU2FzaGlrbykKClZlcnNpb24gOToKUmV3b3JrIHBhcmVu dCBtYXRjaGluZyBhbmQgY2xvY2sgZXhwb3J0IGNvbnRyb2wuIE1vc3Qgb2YgdGhlIGNoYW5nZXMK d2lsbCBiZSBpbiB0aGUgbmV4dCBwYXRjaGVzLiBUaGUgdmlzaWJsZSBjaGFuZ2UgaGVyZSBpcyB0 aGF0IHRoZSBjbG9jawphcnJheSBpcyB1bmlmaWVkIHdpdGggc2luZ2xlIGNsb2NrcyBoYXZpbmcg YSB0eXBlIHJhdGhlciB0aGFuIG9uZSBhcnJheQpwZXIgdHlwZS4KCkRlcGVuZCBvbiBIQVNfSU9N RU0sIHNpbWlsYXJseSB0byBTYXNoaWtvJ3MgZmxhZ2dlZCBpc3N1ZSBpbiB0aGUgUmVzZXQKcGF0 Y2gKClpYMjk3NTIwVjNfQ0xLX05PX0VYUE9SVCBpcyBnb25lIGFnYWluLgoKVGhlIGV4cGxpY2l0 IGNsb2NrIGlucHV0IGFycmF5IGFuZCBlbmFibGluZyBvZiBMU1AncyBwY2xrIGlzIHJlbW92ZWQK ZnJvbSB0aGUgY2xvY2sgZHJpdmVyLiBUaGUgTUZEIHBhcmVudCB0YWtlcyBjYXJlIG9mIHRoaXMg aW5zdGVhZC4gVGhlCmNsb2NrIGRyaXZlciBkb2VzIHNvbWUgc2FuaXR5IGNoZWNraW5nIG9uIHRo ZSBzdGF0aWMgY2xvY2sgZGF0YSB0aG91Z2guCgpWZXJzaW9uIDg6ClVzZSBaWDI5NzUyMFYzX0NM S19OT19FWFBPUlQ9KH4wdSkgZm9yIHVuZXhwb3J0ZWQgY2xvY2tzLiBXaGlsZSB1c2luZyAwLAph bmQgc3RhcnRpbmcgY2xvY2sgaW5kaWNlcyBhdCAxLCBpcyBhIGNvbW1vbiBwYXR0ZXJuIGluIGV4 aXN0aW5nCmRyaXZlcnMsIGl0IGV4cG9zZXMgYSBkcml2ZXIgaW1wbGVtZW50YXRpb24gZGV0YWls IGluIHRoZSBoYXJkd2FyZQpiaW5kaW5nIGludGVyZmFjZS4KCklmIGRlc2lyZWQsIEkgY2FuIGNo YW5nZSB0aGUgc3BlY2lhbCBpbmRleCB0byBhIHNlcGFyYXRlIGZpZWxkIGluIHRoZQpzdHJ1Y3Rz LgoKRml4IHRoZSByZXR1cm4gdmFsdWUgaWYgdGhlIC0+aW5pdCgpIGNhbGxiYWNrIGZhaWxzLiAo U2FzaGlrbykKClZlcnNpb24gNzoKKikgQWRkIGZpeGVkIGRpdmlkZXJzIHRvIGhhbmRsZSBQTEwg c3ViZGl2aXNpb25zCiopIE5ldmVyIHJlZ2lzdGVyIFBMTHMgZGlyZWN0bHkgYXMgZXhwb3J0ZWQg Y2xvY2tzIC0gZXZlcnl0aGluZyBvbiB0aGlzClNvQyBnb2VzIHRocm91Z2ggYSBnYXRlIGJlZm9y ZSBpdCBsZWF2ZXMgYSBjb250cm9sbGVyLgoKVmVyc2lvbiA2OgoqKSBSZW1vdmUgYXV4ZGV2IG5v dyB0aGF0IExTUCBjbG9ja3MgYWxzbyB1c2UgTUZECiopIEVycm9yIGNvZGVwYXRoIGZpeGVzIHBv aW50ZWQgb3V0IGJ5IFNhc2hpa28uCgpWZXJzaW9uIDU6CgoqKSBQYXNzIHRoZSBzdGF0aWMgY2xr IGRhdGEgaW5zdGVhZCBvZiBjYWxsaW5nIGdldF9tYXRjaF9kYXRhIHRvIHByZXBhcmUKZm9yIG9w ZXJhdGluZyBhcyBhbiBNRkQgY2hpbGQuCgoqKSBEb24ndCB1c2UgZGV2bV9remFsbG9jIHRvIGFs bG9jYXRlIHRoZSBhdXhpbGlhcnlfZGV2aWNlCnN0cnVjdHVyZS4gSSBndWVzcyBTYXNoaWtvIGlz IHJpZ2h0LCBhbmQgdGhhdCdzIHdoYXQgIkJlY2F1c2Ugb25jZSB0aGUKZGV2aWNlIGlzIHBsYWNl ZCBvbiB0aGUgYnVzIHRoZSBwYXJlbnQgZHJpdmVyIGNhbiBub3QgdGVsbCB3aGF0IG90aGVyCmNv ZGUgbWF5IGhhdmUgYSByZWZlcmVuY2UgdG8gdGhpcyBkYXRhIiBpcyB0cnlpbmcgdG8gdGVsbCBt ZS4KCiopIEZpeCBlcnJvciBjaGVjayBmb3IgZGV2aWNlX25vZGVfdG9fcmVnbWFwLgotLS0KIE1B SU5UQUlORVJTICAgICAgICAgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9jbGsvS2NvbmZpZyAg ICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2Nsay9NYWtlZmlsZSAgICAgICAgIHwgICAxICsKIGRy aXZlcnMvY2xrL3p0ZS9LY29uZmlnICAgICAgfCAgMTcgKysrKwogZHJpdmVycy9jbGsvenRlL01h a2VmaWxlICAgICB8ICAgNSArKwogZHJpdmVycy9jbGsvenRlL2Nsay1yZWdtYXAuYyB8ICAzMiAr KysrKysrKwogZHJpdmVycy9jbGsvenRlL2Nsay16eC5jICAgICB8IDE5MiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2Nsay96dGUvY2xrLXp4Lmgg ICAgIHwgMTM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9jbGsvenRl L3BsbC16eC5jICAgICB8ICAxOCArKysrCiA5IGZpbGVzIGNoYW5nZWQsIDQwNCBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCA0MWMyODcz MTZkMGUuLmNmNGU4YzQ4ZGRmYyAxMDA2NDQKLS0tIGEvTUFJTlRBSU5FUlMKKysrIGIvTUFJTlRB SU5FUlMKQEAgLTM5MjcsNiArMzkyNyw3IEBAIEY6CURvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9jbG9jay96dGUsengyOTc1MjB2My1tYXRyaXhjcm0ueWFtbAogRjoJRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Nsb2NrL3p0ZSx6eDI5NzUyMHYzLXRvcGNybS55YW1s CiBGOglhcmNoL2FybS9ib290L2R0cy96dGUvCiBGOglhcmNoL2FybS9tYWNoLXp0ZS8KK0Y6CWRy aXZlcnMvY2xrL3p0ZS8KIEY6CWRyaXZlcnMvbWZkL3p0ZS16eDI5NzUyMHYzLWNybS5jCiBGOglp bmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3p0ZSx6eDI5NzUyMHYzLWNsay5oCiBGOglpbmNsdWRl L2R0LWJpbmRpbmdzL3BoeS96dGUsengyOTc1MjB2My10b3Bjcm0uaApkaWZmIC0tZ2l0IGEvZHJp dmVycy9jbGsvS2NvbmZpZyBiL2RyaXZlcnMvY2xrL0tjb25maWcKaW5kZXggMjUyZjZhMWYyMWI4 Li5jYTQ4NjljNGU1ZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2xrL0tjb25maWcKKysrIGIvZHJp dmVycy9jbGsvS2NvbmZpZwpAQCAtNTQ4LDYgKzU0OCw3IEBAIHNvdXJjZSAiZHJpdmVycy9jbGsv dW5pcGhpZXIvS2NvbmZpZyIKIHNvdXJjZSAiZHJpdmVycy9jbGsvdmlzY29udGkvS2NvbmZpZyIK IHNvdXJjZSAiZHJpdmVycy9jbGsveDg2L0tjb25maWciCiBzb3VyY2UgImRyaXZlcnMvY2xrL3hp bGlueC9LY29uZmlnIgorc291cmNlICJkcml2ZXJzL2Nsay96dGUvS2NvbmZpZyIKIHNvdXJjZSAi ZHJpdmVycy9jbGsvenlucW1wL0tjb25maWciCiAKICMgS3VuaXQgdGVzdCBjYXNlcwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9jbGsvTWFrZWZpbGUgYi9kcml2ZXJzL2Nsay9NYWtlZmlsZQppbmRleCAy ZDhmNjAyNTQzNzMuLjkxYjczYmUzMTcwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvTWFrZWZp bGUKKysrIGIvZHJpdmVycy9jbGsvTWFrZWZpbGUKQEAgLTE4Miw1ICsxODIsNiBAQCBpZmVxICgk KENPTkZJR19DT01NT05fQ0xLKSwgeSkKIG9iai0kKENPTkZJR19YODYpCQkJKz0geDg2LwogZW5k aWYKIG9iai15CQkJCQkrPSB4aWxpbngvCitvYmotJChDT05GSUdfQ09NTU9OX0NMS19aVEUpCQkr PSB6dGUvCiBvYmotJChDT05GSUdfQVJDSF9aWU5RKQkJCSs9IHp5bnEvCiBvYmotJChDT05GSUdf Q09NTU9OX0NMS19aWU5RTVApICAgICAgICAgKz0genlucW1wLwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jbGsvenRlL0tjb25maWcgYi9kcml2ZXJzL2Nsay96dGUvS2NvbmZpZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE1MmMyNDIzYjhmMAotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvY2xrL3p0ZS9LY29uZmlnCkBAIC0wLDAgKzEsMTcgQEAKKyMgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorIworIyBaVEUgQ2xvY2sgRHJpdmVycworIwor Citjb25maWcgQ09NTU9OX0NMS19aVEUKKwl0cmlzdGF0ZSAiQ2xvY2sgZHJpdmVyIGZvciBaVEUg U29DcyIKKwlkZXBlbmRzIG9uIEhBU19JT01FTQorCWRlcGVuZHMgb24gQVJDSF9aVEUgfHwgQ09N UElMRV9URVNUCisJZGVmYXVsdCBBUkNIX1pURQorCXNlbGVjdCBNRkRfU1lTQ09OCisJaGVscAor CSAgVGhpcyBvcHRpb24gc2VsZWN0cyBjb21tb24gY2xvY2sgaW5mcmFzdHJ1Y3R1cmUgZm9yIFpU RSBiYXNlZCBTb0NzLgorCSAgWW91IHdpbGwgbmVlZCB0byBlbmFibGUgb25lIG9yIG1vcmUgU29D IHNwZWNpZmljIGRyaXZlcnMgdG8gbWFrZSB1c2UKKwkgIG9mIHRoaXMuCisKKwkgIEVuYWJsZSB0 aGlzIGlmIHlvdSBhcmUgYnVpbGRpbmcgYSBrZXJuZWwgZm9yIGEgWlRFIGRlc2lnbmVkIGJvYXJk LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jbGsvenRlL01ha2VmaWxlIGIvZHJpdmVycy9jbGsvenRl L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjdkYjA3 MjkzMTY1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9jbGsvenRlL01ha2VmaWxlCkBAIC0w LDAgKzEsNSBAQAorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5CisKK29i ai0kKENPTkZJR19DT01NT05fQ0xLX1pURSkgKz0gY2xrLXp0ZS5vCisKK2Nsay16dGUteSArPSBj bGstengubyBwbGwtengubyBjbGstcmVnbWFwLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3p0 ZS9jbGstcmVnbWFwLmMgYi9kcml2ZXJzL2Nsay96dGUvY2xrLXJlZ21hcC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODAzMzJkYmE5N2Y2Ci0tLSAvZGV2L251bGwK KysrIGIvZHJpdmVycy9jbGsvenRlL2Nsay1yZWdtYXAuYwpAQCAtMCwwICsxLDMyIEBACisvLyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAy NiBTdGVmYW4gRMO2c2luZ2VyCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay1wcm92aWRlci5o PgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Cisj aW5jbHVkZSA8bGludXgvcmVnbWFwLmg+CisKKyNpbmNsdWRlICJjbGstenguaCIKKworc3RydWN0 IGNsa19odyAqenhfY2xrX3JlZ2lzdGVyX2dhdGUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg cmVnbWFwICpyZWdtYXAsCisJCQkJICAgIGNvbnN0IHN0cnVjdCB6eF9nYXRlX2Rlc2MgKmRlc2Ms CisJCQkJICAgIHN0cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xvY2tzKQoreworCXJldHVybiBFUlJf UFRSKC1FTk9ERVYpOworfQorCitzdHJ1Y3QgY2xrX2h3ICp6eF9jbGtfcmVnaXN0ZXJfZGl2aWRl cihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCByZWdtYXAgKnJlZ21hcCwKKwkJCQkgICAgICAg Y29uc3Qgc3RydWN0IHp4X2Rpdl9kZXNjICpkZXNjLAorCQkJCSAgICAgICBzdHJ1Y3QgY2xrX2h3 ICogY29uc3QgKmNsb2NrcykKK3sKKwlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKK30KKworc3Ry dWN0IGNsa19odyAqenhfY2xrX3JlZ2lzdGVyX211eChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCByZWdtYXAgKnJlZ21hcCwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgenhfbXV4X2Rlc2MgKmRlc2Ms CisJCQkJICAgc3RydWN0IGNsa19odyAqIGNvbnN0ICpjbG9ja3MpCit7CisJcmV0dXJuIEVSUl9Q VFIoLUVOT0RFVik7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay96dGUvY2xrLXp4LmMgYi9k cml2ZXJzL2Nsay96dGUvY2xrLXp4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5hZWYwZjdjNzUzZTYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2Nsay96dGUv Y2xrLXp4LmMKQEAgLTAsMCArMSwxOTIgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMi4wLW9ubHkKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjYgU3RlZmFuIETDtnNpbmdlcgor ICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGstcHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9j bGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgor I2luY2x1ZGUgPGxpbnV4L21mZC9zeXNjb24uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4K KworI2luY2x1ZGUgImNsay16eC5oIgorCitzdGF0aWMgc3RydWN0IGNsa19odyAqenhfY2xrX3Jl Z2lzdGVyX2ZpeGVkX2RpdihzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCQljb25zdCBzdHJ1Y3Qg enhfZml4ZWRfZGl2aWRlcl9kZXNjICpkZXNjLAorCQkJCQkJc3RydWN0IGNsa19odyAqIGNvbnN0 ICpjbG9ja3MpCit7CisJY29uc3Qgc3RydWN0IHp4X3BhcmVudF9kZXNjICpwID0gJmRlc2MtPnBh cmVudDsKKworCXN3aXRjaCAocC0+dHlwZSkgeworCWNhc2UgWlhfUEFSRU5UX0ZXOgorCQlyZXR1 cm4gZGV2bV9jbGtfaHdfcmVnaXN0ZXJfZml4ZWRfZmFjdG9yX2Z3bmFtZShkZXYsIE5VTEwsIGRl c2MtPm5hbWUsIHAtPmZ3X25hbWUsCisJCQkJCQkJCUNMS19TRVRfUkFURV9QQVJFTlQsIDEsIGRl c2MtPmRpdik7CisKKwljYXNlIFpYX1BBUkVOVF9JRDoKKwkJcmV0dXJuIGRldm1fY2xrX2h3X3Jl Z2lzdGVyX2ZpeGVkX2ZhY3Rvcl9wYXJlbnRfaHcoZGV2LCBkZXNjLT5uYW1lLCBjbG9ja3NbcC0+ aWRdLAorCQkJCQkJCQkgICBDTEtfU0VUX1JBVEVfUEFSRU5ULCAxLAorCQkJCQkJCQkgICBkZXNj LT5kaXYpOworCX0KKwlXQVJOX09OX09OQ0UoMSk7CisJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7 Cit9CisKK3N0YXRpYyBpbnQgenhfY2xrX3ZhbGlkYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IGRldmljZV9ub2RlICpvZl9ub2RlLAorCQkJICAgY29uc3Qgc3RydWN0IHp4X2Nsa19kYXRh ICpkYXRhKQoreworCWNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYyAqcGFyZW50czsKKwl1bnNp Z25lZCBpbnQgaSwgcCwgbnVtX3BhcmVudHM7CisJc3RydWN0IGNsayAqY2xrOworCisJLyoKKwkg KiBTYW5pdHkgY2hlY2s6IE1ha2Ugc3VyZSBhbGwgcGFyZW50cyBhcmUgdGhlcmUgYW5kIHdyaXRl IGEgY2xlYXIgbWVzc2FnZSByYXRoZXIgdGhhbgorCSAqIGxlYXZlIHBvdGVudGlhbCBvcnBoYW5z LgorCSAqCisJICogVGhpcyBjaGVjayBpcyB1bnVzdWFsIGluIGNsb2NrIGRyaXZlcnMuIEl0IGlz IGluIHRoaXMgZHJpdmVyIGJlY2F1c2UgdGhlIGNsb2NrIHRyZWUgaXMKKwkgKiBiYXNlZCBvbiBt YW51YWwgcmV2ZXJzZSBlbmdpbmVlcmluZyByYXRoZXIgdGhhbiBnZW5lcmF0ZWQgZnJvbSBhIFNv QyBkYXRhc2hlZXQuCisJICovCisJZm9yIChpID0gMDsgaSA8IGRhdGEtPm51bV9jbG9ja3M7ICsr aSkgeworCQlzd2l0Y2ggKGRhdGEtPmNsb2Nrc1tpXS50eXBlKSB7CisJCWNhc2UgWlhfQ0xPQ0tf UExMOgorCQkJcGFyZW50cyA9IGRhdGEtPmNsb2Nrc1tpXS5wbGwucGFyZW50czsKKwkJCW51bV9w YXJlbnRzID0gZGF0YS0+Y2xvY2tzW2ldLnBsbC5udW1fcGFyZW50czsKKwkJCWJyZWFrOworCisJ CWNhc2UgWlhfQ0xPQ0tfRklYRURfRElWOgorCQkJcGFyZW50cyA9ICZkYXRhLT5jbG9ja3NbaV0u Zml4ZWRfZGl2LnBhcmVudDsKKwkJCW51bV9wYXJlbnRzID0gMTsKKwkJCWJyZWFrOworCisJCWNh c2UgWlhfQ0xPQ0tfTVVYOgorCQkJcGFyZW50cyA9IGRhdGEtPmNsb2Nrc1tpXS5tdXgucGFyZW50 czsKKwkJCW51bV9wYXJlbnRzID0gZGF0YS0+Y2xvY2tzW2ldLm11eC5udW1fcGFyZW50czsKKwkJ CWJyZWFrOworCisJCWNhc2UgWlhfQ0xPQ0tfRElWOgorCQkJcGFyZW50cyA9ICZkYXRhLT5jbG9j a3NbaV0uZGl2LnBhcmVudDsKKwkJCW51bV9wYXJlbnRzID0gMTsKKwkJCWJyZWFrOworCisJCWNh c2UgWlhfQ0xPQ0tfR0FURToKKwkJCXBhcmVudHMgPSAmZGF0YS0+Y2xvY2tzW2ldLmdhdGUucGFy ZW50OworCQkJbnVtX3BhcmVudHMgPSAxOworCQkJYnJlYWs7CisKKwkJZGVmYXVsdDoKKwkJCXJl dHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCwgIkludmFsaWQgY2xvY2sgZW50cnkgJXVc biIsIGkpOworCQl9CisKKwkJZm9yIChwID0gMDsgcCA8IG51bV9wYXJlbnRzOyArK3ApIHsKKwkJ CXN3aXRjaCAocGFyZW50c1twXS50eXBlKSB7CisJCQljYXNlIFpYX1BBUkVOVF9GVzoKKwkJCQlj bGsgPSBvZl9jbGtfZ2V0X2J5X25hbWUob2Zfbm9kZSwgcGFyZW50c1twXS5md19uYW1lKTsKKwkJ CQlpZiAoSVNfRVJSKGNsaykpCisJCQkJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VS UihjbGspLAorCQkJCQkJCSAgICAgIklucHV0IGNsayAlcyBmYWlsdXJlXG4iLAorCQkJCQkJCSAg ICAgcGFyZW50c1twXS5md19uYW1lKTsKKwkJCQljbGtfcHV0KGNsayk7CisJCQkJYnJlYWs7CisK KwkJCWNhc2UgWlhfUEFSRU5UX0lEOgorCQkJCWlmIChwYXJlbnRzW3BdLmlkID49IGkpCisJCQkJ CXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgLUVJTlZBTCwKKwkJCQkJCQkgICAgICJDbG9jayAl dSBoYXMgcGFyZW50ICV1XG4iLAorCQkJCQkJCSAgICAgaSwgcGFyZW50c1twXS5pZCk7CisJCQkJ YnJlYWs7CisKKwkJCWRlZmF1bHQ6CisJCQkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCAtRUlO VkFMLAorCQkJCQkJICAgICAiQ2xvY2sgJXUgaGFzIHVuZXhwZWN0ZWQgcGFyZW50IG9mIHR5cGUg JXVcbiIsCisJCQkJCQkgICAgIGksIHBhcmVudHNbcF0udHlwZSk7CisJCQl9CisJCX0KKwl9CisK KwlyZXR1cm4gMDsKK30KKworaW50IHp4X2Nsa19jb21tb25fcHJvYmUoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGUsCisJCQljb25zdCBzdHJ1Y3QgenhfY2xr X2RhdGEgKmRhdGEpCit7CisJc3RydWN0IGNsa19od19vbmVjZWxsX2RhdGEgKmV4cG9ydHM7CisJ c3RydWN0IGNsa19odyAqKmNsb2NrczsKKwlzdHJ1Y3QgcmVnbWFwICptYXA7CisJdW5zaWduZWQg aW50IGk7CisJaW50IHJlczsKKworCXJlcyA9IHp4X2Nsa192YWxpZGF0ZShkZXYsIG9mX25vZGUs IGRhdGEpOworCWlmIChyZXMpCisJCXJldHVybiByZXM7CisKKwltYXAgPSBkZXZpY2Vfbm9kZV90 b19yZWdtYXAob2Zfbm9kZSk7CisJaWYgKElTX0VSUihtYXApKQorCQlyZXR1cm4gUFRSX0VSUiht YXApOworCisJY2xvY2tzID0gZGV2bV9rY2FsbG9jKGRldiwgZGF0YS0+bnVtX2Nsb2Nrcywgc2l6 ZW9mKCpjbG9ja3MpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNsb2NrcykKKwkJcmV0dXJuIC1FTk9N RU07CisKKwlpZiAoZGF0YS0+aW5pdCkgeworCQlyZXMgPSBkYXRhLT5pbml0KG1hcCk7CisJCWlm IChyZXMpCisJCQlyZXR1cm4gcmVzOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5udW1f Y2xvY2tzOyArK2kpIHsKKwkJc3RydWN0IGNsa19odyAqaHc7CisKKwkJc3dpdGNoIChkYXRhLT5j bG9ja3NbaV0udHlwZSkgeworCQljYXNlIFpYX0NMT0NLX1BMTDoKKwkJCWh3ID0genhfY2xrX3Jl Z2lzdGVyX3BsbChkZXYsIG1hcCwgJmRhdGEtPmNsb2Nrc1tpXS5wbGwsIGNsb2Nrcyk7CisJCQli cmVhazsKKworCQljYXNlIFpYX0NMT0NLX0ZJWEVEX0RJVjoKKwkJCWh3ID0genhfY2xrX3JlZ2lz dGVyX2ZpeGVkX2RpdihkZXYsICZkYXRhLT5jbG9ja3NbaV0uZml4ZWRfZGl2LCBjbG9ja3MpOwor CQkJYnJlYWs7CisKKwkJY2FzZSBaWF9DTE9DS19NVVg6CisJCQlodyA9IHp4X2Nsa19yZWdpc3Rl cl9tdXgoZGV2LCBtYXAsICZkYXRhLT5jbG9ja3NbaV0ubXV4LCBjbG9ja3MpOworCQkJYnJlYWs7 CisKKwkJY2FzZSBaWF9DTE9DS19ESVY6CisJCQlodyA9IHp4X2Nsa19yZWdpc3Rlcl9kaXZpZGVy KGRldiwgbWFwLCAmZGF0YS0+Y2xvY2tzW2ldLmRpdiwgY2xvY2tzKTsKKwkJCWJyZWFrOworCisJ CWNhc2UgWlhfQ0xPQ0tfR0FURToKKwkJCWh3ID0genhfY2xrX3JlZ2lzdGVyX2dhdGUoZGV2LCBt YXAsICZkYXRhLT5jbG9ja3NbaV0uZ2F0ZSwgY2xvY2tzKTsKKwkJCWJyZWFrOworCisJCWRlZmF1 bHQ6CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWlmIChJU19FUlIoaHcpKQorCQkJcmV0 dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGh3KSwgIkZhaWxlZCB0byByZWdpc3RlciBj bGsgJXVcbiIsIGkpOworCisJCWNsb2Nrc1tpXSA9IGh3OworCX0KKworCWV4cG9ydHMgPSBkZXZt X2t6YWxsb2MoZGV2LCBzdHJ1Y3Rfc2l6ZShleHBvcnRzLCBod3MsIGRhdGEtPm51bV9leHBvcnRz KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFleHBvcnRzKQorCQlyZXR1cm4gLUVOT01FTTsKKwlleHBv cnRzLT5udW0gPSBkYXRhLT5udW1fZXhwb3J0czsKKworCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5u dW1fZXhwb3J0czsgKytpKSB7CisJCWlmIChkYXRhLT5leHBvcnRzW2ldID49IGRhdGEtPm51bV9j bG9ja3MpCisJCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIC1FSU5WQUwsCisJCQkJCSAgICAg IkV4cG9ydCAldSBwb2ludHMgdG8gb3V0IG9mIHJhbmdlIGNsb2NrICV1XG4iLAorCQkJCQkgICAg IGksIGRhdGEtPmV4cG9ydHNbaV0pOworCisJCWV4cG9ydHMtPmh3c1tpXSA9IGNsb2Nrc1tkYXRh LT5leHBvcnRzW2ldXTsKKwl9CisKKwlkZXZtX2tmcmVlKGRldiwgY2xvY2tzKTsKKworCXJldHVy biBkZXZtX29mX2Nsa19hZGRfaHdfcHJvdmlkZXIoZGV2LCBvZl9jbGtfaHdfb25lY2VsbF9nZXQs IGV4cG9ydHMpOworfQorRVhQT1JUX1NZTUJPTF9OU19HUEwoenhfY2xrX2NvbW1vbl9wcm9iZSwg IlpURV9DTEsiKTsKKworTU9EVUxFX0FVVEhPUigiU3RlZmFuIETDtnNpbmdlciA8c3RlZmFuZG9l c2luZ2VyQGdtYWlsLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiWlRFIGNvbW1vbiBjbG9j ayBkcml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Y2xrL3p0ZS9jbGstenguaCBiL2RyaXZlcnMvY2xrL3p0ZS9jbGstenguaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjgxMzcxODVmNDk3ZgotLS0gL2Rldi9udWxsCisr KyBiL2RyaXZlcnMvY2xrL3p0ZS9jbGstenguaApAQCAtMCwwICsxLDEzNyBAQAorLyogU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLworLyoKKyAqIENvcHlyaWdodCAoQykg MjAyNiBTdGVmYW4gRMO2c2luZ2VyCisgKi8KKworI2lmbmRlZiBfX0RSVl9DTEtfWlhfSAorI2Rl ZmluZSBfX0RSVl9DTEtfWlhfSAorCisjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+Cisj aW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFw Lmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworI2RlZmluZSBDTEtfWlhfUExMX1BSRVBB UkVfSVNfRU5BQkxFCTEKKyNkZWZpbmUgQ0xLX1pYX01BWF9QQVJFTlRTCQk4CisKK2VudW0genhf cGFyZW50X3R5cGUgeworCVpYX1BBUkVOVF9GVywKKwlaWF9QQVJFTlRfSUQsCit9OworCitzdHJ1 Y3QgenhfcGFyZW50X2Rlc2MgeworCWVudW0genhfcGFyZW50X3R5cGUJCXR5cGU7CisJdW5pb24g eworCQljb25zdCBjaGFyCQkqZndfbmFtZTsKKwkJdW5zaWduZWQgaW50CQlpZDsKKwl9OworfTsK KworI2RlZmluZSBQQVJFTlRfRlcoX25hbWUpIHsgLnR5cGUgPSBaWF9QQVJFTlRfRlcsIC5md19u YW1lID0gKF9uYW1lKSB9CisKKyNkZWZpbmUgUEFSRU5UX0lEKF9pZCkgeyAudHlwZSA9IFpYX1BB UkVOVF9JRCwgLmlkID0gKF9pZCkgfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjbGtfcGFyZW50 X2RhdGEgenhfZ2V0X3BhcmVudChjb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MgKnAsCisJCQkJ CQkgICBzdHJ1Y3QgY2xrX2h3ICogY29uc3QgKmNsb2NrcykKK3sKKwlzdHJ1Y3QgY2xrX3BhcmVu dF9kYXRhIHJldCA9IHt9OworCisJc3dpdGNoIChwLT50eXBlKSB7CisJY2FzZSBaWF9QQVJFTlRf Rlc6CisJCXJldC5md19uYW1lID0gcC0+ZndfbmFtZTsKKwkJcmV0LmluZGV4ID0gLTE7CisJCXJl dHVybiByZXQ7CisKKwljYXNlIFpYX1BBUkVOVF9JRDoKKwkJcmV0Lmh3ID0gY2xvY2tzW3AtPmlk XTsKKwkJcmV0LmluZGV4ID0gLTE7CisJCXJldHVybiByZXQ7CisJfQorCisJV0FSTl9PTl9PTkNF KDEpOworCXJldHVybiByZXQ7Cit9CisKK3N0cnVjdCB6eF9wbGxfZGVzYyB7CisJY29uc3QgY2hh cgkJCSpuYW1lOworCWNvbnN0IHN0cnVjdCB6eF9wYXJlbnRfZGVzYwkqcGFyZW50czsKKwl1bnNp Z25lZCBpbnQJCQludW1fcGFyZW50czsKKwl1bnNpZ25lZCBsb25nCQkJcmF0ZTsKKwl1MTYJCQkJ cmVnOworCXUxNgkJCQlmbGFnczsKK307CisKK3N0cnVjdCB6eF9maXhlZF9kaXZpZGVyX2Rlc2Mg eworCWNvbnN0IGNoYXIJCQkqbmFtZTsKKwlzdHJ1Y3QgenhfcGFyZW50X2Rlc2MJCXBhcmVudDsK Kwl1bnNpZ25lZCBpbnQJCQlkaXY7Cit9OworCitzdHJ1Y3QgenhfbXV4X2Rlc2MgeworCWNvbnN0 IGNoYXIJCQkqbmFtZTsKKwljb25zdCBzdHJ1Y3QgenhfcGFyZW50X2Rlc2MJKnBhcmVudHM7CisJ dW5zaWduZWQgaW50CQkJbnVtX3BhcmVudHM7CisJdTE2CQkJCXJlZzsKKwl1OAkJCQlzaGlmdCwg c2l6ZTsKK307CisKK3N0cnVjdCB6eF9kaXZfZGVzYyB7CisJY29uc3QgY2hhcgkJCSpuYW1lOwor CXN0cnVjdCB6eF9wYXJlbnRfZGVzYwkJcGFyZW50OworCXUxNgkJCQlyZWc7CisJdTgJCQkJc2hp ZnQsIHNpemU7Cit9OworCitzdHJ1Y3QgenhfZ2F0ZV9kZXNjIHsKKwljb25zdCBjaGFyCQkJKm5h bWU7CisJc3RydWN0IHp4X3BhcmVudF9kZXNjCQlwYXJlbnQ7CisJdW5zaWduZWQgbG9uZwkJCWZs YWdzOworCXUxNgkJCQlyZWc7CisJdTgJCQkJc2hpZnQ7Cit9OworCitlbnVtIHp4X2Nsb2NrX3R5 cGUgeworCVpYX0NMT0NLX0lOVkFMSUQgPSAwLAorCVpYX0NMT0NLX1BMTCwKKwlaWF9DTE9DS19G SVhFRF9ESVYsCisJWlhfQ0xPQ0tfTVVYLAorCVpYX0NMT0NLX0RJViwKKwlaWF9DTE9DS19HQVRF LAorfTsKKworc3RydWN0IHp4X2Nsb2NrIHsKKwllbnVtIHp4X2Nsb2NrX3R5cGUgdHlwZTsKKwl1 bmlvbiB7CisJCXN0cnVjdCB6eF9wbGxfZGVzYyBwbGw7CisJCXN0cnVjdCB6eF9maXhlZF9kaXZp ZGVyX2Rlc2MgZml4ZWRfZGl2OworCQlzdHJ1Y3QgenhfbXV4X2Rlc2MgbXV4OworCQlzdHJ1Y3Qg enhfZGl2X2Rlc2MgZGl2OworCQlzdHJ1Y3QgenhfZ2F0ZV9kZXNjIGdhdGU7CisJfTsKK307CisK K3N0cnVjdCBjbGtfaHcgKnp4X2Nsa19yZWdpc3Rlcl9wbGwoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgcmVnbWFwICpyZWdtYXAsCisJCQkJICAgY29uc3Qgc3RydWN0IHp4X3BsbF9kZXNjICpk ZXNjLAorCQkJCSAgIHN0cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xvY2tzKTsKK3N0cnVjdCBjbGtf aHcgKnp4X2Nsa19yZWdpc3Rlcl9tdXgoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcmVnbWFw ICpyZWdtYXAsCisJCQkJICAgY29uc3Qgc3RydWN0IHp4X211eF9kZXNjICpkZXNjLAorCQkJCSAg IHN0cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xvY2tzKTsKK3N0cnVjdCBjbGtfaHcgKnp4X2Nsa19y ZWdpc3Rlcl9kaXZpZGVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlZ21hcCAqcmVnbWFw LAorCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgenhfZGl2X2Rlc2MgKmRlc2MsCisJCQkJICAgICAg IHN0cnVjdCBjbGtfaHcgKiBjb25zdCAqY2xvY2tzKTsKK3N0cnVjdCBjbGtfaHcgKnp4X2Nsa19y ZWdpc3Rlcl9nYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlZ21hcCAqcmVnbWFwLAor CQkJCSAgICBjb25zdCBzdHJ1Y3QgenhfZ2F0ZV9kZXNjICpkZXNjLAorCQkJCSAgICBzdHJ1Y3Qg Y2xrX2h3ICogY29uc3QgKmNsb2Nrcyk7CisKK3N0cnVjdCB6eF9jbGtfZGF0YSB7CisJaW50ICgq aW5pdCkoc3RydWN0IHJlZ21hcCAqbWFwKTsKKwljb25zdCBzdHJ1Y3QgenhfY2xvY2sgKmNsb2Nr czsKKwl1bnNpZ25lZCBpbnQgbnVtX2Nsb2NrczsKKwljb25zdCB1bnNpZ25lZCBpbnQgKmV4cG9y dHM7CisJdW5zaWduZWQgaW50IG51bV9leHBvcnRzOworfTsKKworaW50IHp4X2Nsa19jb21tb25f cHJvYmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm9mX25vZGUsCisJ CQljb25zdCBzdHJ1Y3QgenhfY2xrX2RhdGEgKmRhdGEpOworCisjZW5kaWYgLyogX19EUlZfQ0xL X1pYX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3p0ZS9wbGwtenguYyBiL2RyaXZlcnMv Y2xrL3p0ZS9wbGwtenguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LmZjNzZjNjUyNGExNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvY2xrL3p0ZS9wbGwtengu YwpAQCAtMCwwICsxLDE4IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v bmx5CisvKgorICogQ29weXJpZ2h0IChDKSAyMDI2IFN0ZWZhbiBEw7ZzaW5nZXIKKyAqLworCisj aW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+ CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KKwor I2luY2x1ZGUgImNsay16eC5oIgorCitzdHJ1Y3QgY2xrX2h3ICp6eF9jbGtfcmVnaXN0ZXJfcGxs KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJlZ21hcCAqcmVnbWFwLAorCQkJCSAgIGNvbnN0 IHN0cnVjdCB6eF9wbGxfZGVzYyAqZGVzYywKKwkJCQkgICBzdHJ1Y3QgY2xrX2h3ICogY29uc3Qg KmNsb2NrcykKK3sKKwlyZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKK30KCi0tIAoyLjU1LjAKCgot LSAKbGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwczovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK