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 ADC20C52D7C for ; Thu, 15 Aug 2024 16:20:23 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc: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=HTGWswfjnWarkLGrEAAXNAaSaxRnVqlyNCBV5Er0FG8=; b=UxnDhc9AaB0uYz mj/MFc6Sx1+3cU4RsyR9SKhccdWQGAi1L1ji8vo4A8iiMBdFMqzJMv2SMIs2t+BVPSsL0cmrltAHL v3UiXQI9BmmqzSmhde9Sx9bjzwC0WpuYn5lNl/7XfOZkE7wQpyWDzHEwfFFYKDL2UDlaDv4Z8az+Q yryRBhIvGV5XYwYR9uQ5LvF58Mlws5euHq3gfAdbaZuIqPIxngqgJpZezFXQSAgpJTa3kKeAM7cLk bxnA0zAXY79SK3XiN6JgrCiWt3B52WT1/tWzZYt6uP6OCs33gAxVRz5usXklV9ErSxgh+4lE+IwZx P5R4wNgp5ThlFlHEOT4g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sedD2-0000000AUuO-1jMb; Thu, 15 Aug 2024 16:20:20 +0000 Received: from mail-pg1-x52a.google.com ([2607:f8b0:4864:20::52a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sedCu-0000000AUsN-23RY for linux-rockchip@lists.infradead.org; Thu, 15 Aug 2024 16:20:18 +0000 Received: by mail-pg1-x52a.google.com with SMTP id 41be03b00d2f7-7bb75419123so917328a12.3 for ; Thu, 15 Aug 2024 09:20:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1723738811; x=1724343611; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=ik5jJmziSuK8GBVOaaeMajQRPRpyvl2v8hzurhsdC64=; b=tW5MwpNQu8IuPFrtZ0CPj+gdKOGKimGgNiz8clwUMOk2HIOgIuCXxKj5cOlVqtLMbl 9QXh/63jccbyiq7WrQYpl1ukSXRAe8O49WrWFhCxW0q7Y7pE/Nj3XX9opVuRDHHKA3oa qOYIZKMV+dpopMOoqyjKsEJLtGZVmdDKispHMh3syQSOOuG18UILIOYlpfpq12EwtSYI kbKxqb4cHnkKO5YRBfopfvl3bfllreRuGuX6Udy6MovR51unZQgN8vF7bOtdL7awFG+p vbmE98UQKIB6cUZcgGrDtgAYSF9ZfBnY1Y1UDuJZOtJVmhVmQCqPD/UErIghzp+63nZu zOCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723738811; x=1724343611; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ik5jJmziSuK8GBVOaaeMajQRPRpyvl2v8hzurhsdC64=; b=MTJwoSsV1a3MPBEZLqs8tNbKFWx8JOhFkNbV+8PLmCWgxrjoikwy9vvRsDgK/Z+u1M +LgYbXONUmBFGDwOEtNWdJXgH46RW0mEBGVNqOjR6pSP+Ea4qFnczd5j5aIAvEEqIYFO h/aQNTgGG0/v8hg7NogK0up8rO/av1P2GrX0KuwKkYdrrk5lPU/Z9a4u1q0xYtuw+jZT hlKVTLhbINasqtFo2CPpvoF9U7BozQ/vUwJvDGD4MJcdYz4evy0vPB7/YLKc+e80gZ3m ph3DaPuNYOTqJ9vwinChEYOnfjQscCtDeQEkS5q10Xt6U7tHDv6XNT9rtBagp4DkHr8D laCw== X-Forwarded-Encrypted: i=1; AJvYcCXeWjQkEhYaSQZEQCixvAS7M6MtCKzA5ViVQGugPOnKlTTMZ39zHPASYXMQ8vXRKeHTacpE7vDNXollAnHGeNQVSWmiJQdNat/8iIDYVSBEVO6u X-Gm-Message-State: AOJu0YwyJnFlhOmclvcoIJyW6BmTngPe5RXKd0rDPj8cBhFL76671RTp AtA1RPMIZsHqQNWpZEaLF6HChkXPxWuG3+KwiOGy+E0/FPgmG786lNK2saYlsZNd5LmfjHLjO18 = X-Google-Smtp-Source: AGHT+IHuOzAztyLkgbs6qAt/4J9NqgairvPE0eQNt56uNJdXaObqpsnNzVitDeMRYZDtF3El/Xf7yw== X-Received: by 2002:a05:6a21:3401:b0:1c4:87b0:9157 with SMTP id adf61e73a8af0-1c904f91febmr249904637.22.1723738811113; Thu, 15 Aug 2024 09:20:11 -0700 (PDT) Received: from thinkpad ([36.255.17.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7127af188a4sm1166094b3a.164.2024.08.15.09.20.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Aug 2024 09:20:10 -0700 (PDT) Date: Thu, 15 Aug 2024 21:50:04 +0530 From: Manivannan Sadhasivam To: Anand Moon Cc: Shawn Lin , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas , Heiko Stuebner , Philipp Zabel , linux-pci@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 2/3] PCI: rockchip: Simplify reset control handling by using reset_control_bulk*() function Message-ID: <20240815162004.GF2562@thinkpad> References: <20240625104039.48311-1-linux.amoon@gmail.com> <20240625104039.48311-2-linux.amoon@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240625104039.48311-2-linux.amoon@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240815_092012_573399_CF54995F X-CRM114-Status: GOOD ( 28.61 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gVHVlLCBKdW4gMjUsIDIwMjQgYXQgMDQ6MTA6MzNQTSArMDUzMCwgQW5hbmQgTW9vbiB3cm90 ZToKPiBSZWZhY3RvciB0aGUgcmVzZXQgY29udHJvbCBoYW5kbGluZyBpbiB0aGUgUm9ja2NoaXAg UENJZSBkcml2ZXIsCj4gaW50cm9kdWNpbmcgYSBtb3JlIHJvYnVzdCBhbmQgZWZmaWNpZW50IG1l dGhvZCBmb3IgYXNzZXJ0IGFuZAo+IGRlYXNzZXJ0IHJlc2V0IGNvbnRyb2xsZXIgdXNpbmcgcmVz ZXRfY29udHJvbF9idWxrKigpIEFQSS4gVXNpbmcgdGhlCj4gcmVzZXRfY29udHJvbF9idWxrIEFQ SXMsIHRoZSByZXNldCBoYW5kbGluZyBmb3IgdGhlIGNvcmUgY2xvY2tzIHJlc2V0Cj4gdW5pdCBi ZWNvbWVzIG11Y2ggc2ltcGxlci4KPiAKPiBBcyBwZXIgcm9ja2NoaXAgcmszMzk5IFRSTSBTT0ZU UlNUX0NPTjggc29mdCByZXNldCBjb250cm9sbGVyCj4gaGF2ZSBjbG9jayByZXNldCB1bml0IHZh bHVlIHNldCB0byAweDEgZm9yIGV4YW1wbGUgInBjaWVfcGlwZSIsCj4gInBjaWVfbWdtdF9zdGlj a3kiLCAicGNpZV9tZ210IiBhbmQgInBjaV9jb3JlIiwgaGVuY2UgZ3JvdXAgdGhlbiB1bmRlcgo+ IG9uZSByZXNldCBidWxrIGNvbnRyb2xsZXIuCj4gCj4gV2hlcmUgYXMgInBjaWVfcG0iLCAicHJl c2V0bl9wY2llIiwgImFyZXNldG5fcGNpZSIgaGF2ZSByZXNldCB2YWx1ZQo+IHNldCB0byAweDAs IGhlbmNlIGdyb3VwIHRoZW0gdW5kZXIgcmVzZXQgY29udHJvbCBidWxrIGNvbnRyb2xsZXIuCj4g Cj4gU2lnbmVkLW9mZi1ieTogQW5hbmQgTW9vbiA8bGludXguYW1vb25AZ21haWwuY29tPgo+IC0t LQo+IHY0OiB1c2UgZGV2X2Vycl9wcm9iZSBpbiBlcnJvciBwYXRoLgo+IHYzOiBGaXggdHlwbyBp biBjb21taXQgbWVzc2FnZSwgZHJvcHBlZCByZXBvcnRlZCBieS4KPiB2MjogRml4IGNvbXBpbGF0 aW9uIGVycm9yIHJlcG9ydGVkIGJ5IEludGVsIHRlc3Qgcm9ib3QKPiAgICAgZml4ZWQgY2hlY2tw YXRjaCB3YXJuaW5nCj4gLS0tCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hp cC5jIHwgMTQ5ICsrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9wY2kvY29udHJv bGxlci9wY2llLXJvY2tjaGlwLmggfCAgMjUgKysrLS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA0NyBp bnNlcnRpb25zKCspLCAxMjcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9w Y2llLXJvY2tjaGlwLmMKPiBpbmRleCA4MDQxMzU1MTE1MjguLjAyNDMwOGJiNmFjOCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAuYwo+ICsrKyBiL2Ry aXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1yb2NrY2hpcC5jCj4gQEAgLTY5LDU1ICs2OSwyMyBA QCBpbnQgcm9ja2NoaXBfcGNpZV9wYXJzZV9kdChzdHJ1Y3Qgcm9ja2NoaXBfcGNpZSAqcm9ja2No aXApCj4gIAlpZiAocm9ja2NoaXAtPmxpbmtfZ2VuIDwgMCB8fCByb2NrY2hpcC0+bGlua19nZW4g PiAyKQo+ICAJCXJvY2tjaGlwLT5saW5rX2dlbiA9IDI7Cj4gIAo+IC0Jcm9ja2NoaXAtPmNvcmVf cnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9leGNsdXNpdmUoZGV2LCAiY29yZSIpOwo+IC0J aWYgKElTX0VSUihyb2NrY2hpcC0+Y29yZV9yc3QpKSB7Cj4gLQkJaWYgKFBUUl9FUlIocm9ja2No aXAtPmNvcmVfcnN0KSAhPSAtRVBST0JFX0RFRkVSKQo+IC0JCQlkZXZfZXJyKGRldiwgIm1pc3Np bmcgY29yZSByZXNldCBwcm9wZXJ0eSBpbiBub2RlXG4iKTsKPiAtCQlyZXR1cm4gUFRSX0VSUihy b2NrY2hpcC0+Y29yZV9yc3QpOwo+IC0JfQo+IC0KPiAtCXJvY2tjaGlwLT5tZ210X3JzdCA9IGRl dm1fcmVzZXRfY29udHJvbF9nZXRfZXhjbHVzaXZlKGRldiwgIm1nbXQiKTsKPiAtCWlmIChJU19F UlIocm9ja2NoaXAtPm1nbXRfcnN0KSkgewo+IC0JCWlmIChQVFJfRVJSKHJvY2tjaGlwLT5tZ210 X3JzdCkgIT0gLUVQUk9CRV9ERUZFUikKPiAtCQkJZGV2X2VycihkZXYsICJtaXNzaW5nIG1nbXQg cmVzZXQgcHJvcGVydHkgaW4gbm9kZVxuIik7Cj4gLQkJcmV0dXJuIFBUUl9FUlIocm9ja2NoaXAt Pm1nbXRfcnN0KTsKPiAtCX0KPiAtCj4gLQlyb2NrY2hpcC0+bWdtdF9zdGlja3lfcnN0ID0gZGV2 bV9yZXNldF9jb250cm9sX2dldF9leGNsdXNpdmUoZGV2LAo+IC0JCQkJCQkJCSJtZ210LXN0aWNr eSIpOwo+IC0JaWYgKElTX0VSUihyb2NrY2hpcC0+bWdtdF9zdGlja3lfcnN0KSkgewo+IC0JCWlm IChQVFJfRVJSKHJvY2tjaGlwLT5tZ210X3N0aWNreV9yc3QpICE9IC1FUFJPQkVfREVGRVIpCj4g LQkJCWRldl9lcnIoZGV2LCAibWlzc2luZyBtZ210LXN0aWNreSByZXNldCBwcm9wZXJ0eSBpbiBu b2RlXG4iKTsKPiAtCQlyZXR1cm4gUFRSX0VSUihyb2NrY2hpcC0+bWdtdF9zdGlja3lfcnN0KTsK PiAtCX0KPiAtCj4gLQlyb2NrY2hpcC0+cGlwZV9yc3QgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0 X2V4Y2x1c2l2ZShkZXYsICJwaXBlIik7Cj4gLQlpZiAoSVNfRVJSKHJvY2tjaGlwLT5waXBlX3Jz dCkpIHsKPiAtCQlpZiAoUFRSX0VSUihyb2NrY2hpcC0+cGlwZV9yc3QpICE9IC1FUFJPQkVfREVG RVIpCj4gLQkJCWRldl9lcnIoZGV2LCAibWlzc2luZyBwaXBlIHJlc2V0IHByb3BlcnR5IGluIG5v ZGVcbiIpOwo+IC0JCXJldHVybiBQVFJfRVJSKHJvY2tjaGlwLT5waXBlX3JzdCk7Cj4gLQl9Cj4g Kwlmb3IgKGkgPSAwOyBpIDwgUk9DS0NISVBfTlVNX1BNX1JTVFM7IGkrKykKPiArCQlyb2NrY2hp cC0+cG1fcnN0c1tpXS5pZCA9IHJvY2tjaGlwX3BjaV9wbV9yc3RzW2ldOwo+ICAKPiAtCXJvY2tj aGlwLT5wbV9yc3QgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X2V4Y2x1c2l2ZShkZXYsICJwbSIp Owo+IC0JaWYgKElTX0VSUihyb2NrY2hpcC0+cG1fcnN0KSkgewo+IC0JCWlmIChQVFJfRVJSKHJv Y2tjaGlwLT5wbV9yc3QpICE9IC1FUFJPQkVfREVGRVIpCj4gLQkJCWRldl9lcnIoZGV2LCAibWlz c2luZyBwbSByZXNldCBwcm9wZXJ0eSBpbiBub2RlXG4iKTsKPiAtCQlyZXR1cm4gUFRSX0VSUihy b2NrY2hpcC0+cG1fcnN0KTsKPiAtCX0KPiArCWVyciA9IGRldm1fcmVzZXRfY29udHJvbF9idWxr X2dldF9vcHRpb25hbF9leGNsdXNpdmUoZGV2LAo+ICsJCQkJCQkJICAgICBST0NLQ0hJUF9OVU1f UE1fUlNUUywKPiArCQkJCQkJCSAgICAgcm9ja2NoaXAtPnBtX3JzdHMpOwo+ICsJaWYgKGVycikK PiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIGVyciwgImNhbm5vdCBnZXQgdGhlIHJlc2V0 IGNvbnRyb2xcbiIpOwo+ICAKPiAtCXJvY2tjaGlwLT5wY2xrX3JzdCA9IGRldm1fcmVzZXRfY29u dHJvbF9nZXRfZXhjbHVzaXZlKGRldiwgInBjbGsiKTsKPiAtCWlmIChJU19FUlIocm9ja2NoaXAt PnBjbGtfcnN0KSkgewo+IC0JCWlmIChQVFJfRVJSKHJvY2tjaGlwLT5wY2xrX3JzdCkgIT0gLUVQ Uk9CRV9ERUZFUikKPiAtCQkJZGV2X2VycihkZXYsICJtaXNzaW5nIHBjbGsgcmVzZXQgcHJvcGVy dHkgaW4gbm9kZVxuIik7Cj4gLQkJcmV0dXJuIFBUUl9FUlIocm9ja2NoaXAtPnBjbGtfcnN0KTsK PiAtCX0KPiArCWZvciAoaSA9IDA7IGkgPCBST0NLQ0hJUF9OVU1fQ09SRV9SU1RTOyBpKyspCj4g KwkJcm9ja2NoaXAtPmNvcmVfcnN0c1tpXS5pZCA9IHJvY2tjaGlwX3BjaV9jb3JlX3JzdHNbaV07 Cj4gIAo+IC0Jcm9ja2NoaXAtPmFjbGtfcnN0ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9leGNs dXNpdmUoZGV2LCAiYWNsayIpOwo+IC0JaWYgKElTX0VSUihyb2NrY2hpcC0+YWNsa19yc3QpKSB7 Cj4gLQkJaWYgKFBUUl9FUlIocm9ja2NoaXAtPmFjbGtfcnN0KSAhPSAtRVBST0JFX0RFRkVSKQo+ IC0JCQlkZXZfZXJyKGRldiwgIm1pc3NpbmcgYWNsayByZXNldCBwcm9wZXJ0eSBpbiBub2RlXG4i KTsKPiAtCQlyZXR1cm4gUFRSX0VSUihyb2NrY2hpcC0+YWNsa19yc3QpOwo+IC0JfQo+ICsJZXJy ID0gZGV2bV9yZXNldF9jb250cm9sX2J1bGtfZ2V0X29wdGlvbmFsX2V4Y2x1c2l2ZShkZXYsCj4g KwkJCQkJCQkgICAgIFJPQ0tDSElQX05VTV9DT1JFX1JTVFMsCj4gKwkJCQkJCQkgICAgIHJvY2tj aGlwLT5jb3JlX3JzdHMpOwo+ICsJaWYgKGVycikKPiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShk ZXYsIGVyciwgImNhbm5vdCBnZXQgdGhlIHJlc2V0IGNvbnRyb2xcbiIpOwo+ICAKPiAgCWlmIChy b2NrY2hpcC0+aXNfcmMpIHsKPiAgCQlyb2NrY2hpcC0+ZXBfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0 X29wdGlvbmFsKGRldiwgImVwIiwKPiBAQCAtMTUwLDIzICsxMTgsMTAgQEAgaW50IHJvY2tjaGlw X3BjaWVfaW5pdF9wb3J0KHN0cnVjdCByb2NrY2hpcF9wY2llICpyb2NrY2hpcCkKPiAgCWludCBl cnIsIGk7Cj4gIAl1MzIgcmVnczsKPiAgCj4gLQllcnIgPSByZXNldF9jb250cm9sX2Fzc2VydChy b2NrY2hpcC0+YWNsa19yc3QpOwo+IC0JaWYgKGVycikgewo+IC0JCWRldl9lcnIoZGV2LCAiYXNz ZXJ0IGFjbGtfcnN0IGVyciAlZFxuIiwgZXJyKTsKPiAtCQlyZXR1cm4gZXJyOwo+IC0JfQo+IC0K PiAtCWVyciA9IHJlc2V0X2NvbnRyb2xfYXNzZXJ0KHJvY2tjaGlwLT5wY2xrX3JzdCk7Cj4gLQlp ZiAoZXJyKSB7Cj4gLQkJZGV2X2VycihkZXYsICJhc3NlcnQgcGNsa19yc3QgZXJyICVkXG4iLCBl cnIpOwo+IC0JCXJldHVybiBlcnI7Cj4gLQl9Cj4gLQo+IC0JZXJyID0gcmVzZXRfY29udHJvbF9h c3NlcnQocm9ja2NoaXAtPnBtX3JzdCk7Cj4gLQlpZiAoZXJyKSB7Cj4gLQkJZGV2X2VycihkZXYs ICJhc3NlcnQgcG1fcnN0IGVyciAlZFxuIiwgZXJyKTsKPiAtCQlyZXR1cm4gZXJyOwo+IC0JfQo+ ICsJZXJyID0gcmVzZXRfY29udHJvbF9idWxrX2Fzc2VydChST0NLQ0hJUF9OVU1fUE1fUlNUUywK PiArCQkJCQlyb2NrY2hpcC0+cG1fcnN0cyk7Cj4gKwlpZiAoZXJyKQo+ICsJCXJldHVybiBkZXZf ZXJyX3Byb2JlKGRldiwgZXJyLCAicmVzZXQgYnVsayBhc3NlcnQgcG0gcmVzZXRcbiIpOwo+ICAK PiAgCWZvciAoaSA9IDA7IGkgPCBNQVhfTEFORV9OVU07IGkrKykgewo+ICAJCWVyciA9IHBoeV9p bml0KHJvY2tjaGlwLT5waHlzW2ldKTsKPiBAQCAtMTc2LDQ3ICsxMzEsMTcgQEAgaW50IHJvY2tj aGlwX3BjaWVfaW5pdF9wb3J0KHN0cnVjdCByb2NrY2hpcF9wY2llICpyb2NrY2hpcCkKPiAgCQl9 Cj4gIAl9Cj4gIAo+IC0JZXJyID0gcmVzZXRfY29udHJvbF9hc3NlcnQocm9ja2NoaXAtPmNvcmVf cnN0KTsKPiAtCWlmIChlcnIpIHsKPiAtCQlkZXZfZXJyKGRldiwgImFzc2VydCBjb3JlX3JzdCBl cnIgJWRcbiIsIGVycik7Cj4gLQkJZ290byBlcnJfZXhpdF9waHk7Cj4gLQl9Cj4gLQo+IC0JZXJy ID0gcmVzZXRfY29udHJvbF9hc3NlcnQocm9ja2NoaXAtPm1nbXRfcnN0KTsKPiAtCWlmIChlcnIp IHsKPiAtCQlkZXZfZXJyKGRldiwgImFzc2VydCBtZ210X3JzdCBlcnIgJWRcbiIsIGVycik7Cj4g LQkJZ290byBlcnJfZXhpdF9waHk7Cj4gLQl9Cj4gLQo+IC0JZXJyID0gcmVzZXRfY29udHJvbF9h c3NlcnQocm9ja2NoaXAtPm1nbXRfc3RpY2t5X3JzdCk7Cj4gLQlpZiAoZXJyKSB7Cj4gLQkJZGV2 X2VycihkZXYsICJhc3NlcnQgbWdtdF9zdGlja3lfcnN0IGVyciAlZFxuIiwgZXJyKTsKPiAtCQln b3RvIGVycl9leGl0X3BoeTsKPiAtCX0KPiAtCj4gLQllcnIgPSByZXNldF9jb250cm9sX2Fzc2Vy dChyb2NrY2hpcC0+cGlwZV9yc3QpOwo+IC0JaWYgKGVycikgewo+IC0JCWRldl9lcnIoZGV2LCAi YXNzZXJ0IHBpcGVfcnN0IGVyciAlZFxuIiwgZXJyKTsKPiAtCQlnb3RvIGVycl9leGl0X3BoeTsK PiAtCX0KPiArCWVyciA9IHJlc2V0X2NvbnRyb2xfYnVsa19hc3NlcnQoUk9DS0NISVBfTlVNX0NP UkVfUlNUUywKPiArCQkJCQlyb2NrY2hpcC0+Y29yZV9yc3RzKTsKPiArCWlmIChlcnIpCj4gKwkJ cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBlcnIsICJyZXNldCBidWxrIGFzc2VydCBjb3JlIHJl c2V0XG4iKTsKPiAgCj4gIAl1ZGVsYXkoMTApOwo+ICAKPiAtCWVyciA9IHJlc2V0X2NvbnRyb2xf ZGVhc3NlcnQocm9ja2NoaXAtPnBtX3JzdCk7Cj4gLQlpZiAoZXJyKSB7Cj4gLQkJZGV2X2Vycihk ZXYsICJkZWFzc2VydCBwbV9yc3QgZXJyICVkXG4iLCBlcnIpOwo+IC0JCWdvdG8gZXJyX2V4aXRf cGh5Owo+IC0JfQo+IC0KPiAtCWVyciA9IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocm9ja2NoaXAt PmFjbGtfcnN0KTsKPiAtCWlmIChlcnIpIHsKPiAtCQlkZXZfZXJyKGRldiwgImRlYXNzZXJ0IGFj bGtfcnN0IGVyciAlZFxuIiwgZXJyKTsKPiAtCQlnb3RvIGVycl9leGl0X3BoeTsKPiAtCX0KPiAt Cj4gLQllcnIgPSByZXNldF9jb250cm9sX2RlYXNzZXJ0KHJvY2tjaGlwLT5wY2xrX3JzdCk7Cj4g KwllcnIgPSByZXNldF9jb250cm9sX2J1bGtfZGVhc3NlcnQoUk9DS0NISVBfTlVNX1BNX1JTVFMs Cj4gKwkJCQkJICByb2NrY2hpcC0+cG1fcnN0cyk7Cj4gIAlpZiAoZXJyKSB7Cj4gLQkJZGV2X2Vy cihkZXYsICJkZWFzc2VydCBwY2xrX3JzdCBlcnIgJWRcbiIsIGVycik7Cj4gKwkJZGV2X2Vycihk ZXYsICJyZXNldCBidWxrIGRlYXNzZXJ0IHBtIGVyciAlZFxuIiwgZXJyKTsKPiAgCQlnb3RvIGVy cl9leGl0X3BoeTsKPiAgCX0KPiAgCj4gQEAgLTI1OSwzMSArMTg0LDE1IEBAIGludCByb2NrY2hp cF9wY2llX2luaXRfcG9ydChzdHJ1Y3Qgcm9ja2NoaXBfcGNpZSAqcm9ja2NoaXApCj4gIAkgKiBQ bGVhc2UgZG9uJ3QgcmVvcmRlciB0aGUgZGVhc3NlcnQgc2VxdWVuY2Ugb2YgdGhlIGZvbGxvd2lu Zwo+ICAJICogZm91ciByZXNldCBwaW5zLgo+ICAJICovCgpUaGUgY29tbWVudCBhYm92ZSBzYXlz IHRoYXQgdGhlIHJlc2V0cyBzaG91bGQgbm90IGJlIHJlb3JkZXJlZC4gQnV0IHlvdSBoYXZlCnJl b3JkZXJlZCB0aGUgcmVzZXRzLgoKLSBNYW5pCgo+IC0JZXJyID0gcmVzZXRfY29udHJvbF9kZWFz c2VydChyb2NrY2hpcC0+bWdtdF9zdGlja3lfcnN0KTsKPiAtCWlmIChlcnIpIHsKPiAtCQlkZXZf ZXJyKGRldiwgImRlYXNzZXJ0IG1nbXRfc3RpY2t5X3JzdCBlcnIgJWRcbiIsIGVycik7Cj4gLQkJ Z290byBlcnJfcG93ZXJfb2ZmX3BoeTsKPiAtCX0KPiAtCj4gLQllcnIgPSByZXNldF9jb250cm9s X2RlYXNzZXJ0KHJvY2tjaGlwLT5jb3JlX3JzdCk7Cj4gKwllcnIgPSByZXNldF9jb250cm9sX2J1 bGtfZGVhc3NlcnQoUk9DS0NISVBfTlVNX0NPUkVfUlNUUywKPiArCQkJCQkgIHJvY2tjaGlwLT5j b3JlX3JzdHMpOwo+ICAJaWYgKGVycikgewo+IC0JCWRldl9lcnIoZGV2LCAiZGVhc3NlcnQgY29y ZV9yc3QgZXJyICVkXG4iLCBlcnIpOwo+IC0JCWdvdG8gZXJyX3Bvd2VyX29mZl9waHk7Cj4gLQl9 Cj4gLQo+IC0JZXJyID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChyb2NrY2hpcC0+bWdtdF9yc3Qp Owo+IC0JaWYgKGVycikgewo+IC0JCWRldl9lcnIoZGV2LCAiZGVhc3NlcnQgbWdtdF9yc3QgZXJy ICVkXG4iLCBlcnIpOwo+IC0JCWdvdG8gZXJyX3Bvd2VyX29mZl9waHk7Cj4gLQl9Cj4gLQo+IC0J ZXJyID0gcmVzZXRfY29udHJvbF9kZWFzc2VydChyb2NrY2hpcC0+cGlwZV9yc3QpOwo+IC0JaWYg KGVycikgewo+IC0JCWRldl9lcnIoZGV2LCAiZGVhc3NlcnQgcGlwZV9yc3QgZXJyICVkXG4iLCBl cnIpOwo+ICsJCWRldl9lcnIoZGV2LCAicmVzZXQgYnVsayBkZWFzc2VydCBjb3JlIGVyciAlZFxu IiwgZXJyKTsKPiAgCQlnb3RvIGVycl9wb3dlcl9vZmZfcGh5Owo+ICAJfQo+ICAKPiAgCXJldHVy biAwOwo+ICsKPiAgZXJyX3Bvd2VyX29mZl9waHk6Cj4gIAl3aGlsZSAoaS0tKQo+ICAJCXBoeV9w b3dlcl9vZmYocm9ja2NoaXAtPnBoeXNbaV0pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9j b250cm9sbGVyL3BjaWUtcm9ja2NoaXAuaCBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpZS1y b2NrY2hpcC5oCj4gaW5kZXggNzIzNDZlMTdlNDVlLi4yN2U5NTFiNDFiODAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2llLXJvY2tjaGlwLmgKPiArKysgYi9kcml2ZXJz L3BjaS9jb250cm9sbGVyL3BjaWUtcm9ja2NoaXAuaAo+IEBAIC0xNSw2ICsxNSw3IEBACj4gICNp bmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgo+ICAjaW5j bHVkZSA8bGludXgvcGNpLWVjYW0uaD4KPiArI2luY2x1ZGUgPGxpbnV4L3Jlc2V0Lmg+Cj4gIAo+ ICAvKgo+ICAgKiBUaGUgdXBwZXIgMTYgYml0cyBvZiBQQ0lFX0NMSUVOVF9DT05GSUcgYXJlIGEg d3JpdGUgbWFzayBmb3IgdGhlIGxvd2VyIDE2Cj4gQEAgLTI4OSw2ICsyOTAsOCBAQAo+ICAJCSBS T0NLQ0hJUF9QQ0lFX0NPUkVfRVBfRlVOQ19CQVJfQ0ZHX0JBUl9DVFJMX01BU0soYikpCj4gIAo+ ICAjZGVmaW5lIFJPQ0tDSElQX05VTV9DTEtTCUFSUkFZX1NJWkUocm9ja2NoaXBfcGNpX2Nsa3Mp Cj4gKyNkZWZpbmUgUk9DS0NISVBfTlVNX1BNX1JTVFMJQVJSQVlfU0laRShyb2NrY2hpcF9wY2lf cG1fcnN0cykKPiArI2RlZmluZSBST0NLQ0hJUF9OVU1fQ09SRV9SU1RTCUFSUkFZX1NJWkUocm9j a2NoaXBfcGNpX2NvcmVfcnN0cykKPiAgCj4gIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgcm9j a2NoaXBfcGNpX2Nsa3NbXSA9IHsKPiAgCSJhY2xrIiwKPiBAQCAtMjk3LDE4ICszMDAsMjYgQEAg c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByb2NrY2hpcF9wY2lfY2xrc1tdID0gewo+ICAJInBt IiwKPiAgfTsKPiAgCj4gK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgcm9ja2NoaXBfcGNpX3Bt X3JzdHNbXSA9IHsKPiArCSJwbSIsCj4gKwkicGNsayIsCj4gKwkiYWNsayIsCj4gK307Cj4gKwo+ ICtzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJvY2tjaGlwX3BjaV9jb3JlX3JzdHNbXSA9IHsK PiArCSJjb3JlIiwKPiArCSJtZ210IiwKPiArCSJtZ210LXN0aWNreSIsCj4gKwkicGlwZSIsCj4g K307Cj4gKwo+ICBzdHJ1Y3Qgcm9ja2NoaXBfcGNpZSB7Cj4gIAl2b2lkCV9faW9tZW0gKnJlZ19i YXNlOwkJLyogRFQgYXhpLWJhc2UgKi8KPiAgCXZvaWQJX19pb21lbSAqYXBiX2Jhc2U7CQkvKiBE VCBhcGItYmFzZSAqLwo+ICAJYm9vbCAgICBsZWdhY3lfcGh5Owo+ICAJc3RydWN0ICBwaHkgKnBo eXNbTUFYX0xBTkVfTlVNXTsKPiAtCXN0cnVjdAlyZXNldF9jb250cm9sICpjb3JlX3JzdDsKPiAt CXN0cnVjdAlyZXNldF9jb250cm9sICptZ210X3JzdDsKPiAtCXN0cnVjdAlyZXNldF9jb250cm9s ICptZ210X3N0aWNreV9yc3Q7Cj4gLQlzdHJ1Y3QJcmVzZXRfY29udHJvbCAqcGlwZV9yc3Q7Cj4g LQlzdHJ1Y3QJcmVzZXRfY29udHJvbCAqcG1fcnN0Owo+IC0Jc3RydWN0CXJlc2V0X2NvbnRyb2wg KmFjbGtfcnN0Owo+IC0Jc3RydWN0CXJlc2V0X2NvbnRyb2wgKnBjbGtfcnN0Owo+ICsJc3RydWN0 ICByZXNldF9jb250cm9sX2J1bGtfZGF0YSBwbV9yc3RzW1JPQ0tDSElQX05VTV9QTV9SU1RTXTsK PiArCXN0cnVjdCAgcmVzZXRfY29udHJvbF9idWxrX2RhdGEgY29yZV9yc3RzW1JPQ0tDSElQX05V TV9DT1JFX1JTVFNdOwo+ICAJc3RydWN0ICBjbGtfYnVsa19kYXRhIGNsa3NbUk9DS0NISVBfTlVN X0NMS1NdOwo+ICAJc3RydWN0CXJlZ3VsYXRvciAqdnBjaWUxMnY7IC8qIDEyViBwb3dlciBzdXBw bHkgKi8KPiAgCXN0cnVjdAlyZWd1bGF0b3IgKnZwY2llM3YzOyAvKiAzLjNWIHBvd2VyIHN1cHBs eSAqLwo+IC0tIAo+IDIuNDQuMAo+IAo+IAoKLS0gCuCuruCuo+Cuv+CuteCuo+CvjeCuo+CuqeCv jSDgrprgrqTgrr7grprgrr/grrXgrq7gr40KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2Nr Y2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK