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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20106C10F13 for ; Tue, 16 Apr 2019 09:04:51 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id DC47E20645 for ; Tue, 16 Apr 2019 09:04:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="d+e/wDgT"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="aI39jw3H" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DC47E20645 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To:MIME-Version: Date:Message-ID:From:To:Subject:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6bZMNoKAeKYT9cEZU+tGnuLRtep1Q0WqUES7JGgmtss=; b=d+e/wDgT3eFH6i nwjSezL7SSlVAB6wEQVgfNJ0fZZTSl46kE2ptnTrA0MeZJhP3TQgkacHJk09fJ0XlPsqnEwnrO5u4 me2tpW7miPpILbBzjhQYqTu9rVA/lOjMrsivEMRyyr9Q/WMZIrjMAmhrLQH3krpfRt0suQi8W6NTL c7FeIdydnL0HCEhwwkCSvsBjTpQyXU9vXiARvlo1L9beAZUo6XSNfkHl6qe5dDSnEbj2Ptbjx8p5F tFJH3vCBdCOx23JDyWdm7ywNV0CPEt3DTcM8EvhJ3lbOtjdohCsZVa4cJWmHEmwC5mf/+m71wvEy5 NlOoslhEc3Sqz/J2GcXg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hGK1E-0006zd-Ri; Tue, 16 Apr 2019 09:04:44 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hGK19-0006xl-H2 for linux-arm-kernel@lists.infradead.org; Tue, 16 Apr 2019 09:04:42 +0000 Received: from epcas1p2.samsung.com (unknown [182.195.41.46]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20190416090435epoutp02b4d9a4bd92f1e6603ff6921183983c31~V6QoCUu7O1451314513epoutp020 for ; Tue, 16 Apr 2019 09:04:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20190416090435epoutp02b4d9a4bd92f1e6603ff6921183983c31~V6QoCUu7O1451314513epoutp020 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1555405475; bh=CgtUr+o3MhaT+NC/iPo8yHdYcpArJoSK74fKojXvHQQ=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=aI39jw3HbBnFDadSoAhr4q2e5YCx8ttPj+xdJmNxIFeTMmFCqx4ePeQa6dW2HKe6/ m0zMeyMe4aewpfJaOG+yA9S53cHUrb3S3r+IdR7+n4NBq4RQIdHDGb7RnWmf9BWo4J BNyzhDP0ZQqt63CK0k8HjiDcrKSNMmg0s7Ft2Ku8= Received: from epsmges1p5.samsung.com (unknown [182.195.40.154]) by epcas1p2.samsung.com (KnoxPortal) with ESMTP id 20190416090431epcas1p2054b278298c2c4a7fa8a0a6ad6ab4f37~V6QkjIvHX2754727547epcas1p23; Tue, 16 Apr 2019 09:04:31 +0000 (GMT) Received: from epcas1p4.samsung.com ( [182.195.41.48]) by epsmges1p5.samsung.com (Symantec Messaging Gateway) with SMTP id 96.66.04108.F9A95BC5; Tue, 16 Apr 2019 18:04:31 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas1p1.samsung.com (KnoxPortal) with ESMTPA id 20190416090431epcas1p1379a692b918a12b5171ae3439d71cc3c~V6Qj5Sba50167201672epcas1p1k; Tue, 16 Apr 2019 09:04:31 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20190416090431epsmtrp2077ac0ce51ef84288e38bd2e67142e08~V6Qj4aE8Y1355013550epsmtrp2k; Tue, 16 Apr 2019 09:04:31 +0000 (GMT) X-AuditID: b6c32a39-89fff7000000100c-85-5cb59a9fb87e Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 71.74.03662.E9A95BC5; Tue, 16 Apr 2019 18:04:30 +0900 (KST) Received: from [10.113.221.102] (unknown [10.113.221.102]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20190416090430epsmtip148db3229be5c64e3b2bbb82c2d722826~V6Qjquoar2600126001epsmtip1X; Tue, 16 Apr 2019 09:04:30 +0000 (GMT) Subject: Re: [PATCH v2 4/4] devfreq: add mediatek cci devfreq To: "Andrew-sh.Cheng" , MyungJoo Ham , Kyungmin Park , Rob Herring , Mark Rutland , Matthias Brugger , "Rafael J. Wysocki" , Viresh Kumar From: Chanwoo Choi Organization: Samsung Electronics Message-ID: Date: Tue, 16 Apr 2019 18:05:25 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <1553841972-19737-5-git-send-email-andrew-sh.cheng@mediatek.com> Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLJsWRmVeSWpSXmKPExsWy7bCmge78WVtjDHbP1bTYvv4Fq8X8I+dY Lb7d+c1kcbbpDbvFpsfXWC0u75rDZnG5+SKjxefeI4wWS69fZLJoajG2uN24gs3izOlLrBat e4+wW0y/K2Sx8auHA7/HmnlrGD12zrrL7rFpVSebx51re9g8Ni+p92g5uZ/FY8vVdhaPvi2r GD0+b5IL4IzKtslITUxJLVJIzUvOT8nMS7dV8g6Od443NTMw1DW0tDBXUshLzE21VXLxCdB1 y8wBOl9JoSwxpxQoFJBYXKykb2dTlF9akqqQkV9cYquUWpCSU2BZoFecmFtcmpeul5yfa2Vo YGBkClSYkJ3xf08PY8G1oIrL7QYNjE1OXYycHBICJhKz/p9m6WLk4hAS2MEo8WVVMzNIQkjg E6PE1ZPREIlvjBK3r5xggen4unMHK0RiL6PExIYfbBDOe0aJ6ee2grULC9hKzHz+gBEkISJw mUniyvbzbCAJZoFbjBKv94PZbAJaEvtf3ACz+QUUJa7+eMwIYvMK2Enc6v3ICmKzCKhKtM+Z AGaLCkRI3D+2gRWiRlDi5MwnYCdxCvhKbJ/1hQlivrjErSfzoWx5ieats5lBjpAQOMYu8ebn HVaIH1wk3hy/xgxhC0u8Or6FHcKWkvj8bi8bhF0tsfLkETaI5g5GiS37L0A1G0vsXzoZaAMH 0AZNifW79CGW8Um8+9rDChKWEOCV6GgTgqhWlrj84C4ThC0psbi9E2q8h8TybxsZJzAqzkLy ziwkL8xC8sIshGULGFlWMYqlFhTnpqcWGxaYIsf2JkZw0tay3MF47JzPIUYBDkYlHl6Oni0x QqyJZcWVuYcYJTiYlUR4HVOAQrwpiZVVqUX58UWlOanFhxhNgaE9kVlKNDkfmFHySuINTY2M jY0tTAzNTA0NlcR51zs4xwgJpCeWpGanphakFsH0MXFwSjUwHt1fkPO3XtAlqv1Qnc3Jbdc5 fVRXruu2PXrmwinG+MdR5Szsz/6mdK3tu5N7+fiMCVNXGO5WOOCp+uvftCpfnpUdj8SWuBh+ bp+099TfDdJB/ns27eVbfVqkVjlqhansNKd3z4z7l6wJfTVXIdbc1+LaDlm2jmcTbzOwtu+M rr28wv+t6xIOfSWW4oxEQy3mouJEACev1jrwAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrBIsWRmVeSWpSXmKPExsWy7bCSnO68WVtjDE6etLHYvv4Fq8X8I+dY Lb7d+c1kcbbpDbvFpsfXWC0u75rDZnG5+SKjxefeI4wWS69fZLJoajG2uN24gs3izOlLrBat e4+wW0y/K2Sx8auHA7/HmnlrGD12zrrL7rFpVSebx51re9g8Ni+p92g5uZ/FY8vVdhaPvi2r GD0+b5IL4IzisklJzcksSy3St0vgyvi/p4ex4FpQxeV2gwbGJqcuRk4OCQETia87d7B2MXJx CAnsZpRYtucEK0RCUmLaxaPMXYwcQLawxOHDxRA1bxkl2nd8ZQSpERawlZj5/AEjSEJE4DqT xKu7R1lAHGaBW4wSm5qPsINUCQk8ZpTY/cYVxGYT0JLY/+IGG4jNL6AocfXHY7BJvAJ2Erd6 P4JtZhFQlWifMwHMFhWIkDjzfgULRI2gxMmZT8BsTgFfie2zvjCB2MwC6hJ/5l1ihrDFJW49 mQ8Vl5do3jqbeQKj8Cwk7bOQtMxC0jILScsCRpZVjJKpBcW56bnFhgVGeanlesWJucWleel6 yfm5mxjB8aultYPxxIn4Q4wCHIxKPLwJfVtihFgTy4orcw8xSnAwK4nwOqYAhXhTEiurUovy 44tKc1KLDzFKc7AoifPK5x+LFBJITyxJzU5NLUgtgskycXBKNTCK/zLu82GQFj/huynV/e7S Xe++H38guODZwtgvs5hlXSbOesnSl7Coff7WdSpi3f/STBfPPi18X2Kt5bmDX4w+X/Pb21fV dEld+k++B5/TJC2pSQr7qrmaJp9dwPI4NCDIzMdKe39wgJR7kEruROaFS1Va6yI6mS8ueeYg uePf7tfmRz+onpZWYinOSDTUYi4qTgQAoRwpUNsCAAA= X-CMS-MailID: 20190416090431epcas1p1379a692b918a12b5171ae3439d71cc3c X-Msg-Generator: CA CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20190329064635epcas2p4e6120f002d4e535bb5b551224fccd83f References: <1553841972-19737-1-git-send-email-andrew-sh.cheng@mediatek.com> <1553841972-19737-5-git-send-email-andrew-sh.cheng@mediatek.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190416_020440_087309_091C06DF X-CRM114-Status: GOOD ( 32.59 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, srv_heupstream@mediatek.com, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, fan.chen@mediatek.com, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQW5kcmV3LXNoLkNoZW5nLAoKUGxlYXNlIGFkZCB0aGUgZHQtYmluZGluZyBkb2N1bWVudGF0 aW9uLgoKT24gMTkuIDMuIDI5LiDsmKTtm4QgMzo0NiwgQW5kcmV3LXNoLkNoZW5nIHdyb3RlOgo+ IFRoaXMgYWRkcyBhIGRldmZyZXEgZHJpdmVyIGZvciB0aGUgQ2FjaGUgQ29oZXJlbnQgSW50ZXJj b25uZWN0IChDQ0kpCj4gb2YgdGhlIE1lZGlhdGVrIE1UODE4My4KPiAKPiBPbiB0aGUgTVQ4MTgz IHRoZSBDQ0kgaXMgc3VwcGxpZWQgYnkgdGhlIHNhbWUgcmVndWxhdG9yIGFzIHRoZSBMSVRUTEUK PiBjb3Jlcy4gVGhlIGRyaXZlciBpcyBub3RpZmllZCB3aGVuIHRoZSByZWd1bGF0b3Igdm9sdGFn ZSBjaGFuZ2VzCj4gKGRyaXZlbiBieSBjcHVmcmVxKSBhbmQgYWRqdXN0cyB0aGUgQ0NJIGZyZXF1 ZW5jeSB0byB0aGUgbWF4aW11bQo+IHBvc3NpYmxlIHZhbHVlLgo+IAo+IFNpZ25lZC1vZmYtYnk6 IEFuZHJldy1zaC5DaGVuZyA8YW5kcmV3LXNoLmNoZW5nQG1lZGlhdGVrLmNvbT4KPiAtLS0KPiAg ZHJpdmVycy9kZXZmcmVxL0tjb25maWcgICAgICAgICAgICAgIHwgIDEwICsrCj4gIGRyaXZlcnMv ZGV2ZnJlcS9NYWtlZmlsZSAgICAgICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvZGV2ZnJlcS9t dDgxODMtY2NpLWRldmZyZXEuYyB8IDIzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDI0NiBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2RldmZyZXEvbXQ4MTgzLWNjaS1kZXZmcmVxLmMKPiAKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9kZXZmcmVxL0tjb25maWcgYi9kcml2ZXJzL2RldmZyZXEvS2NvbmZpZwo+ IGluZGV4IDZhMTcyZDMuLmRhMmY4ZWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9kZXZmcmVxL0tj b25maWcKPiArKysgYi9kcml2ZXJzL2RldmZyZXEvS2NvbmZpZwo+IEBAIC05MSw2ICs5MSwxNiBA QCBjb25maWcgQVJNX0VYWU5PU19CVVNfREVWRlJFUQo+ICAJICBhbmQgYWRqdXN0cyB0aGUgb3Bl cmF0aW5nIGZyZXF1ZW5jaWVzIGFuZCB2b2x0YWdlcyB3aXRoIE9QUCBzdXBwb3J0Lgo+ICAJICBU aGlzIGRvZXMgbm90IHlldCBvcGVyYXRlIHdpdGggb3B0aW1hbCB2b2x0YWdlcy4KPiAgCj4gK2Nv bmZpZyBBUk1fTVQ4MTgzX0NDSV9ERVZGUkVRCj4gKwl0cmlzdGF0ZSAiTVQ4MTgzIENDSSBERVZG UkVRIERyaXZlciIKPiArCWRlcGVuZHMgb24gQVJNX01FRElBVEVLX0NQVUZSRVEKPiArCWhlbHAK PiArCQlUaGlzIGFkZHMgYSBkZXZmcmVxIGRyaXZlciBmb3IgQ2FjaGUgQ29oZXJlbnQgSW50ZXJj b25uZWN0Cj4gKwkJb2YgTWVkaWF0ZWsgTVQ4MTgzLCB3aGljaCBpcyBzaGFyZWQgdGhlIHNhbWUg cmVndWxhdG9yCj4gKwkJd2l0aCBjcHUgY2x1c3Rlci4KPiArCQlJdCBjYW4gdHJhY2sgYnVjayB2 b2x0YWdlIGFuZCB1cGRhdGUgYSBwcm9wZXIgY2NpIGZyZXF1ZW5jeS4KPiArCQlVc2Ugbm90aWZp Y2F0aW9uIHRvIGdldCByZWd1bGF0b3Igc3RhdHVzLgo+ICsKPiAgY29uZmlnIEFSTV9URUdSQV9E RVZGUkVRCj4gIAl0cmlzdGF0ZSAiVGVncmEgREVWRlJFUSBEcml2ZXIiCj4gIAlkZXBlbmRzIG9u IEFSQ0hfVEVHUkFfMTI0X1NPQwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RldmZyZXEvTWFrZWZp bGUgYi9kcml2ZXJzL2RldmZyZXEvTWFrZWZpbGUKPiBpbmRleCAzMmI4ZDRkLi44MTdkZGU3IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZGV2ZnJlcS9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZGV2 ZnJlcS9NYWtlZmlsZQo+IEBAIC05LDYgKzksNyBAQCBvYmotJChDT05GSUdfREVWRlJFUV9HT1Zf UEFTU0lWRSkJKz0gZ292ZXJub3JfcGFzc2l2ZS5vCj4gIAo+ICAjIERFVkZSRVEgRHJpdmVycwo+ ICBvYmotJChDT05GSUdfQVJNX0VYWU5PU19CVVNfREVWRlJFUSkJKz0gZXh5bm9zLWJ1cy5vCj4g K29iai0kKENPTkZJR19BUk1fTVQ4MTgzX0NDSV9ERVZGUkVRKSAgICArPSBtdDgxODMtY2NpLWRl dmZyZXEubwo+ICBvYmotJChDT05GSUdfQVJNX1JLMzM5OV9ETUNfREVWRlJFUSkJKz0gcmszMzk5 X2RtYy5vCj4gIG9iai0kKENPTkZJR19BUk1fVEVHUkFfREVWRlJFUSkJCSs9IHRlZ3JhLWRldmZy ZXEubwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kZXZmcmVxL210ODE4My1jY2ktZGV2ZnJl cS5jIGIvZHJpdmVycy9kZXZmcmVxL210ODE4My1jY2ktZGV2ZnJlcS5jCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi5hZjgyZDJlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBi L2RyaXZlcnMvZGV2ZnJlcS9tdDgxODMtY2NpLWRldmZyZXEuYwo+IEBAIC0wLDAgKzEsMjM1IEBA Cj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gKy8qCj4gKyAqIENvcHly aWdodCAoYykgMjAxOSBNZWRpYVRlayBJbmMuCgpZb3UgY2FuIGFkZCB0aGUgYXV0aG9yIGluZm9y bWF0aW9uIHVuZGVyIGNvcHlyaWdodCBpbmZvcm1hdGlvbi4KCj4gKyAqLwo+ICsKPiArI2luY2x1 ZGUgPGxpbnV4L2Nsay5oPgo+ICsjaW5jbHVkZSA8bGludXgvZGV2ZnJlcS5oPgo+ICsjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZi5oPgo+ICsjaW5jbHVkZSA8 bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29u c3VtZXIuaD4KPiArCj4gKyNpbmNsdWRlICJnb3Zlcm5vci5oIgo+ICsKPiArc3RydWN0IGNjaV9k ZXZmcmVxIHsKPiArCXN0cnVjdCBkZXZmcmVxCQkqZGV2ZnJlcTsKPiArCXN0cnVjdCByZWd1bGF0 b3IJKnByb2NfcmVnOwo+ICsJdW5zaWduZWQgbG9uZyAgICAgICAgICAgcHJvY19yZWdfdVY7Cj4g KwlzdHJ1Y3QgY2xrCQkqY2NpX2NsazsKPiArCXN0cnVjdCBub3RpZmllcl9ibG9jawluYjsKCkp1 c3QgdXNlIHRoZSBzcGFjZSBpbnN0ZWFkIG9mIHRhYiBhcyBmb2xsb3dpbmc6CgoJc3RydWN0IGRl dmZyZXEgKmRldmZyZXE7CglzdHJ1Y3QgcmVndWxhdG9yICpwcm9jX3JlZzsKCXVuc2lnbmVkIGxv bmcgcHJvY19yZWdfdVY7CglzdHJ1Y3QgY2xrICpjY2lfY2xrOwoJc3RydWN0IG5vdGlmaWVyX2Js b2NrIG5iOwoKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQgY2NpX2RldmZyZXFfcmVndWxhdG9yX25v dGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCj4gKwkJCQkJICB1bnNpZ25lZCBsb25n IHZhbCwgdm9pZCAqZGF0YSkKPiArewo+ICsJc3RydWN0IGNjaV9kZXZmcmVxICpjY2lfZGYgPQo+ ICsJCWNvbnRhaW5lcl9vZihuYiwgc3RydWN0IGNjaV9kZXZmcmVxLCBuYik7Cj4gKwo+ICsJLyog ZGVhbCB3aXRoIHJlZHVjZSBmcmVxdWVuY3kgKi8KPiArCWlmICh2YWwgJiBSRUdVTEFUT1JfRVZF TlRfUFJFX1ZPTFRBR0VfQ0hBTkdFKSB7Cj4gKwkJc3RydWN0IHByZV92b2x0YWdlX2NoYW5nZV9k YXRhICpwdmNfZGF0YSA9IGRhdGE7Cj4gKwo+ICsJCWlmIChwdmNfZGF0YS0+bWluX3VWIDwgcHZj X2RhdGEtPm9sZF91Vikgewo+ICsJCQljY2lfZGYtPnByb2NfcmVnX3VWID0KPiArCQkJCSh1bnNp Z25lZCBsb25nKShwdmNfZGF0YS0+bWluX3VWKTsKPiArCQkJbXV0ZXhfbG9jaygmY2NpX2RmLT5k ZXZmcmVxLT5sb2NrKTsKPiArCQkJdXBkYXRlX2RldmZyZXEoY2NpX2RmLT5kZXZmcmVxKTsKClBs ZWFzZSBoYW5kbGUgdGhlIHJldHVybiB2YWx1ZSBvZiB1cGRhdGVfZGV2ZnJlcSgpIGZvciBleGNl cHRpb24gaGFuZGxpbmcuCgo+ICsJCQltdXRleF91bmxvY2soJmNjaV9kZi0+ZGV2ZnJlcS0+bG9j ayk7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWlmICgodmFsICYgUkVHVUxBVE9SX0VWRU5UX0FCT1JU X1ZPTFRBR0VfQ0hBTkdFKSAmJgoKaWYgLT4gZWxzZSBpZgoKQXQgdGhlIHNhbWUgdGltZSwgcmVj ZWl2ZXMgb25seSBvbmUgbm90aWZpY2F0aW9uLgpJdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNoZWNr IHRoZSB0d28gaWYgc3RhdGVtZW50IGFsd2F5cywgLgoKCj4gKwkgICAgKCh1bnNpZ25lZCBsb25n KWRhdGEgPiBjY2lfZGYtPnByb2NfcmVnX3VWKSkgewo+ICsJCWNjaV9kZi0+cHJvY19yZWdfdVYg PSAodW5zaWduZWQgbG9uZylkYXRhOwo+ICsJCW11dGV4X2xvY2soJmNjaV9kZi0+ZGV2ZnJlcS0+ bG9jayk7Cj4gKwkJdXBkYXRlX2RldmZyZXEoY2NpX2RmLT5kZXZmcmVxKTsKCmRpdHRvLiBQbGVh c2UgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBvZiB1cGRhdGVfZGV2ZnJlcS4KCj4gKwkJbXV0ZXhf dW5sb2NrKCZjY2lfZGYtPmRldmZyZXEtPmxvY2spOwo+ICsJfQo+ICsKPiArCS8qIGRlYWwgd2l0 aCBpbmNyZWFzZSBmcmVxdWVuY3kgKi8KPiArCWlmICgodmFsICYgUkVHVUxBVE9SX0VWRU5UX1ZP TFRBR0VfQ0hBTkdFKSAmJgoKZGl0dG8uCmlmIC0+IGVsc2UgaWYKCkF0IHRoZSBzYW1lIHRpbWUs IHJlY2VpdmVzIG9ubHkgb25lIG5vdGlmaWNhdGlvbi4KSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBj aGVjayB0aGUgdHdvIGlmIHN0YXRlbWVudCBhbHdheXMsIC4KCgo+ICsJICAgIChjY2lfZGYtPnBy b2NfcmVnX3VWIDwgKHVuc2lnbmVkIGxvbmcpZGF0YSkpIHsKPiArCQljY2lfZGYtPnByb2NfcmVn X3VWID0gKHVuc2lnbmVkIGxvbmcpZGF0YTsKPiArCQltdXRleF9sb2NrKCZjY2lfZGYtPmRldmZy ZXEtPmxvY2spOwo+ICsJCXVwZGF0ZV9kZXZmcmVxKGNjaV9kZi0+ZGV2ZnJlcSk7CgpkaXR0by4g UGxlYXNlIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgdXBkYXRlX2RldmZyZXEuCgo+ICsJCW11 dGV4X3VubG9jaygmY2NpX2RmLT5kZXZmcmVxLT5sb2NrKTsKPiArCX0KPiArCj4gKwlyZXR1cm4g MDsKPiArfQo+ICsKPiArc3RhdGljIGludCBtdGtfY2NpX2dvdmVybm9yX2dldF90YXJnZXQoc3Ry dWN0IGRldmZyZXEgKmRldmZyZXEsCj4gKwkJCQkgICAgICAgdW5zaWduZWQgbG9uZyAqZnJlcSkK PiArewo+ICsJc3RydWN0IGNjaV9kZXZmcmVxICpjY2lfZGY7Cj4gKwlzdHJ1Y3QgZGV2X3BtX29w cCAqb3BwOwo+ICsKPiArCWNjaV9kZiA9IGRldl9nZXRfZHJ2ZGF0YShkZXZmcmVxLT5kZXYucGFy ZW50KTsKPiArCj4gKwkvKiBmaW5kIGF2YWlsYWJsZSBmcmVxdWVuY3kgKi8KPiArCW9wcCA9IGRl dl9wbV9vcHBfZmluZF9tYXhfZnJlcV9ieV92b2x0KGRldmZyZXEtPmRldi5wYXJlbnQsCj4gKwkJ CQkJCSBjY2lfZGYtPnByb2NfcmVnX3VWKTsKPiArCSpmcmVxID0gZGV2X3BtX29wcF9nZXRfZnJl cShvcHApOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG10a19jY2lf Z292ZXJub3JfZXZlbnRfaGFuZGxlcihzdHJ1Y3QgZGV2ZnJlcSAqZGV2ZnJlcSwKPiArCQkJCQkg IHVuc2lnbmVkIGludCBldmVudCwgdm9pZCAqZGF0YSkKPiArewo+ICsJc3RydWN0IGNjaV9kZXZm cmVxICpjY2lfZGY7Cj4gKwlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iOwo+ICsKPiArCWNjaV9k ZiA9IGRldl9nZXRfZHJ2ZGF0YShkZXZmcmVxLT5kZXYucGFyZW50KTsKPiArCW5iID0gJmNjaV9k Zi0+bmI7Cj4gKwo+ICsJc3dpdGNoIChldmVudCkgewo+ICsJY2FzZSBERVZGUkVRX0dPVl9TVEFS VDoKPiArCWNhc2UgREVWRlJFUV9HT1ZfUkVTVU1FOgo+ICsJCW5iLT5ub3RpZmllcl9jYWxsID0g Y2NpX2RldmZyZXFfcmVndWxhdG9yX25vdGlmaWVyOwo+ICsJCXJlZ3VsYXRvcl9yZWdpc3Rlcl9u b3RpZmllcihjY2lfZGYtPnByb2NfcmVnLAo+ICsJCQkJCSAgICBuYik7CgpQbGVhc2UgY2hlY2sg dGhlIHJldHVybiB2YWx1ZSBvZiByZWd1bGF0b3JfcmVnaXN0ZXJfbm90aWZpZXIKaW4gb3JkZXIg dG8gaGFuZGxlIHRoZSBleGNlcHRpb24gaGFuZGxpbmcuCgoKPiArCQlicmVhazsKPiArCj4gKwlj YXNlIERFVkZSRVFfR09WX1NUT1A6Cj4gKwljYXNlIERFVkZSRVFfR09WX1NVU1BFTkQ6Cj4gKwkJ cmVndWxhdG9yX3VucmVnaXN0ZXJfbm90aWZpZXIoY2NpX2RmLT5wcm9jX3JlZywKPiArCQkJCQkg ICAgbmIpOwoKZGl0dG8uCgo+ICsKClJlbW92ZSB1bm5lZWRlZCBibGFuayBsaW5lLgoKPiArCQli cmVhazsKPiArCj4gKwlkZWZhdWx0Ogo+ICsJCWJyZWFrOwo+ICsJfQo+ICsKPiArCXJldHVybiAw Owo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGRldmZyZXFfZ292ZXJub3IgbXRrX2NjaV9kZXZm cmVxX2dvdmVybm9yID0gewo+ICsJLm5hbWUgPSAibXRrX2NjaV92bW9uIiwKCkhvdyBhYm91dCBl ZGl0aW5nIHRoZSBuYW1lIGZyb20gbXRrX2NjaV92bW9uIHRvIG1lZGlhdGVrX2NjaV92b2x0YWdl X21vbml0b3IKZm9yIHRoZSByZWFkYWJpbGl0eT8gQWN0dWFsbHksICdtdGsnIGFuZCAndm1vbicg YXJlIG5vdCBzdGFuZGFyZCBleHByZXNzaW9uLgoKPiArCS5nZXRfdGFyZ2V0X2ZyZXEgPSBtdGtf Y2NpX2dvdmVybm9yX2dldF90YXJnZXQsCj4gKwkuZXZlbnRfaGFuZGxlciA9IG10a19jY2lfZ292 ZXJub3JfZXZlbnRfaGFuZGxlciwKClBsZWFzZSBhZGQgZm9sbG93aW5nIGNvZGUgdG8gbWFrZSBp dCBhcyB0aGUgaW1tdXRhYmxlCmJlY2F1c2UgdGhlIGdvdmVybm9yIGZvciB0aGlzIGRyaXZlciB3 aWxsIG5vdCBiZSBjaGFuZ2VkCnRocm91Z2ggc3lzZnMgaW50ZXJmYWNlLgoKCS5pbW11dGFibGUg PSB0cnVlCgo+ICt9Owo+ICsKPiArc3RhdGljIGludCBtdGtfY2NpX2RldmZyZXFfdGFyZ2V0KHN0 cnVjdCBkZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyAqZnJlcSwKPiArCQkJCSAgdTMyIGZsYWdz KQo+ICt7Cj4gKwlzdHJ1Y3QgY2NpX2RldmZyZXEgKmNjaV9kZiA9IGRldl9nZXRfZHJ2ZGF0YShk ZXYpOwo+ICsKPiArCWlmICghY2NpX2RmKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWNs a19zZXRfcmF0ZShjY2lfZGYtPmNjaV9jbGssICpmcmVxKTsKClBsZWFzZSBjaGVjayB0aGUgcmV0 dXJuIHZhbHVlIG9mIGNsa19zZXRfcmF0ZSgpLgoKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsK PiArc3RhdGljIHN0cnVjdCBkZXZmcmVxX2Rldl9wcm9maWxlIGNjaV9kZXZmcmVxX3Byb2ZpbGUg PSB7Cj4gKwkudGFyZ2V0CQk9IG10a19jY2lfZGV2ZnJlcV90YXJnZXQsCgpKdXN0IHVzZSB0aGUg c3BhY2UgaW5zdGVhZCBvZiB0YWIgYmVjYXVzZSBjY2lfZGV2ZnJlcV9wcm9maWxlCm9ubHkgaGFz IG9uZSByZWNvcmQuCgoJLnRhcmdldCA9IG10a19jY2lfZGV2ZnJlcV90YXJnZXQsCgo+ICt9Owo+ ICsKPiArc3RhdGljIGludCBtdGtfY2NpX2RldmZyZXFfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKPiArewo+ICsJc3RydWN0IGRldmljZSAqY2NpX2RldiA9ICZwZGV2LT5kZXY7 Cj4gKwlzdHJ1Y3QgY2NpX2RldmZyZXEgKmNjaV9kZjsKPiArCWludCByZXQ7Cj4gKwo+ICsJY2Np X2RmID0gZGV2bV9remFsbG9jKGNjaV9kZXYsIHNpemVvZigqY2NpX2RmKSwgR0ZQX0tFUk5FTCk7 Cj4gKwlpZiAoIWNjaV9kZikKPiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwljY2lfZGYtPmNj aV9jbGsgPSBjbGtfZ2V0KGNjaV9kZXYsICJjY2lfY2xvY2siKTsKCmNsa19nZXQgLT4gZGV2bV9j bGtfZ2V0KCkKCj4gKwlyZXQgPSBQVFJfRVJSX09SX1pFUk8oY2NpX2RmLT5jY2lfY2xrKTsKPiAr CWlmIChyZXQpIHsKPiArCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCj4gKwkJCWRldl9lcnIo Y2NpX2RldiwgImZhaWxlZCB0byBnZXQgY2xvY2sgZm9yIENDSTogJWRcbiIsCj4gKwkJCQlyZXQp Owo+ICsKClJlbW92ZSB1bm5lZWRlZCBibGFuayBsaW5lLgoKPiArCQlyZXR1cm4gcmV0Owo+ICsJ fT4gKwo+ICsJY2NpX2RmLT5wcm9jX3JlZyA9IHJlZ3VsYXRvcl9nZXRfb3B0aW9uYWwoY2NpX2Rl diwgInByb2MiKTsKCgpyZWd1bGF0b3JfZ2V0X29wdGlvbmFsIC0+IGRldm1fcmVndWxhdG9yX2dl dF9vcHRpb25hbAoKPiArCXJldCA9IFBUUl9FUlJfT1JfWkVSTyhjY2lfZGYtPnByb2NfcmVnKTsK PiArCWlmIChyZXQpIHsKPiArCQlpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCj4gKwkJCWRldl9l cnIoY2NpX2RldiwgImZhaWxlZCB0byBnZXQgcmVndWxhdG9yIGZvciBDQ0k6ICVkXG4iLAo+ICsJ CQkJcmV0KTsKPiArCgpSZW1vdmUgdW5uZWVkZWQgYmxhbmsgbGluZS4KCj4gKwkJZ290byBlcnJf cHV0X2NsazsKCklmIHlvdSB1c2UgZGV2bV9jbGtfZ2V0KCksIGp1c3QgcmV0dXJuIGluc3RlYWQg b2YgZ290by4KCj4gKwl9Cj4gKwo+ICsJcmV0ID0gZGV2X3BtX29wcF9vZl9hZGRfdGFibGUoJnBk ZXYtPmRldik7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJZGV2X2VycihjY2lfZGV2LCAiRmFpbCB0byBp bml0IENDSSBPUFAgdGFibGVcbiIpOwo+ICsJCWdvdG8gZXJyX3B1dF9yZWc7Cj4gKwl9Cj4gKwo+ ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgY2NpX2RmKTsKPiArCj4gKwljY2lfZGYtPmRl dmZyZXEgPSBkZXZtX2RldmZyZXFfYWRkX2RldmljZShjY2lfZGV2LAo+ICsJCQkJCQkgICAgICAg JmNjaV9kZXZmcmVxX3Byb2ZpbGUsCj4gKwkJCQkJCSAgICAgICAibXRrX2NjaV92bW9uIiwKPiAr CQkJCQkJICAgICAgIE5VTEwpOwo+ICsJaWYgKElTX0VSUihjY2lfZGYtPmRldmZyZXEpKSB7Cj4g KwkJZGV2X2VycihjY2lfZGV2LCAiY2Fubm90IGNyZWF0ZSBjY2kgZGV2ZnJlcSBkZXZpY2VcbiIs IHJldCk7Cj4gKwkJZ290byBlcnJfcHV0X3JlZzsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiAr Cj4gK2Vycl9wdXRfcmVnOgo+ICsJcmVndWxhdG9yX3B1dChjY2lfZGYtPnByb2NfcmVnKTsKPiAr ZXJyX3B1dF9jbGs6Cj4gKwljbGtfcHV0KGNjaV9kZi0+Y2NpX2Nsayk7CgpJZiB5b3UgdXNlIGRl dm1fY2xrX2dldCgpL2Rldm1fcmVndWxhdG9yX2dldCgpLAonZXJyX3B1dF9yZWcnIGFuZCAnZXJy X3B1dF9jbGsnIGFyZSB1bm5lZWRlZC4KCj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAr c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfY2NpX2RldmZyZXFfb2Zf bWF0Y2hbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTgzLWNjaSIgfSwK PiArCXsgfSwKPiArfTsKPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWVkaWF0ZWtfY2NpX2Rl dmZyZXFfb2ZfbWF0Y2gpOwo+ICsKPiArc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgY2Np X2RldmZyZXFfZHJpdmVyID0gewo+ICsJLnByb2JlCT0gbXRrX2NjaV9kZXZmcmVxX3Byb2JlLAo+ ICsJLmRyaXZlciA9IHsKPiArCQkubmFtZSA9ICJtZWRpYXRlay1jY2ktZGV2ZnJlcSIsCj4gKwkJ Lm9mX21hdGNoX3RhYmxlID0gbWVkaWF0ZWtfY2NpX2RldmZyZXFfb2ZfbWF0Y2gsCj4gKwl9LAo+ ICt9Owo+ICsKPiArc3RhdGljIGludCBfX2luaXQgbXRrX2NjaV9kZXZmcmVxX2luaXQodm9pZCkK PiArewo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBkZXZmcmVxX2FkZF9nb3Zlcm5vcigmbXRr X2NjaV9kZXZmcmVxX2dvdmVybm9yKTsKPiArCWlmIChyZXQpIHsKPiArCQlwcl9lcnIoIiVzOiBm YWlsZWQgdG8gYWRkIGdvdmVybm9yOiAlZFxuIiwgX19mdW5jX18sIHJldCk7Cj4gKwkJcmV0dXJu IHJldDsKPiArCX0KPiArCj4gKwlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmNjaV9k ZXZmcmVxX2RyaXZlcik7Cj4gKwlpZiAocmV0KQo+ICsJCWRldmZyZXFfcmVtb3ZlX2dvdmVybm9y KCZtdGtfY2NpX2RldmZyZXFfZ292ZXJub3IpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiAr bW9kdWxlX2luaXQobXRrX2NjaV9kZXZmcmVxX2luaXQpCj4gKwo+ICtzdGF0aWMgdm9pZCBfX2V4 aXQgbXRrX2NjaV9kZXZmcmVxX2V4aXQodm9pZCkKPiArewo+ICsJaW50IHJldDsKPiArCj4gKwly ZXQgPSBkZXZmcmVxX3JlbW92ZV9nb3Zlcm5vcigmbXRrX2NjaV9kZXZmcmVxX2dvdmVybm9yKTsK PiArCWlmIChyZXQpCj4gKwkJcHJfZXJyKCIlczogZmFpbGVkIHRvIHJlbW92ZSBnb3Zlcm5vcjog JWRcbiIsIF9fZnVuY19fLCByZXQpOwo+ICsKPiArCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVy KCZjY2lfZGV2ZnJlcV9kcml2ZXIpOwo+ICt9Cj4gK21vZHVsZV9leGl0KG10a19jY2lfZGV2ZnJl cV9leGl0KQo+ICsKPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJNZWRpYXRlayBDQ0kgZGV2ZnJlcSBk cml2ZXIiKTsKPiArTU9EVUxFX0FVVEhPUigiQW5kcmV3LXNoLkNoZW5nIDxhbmRyZXctc2guY2hl bmdAbWVkaWF0ZWsuY29tPiIpOwo+ICtNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Cj4gCgoKLS0g CkJlc3QgUmVnYXJkcywKQ2hhbndvbyBDaG9pClNhbXN1bmcgRWxlY3Ryb25pY3MKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwg bWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK