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 082DAC432C2 for ; Wed, 25 Sep 2019 16:45:28 +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 D021A21D79 for ; Wed, 25 Sep 2019 16:45:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="U6r2vPg0"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="X6/ClZmA" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D021A21D79 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=c7TwROCpZ6ow1oDcwSVlaRmXir5L55JFvMg03FKzmKs=; b=U6r2vPg0uEvoKO 7cwNPX6CFol0JH8Kut5w++HxyI8poNEOLQ5zbQsdGF/JoOYu2xZsXKUdpIq3RXG9CWgtJh5D8cm6c h8Dj3bjB5rLlsUlxpbEbb2E8PDYvQHYpOOqr0qaLtsqvlPdnPAmYV5rE8IWA0556ivJgyL7SgyfgU GEaSQDbrNvO/+m5gTKQo+Iz4XV2qD0cssJ3YB5ucWI1H9ROyeeRWIET1OmQY1EXJwdZ8CHFNkyQ5r jcw7mRNyDSLEL/SqxpU/SCQlf0ebXT5PgaseWdY9Z1KnyKVamD0P+JUqoMAyx/7aYuchlSsVAri6m E0trzAxYwwDZmQKyjmLA==; 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 1iDAPp-00031C-3e; Wed, 25 Sep 2019 16:45:21 +0000 Received: from mail-pg1-x544.google.com ([2607:f8b0:4864:20::544]) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iDAPk-00030P-DB for linux-arm-kernel@lists.infradead.org; Wed, 25 Sep 2019 16:45:18 +0000 Received: by mail-pg1-x544.google.com with SMTP id s1so105396pgv.8 for ; Wed, 25 Sep 2019 09:45:16 -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=bCV7ZWWp1O30dSnj5CtR75PrMsLMhsTR+j2NmEPiFx8=; b=X6/ClZmAcFODy21ry2SkgXnJujiVQBMakdVb21H0L4pa3GFPX/h2jo85MYKd1qWo4x +xlGQkJjUgHsnXBhX4M2QV5xSoHOebwAsIuzUSxQor2coGquUgLngU03uKRRiKWiOBz5 roJQY8NGZeQB0x+zn9aDugURehf1uQzKg8wdY= 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=bCV7ZWWp1O30dSnj5CtR75PrMsLMhsTR+j2NmEPiFx8=; b=GxWGi4/Yd2Bc+zg7iPra7dVV2/5kipq55+yNa15DJVsu5Qt7UmReYobyOi54OaJcQu cTod4kH2vehSlIkM3yp/gPvZmaBznVkuoFoF/rZEnlkln+fCcaOk3qJuDHZdRDB+5euq oWwk5e2jQE6HHCvFMQkZPNa8WcLhevDELMkz98N0mIbQA64pdcfMPWEMXTxTmMe3jhMF jKxB2PJ/WFH+D2G92uhwDN77eI2JY3ZBc5N1m+VM7Z1dsRbGyWzPCJa3fDDibtB3DsAM CmClavU4Lzc40hPazpWdxlEy8ACZ6rdZGOX8c05ODem6qAy6ER3bPsI2kUZ9gNMf468e dhyw== X-Gm-Message-State: APjAAAUi6Fe7n1dBQDZUUWHNkTKPl7zjRmzL4Fu3dSmcRuZVRYV5xsSX 1WUthbcNeCQewHV7eedvG+3SBA== X-Google-Smtp-Source: APXvYqyQngmZwEMiV50jPJnMbKoThh06pNgZsnzzBHaqTx6Pi+eTv6+RLAEWklHxWNAH9mCzL/IUjw== X-Received: by 2002:a17:90a:890c:: with SMTP id u12mr7501590pjn.121.1569429915470; Wed, 25 Sep 2019 09:45:15 -0700 (PDT) Received: from localhost ([2620:15c:202:1:75a:3f6e:21d:9374]) by smtp.gmail.com with ESMTPSA id j128sm10149114pfg.51.2019.09.25.09.45.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Sep 2019 09:45:14 -0700 (PDT) Date: Wed, 25 Sep 2019 09:45:13 -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: <20190925164513.GM133864@google.com> References: <3eb8a1d1e7d738f7599d54348d6b474196581693.1569319738.git.leonard.crestez@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: 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-20190925_094516_476236_1CC941A1 X-CRM114-Status: GOOD ( 29.19 ) 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 T24gV2VkLCBTZXAgMjUsIDIwMTkgYXQgMTE6NDE6MDdBTSArMDkwMCwgQ2hhbndvbyBDaG9pIHdy b3RlOgo+IE9uIDE5LiA5LiAyNC4g7Jik7ZuEIDc6MTEsIExlb25hcmQgQ3Jlc3RleiB3cm90ZToK PiA+IFN3aXRjaCB0aGUgaGFuZGxpbmcgb2YgbWluX2ZyZXEgYW5kIG1heF9mcmVxIGZyb20gc3lz ZnMgdG8gdXNlIHRoZQo+ID4gZGV2X3BtX3Fvc19yZXF1ZXN0IGludGVyZmFjZS4KPiA+IAo+ID4g U2luY2UgUE0gUW9TIGhhbmRsZXMgZnJlcXVlbmNpZXMgYXMga0h6IHRoaXMgY2hhbmdlIHJlZHVj ZXMgdGhlCj4gPiBwcmVjaXNpb24gb2YgbWluX2ZyZXEgYW5kIG1heF9mcmVxLiBUaGlzIHNob3Vs ZG4ndCBpbnRyb2R1Y2UgcHJvYmxlbXMKPiA+IGJlY2F1c2UgZnJlcXVlbmNpZXMgd2hpY2ggYXJl IG5vdCBhbiBpbnRlZ2VyIG51bWJlciBvZiBrSHogYXJlIGxpa2VseQo+ID4gbm90IGFuIGludGVn ZXIgbnVtYmVyIG9mIEh6IGVpdGhlci4KPiA+IAo+ID4gVHJ5IHRvIGVuc3VyZSBjb21wYXRpYmls aXR5IGJ5IHJvdW5kaW5nIG1pbiB2YWx1ZXMgZG93biBhbmQgcm91bmRpbmcKPiA+IG1heCB2YWx1 ZXMgdXAuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IExlb25hcmQgQ3Jlc3RleiA8bGVvbmFyZC5j cmVzdGV6QG54cC5jb20+Cj4gPiBSZXZpZXdlZC1ieTogTWF0dGhpYXMgS2FlaGxja2UgPG1rYUBj aHJvbWl1bS5vcmc+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2RldmZyZXEvZGV2ZnJlcS5jIHwgNDYg KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gPiAgaW5jbHVkZS9saW51 eC9kZXZmcmVxLmggICB8ICA5ICsrKystLS0tCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNl cnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZGV2ZnJlcS9kZXZmcmVxLmMgYi9kcml2ZXJzL2RldmZyZXEvZGV2ZnJlcS5jCj4gPiBpbmRleCA3 ODRmM2U0MDUzNmEuLjhiYjdlZmQ4MjFhYiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZGV2ZnJl cS9kZXZmcmVxLmMKPiA+ICsrKyBiL2RyaXZlcnMvZGV2ZnJlcS9kZXZmcmVxLmMKPiA+IEBAIC0x MzcsMTQgKzEzNywxMCBAQCBzdGF0aWMgdm9pZCBnZXRfZnJlcV9yYW5nZShzdHJ1Y3QgZGV2ZnJl cSAqZGV2ZnJlcSwKPiA+ICAJcW9zX21heF9mcmVxID0gZGV2X3BtX3Fvc19yZWFkX3ZhbHVlKGRl dmZyZXEtPmRldi5wYXJlbnQsCj4gPiAgCQkJCQkgICAgIERFVl9QTV9RT1NfTUlOX0ZSRVFVRU5D WSk7Cj4gPiAgCSptaW5fZnJlcSA9IG1heCgqbWluX2ZyZXEsIEhaX1BFUl9LSFogKiBxb3NfbWlu X2ZyZXEpOwo+ID4gIAkqbWF4X2ZyZXEgPSBtaW4oKm1heF9mcmVxLCBIWl9QRVJfS0haICogcW9z X21heF9mcmVxKTsKPiA+ICAKPiA+IC0JLyogY29uc3RyYWludHMgZnJvbSBzeXNmcyAqLwo+ID4g LQkqbWluX2ZyZXEgPSBtYXgoKm1pbl9mcmVxLCBkZXZmcmVxLT5taW5fZnJlcSk7Cj4gPiAtCSpt YXhfZnJlcSA9IG1pbigqbWF4X2ZyZXEsIGRldmZyZXEtPm1heF9mcmVxKTsKPiA+IC0KPiA+ICAJ LyogY29uc3RyYWludHMgZnJvbSBPUFAgaW50ZXJmYWNlICovCj4gPiAgCSptaW5fZnJlcSA9IG1h eCgqbWluX2ZyZXEsIGRldmZyZXEtPnNjYWxpbmdfbWluX2ZyZXEpOwo+ID4gIAkvKiBzY2FsaW5n X21heF9mcmVxIGNhbiBiZSB6ZXJvIG9uIGVycm9yICovCj4gPiAgCWlmIChkZXZmcmVxLT5zY2Fs aW5nX21heF9mcmVxKQo+ID4gIAkJKm1heF9mcmVxID0gbWluKCptYXhfZnJlcSwgZGV2ZnJlcS0+ c2NhbGluZ19tYXhfZnJlcSk7Cj4gPiBAQCAtNjc5LDEwICs2NzUsMTIgQEAgc3RhdGljIHZvaWQg ZGV2ZnJlcV9kZXZfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiAgCQkJREVWX1BNX1FP U19NSU5fRlJFUVVFTkNZKTsKPiA+ICAKPiA+ICAJaWYgKGRldmZyZXEtPnByb2ZpbGUtPmV4aXQp Cj4gPiAgCQlkZXZmcmVxLT5wcm9maWxlLT5leGl0KGRldmZyZXEtPmRldi5wYXJlbnQpOwo+ID4g IAo+ID4gKwlkZXZfcG1fcW9zX3JlbW92ZV9yZXF1ZXN0KCZkZXZmcmVxLT51c2VyX21heF9mcmVx X3JlcSk7Cj4gPiArCWRldl9wbV9xb3NfcmVtb3ZlX3JlcXVlc3QoJmRldmZyZXEtPnVzZXJfbWlu X2ZyZXFfcmVxKTsKPiAKPiBQbGVhc2UgY2hlY2sgdGhlIHJldHVybiB2YWx1ZSBpZiBlcnJvciBo YXBwZW4sIGp1c3QgcHJpbnQgdGhlIGVyciB3aXRoIGRldl9lcnIoKQo+IHdpdGhvdXQgc3RvcHBp bmcgdGhlIHJlbGVhc2Ugc3RlcHMuCgpJIHdvbmRlciBpZiBkZXZfd2FybigpIHdvdWxkIGJlIG1v cmUgYXBwcm9wcmlhdGUsIHNpbmNlIHRoZSBjdXJyZW50IG9wZXJhdGlvbgppcyBub3QgYWJvcnRl ZC4KCj4gPiAgCWtmcmVlKGRldmZyZXEtPnRpbWVfaW5fc3RhdGUpOwo+ID4gIAlrZnJlZShkZXZm cmVxLT50cmFuc190YWJsZSk7Cj4gPiAgCW11dGV4X2Rlc3Ryb3koJmRldmZyZXEtPmxvY2spOwo+ ID4gIAlrZnJlZShkZXZmcmVxKTsKPiA+ICB9Cj4gPiBAQCAtNzQ3LDE4ICs3NDUsMjUgQEAgc3Ry dWN0IGRldmZyZXEgKmRldmZyZXFfYWRkX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiAg CWRldmZyZXEtPnNjYWxpbmdfbWluX2ZyZXEgPSBmaW5kX2F2YWlsYWJsZV9taW5fZnJlcShkZXZm cmVxKTsKPiA+ICAJaWYgKCFkZXZmcmVxLT5zY2FsaW5nX21pbl9mcmVxKSB7Cj4gPiAgCQllcnIg PSAtRUlOVkFMOwo+ID4gIAkJZ290byBlcnJfZGV2Owo+ID4gIAl9Cj4gPiAtCWRldmZyZXEtPm1p bl9mcmVxID0gZGV2ZnJlcS0+c2NhbGluZ19taW5fZnJlcTsKPiA+ICAKPiA+ICAJZGV2ZnJlcS0+ c2NhbGluZ19tYXhfZnJlcSA9IGZpbmRfYXZhaWxhYmxlX21heF9mcmVxKGRldmZyZXEpOwo+ID4g IAlpZiAoIWRldmZyZXEtPnNjYWxpbmdfbWF4X2ZyZXEpIHsKPiA+ICAJCWVyciA9IC1FSU5WQUw7 Cj4gPiAgCQlnb3RvIGVycl9kZXY7Cj4gPiAgCX0KPiA+IC0JZGV2ZnJlcS0+bWF4X2ZyZXEgPSBk ZXZmcmVxLT5zY2FsaW5nX21heF9mcmVxOwo+ID4gKwo+ID4gKwllcnIgPSBkZXZfcG1fcW9zX2Fk ZF9yZXF1ZXN0KGRldiwgJmRldmZyZXEtPnVzZXJfbWluX2ZyZXFfcmVxLAo+ID4gKwkJCQkgICAg IERFVl9QTV9RT1NfTUlOX0ZSRVFVRU5DWSwgMCk7Cj4gPiArCWlmIChlcnIgPCAwKQo+ID4gKwkJ Z290byBlcnJfZGV2Owo+ID4gKwllcnIgPSBkZXZfcG1fcW9zX2FkZF9yZXF1ZXN0KGRldiwgJmRl dmZyZXEtPnVzZXJfbWF4X2ZyZXFfcmVxLAo+ID4gKwkJCQkgICAgIERFVl9QTV9RT1NfTUFYX0ZS RVFVRU5DWSwgUzMyX01BWCk7Cj4gPiArCWlmIChlcnIgPCAwKQo+ID4gKwkJZ290byBlcnJfZGV2 Owo+ID4gIAo+ID4gIAlkZXZmcmVxLT5zdXNwZW5kX2ZyZXEgPSBkZXZfcG1fb3BwX2dldF9zdXNw ZW5kX29wcF9mcmVxKGRldik7Cj4gPiAgCWF0b21pY19zZXQoJmRldmZyZXEtPnN1c3BlbmRfY291 bnQsIDApOwo+ID4gIAo+ID4gIAlkZXZmcmVxLT50cmFuc190YWJsZSA9IGt6YWxsb2MoCj4gPiBA QCAtODQzLDEwICs4NDgsMTQgQEAgc3RydWN0IGRldmZyZXEgKmRldmZyZXFfYWRkX2RldmljZShz dHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiAgZXJyX2RldjoKPiA+ICAJLyoKPiA+ICAJICogQ2xlYW51 cCBwYXRoIGZvciBlcnJvcnMgdGhhdCBoYXBwZW4gYmVmb3JlIHJlZ2lzdHJhdGlvbi4KPiA+ICAJ ICogT3RoZXJ3aXNlIHdlIHJlbHkgb24gZGV2ZnJlcV9kZXZfcmVsZWFzZS4KPiA+ICAJICovCj4g PiArCWlmIChkZXZfcG1fcW9zX3JlcXVlc3RfYWN0aXZlKCZkZXZmcmVxLT51c2VyX21heF9mcmVx X3JlcSkpCj4gPiArCQlkZXZfcG1fcW9zX3JlbW92ZV9yZXF1ZXN0KCZkZXZmcmVxLT51c2VyX21h eF9mcmVxX3JlcSk7Cj4gCj4gUGxlYXNlIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgaWYgZXJyb3Ig aGFwcGVuLCBqdXN0IHByaW50IHRoZSBlcnIgd2l0aCBkZXZfZXJyKCkKPiB3aXRob3V0IHN0b3Bw aW5nIHRoZSByZWxlYXNlIHN0ZXBzLgo+IAo+IAlkZXZfZXJyKC4uLiAiZmFpbGVkIHRvIHJlbW92 ZSByZXF1ZXN0IG9mIERFVl9QTV9RT1NfTUFYX0ZSRVFVRU5DWVxuIik7CgpkZXZfd2FybigpIGZv ciB0aGUgc2FtZSByZWFzb24gYXMgYWJvdmU/CgpJIHRoaW5rIHRoZSBtZXNzYWdlIHdvdWxkIGJl IGJldHRlciB3aXRoIGEgc2xpZ2h0IGNoYW5nZToKCiJmYWlsZWQgdG8gcmVtb3ZlIERFVl9QTV9R T1NfTUFYX0ZSRVFVRU5DWSByZXF1ZXN0XG4iCgo+IAo+ID4gKwlpZiAoZGV2X3BtX3Fvc19yZXF1 ZXN0X2FjdGl2ZSgmZGV2ZnJlcS0+dXNlcl9taW5fZnJlcV9yZXEpKQo+ID4gKwkJZGV2X3BtX3Fv c19yZW1vdmVfcmVxdWVzdCgmZGV2ZnJlcS0+dXNlcl9taW5fZnJlcV9yZXEpOwo+IAkKPiAJZGV2 X2VyciguLi4gImZhaWxlZCB0byByZW1vdmUgcmVxdWVzdCBvZiBERVZfUE1fUU9TX01JTl9GUkVR VUVOQ1lcbiIpOwoKZGl0dG8KCj4gPiAgCWtmcmVlKGRldmZyZXEtPnRpbWVfaW5fc3RhdGUpOwo+ ID4gIAlrZnJlZShkZXZmcmVxLT50cmFuc190YWJsZSk7Cj4gPiAgCWtmcmVlKGRldmZyZXEpOwo+ ID4gIGVycl9vdXQ6Cj4gPiAgCXJldHVybiBFUlJfUFRSKGVycik7Cj4gPiBAQCAtMTQwNywxNCAr MTQxNiwxNSBAQCBzdGF0aWMgc3NpemVfdCBtaW5fZnJlcV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAo+ID4gIAo+ID4gIAlyZXQgPSBzc2Nh bmYoYnVmLCAiJWx1IiwgJnZhbHVlKTsKPiA+ICAJaWYgKHJldCAhPSAxKQo+ID4gIAkJcmV0dXJu IC1FSU5WQUw7Cj4gPiAgCj4gPiAtCW11dGV4X2xvY2soJmRmLT5sb2NrKTsKPiA+IC0JZGYtPm1p bl9mcmVxID0gdmFsdWU7Cj4gPiAtCXVwZGF0ZV9kZXZmcmVxKGRmKTsKPiA+IC0JbXV0ZXhfdW5s b2NrKCZkZi0+bG9jayk7Cj4gPiArCS8qIHJvdW5kIGRvd24gdG8ga0h6IGZvciBQTSBRb1MgKi8K PiAKPiBJIHByZWZlciBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIGFzIGZvbGxvd2luZzoKPiAK PiAJLyoKPiAJICogUm91bmQgZG93biB0byBLSHogdG8gZGVjaWRlIHRoZSBwcm9wZXIgbWluaW11 bSBmcmVxdWVuY3kKCml0IHNob3VsZCBiZSBrSHosIHdpdGggYSBsb3dlci1jYXNlICdrJywgYXMg aW4gdGhlIG9yaWdpbmFsIGNvbW1lbnQuCgo+IAkgKiB3aGljaCBpcyBjbG9zZWQgdG8gdXNlciBy ZXF1ZXN0Lgo+ICAJICovCgpUaGUgY29tbWVudCB5b3Ugc3VnZ2VzdCBkb2Vzbid0IHByb3ZpZGUg YW55IGluZm9ybWF0aW9uIGFib3V0IHdoeSB0aGUKY29udmVyc2lvbiB0byBrSHogaXMgZG9uZSwg aW4gdGhpcyBzZW5zZSB0aGUgb3JpZ2luYWwgY29tbWVudCB0aGF0Cm1lbnRpb25zIFBNIFFvUyBw cm92aWRlcyBtb3JlIHZhbHVlLgoKV2l0aCB3aGF0ZXZlciB3ZSBlbmQgdXAsIEkgc3VnZ2VzdCB0 byB1c2UgJ2NvbnZlcnQnIGluc3RlYWQgb2YKJ3JvdW5kIGRvd24nLgoKPiA+ICsJcmV0ID0gZGV2 X3BtX3Fvc191cGRhdGVfcmVxdWVzdCgmZGYtPnVzZXJfbWluX2ZyZXFfcmVxLAo+ID4gKwkJCQkJ dmFsdWUgLyBIWl9QRVJfS0haKTsKPiA+ICsJaWYgKHJldCA8IDApCj4gPiArCQlyZXR1cm4gcmV0 Owo+ID4gIAo+ID4gIAlyZXR1cm4gY291bnQ7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBzc2l6 ZV90IG1pbl9mcmVxX3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJp YnV0ZSAqYXR0ciwKPiA+IEBAIC0xNDM5LDE5ICsxNDQ5LDE5IEBAIHN0YXRpYyBzc2l6ZV90IG1h eF9mcmVxX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg KmF0dHIsCj4gPiAgCj4gPiAgCXJldCA9IHNzY2FuZihidWYsICIlbHUiLCAmdmFsdWUpOwo+ID4g IAlpZiAocmV0ICE9IDEpCj4gPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICAKPiA+IC0JbXV0ZXhf bG9jaygmZGYtPmxvY2spOwo+ID4gLQo+ID4gLQkvKiBJbnRlcnByZXQgemVybyBhcyAiZG9uJ3Qg Y2FyZSIgKi8KPiA+IC0JaWYgKCF2YWx1ZSkKPiA+IC0JCXZhbHVlID0gVUxPTkdfTUFYOwo+ID4g KwkvKiByb3VuZCB1cCB0byBrSHogZm9yIFBNIFFvUyBhbmQgaW50ZXJwcmV0IHplcm8gYXMgImRv bid0IGNhcmUiICovCj4gCj4gSSB0aGluayB0aGF0ICJkb24ndCBjYXJlIiBjb21tZW50IHN0eWxl IGlzIG5vdCBnb29kLgo+IAo+IEkgcmVmZXJyZWQgdG8gdGhlIERvY3VtZW50YXRpb24vQUJJL3Rl c3Rpbmcvc3lzZnMtY2xhc3MtZGV2ZnJlcSBmaWxlLgo+IEkgcHJlZmVyIG1vcmUgZGV0YWlsZWQg ZGVzY3JpcHRpb24gYXMgZm9sbG93aW5nOgo+IAkvKgo+IAkgKiBSb3VuZCB1cCB0byBLSHogdG8g ZGVjaWRlIHRoZSBwcm9wZXIgbWF4aW11bSBmcmVxdWVuY3kKCmtIegoKPiAJICogd2hpY2ggaXMg Y2xvc2VkIHRvIHVzZXIgcmVxdWVzdC4gSWYgdmFsdWUgaXMgemVybywKPiAJICogdGhlIHVzZXIg ZG9lcyBub3QgY2FyZS4KCiJ0aGUgdXNlciBkb2VzIG5vdCBjYXJlIiBpcyBzdGlsbCB2ZXJ5IGNh c3VhbCB5b3UgZGlkbid0IGxpa2UgaW5pdGlhbGx5LgpIb3cgYWJvdXQgIkEgdmFsdWUgb2YgemVy byBpcyBpbnRlcnByZXRlZCBhcyAnbm8gbGltaXQnLiI/CgpBcyBmb3IgdGhlIG1pbiBmcmVxLCBJ IHRoaW5rIFBNIFFvUyBzaG91bGQgYmUgbWVudGlvbmVkIHRvIG1ha2UgY2xlYXIgd2h5CnRoZSBj b252ZXJzaW9uIHRvIGtIeiBpcyBuZWVkZWQuCgo+ICAJICovCj4gCj4gCj4gPiArCWlmICh2YWx1 ZSkKPiA+ICsJCXZhbHVlID0gRElWX1JPVU5EX1VQKHZhbHVlLCBIWl9QRVJfS0haKTsKPiA+ICsJ ZWxzZQo+ID4gKwkJdmFsdWUgPSBTMzJfTUFYOwo+ID4gIAo+ID4gLQlkZi0+bWF4X2ZyZXEgPSB2 YWx1ZTsKPiA+IC0JdXBkYXRlX2RldmZyZXEoZGYpOwo+ID4gLQltdXRleF91bmxvY2soJmRmLT5s b2NrKTsKPiA+ICsJcmV0ID0gZGV2X3BtX3Fvc191cGRhdGVfcmVxdWVzdCgmZGYtPnVzZXJfbWF4 X2ZyZXFfcmVxLCB2YWx1ZSk7Cj4gPiArCWlmIChyZXQgPCAwKQo+ID4gKwkJcmV0dXJuIHJldDsK PiA+ICAKPiA+ICAJcmV0dXJuIGNvdW50Owo+ID4gIH0KPiA+ICBzdGF0aWMgREVWSUNFX0FUVFJf UlcobWluX2ZyZXEpOwo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGV2ZnJl cS5oIGIvaW5jbHVkZS9saW51eC9kZXZmcmVxLmgKPiA+IGluZGV4IGRhYzBkZmZlYWJiNC4uNzg0 OWZlNGM2NjZkIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9saW51eC9kZXZmcmVxLmgKPiA+ICsr KyBiL2luY2x1ZGUvbGludXgvZGV2ZnJlcS5oCj4gPiBAQCAtMTEsMTAgKzExLDExIEBACj4gPiAg I2RlZmluZSBfX0xJTlVYX0RFVkZSRVFfSF9fCj4gPiAgCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2Rl dmljZS5oPgo+ID4gICNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgo+ID4gICNpbmNsdWRlIDxs aW51eC9wbV9vcHAuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvcG1fcW9zLmg+Cj4gPiAgCj4gPiAg I2RlZmluZSBERVZGUkVRX05BTUVfTEVOIDE2Cj4gPiAgCj4gPiAgLyogREVWRlJFUSBnb3Zlcm5v ciBuYW1lICovCj4gPiAgI2RlZmluZSBERVZGUkVRX0dPVl9TSU1QTEVfT05ERU1BTkQJInNpbXBs ZV9vbmRlbWFuZCIKPiA+IEBAIC0xMjEsMTIgKzEyMiwxMiBAQCBzdHJ1Y3QgZGV2ZnJlcV9kZXZf cHJvZmlsZSB7Cj4gPiAgICoJCWRldmZyZXEubmIgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcmVnaXN0 ZXIgbm90aWZpZXIgY2FsbCBjaGFpbi4KPiA+ICAgKiBAd29yazoJZGVsYXllZCB3b3JrIGZvciBs b2FkIG1vbml0b3JpbmcuCj4gPiAgICogQHByZXZpb3VzX2ZyZXE6CXByZXZpb3VzbHkgY29uZmln dXJlZCBmcmVxdWVuY3kgdmFsdWUuCj4gPiAgICogQGRhdGE6CVByaXZhdGUgZGF0YSBvZiB0aGUg Z292ZXJub3IuIFRoZSBkZXZmcmVxIGZyYW1ld29yayBkb2VzIG5vdAo+ID4gICAqCQl0b3VjaCB0 aGlzLgo+ID4gLSAqIEBtaW5fZnJlcToJTGltaXQgbWluaW11bSBmcmVxdWVuY3kgcmVxdWVzdGVk IGJ5IHVzZXIgKDA6IG5vbmUpCj4gPiAtICogQG1heF9mcmVxOglMaW1pdCBtYXhpbXVtIGZyZXF1 ZW5jeSByZXF1ZXN0ZWQgYnkgdXNlciAoMDogbm9uZSkKPiA+ICsgKiBAdXNlcl9taW5fZnJlcV9y ZXE6CVBNIFFvUyBtaW4gZnJlcXVlbmN5IHJlcXVlc3QgZnJvbSB1c2VyICh2aWEgc3lzZnMpCj4g Cj4gbWluIC0+IG1pbmltdW0gYW5kIHRoZW4gcmVtb3ZlIHBhcmVudGhlc2lzIGFzIGZvbGxvd2lu ZzoKPiAJUE0gUW9TIG1pbmltdW0gZnJlcXVlbmN5IHJlcXVlc3QgYnkgdXNlciB2aWEgc3lzZnMK PiAKPiA+ICsgKiBAdXNlcl9tYXhfZnJlcV9yZXE6CVBNIFFvUyBtYXggZnJlcXVlbmN5IHJlcXVl c3QgZnJvbSB1c2VyICh2aWEgc3lzZnMpCj4gCj4gZGl0dG8uIG1heCAtPiBtYXhpbXVtCj4gCVBN IFFvUyBtYXhpbXVtIGZyZXF1ZW5jeSByZXF1ZXN0IGJ5IHVzZXIgdmlhIHN5c2ZzCj4gCj4gPiAg ICogQHNjYWxpbmdfbWluX2ZyZXE6CUxpbWl0IG1pbmltdW0gZnJlcXVlbmN5IHJlcXVlc3RlZCBi eSBPUFAgaW50ZXJmYWNlCj4gPiAgICogQHNjYWxpbmdfbWF4X2ZyZXE6CUxpbWl0IG1heGltdW0g ZnJlcXVlbmN5IHJlcXVlc3RlZCBieSBPUFAgaW50ZXJmYWNlCj4gPiAgICogQHN0b3BfcG9sbGlu ZzoJIGRldmZyZXEgcG9sbGluZyBzdGF0dXMgb2YgYSBkZXZpY2UuCj4gPiAgICogQHN1c3BlbmRf ZnJlcToJIGZyZXF1ZW5jeSBvZiBhIGRldmljZSBzZXQgZHVyaW5nIHN1c3BlbmQgcGhhc2UuCj4g PiAgICogQHJlc3VtZV9mcmVxOgkgZnJlcXVlbmN5IG9mIGEgZGV2aWNlIHNldCBpbiByZXN1bWUg cGhhc2UuCj4gPiBAQCAtMTYxLDEyICsxNjIsMTIgQEAgc3RydWN0IGRldmZyZXEgewo+ID4gIAl1 bnNpZ25lZCBsb25nIHByZXZpb3VzX2ZyZXE7Cj4gPiAgCXN0cnVjdCBkZXZmcmVxX2Rldl9zdGF0 dXMgbGFzdF9zdGF0dXM7Cj4gPiAgCj4gPiAgCXZvaWQgKmRhdGE7IC8qIHByaXZhdGUgZGF0YSBm b3IgZ292ZXJub3JzICovCj4gPiAgCj4gPiAtCXVuc2lnbmVkIGxvbmcgbWluX2ZyZXE7Cj4gPiAt CXVuc2lnbmVkIGxvbmcgbWF4X2ZyZXE7Cj4gPiArCXN0cnVjdCBkZXZfcG1fcW9zX3JlcXVlc3Qg dXNlcl9taW5fZnJlcV9yZXE7Cj4gPiArCXN0cnVjdCBkZXZfcG1fcW9zX3JlcXVlc3QgdXNlcl9t YXhfZnJlcV9yZXE7Cj4gPiAgCXVuc2lnbmVkIGxvbmcgc2NhbGluZ19taW5fZnJlcTsKPiA+ICAJ dW5zaWduZWQgbG9uZyBzY2FsaW5nX21heF9mcmVxOwo+ID4gIAlib29sIHN0b3BfcG9sbGluZzsK PiA+ICAKPiA+ICAJdW5zaWduZWQgbG9uZyBzdXNwZW5kX2ZyZXE7Cj4gPiAKPiAKPiAKPiAtLSAK PiBCZXN0IFJlZ2FyZHMsCj4gQ2hhbndvbyBDaG9pCj4gU2Ftc3VuZyBFbGVjdHJvbmljcwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=