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=-8.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 7A058C4360C for ; Thu, 26 Sep 2019 16:05:07 +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 43CCB222CB for ; Thu, 26 Sep 2019 16:05:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="lBIQ/Y4i"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="NUd98sVK" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 43CCB222CB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=chromium.org 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:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9cFZzG8oGP//q2rEYO9Bu5pzbZ+ww96i2jdZgexHzJc=; b=lBIQ/Y4iMFoDcN n1EQ1kSslPCL5jpRKomhYH6xn3wI1E7F67CSF9YMKlfsBgTFOs1wJmbOizS8dRMz1nKGSTfk/kEmp RowSKh3xNkvVvNv0QNFnM2bpue+QeSrfMpD02tp3rvJDokvn0bWGdOrwJZoBWs2zlAvJrrWeGfSTB AcNUGmQvz/GMr4hlZiCsuvM/95wnr/pifBYw4LUMtwPS/iFHDsb07fA6tSTciXV2n33gMmgtgPQER UA+xqcs5KQ53VCBGbj5pHCDk97SxUf9PgmI4i8VMFlPTVrWiFIXCs6bLuRgeY+NzQ3Use262HMz22 DEDGBQqzTDDxuKF1im6g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iDWGF-0000vD-8C; Thu, 26 Sep 2019 16:04:55 +0000 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iDWGB-0000uE-4J for linux-arm-kernel@lists.infradead.org; Thu, 26 Sep 2019 16:04:53 +0000 Received: by mail-pf1-x444.google.com with SMTP id q5so2063721pfg.13 for ; Thu, 26 Sep 2019 09:04:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=AmlgghEnTm4dlVlgTgUfs9dm9WGzckYupWFhC473QLY=; b=NUd98sVKEBebrSrEUX6zXgBO6NqeAisKf1qd3pvsND7SbWcWaOHSxsDSNnPdHaHjH+ jz/D1wTcPti3AgAEbzATrC5izl5qOQn7oaaHF8GhMxV3DQoYiiQHlWbQsTKcfxw8PLOE q4E6k903iudy6saT/z1afr2/JGIjFxeHmQyWo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=AmlgghEnTm4dlVlgTgUfs9dm9WGzckYupWFhC473QLY=; b=rdIG9nhLpts2QKuI63QvTikYpZxRKzTtggWok6O39dxbf5xg96md0+v/Jh3PikOt2I q6eCAzShhbe0D5TM+CU42Xe275q+tt8L9w3raXEFbjtVLForDj/v3a5aSofWYXl+ldPq JFMtWORurqq95shbP9esiQ9TsyD/FifbSMz+Z1Hy6Vy52x2/bLzItnIKHQXFhgCfwVGV mW1oZZaH1U2LvxCh9yLHdqmwHoClPJNm5n+YFoGXiMt4GMN8scNkY8lREU8O/yWWxWcW kZmIbr1AKOKw/goGn678053xhbex3guvJt+MNAllNzNZwLBdE/KHjW0zqQaffWPhYrgI VExg== X-Gm-Message-State: APjAAAXgTGUHbf7IVwhxwF8m79JvfGnWTi+ydP8IFx5O42zMvk/Beqrf W3HOU/JJq4j/WwYvdUO0MYo7EA== X-Google-Smtp-Source: APXvYqyAZNrFd8SjZlx9W6Dxxyobn/6DZ89tVcEKUx4YfR45nbD0lm89VWtDJBDZOdx/OrTPy3kcCA== X-Received: by 2002:a62:8647:: with SMTP id x68mr4630322pfd.44.1569513889264; Thu, 26 Sep 2019 09:04:49 -0700 (PDT) Received: from localhost ([2620:15c:202:1:75a:3f6e:21d:9374]) by smtp.gmail.com with ESMTPSA id q13sm2938026pjq.0.2019.09.26.09.04.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Sep 2019 09:04:48 -0700 (PDT) Date: Thu, 26 Sep 2019 09:04:45 -0700 From: Matthias Kaehlcke To: Chanwoo Choi Subject: Re: [PATCH v8 6/6] PM / devfreq: Use PM QoS for sysfs min/max_freq Message-ID: <20190926160445.GO133864@google.com> References: <3eb8a1d1e7d738f7599d54348d6b474196581693.1569319738.git.leonard.crestez@nxp.com> <20190925164513.GM133864@google.com> <81b136fc-0613-08f8-cb26-6243e7be621b@samsung.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <81b136fc-0613-08f8-cb26-6243e7be621b@samsung.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190926_090451_200790_7CAD9F7D X-CRM114-Status: GOOD ( 33.53 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Artur =?utf-8?B?xZp3aWdvxYQ=?= , Abel Vesa , Saravana Kannan , linux-pm@vger.kernel.org, Viresh Kumar , NXP Linux Team , Krzysztof Kozlowski , Lukasz Luba , Kyungmin Park , MyungJoo Ham , Alexandre Bailon , Leonard Crestez , Georgi Djakov , linux-arm-kernel@lists.infradead.org, Jacky Bai 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 T24gVGh1LCBTZXAgMjYsIDIwMTkgYXQgMTA6MjU6NDFBTSArMDkwMCwgQ2hhbndvbyBDaG9pIHdy b3RlOgo+IE9uIDE5LiA5LiAyNi4g7Jik7KCEIDE6NDUsIE1hdHRoaWFzIEthZWhsY2tlIHdyb3Rl Ogo+ID4gT24gV2VkLCBTZXAgMjUsIDIwMTkgYXQgMTE6NDE6MDdBTSArMDkwMCwgQ2hhbndvbyBD aG9pIHdyb3RlOgo+ID4+IE9uIDE5LiA5LiAyNC4g7Jik7ZuEIDc6MTEsIExlb25hcmQgQ3Jlc3Rl eiB3cm90ZToKPiA+Pj4gU3dpdGNoIHRoZSBoYW5kbGluZyBvZiBtaW5fZnJlcSBhbmQgbWF4X2Zy ZXEgZnJvbSBzeXNmcyB0byB1c2UgdGhlCj4gPj4+IGRldl9wbV9xb3NfcmVxdWVzdCBpbnRlcmZh Y2UuCj4gPj4+Cj4gPj4+IFNpbmNlIFBNIFFvUyBoYW5kbGVzIGZyZXF1ZW5jaWVzIGFzIGtIeiB0 aGlzIGNoYW5nZSByZWR1Y2VzIHRoZQo+ID4+PiBwcmVjaXNpb24gb2YgbWluX2ZyZXEgYW5kIG1h eF9mcmVxLiBUaGlzIHNob3VsZG4ndCBpbnRyb2R1Y2UgcHJvYmxlbXMKPiA+Pj4gYmVjYXVzZSBm cmVxdWVuY2llcyB3aGljaCBhcmUgbm90IGFuIGludGVnZXIgbnVtYmVyIG9mIGtIeiBhcmUgbGlr ZWx5Cj4gPj4+IG5vdCBhbiBpbnRlZ2VyIG51bWJlciBvZiBIeiBlaXRoZXIuCj4gPj4+Cj4gPj4+ IFRyeSB0byBlbnN1cmUgY29tcGF0aWJpbGl0eSBieSByb3VuZGluZyBtaW4gdmFsdWVzIGRvd24g YW5kIHJvdW5kaW5nCj4gPj4+IG1heCB2YWx1ZXMgdXAuCj4gPj4+Cj4gPj4+IFNpZ25lZC1vZmYt Ynk6IExlb25hcmQgQ3Jlc3RleiA8bGVvbmFyZC5jcmVzdGV6QG54cC5jb20+Cj4gPj4+IFJldmll d2VkLWJ5OiBNYXR0aGlhcyBLYWVobGNrZSA8bWthQGNocm9taXVtLm9yZz4KPiA+Pj4gLS0tCj4g Pj4+ICBkcml2ZXJzL2RldmZyZXEvZGV2ZnJlcS5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tCj4gPj4+ICBpbmNsdWRlL2xpbnV4L2RldmZyZXEuaCAgIHwgIDkg KysrKy0tLS0KPiA+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMjIgZGVs ZXRpb25zKC0pCj4gPj4+Cj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RldmZyZXEvZGV2ZnJl cS5jIGIvZHJpdmVycy9kZXZmcmVxL2RldmZyZXEuYwo+ID4+PiBpbmRleCA3ODRmM2U0MDUzNmEu LjhiYjdlZmQ4MjFhYiAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJpdmVycy9kZXZmcmVxL2RldmZyZXEu Ywo+ID4+PiArKysgYi9kcml2ZXJzL2RldmZyZXEvZGV2ZnJlcS5jCj4gPj4+IEBAIC0xMzcsMTQg KzEzNywxMCBAQCBzdGF0aWMgdm9pZCBnZXRfZnJlcV9yYW5nZShzdHJ1Y3QgZGV2ZnJlcSAqZGV2 ZnJlcSwKPiA+Pj4gIAlxb3NfbWF4X2ZyZXEgPSBkZXZfcG1fcW9zX3JlYWRfdmFsdWUoZGV2ZnJl cS0+ZGV2LnBhcmVudCwKPiA+Pj4gIAkJCQkJICAgICBERVZfUE1fUU9TX01JTl9GUkVRVUVOQ1kp Owo+ID4+PiAgCSptaW5fZnJlcSA9IG1heCgqbWluX2ZyZXEsIEhaX1BFUl9LSFogKiBxb3NfbWlu X2ZyZXEpOwo+ID4+PiAgCSptYXhfZnJlcSA9IG1pbigqbWF4X2ZyZXEsIEhaX1BFUl9LSFogKiBx b3NfbWF4X2ZyZXEpOwo+ID4+PiAgCj4gPj4+IC0JLyogY29uc3RyYWludHMgZnJvbSBzeXNmcyAq Lwo+ID4+PiAtCSptaW5fZnJlcSA9IG1heCgqbWluX2ZyZXEsIGRldmZyZXEtPm1pbl9mcmVxKTsK PiA+Pj4gLQkqbWF4X2ZyZXEgPSBtaW4oKm1heF9mcmVxLCBkZXZmcmVxLT5tYXhfZnJlcSk7Cj4g Pj4+IC0KPiA+Pj4gIAkvKiBjb25zdHJhaW50cyBmcm9tIE9QUCBpbnRlcmZhY2UgKi8KPiA+Pj4g IAkqbWluX2ZyZXEgPSBtYXgoKm1pbl9mcmVxLCBkZXZmcmVxLT5zY2FsaW5nX21pbl9mcmVxKTsK PiA+Pj4gIAkvKiBzY2FsaW5nX21heF9mcmVxIGNhbiBiZSB6ZXJvIG9uIGVycm9yICovCj4gPj4+ ICAJaWYgKGRldmZyZXEtPnNjYWxpbmdfbWF4X2ZyZXEpCj4gPj4+ICAJCSptYXhfZnJlcSA9IG1p bigqbWF4X2ZyZXEsIGRldmZyZXEtPnNjYWxpbmdfbWF4X2ZyZXEpOwo+ID4+PiBAQCAtNjc5LDEw ICs2NzUsMTIgQEAgc3RhdGljIHZvaWQgZGV2ZnJlcV9kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNl ICpkZXYpCj4gPj4+ICAJCQlERVZfUE1fUU9TX01JTl9GUkVRVUVOQ1kpOwo+ID4+PiAgCj4gPj4+ ICAJaWYgKGRldmZyZXEtPnByb2ZpbGUtPmV4aXQpCj4gPj4+ICAJCWRldmZyZXEtPnByb2ZpbGUt PmV4aXQoZGV2ZnJlcS0+ZGV2LnBhcmVudCk7Cj4gPj4+ICAKPiA+Pj4gKwlkZXZfcG1fcW9zX3Jl bW92ZV9yZXF1ZXN0KCZkZXZmcmVxLT51c2VyX21heF9mcmVxX3JlcSk7Cj4gPj4+ICsJZGV2X3Bt X3Fvc19yZW1vdmVfcmVxdWVzdCgmZGV2ZnJlcS0+dXNlcl9taW5fZnJlcV9yZXEpOwo+ID4+Cj4g Pj4gUGxlYXNlIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgaWYgZXJyb3IgaGFwcGVuLCBqdXN0IHBy aW50IHRoZSBlcnIgd2l0aCBkZXZfZXJyKCkKPiA+PiB3aXRob3V0IHN0b3BwaW5nIHRoZSByZWxl YXNlIHN0ZXBzLgo+ID4gCj4gPiBJIHdvbmRlciBpZiBkZXZfd2FybigpIHdvdWxkIGJlIG1vcmUg YXBwcm9wcmlhdGUsIHNpbmNlIHRoZSBjdXJyZW50IG9wZXJhdGlvbgo+ID4gaXMgbm90IGFib3J0 ZWQuCj4gPiAKPiA+Pj4gIAlrZnJlZShkZXZmcmVxLT50aW1lX2luX3N0YXRlKTsKPiA+Pj4gIAlr ZnJlZShkZXZmcmVxLT50cmFuc190YWJsZSk7Cj4gPj4+ICAJbXV0ZXhfZGVzdHJveSgmZGV2ZnJl cS0+bG9jayk7Cj4gPj4+ICAJa2ZyZWUoZGV2ZnJlcSk7Cj4gPj4+ICB9Cj4gPj4+IEBAIC03NDcs MTggKzc0NSwyNSBAQCBzdHJ1Y3QgZGV2ZnJlcSAqZGV2ZnJlcV9hZGRfZGV2aWNlKHN0cnVjdCBk ZXZpY2UgKmRldiwKPiA+Pj4gIAlkZXZmcmVxLT5zY2FsaW5nX21pbl9mcmVxID0gZmluZF9hdmFp bGFibGVfbWluX2ZyZXEoZGV2ZnJlcSk7Cj4gPj4+ICAJaWYgKCFkZXZmcmVxLT5zY2FsaW5nX21p bl9mcmVxKSB7Cj4gPj4+ICAJCWVyciA9IC1FSU5WQUw7Cj4gPj4+ICAJCWdvdG8gZXJyX2RldjsK PiA+Pj4gIAl9Cj4gPj4+IC0JZGV2ZnJlcS0+bWluX2ZyZXEgPSBkZXZmcmVxLT5zY2FsaW5nX21p bl9mcmVxOwo+ID4+PiAgCj4gPj4+ICAJZGV2ZnJlcS0+c2NhbGluZ19tYXhfZnJlcSA9IGZpbmRf YXZhaWxhYmxlX21heF9mcmVxKGRldmZyZXEpOwo+ID4+PiAgCWlmICghZGV2ZnJlcS0+c2NhbGlu Z19tYXhfZnJlcSkgewo+ID4+PiAgCQllcnIgPSAtRUlOVkFMOwo+ID4+PiAgCQlnb3RvIGVycl9k ZXY7Cj4gPj4+ICAJfQo+ID4+PiAtCWRldmZyZXEtPm1heF9mcmVxID0gZGV2ZnJlcS0+c2NhbGlu Z19tYXhfZnJlcTsKPiA+Pj4gKwo+ID4+PiArCWVyciA9IGRldl9wbV9xb3NfYWRkX3JlcXVlc3Qo ZGV2LCAmZGV2ZnJlcS0+dXNlcl9taW5fZnJlcV9yZXEsCj4gPj4+ICsJCQkJICAgICBERVZfUE1f UU9TX01JTl9GUkVRVUVOQ1ksIDApOwo+ID4+PiArCWlmIChlcnIgPCAwKQo+ID4+PiArCQlnb3Rv IGVycl9kZXY7Cj4gPj4+ICsJZXJyID0gZGV2X3BtX3Fvc19hZGRfcmVxdWVzdChkZXYsICZkZXZm cmVxLT51c2VyX21heF9mcmVxX3JlcSwKPiA+Pj4gKwkJCQkgICAgIERFVl9QTV9RT1NfTUFYX0ZS RVFVRU5DWSwgUzMyX01BWCk7Cj4gPj4+ICsJaWYgKGVyciA8IDApCj4gPj4+ICsJCWdvdG8gZXJy X2RldjsKPiA+Pj4gIAo+ID4+PiAgCWRldmZyZXEtPnN1c3BlbmRfZnJlcSA9IGRldl9wbV9vcHBf Z2V0X3N1c3BlbmRfb3BwX2ZyZXEoZGV2KTsKPiA+Pj4gIAlhdG9taWNfc2V0KCZkZXZmcmVxLT5z dXNwZW5kX2NvdW50LCAwKTsKPiA+Pj4gIAo+ID4+PiAgCWRldmZyZXEtPnRyYW5zX3RhYmxlID0g a3phbGxvYygKPiA+Pj4gQEAgLTg0MywxMCArODQ4LDE0IEBAIHN0cnVjdCBkZXZmcmVxICpkZXZm cmVxX2FkZF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LAo+ID4+PiAgZXJyX2RldjoKPiA+Pj4g IAkvKgo+ID4+PiAgCSAqIENsZWFudXAgcGF0aCBmb3IgZXJyb3JzIHRoYXQgaGFwcGVuIGJlZm9y ZSByZWdpc3RyYXRpb24uCj4gPj4+ICAJICogT3RoZXJ3aXNlIHdlIHJlbHkgb24gZGV2ZnJlcV9k ZXZfcmVsZWFzZS4KPiA+Pj4gIAkgKi8KPiA+Pj4gKwlpZiAoZGV2X3BtX3Fvc19yZXF1ZXN0X2Fj dGl2ZSgmZGV2ZnJlcS0+dXNlcl9tYXhfZnJlcV9yZXEpKQo+ID4+PiArCQlkZXZfcG1fcW9zX3Jl bW92ZV9yZXF1ZXN0KCZkZXZmcmVxLT51c2VyX21heF9mcmVxX3JlcSk7Cj4gPj4KPiA+PiBQbGVh c2UgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBpZiBlcnJvciBoYXBwZW4sIGp1c3QgcHJpbnQgdGhl IGVyciB3aXRoIGRldl9lcnIoKQo+ID4+IHdpdGhvdXQgc3RvcHBpbmcgdGhlIHJlbGVhc2Ugc3Rl cHMuCj4gPj4KPiA+PiAJZGV2X2VyciguLi4gImZhaWxlZCB0byByZW1vdmUgcmVxdWVzdCBvZiBE RVZfUE1fUU9TX01BWF9GUkVRVUVOQ1lcbiIpOwo+ID4gCj4gPiBkZXZfd2FybigpIGZvciB0aGUg c2FtZSByZWFzb24gYXMgYWJvdmU/Cj4gCj4gQWN0dWFsbHksIEkgdGhpbmsgdGhhdCBpcyBub3Qg Y3JpdGljYWwgZXJyb3IgYnV0IG5lZWQgdG8gcHJpbnQgdGhlIGVycm9yCj4gU28sIEkgdGhpbmsg dGhhdCBkZXZfZXJyKCkgaXMgZW5vdWdoLiBJZiB0aGlzIHRoaW5nIGlzIGNyaXRpY2FsLAo+IGJl dHRlciB0byB1c2UgZGV2X3dhcm4uCgpXZSBhZ3JlZSB0aGF0IHRoaXMgaXMgbm90IGNyaXRpY2Fs LCBidXQgbm90IHdoZW4gdG8gdXNlIGRldl9lcnIoKQphbmQgZGV2X3dhcm4oKS4gWW91IHNlZW0g dG8gaW1wbHkgdGhhdCBkZXZfd2FybigpIGlzIG1vcmUgc2V2ZXJlCnRoYW4gZGV2X2VycigpLCBo b3dldmVyIGl0J3MgdGhlIG90aGVyIHdheSBhcm91bmQ6CgojZGVmaW5lIEtFUk5fRVJSICAgICAg ICBLRVJOX1NPSCAiMyIgICAgLyogZXJyb3IgY29uZGl0aW9ucyAqLwojZGVmaW5lIEtFUk5fV0FS TklORyAgICBLRVJOX1NPSCAiNCIgICAgLyogd2FybmluZyBjb25kaXRpb25zICovCiNkZWZpbmUg S0VSTl9OT1RJQ0UgICAgIEtFUk5fU09IICI1IiAgICAvKiBub3JtYWwgYnV0IHNpZ25pZmljYW50 IGNvbmRpdGlvbiAqLwoKSSB0aGluayBpbiB0aGlzIGNhc2UgeW91IGNhbiBnbyBlaXRoZXIgd2F5 LCBpdCdzIGNlcnRhaW5seSBhbiBlcnJvciwKYnV0IHRoZSBkcml2ZXIgY29udGludWVzIHdpdGgg dGhlIG5vcm1hbCBleGVjdXRpb24gcGF0aC4KCj4gPiAKPiA+IEkgdGhpbmsgdGhlIG1lc3NhZ2Ug d291bGQgYmUgYmV0dGVyIHdpdGggYSBzbGlnaHQgY2hhbmdlOgo+ID4gCj4gPiAiZmFpbGVkIHRv IHJlbW92ZSBERVZfUE1fUU9TX01BWF9GUkVRVUVOQ1kgcmVxdWVzdFxuIgo+IAo+IE9LLgo+IAo+ ID4gCj4gPj4KPiA+Pj4gKwlpZiAoZGV2X3BtX3Fvc19yZXF1ZXN0X2FjdGl2ZSgmZGV2ZnJlcS0+ dXNlcl9taW5fZnJlcV9yZXEpKQo+ID4+PiArCQlkZXZfcG1fcW9zX3JlbW92ZV9yZXF1ZXN0KCZk ZXZmcmVxLT51c2VyX21pbl9mcmVxX3JlcSk7Cj4gPj4gCQo+ID4+IAlkZXZfZXJyKC4uLiAiZmFp bGVkIHRvIHJlbW92ZSByZXF1ZXN0IG9mIERFVl9QTV9RT1NfTUlOX0ZSRVFVRU5DWVxuIik7Cj4g PiAKPiA+IGRpdHRvCj4gPiAKPiA+Pj4gIAlrZnJlZShkZXZmcmVxLT50aW1lX2luX3N0YXRlKTsK PiA+Pj4gIAlrZnJlZShkZXZmcmVxLT50cmFuc190YWJsZSk7Cj4gPj4+ICAJa2ZyZWUoZGV2ZnJl cSk7Cj4gPj4+ICBlcnJfb3V0Ogo+ID4+PiAgCXJldHVybiBFUlJfUFRSKGVycik7Cj4gPj4+IEBA IC0xNDA3LDE0ICsxNDE2LDE1IEBAIHN0YXRpYyBzc2l6ZV90IG1pbl9mcmVxX3N0b3JlKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCj4gPj4+ICAKPiA+ Pj4gIAlyZXQgPSBzc2NhbmYoYnVmLCAiJWx1IiwgJnZhbHVlKTsKPiA+Pj4gIAlpZiAocmV0ICE9 IDEpCj4gPj4+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4+PiAgCj4gPj4+IC0JbXV0ZXhfbG9jaygm ZGYtPmxvY2spOwo+ID4+PiAtCWRmLT5taW5fZnJlcSA9IHZhbHVlOwo+ID4+PiAtCXVwZGF0ZV9k ZXZmcmVxKGRmKTsKPiA+Pj4gLQltdXRleF91bmxvY2soJmRmLT5sb2NrKTsKPiA+Pj4gKwkvKiBy b3VuZCBkb3duIHRvIGtIeiBmb3IgUE0gUW9TICovCj4gPj4KPiA+PiBJIHByZWZlciBtb3JlIGRl dGFpbGVkIGRlc2NyaXB0aW9uIGFzIGZvbGxvd2luZzoKPiA+Pgo+ID4+IAkvKgo+ID4+IAkgKiBS b3VuZCBkb3duIHRvIEtIeiB0byBkZWNpZGUgdGhlIHByb3BlciBtaW5pbXVtIGZyZXF1ZW5jeQo+ ID4gCj4gPiBpdCBzaG91bGQgYmUga0h6LCB3aXRoIGEgbG93ZXItY2FzZSAnaycsIGFzIGluIHRo ZSBvcmlnaW5hbCBjb21tZW50Lgo+IAo+IEdvb2QuCj4gCj4gPiAKPiA+PiAJICogd2hpY2ggaXMg Y2xvc2VkIHRvIHVzZXIgcmVxdWVzdC4KPiA+PiAgCSAqLwo+ID4gCj4gPiBUaGUgY29tbWVudCB5 b3Ugc3VnZ2VzdCBkb2Vzbid0IHByb3ZpZGUgYW55IGluZm9ybWF0aW9uIGFib3V0IHdoeSB0aGUK PiA+IGNvbnZlcnNpb24gdG8ga0h6IGlzIGRvbmUsIGluIHRoaXMgc2Vuc2UgdGhlIG9yaWdpbmFs IGNvbW1lbnQgdGhhdAo+ID4gbWVudGlvbnMgUE0gUW9TIHByb3ZpZGVzIG1vcmUgdmFsdWUuCj4g PiAKPiA+IFdpdGggd2hhdGV2ZXIgd2UgZW5kIHVwLCBJIHN1Z2dlc3QgdG8gdXNlICdjb252ZXJ0 JyBpbnN0ZWFkIG9mCj4gPiAncm91bmQgZG93bicuCj4gCj4gSSBhZ3JlZSB0byB1c2UgJ2NvbnZl cnQnIGluc3RlYWQgb2YgJ3JvdW5kIGRvd24nCj4gaWYgc29tZSBleHByZXNzaW9uIGluZGljYXRl cyB0aGUgY29ycmVjdCBtZWFuaW5nLgo+IAo+ID4gCj4gPj4+ICsJcmV0ID0gZGV2X3BtX3Fvc191 cGRhdGVfcmVxdWVzdCgmZGYtPnVzZXJfbWluX2ZyZXFfcmVxLAo+ID4+PiArCQkJCQl2YWx1ZSAv IEhaX1BFUl9LSFopOwo+ID4+PiArCWlmIChyZXQgPCAwKQo+ID4+PiArCQlyZXR1cm4gcmV0Owo+ ID4+PiAgCj4gPj4+ICAJcmV0dXJuIGNvdW50Owo+ID4+PiAgfQo+ID4+PiAgCj4gPj4+ICBzdGF0 aWMgc3NpemVfdCBtaW5fZnJlcV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsCj4gPj4+IEBAIC0xNDM5LDE5ICsxNDQ5LDE5IEBAIHN0YXRpYyBz c2l6ZV90IG1heF9mcmVxX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9h dHRyaWJ1dGUgKmF0dHIsCj4gPj4+ICAKPiA+Pj4gIAlyZXQgPSBzc2NhbmYoYnVmLCAiJWx1Iiwg JnZhbHVlKTsKPiA+Pj4gIAlpZiAocmV0ICE9IDEpCj4gPj4+ICAJCXJldHVybiAtRUlOVkFMOwo+ ID4+PiAgCj4gPj4+IC0JbXV0ZXhfbG9jaygmZGYtPmxvY2spOwo+ID4+PiAtCj4gPj4+IC0JLyog SW50ZXJwcmV0IHplcm8gYXMgImRvbid0IGNhcmUiICovCj4gPj4+IC0JaWYgKCF2YWx1ZSkKPiA+ Pj4gLQkJdmFsdWUgPSBVTE9OR19NQVg7Cj4gPj4+ICsJLyogcm91bmQgdXAgdG8ga0h6IGZvciBQ TSBRb1MgYW5kIGludGVycHJldCB6ZXJvIGFzICJkb24ndCBjYXJlIiAqLwo+ID4+Cj4gPj4gSSB0 aGluayB0aGF0ICJkb24ndCBjYXJlIiBjb21tZW50IHN0eWxlIGlzIG5vdCBnb29kLgo+ID4+Cj4g Pj4gSSByZWZlcnJlZCB0byB0aGUgRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFz cy1kZXZmcmVxIGZpbGUuCj4gPj4gSSBwcmVmZXIgbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBh cyBmb2xsb3dpbmc6Cj4gPj4gCS8qCj4gPj4gCSAqIFJvdW5kIHVwIHRvIEtIeiB0byBkZWNpZGUg dGhlIHByb3BlciBtYXhpbXVtIGZyZXF1ZW5jeQo+ID4gCj4gPiBrSHoKPiA+IAo+ID4+IAkgKiB3 aGljaCBpcyBjbG9zZWQgdG8gdXNlciByZXF1ZXN0LiBJZiB2YWx1ZSBpcyB6ZXJvLAo+ID4+IAkg KiB0aGUgdXNlciBkb2VzIG5vdCBjYXJlLgo+ID4gCj4gPiAidGhlIHVzZXIgZG9lcyBub3QgY2Fy ZSIgaXMgc3RpbGwgdmVyeSBjYXN1YWwgeW91IGRpZG4ndCBsaWtlIGluaXRpYWxseS4KPiA+IEhv dyBhYm91dCAiQSB2YWx1ZSBvZiB6ZXJvIGlzIGludGVycHJldGVkIGFzICdubyBsaW1pdCcuIj8K PiA+IAo+ID4gQXMgZm9yIHRoZSBtaW4gZnJlcSwgSSB0aGluayBQTSBRb1Mgc2hvdWxkIGJlIG1l bnRpb25lZCB0byBtYWtlIGNsZWFyIHdoeQo+ID4gdGhlIGNvbnZlcnNpb24gdG8ga0h6IGlzIG5l ZWRlZC4KPiAKPiBBZ3JlZS4gSSBleHBlY3QgdGhhdCBMZW9uYXJkIHdpbGwgbWVudGlvbiB0aGF0 Lgo+IAo+ID4gCj4gPj4gIAkgKi8KPiA+Pgo+ID4+Cj4gPj4+ICsJaWYgKHZhbHVlKQo+ID4+PiAr CQl2YWx1ZSA9IERJVl9ST1VORF9VUCh2YWx1ZSwgSFpfUEVSX0tIWik7Cj4gPj4+ICsJZWxzZQo+ ID4+PiArCQl2YWx1ZSA9IFMzMl9NQVg7Cj4gPj4+ICAKPiA+Pj4gLQlkZi0+bWF4X2ZyZXEgPSB2 YWx1ZTsKPiA+Pj4gLQl1cGRhdGVfZGV2ZnJlcShkZik7Cj4gPj4+IC0JbXV0ZXhfdW5sb2NrKCZk Zi0+bG9jayk7Cj4gPj4+ICsJcmV0ID0gZGV2X3BtX3Fvc191cGRhdGVfcmVxdWVzdCgmZGYtPnVz ZXJfbWF4X2ZyZXFfcmVxLCB2YWx1ZSk7Cj4gPj4+ICsJaWYgKHJldCA8IDApCj4gPj4+ICsJCXJl dHVybiByZXQ7Cj4gPj4+ICAKPiA+Pj4gIAlyZXR1cm4gY291bnQ7Cj4gPj4+ICB9Cj4gPj4+ICBz dGF0aWMgREVWSUNFX0FUVFJfUlcobWluX2ZyZXEpOwo+ID4+PiAgCj4gPj4+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L2RldmZyZXEuaCBiL2luY2x1ZGUvbGludXgvZGV2ZnJlcS5oCj4gPj4+ IGluZGV4IGRhYzBkZmZlYWJiNC4uNzg0OWZlNGM2NjZkIDEwMDY0NAo+ID4+PiAtLS0gYS9pbmNs dWRlL2xpbnV4L2RldmZyZXEuaAo+ID4+PiArKysgYi9pbmNsdWRlL2xpbnV4L2RldmZyZXEuaAo+ ID4+PiBAQCAtMTEsMTAgKzExLDExIEBACj4gPj4+ICAjZGVmaW5lIF9fTElOVVhfREVWRlJFUV9I X18KPiA+Pj4gIAo+ID4+PiAgI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgo+ID4+PiAgI2luY2x1 ZGUgPGxpbnV4L25vdGlmaWVyLmg+Cj4gPj4+ICAjaW5jbHVkZSA8bGludXgvcG1fb3BwLmg+Cj4g Pj4+ICsjaW5jbHVkZSA8bGludXgvcG1fcW9zLmg+Cj4gPj4+ICAKPiA+Pj4gICNkZWZpbmUgREVW RlJFUV9OQU1FX0xFTiAxNgo+ID4+PiAgCj4gPj4+ICAvKiBERVZGUkVRIGdvdmVybm9yIG5hbWUg Ki8KPiA+Pj4gICNkZWZpbmUgREVWRlJFUV9HT1ZfU0lNUExFX09OREVNQU5ECSJzaW1wbGVfb25k ZW1hbmQiCj4gPj4+IEBAIC0xMjEsMTIgKzEyMiwxMiBAQCBzdHJ1Y3QgZGV2ZnJlcV9kZXZfcHJv ZmlsZSB7Cj4gPj4+ICAgKgkJZGV2ZnJlcS5uYiB0byB0aGUgY29ycmVzcG9uZGluZyByZWdpc3Rl ciBub3RpZmllciBjYWxsIGNoYWluLgo+ID4+PiAgICogQHdvcms6CWRlbGF5ZWQgd29yayBmb3Ig bG9hZCBtb25pdG9yaW5nLgo+ID4+PiAgICogQHByZXZpb3VzX2ZyZXE6CXByZXZpb3VzbHkgY29u ZmlndXJlZCBmcmVxdWVuY3kgdmFsdWUuCj4gPj4+ICAgKiBAZGF0YToJUHJpdmF0ZSBkYXRhIG9m IHRoZSBnb3Zlcm5vci4gVGhlIGRldmZyZXEgZnJhbWV3b3JrIGRvZXMgbm90Cj4gPj4+ICAgKgkJ dG91Y2ggdGhpcy4KPiA+Pj4gLSAqIEBtaW5fZnJlcToJTGltaXQgbWluaW11bSBmcmVxdWVuY3kg cmVxdWVzdGVkIGJ5IHVzZXIgKDA6IG5vbmUpCj4gPj4+IC0gKiBAbWF4X2ZyZXE6CUxpbWl0IG1h eGltdW0gZnJlcXVlbmN5IHJlcXVlc3RlZCBieSB1c2VyICgwOiBub25lKQo+ID4+PiArICogQHVz ZXJfbWluX2ZyZXFfcmVxOglQTSBRb1MgbWluIGZyZXF1ZW5jeSByZXF1ZXN0IGZyb20gdXNlciAo dmlhIHN5c2ZzKQo+ID4+Cj4gPj4gbWluIC0+IG1pbmltdW0gYW5kIHRoZW4gcmVtb3ZlIHBhcmVu dGhlc2lzIGFzIGZvbGxvd2luZzoKPiA+PiAJUE0gUW9TIG1pbmltdW0gZnJlcXVlbmN5IHJlcXVl c3QgYnkgdXNlciB2aWEgc3lzZnMKPiA+Pgo+ID4+PiArICogQHVzZXJfbWF4X2ZyZXFfcmVxOglQ TSBRb1MgbWF4IGZyZXF1ZW5jeSByZXF1ZXN0IGZyb20gdXNlciAodmlhIHN5c2ZzKQo+ID4+Cj4g Pj4gZGl0dG8uIG1heCAtPiBtYXhpbXVtCj4gPj4gCVBNIFFvUyBtYXhpbXVtIGZyZXF1ZW5jeSBy ZXF1ZXN0IGJ5IHVzZXIgdmlhIHN5c2ZzCj4gPj4KPiA+Pj4gICAqIEBzY2FsaW5nX21pbl9mcmVx OglMaW1pdCBtaW5pbXVtIGZyZXF1ZW5jeSByZXF1ZXN0ZWQgYnkgT1BQIGludGVyZmFjZQo+ID4+ PiAgICogQHNjYWxpbmdfbWF4X2ZyZXE6CUxpbWl0IG1heGltdW0gZnJlcXVlbmN5IHJlcXVlc3Rl ZCBieSBPUFAgaW50ZXJmYWNlCj4gPj4+ICAgKiBAc3RvcF9wb2xsaW5nOgkgZGV2ZnJlcSBwb2xs aW5nIHN0YXR1cyBvZiBhIGRldmljZS4KPiA+Pj4gICAqIEBzdXNwZW5kX2ZyZXE6CSBmcmVxdWVu Y3kgb2YgYSBkZXZpY2Ugc2V0IGR1cmluZyBzdXNwZW5kIHBoYXNlLgo+ID4+PiAgICogQHJlc3Vt ZV9mcmVxOgkgZnJlcXVlbmN5IG9mIGEgZGV2aWNlIHNldCBpbiByZXN1bWUgcGhhc2UuCj4gPj4+ IEBAIC0xNjEsMTIgKzE2MiwxMiBAQCBzdHJ1Y3QgZGV2ZnJlcSB7Cj4gPj4+ICAJdW5zaWduZWQg bG9uZyBwcmV2aW91c19mcmVxOwo+ID4+PiAgCXN0cnVjdCBkZXZmcmVxX2Rldl9zdGF0dXMgbGFz dF9zdGF0dXM7Cj4gPj4+ICAKPiA+Pj4gIAl2b2lkICpkYXRhOyAvKiBwcml2YXRlIGRhdGEgZm9y IGdvdmVybm9ycyAqLwo+ID4+PiAgCj4gPj4+IC0JdW5zaWduZWQgbG9uZyBtaW5fZnJlcTsKPiA+ Pj4gLQl1bnNpZ25lZCBsb25nIG1heF9mcmVxOwo+ID4+PiArCXN0cnVjdCBkZXZfcG1fcW9zX3Jl cXVlc3QgdXNlcl9taW5fZnJlcV9yZXE7Cj4gPj4+ICsJc3RydWN0IGRldl9wbV9xb3NfcmVxdWVz dCB1c2VyX21heF9mcmVxX3JlcTsKPiA+Pj4gIAl1bnNpZ25lZCBsb25nIHNjYWxpbmdfbWluX2Zy ZXE7Cj4gPj4+ICAJdW5zaWduZWQgbG9uZyBzY2FsaW5nX21heF9mcmVxOwo+ID4+PiAgCWJvb2wg c3RvcF9wb2xsaW5nOwo+ID4+PiAgCj4gPj4+ICAJdW5zaWduZWQgbG9uZyBzdXNwZW5kX2ZyZXE7 Cj4gPj4+Cj4gPj4KPiA+Pgo+ID4+IC0tIAo+ID4+IEJlc3QgUmVnYXJkcywKPiA+PiBDaGFud29v IENob2kKPiA+PiBTYW1zdW5nIEVsZWN0cm9uaWNzCj4gPiAKPiA+IAo+IAo+IAo+IC0tIAo+IEJl c3QgUmVnYXJkcywKPiBDaGFud29vIENob2kKPiBTYW1zdW5nIEVsZWN0cm9uaWNzCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==