From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 46FAD606A31A for ; Thu, 22 Oct 2026 10:48:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=GzxZYQsT; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=I4hQR7b2 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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Unsubscribe-Post:List-Owner; bh=45p1+02/Jc6MZIRYJEWV4+fWsqXnwf848CP0Qu/irtg=; b=GzxZYQsT9MkW953IY4wsjXqcQw qMjH7KkhPvKDpYbBpHvCIe5jbrEEYiCEwKXK4TvFazSCc/gdFqpIVir+p6tJ6g4+Ktd3SdAqyzmnt 1MDbwXHixpsiGdGSUyWB5Kh4+cryRcM71UUwkQkYxx0REFZUBb8OA5bjRJt2WNg8Arwxr2unKg8dM rbn+6mUJZqFWZTDR2PEvYM9qFx98VYxAF+ozLHwtX6kV1tJEO1qCDYwwZQe0BNEMw7qwVED5DNzp6 NuTMCTzgUK0LT2VJkQMcguiyrhD5evn7I4+hhmpimZIYrRYUc94MkWyPIvhhEIwIJAp1FnugTi8Om u+CcmDkQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xJqLX-0000000Dxov-42wz; Thu, 22 Oct 2026 10:48:31 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xJqLV-0000000Dxnw-3OVI for linux-mtd@lists.infradead.org; Thu, 22 Oct 2026 10:48:30 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 395554479D; Thu, 22 Oct 2026 10:48:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 95AE81F000CB; Thu, 22 Oct 2026 10:48:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792666109; bh=p+c+nG/k9sKOe4LLco9q+j6omM+5g5mVIfGwrRC8Q/0=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=I4hQR7b2eFwm2f+Rl7wGpkmyjgVV2uojEFbze3TwSghV9sPXMeOYHy5FEH2pXTAl9 G30L6qmPJwDd+6I6CuHGEBfghVP9rZ6HS0zFr0TyD51yEGPHDUko/j0pZgsmZCig3U ffoqMAtJI6YD60as7eGL391aMTEc2HT4LskFnyi4rWiDmWRjbkO+04/jHOO4Op5g7J qSFEm517lSoAbcKtDAoiUzEDdd94EjFQOKhELP6AMk7CxH2xvPYCojx0Wcn8yc5+Vi aMX7Ya3JgVcQLKMKITKE7t4NaYBb1yvbM0zt8tZilIHgexPxXkZ2SCCZb+e5I641BT YpEsf0I2BuWVA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v1 1/4] spi: dw: Add DDR (Dual Data-Rate) support for enhanced SPI mode To: "Changhuang Liang" , "Pratyush Yadav" , "Michael Walle" , "Takahiro Kuwano" , "Mark Brown" , "Miquel Raynal" , "Richard Weinberger" , "Vignesh Raghavendra" Cc: linux-mtd@lists.infradead.org In-Reply-To: <20261022102614.75696-2-changhuang.liang@starfivetech.com> References: <20261022102614.75696-1-changhuang.liang@starfivetech.com> <20261022102614.75696-2-changhuang.liang@starfivetech.com> Date: Thu, 22 Oct 2026 10:48:28 +0000 X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev X-Archived-By: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" X-Spam-Status: No, score=-8.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIHNwaTogZHc6IHVuY29u ZGl0aW9uYWwgRFRSIGNhcGFiaWxpdHkgYWR2ZXJ0aXNlbWVudCBpbiBkd19zcGlfYWRkX2NvbnRy b2xsZXIoKQotIFtIaWdoXSBzcGk6IGR3OiBtaXNzaW5nIERUUiBwaGFzZSB2YWxpZGF0aW9uIGlu IGR3X3NwaV9zdXBwb3J0c19lbmhfbWVtX29wKCkKLSBbSGlnaF0gc3BpOiBkdzogYnJva2VuIG5v LWRhdGEgOEQtMC0wIGFuZCA4RC04RC0wIG9wcyBpbiBkd19zcGlfc3VwcG9ydHNfZW5oX21lbV9v cCgpCi0gW01lZGl1bV0gc3BpOiBkdzogb2RkIGR1bW15IGhhbGYtY3ljbGUgdHJ1bmNhdGlvbiBp biBkd19zcGlfZW5oX3dhaXRfY3ljbGVzKCkKLS0KCmNvbW1pdCBiNDNhMWEzOWVhYzQyOGY3MGJl NWRhYWNhMDdmYWQ0NzEwOTc4YmMzCkF1dGhvcjogQ2hhbmdodWFuZyBMaWFuZyA8Y2hhbmdodWFu Zy5saWFuZ0BzdGFyZml2ZXRlY2guY29tPgoKc3BpOiBkdzogQWRkIEREUiAoRHVhbCBEYXRhLVJh dGUpIHN1cHBvcnQgZm9yIGVuaGFuY2VkIFNQSSBtb2RlCgpUaGlzIGNvbW1pdCBhZGRzIER1YWwg RGF0YS1SYXRlIChERFIpIHRyYW5zZmVyIHN1cHBvcnQgZm9yIHRoZSBlbmhhbmNlZCBTUEkKbW9k ZSBvZiB0aGUgRGVzaWduV2FyZSBTUEkgY29udHJvbGxlciBieSBjb25maWd1cmluZyB0aGUgaW5z dHJ1Y3Rpb24gYW5kIFNQSQpERFIgZW5hYmxlIGJpdHMgaW4gU1BJX0NUUkxSMCwgaGFsdmluZyB0 aGUgZHVtbXkgd2FpdCBjeWNsZXMgZm9yIERUUiBwaGFzZXMsCmFuZCBwcm9ncmFtbWluZyB0aGUg RERSX0RSSVZFX0VER0UgcmVnaXN0ZXIuIEl0IGFsc28gYWR2ZXJ0aXNlcyBEVFIgY2FwYWJpbGl0 eQp0byBzcGktbWVtIHdoZW4gRFdfU1BJX0NBUF9FTU9ERSBpcyBwcmVzZW50LgoKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9zcGkvc3BpLWR3LWNvcmUuYyBiL2RyaXZlcnMvc3BpL3NwaS1kdy1jb3Jl LmMKPiBpbmRleCA0NzQzNGZhNzhlNGI2Li42ZmYxNDJjOGE2YmQ5IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvc3BpL3NwaS1kdy1jb3JlLmMKPiArKysgYi9kcml2ZXJzL3NwaS9zcGktZHctY29yZS5j CgpbIC4uLiBdCgo+IEBAIC00NjgsMTEgKzQ3MSwyNiBAQCBzdGF0aWMgdm9pZCBkd19zcGlfdXBk YXRlX2NvbmZpZyhzdHJ1Y3QgZHdfc3BpICpkd3MsIHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCj4g IAo+ICAJaWYgKGVuaF9jZmcpIHsKPiAgCQljcjAgPSBEV19TUElfRU5IX0NUUkxSMF9DTEtfU1RS RVRDSF9FTjsKPiArCQlpZiAoZW5oX2NmZy0+aW5zdF9kZHIpCj4gKwkJCWNyMCB8PSBEV19TUElf RU5IX0NUUkxSMF9JTlNUX0REUl9FTjsKPiArCQlpZiAoZW5oX2NmZy0+c3BpX2RkcikKPiArCQkJ Y3IwIHw9IERXX1NQSV9FTkhfQ1RSTFIwX1NQSV9ERFJfRU47Cj4gIAkJY3IwIHw9IEZJRUxEX1BS RVAoRFdfU1BJX0VOSF9DVFJMUjBfV0FJVF9DWUNMRV9NQVNLLCBlbmhfY2ZnLT53YWl0X2MpOwo+ ICAJCWNyMCB8PSBGSUVMRF9QUkVQKERXX1NQSV9FTkhfQ1RSTFIwX0lOU1RfTF9NQVNLLCBlbmhf Y2ZnLT5pbnN0X2wpOwo+ICAJCWNyMCB8PSBGSUVMRF9QUkVQKERXX1NQSV9FTkhfQ1RSTFIwX0FE RFJfTF9NQVNLLCBlbmhfY2ZnLT5hZGRyX2wpOwo+ICAJCWNyMCB8PSBGSUVMRF9QUkVQKERXX1NQ SV9FTkhfQ1RSTFIwX1RSQU5TX1RZUEVfTUFTSywgZW5oX2NmZy0+dHJhbnNfdCk7Cj4gIAkJZHdf d3JpdGVsKGR3cywgRFdfU1BJX1NQSV9DVFJMUjAsIGNyMCk7Cj4gKwo+ICsJCS8qCj4gKwkJICog VGhlIHJlY29tbWVuZGVkIHZhbHVlIG9mIFRERSBpcyBjbGtfZGl2IC8gNCwgYW5kIGl0IG11c3Qg bm90IGV4Y2VlZAo+ICsJCSAqIFNDS0RWIC8gMiAtIDEKPiArCQkgKi8KPiArCQlpZiAoZW5oX2Nm Zy0+c3BpX2RkcikKPiArCQkJdGRlID0gbWluMyhjbGtfZGl2IC8gNFUsIGNsa19kaXYgLyAyVSAt IDEsCj4gKwkJCQkgICBGSUVMRF9NQVgoRFdfU1BJX0REUl9EUklWRV9FREdFX1RERV9NQVNLKSk7 Cj4gKwo+ICsJCWR3X3dyaXRlbChkd3MsIERXX1NQSV9ERFJfRFJJVkVfRURHRSwKPiArCQkJICBG SUVMRF9QUkVQKERXX1NQSV9ERFJfRFJJVkVfRURHRV9UREVfTUFTSywgdGRlKSk7Cj4gIAl9Cj4g IH0KPiAgCj4gQEAgLTY1Niw2ICs2NzQsMjEgQEAgc3RhdGljIGludCBkd19zcGlfYWRqdXN0X21l bV9vcF9zaXplKHN0cnVjdCBzcGlfbWVtICptZW0sIHN0cnVjdCBzcGlfbWVtX29wICpvcCkKPiAg CXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdTMyIGR3X3NwaV9lbmhfd2FpdF9jeWNsZXMo Y29uc3Qgc3RydWN0IHNwaV9tZW1fb3AgKm9wKQo+ICt7Cj4gKwl1MzIgd2FpdF9jOwo+ICsKPiAr CWlmICghb3AtPmR1bW15Lm5ieXRlcyB8fCAhb3AtPmR1bW15LmJ1c3dpZHRoKQo+ICsJCXJldHVy biAwOwo+ICsKPiArCXdhaXRfYyA9IG9wLT5kdW1teS5uYnl0ZXMgKiBCSVRTX1BFUl9CWVRFIC8g b3AtPmR1bW15LmJ1c3dpZHRoOwo+ICsJLyogRFRSIHRyYW5zZmVycyB0d28gYml0cyBwZXIgY2xv Y2sgb24gZWFjaCBsaW5lLiAqLwo+ICsJaWYgKG9wLT5kdW1teS5kdHIpCj4gKwkJd2FpdF9jID4+ PSAxOwo+ICsKPiArCXJldHVybiB3YWl0X2M7Cj4gK30KCltTZXZlcml0eTogTWVkaXVtXQpDYW4g d2FpdF9jID4+PSAxIGluIGR3X3NwaV9lbmhfd2FpdF9jeWNsZXMoKSBzaWxlbnRseSB0cnVuY2F0 ZSBvZGQgZHVtbXkKaGFsZi1jeWNsZXMgaW5zdGVhZCBvZiByZWplY3RpbmcgdW5zdXBwb3J0ZWQg b3BlcmF0aW9ucyBpbgpkd19zcGlfc3VwcG9ydHNfZW5oX21lbV9vcCgpPwoKVGhlIFdBSVRfQ1lD TEVTIGZpZWxkIGluIERXX1NQSV9TUElfQ1RSTFIwIGNvdW50cyB3aG9sZSBjbG9jayBjeWNsZXMs IHdoZXJlCmVhY2ggRFRSIGNsb2NrIGN5Y2xlIHRyYW5zZmVycyB0d28gYml0cyBwZXIgbGluZS4g V2hlbiBvcC0+ZHVtbXkuZHRyIGlzIHRydWUKYW5kIG9wLT5kdW1teS5uYnl0ZXMgKiBCSVRTX1BF Ul9CWVRFIC8gb3AtPmR1bW15LmJ1c3dpZHRoIGlzIG9kZCAoZm9yCmV4YW1wbGUsIGEgMVMtOEQt OEQgb3BlcmF0aW9uIHdpdGggb3AtPmR1bW15LmJ1c3dpZHRoID09IDggYW5kIGFuIG9kZApvcC0+ ZHVtbXkubmJ5dGVzLCB3aGljaCBzcGlfbWVtX2RlZmF1bHRfc3VwcG9ydHNfb3AoKSBkb2VzIG5v dCByZWplY3QKYmVjYXVzZSBvcC0+Y21kLmR0ciBpcyBmYWxzZSksIHNoaWZ0aW5nIHdhaXRfYyBy aWdodCBieSAxIGRpc2NhcmRzIHRoZQpyZW1haW5kZXIgaGFsZi1jeWNsZSAodHVybmluZyAxIGR1 bW15IGJ5dGUgb24gOCBsaW5lcyBpbnRvIDAgd2FpdCBjeWNsZXMpLgoKU2hvdWxkIGR3X3NwaV9z dXBwb3J0c19lbmhfbWVtX29wKCkgdmVyaWZ5IHRoYXQgdGhlIGR1bW15IHBoYXNlIHJlcHJlc2Vu dHMKYW4gZXhhY3QgaW50ZWdlciBudW1iZXIgb2YgY2xvY2sgY3ljbGVzIGJlZm9yZSBhY2NlcHRp bmcgdGhlIG9wZXJhdGlvbj8KCj4gKwo+ICBzdGF0aWMgYm9vbCBkd19zcGlfc3VwcG9ydHNfZW5o X21lbV9vcChzdHJ1Y3Qgc3BpX21lbSAqbWVtLAo+ICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBz cGlfbWVtX29wICpvcCkKPiAgewo+IEBAIC02NzgsMTAgKzcxMSw3IEBAIHN0YXRpYyBib29sIGR3 X3NwaV9zdXBwb3J0c19lbmhfbWVtX29wKHN0cnVjdCBzcGlfbWVtICptZW0sCj4gIAlpZiAob3At PmR1bW15Lm5ieXRlcyAhPSAwICYmIG9wLT5kYXRhLmRpciA9PSBTUElfTUVNX0RBVEFfT1VUKQo+ ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gLQkvKiBXQUlUX0NZQ0xFUyBpcyBhIDUtYml0IGZpZWxk IGluIFNQSV9DVFJMUjAgKi8KPiAtCWlmIChvcC0+ZHVtbXkubmJ5dGVzICE9IDAgJiYKPiAtCSAg ICBvcC0+ZHVtbXkubmJ5dGVzICogQklUU19QRVJfQllURSAvIG9wLT5kdW1teS5idXN3aWR0aCA+ Cj4gLQkgICAgRklFTERfTUFYKERXX1NQSV9FTkhfQ1RSTFIwX1dBSVRfQ1lDTEVfTUFTSykpCj4g KwlpZiAoZHdfc3BpX2VuaF93YWl0X2N5Y2xlcyhvcCkgPiBGSUVMRF9NQVgoRFdfU1BJX0VOSF9D VFJMUjBfV0FJVF9DWUNMRV9NQVNLKSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJaWYgKChk d3MtPnF1aXJrX2ZsYWdzICYgRFdfU1BJX1FVSVJLX0pIQjEwMCkgJiYgb3AtPmFkZHIubmJ5dGVz ICYmCgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgZHdfc3BpX3N1cHBvcnRzX2VuaF9tZW1fb3AoKSBh Y2NlcHQgRFRSIHBoYXNlIGNvbWJpbmF0aW9ucyB0aGF0CmR3X3NwaV9leGVjX2VuaF9tZW1fb3Ao KSBhbmQgdGhlIERXIFNTSSBoYXJkd2FyZSBjYW5ub3QgZXhlY3V0ZT8KCldoZW4gY3Rsci0+bWVt X2NhcHMtPmR0ciBpcyBzZXQsIHNwaV9tZW1fc3VwcG9ydHNfb3AoKSBjYWxscwpkd19zcGlfc3Vw cG9ydHNfZW5oX21lbV9vcCgpLCB3aGljaCBkZWxlZ2F0ZXMgdG8Kc3BpX21lbV9kZWZhdWx0X3N1 cHBvcnRzX29wKCkgd2l0aG91dCBjaGVja2luZyBEVFIgYnVzd2lkdGhzLCB0cmFuc2ZlciB0eXBl CmNvbnN0cmFpbnRzLCBvciBpbnN0cnVjdGlvbiBsZW5ndGhzOgoKZHJpdmVycy9zcGkvc3BpLWR3 LWNvcmUuYzpkd19zcGlfZXhlY19lbmhfbWVtX29wKCkgewoJLi4uCglzd2l0Y2ggKG9wLT5kYXRh LmJ1c3dpZHRoKSB7CgljYXNlIDA6CgljYXNlIDE6CgkJY2ZnLnNwaV9mcmYgPSBEV19TUElfQ1RS TFIwX1NQSV9GUkZfU1REX1NQSTsKCQlicmVhazsKCS4uLgoJaWYgKG9wLT5kYXRhLmJ1c3dpZHRo ID09IG9wLT5hZGRyLmJ1c3dpZHRoICYmCgkgICAgb3AtPmRhdGEuYnVzd2lkdGggPT0gb3AtPmNt ZC5idXN3aWR0aCkKCQllbmhfY2ZnLnRyYW5zX3QgPSBEV19TUElfRU5IX0NUUkxSMF9UUkFOU19U WVBFX1RUMjsKCWVsc2UgaWYgKG9wLT5kYXRhLmJ1c3dpZHRoID09IG9wLT5hZGRyLmJ1c3dpZHRo KQoJCWVuaF9jZmcudHJhbnNfdCA9IERXX1NQSV9FTkhfQ1RSTFIwX1RSQU5TX1RZUEVfVFQxOwoJ ZWxzZQoJCWVuaF9jZmcudHJhbnNfdCA9IERXX1NQSV9FTkhfQ1RSTFIwX1RSQU5TX1RZUEVfVFQw OwoJLi4uCgllbmhfY2ZnLmluc3RfZGRyID0gb3AtPmNtZC5kdHI7CgllbmhfY2ZnLnNwaV9kZHIg PSBvcC0+YWRkci5kdHIgfHwgb3AtPmR1bW15LmR0ciB8fCBvcC0+ZGF0YS5kdHI7Cn0KClRoaXMg YWxsb3dzIHNldmVyYWwgdW5zdXBwb3J0ZWQgRFRSIHBhdHRlcm5zIHRocm91Z2ggdmFsaWRhdGlv biBkdXJpbmcgU1BJCk5PUiBhbmQgU1BJIE5BTkQgcHJvYmluZzoKCjEuIEZvciAxLXdpcmUgRFRS IG9wZXJhdGlvbnMgKG9wLT5kYXRhLmJ1c3dpZHRoID09IDEsIHN1Y2ggYXMKU05PUl9QUk9UT18x XzFfMV9EVFIgb3IgU1BJTkFORF9QQUdFX1JFQURfRlJPTV9DQUNIRV8xU18xRF8xRF9PUCksCmR3 X3NwaV9leGVjX2VuaF9tZW1fb3AoKSBzZWxlY3RzIERXX1NQSV9DVFJMUjBfU1BJX0ZSRl9TVERf U1BJLCB3aGVyZQpEV19TUElfU1BJX0NUUkxSMCBhbmQgRFdfU1BJX0VOSF9DVFJMUjBfU1BJX0RE Ul9FTiBkbyBub3Qgb3BlcmF0ZS4KCjIuIEZvciAxLWJpdCBEVFIgYWRkcmVzcyB3aXRoIG11bHRp LWJpdCBEVFIgZGF0YSAob3AtPmFkZHIuYnVzd2lkdGggPT0gMSAmJgpvcC0+ZGF0YS5idXN3aWR0 aCA+IDEsIHN1Y2ggYXMgU1BJTkFORF9QQUdFX1JFQURfRlJPTV9DQUNIRV8xU18xRF84RF9PUCwK MVNfMURfNERfT1AsIGFuZCAxU18xRF8yRF9PUCBpbiBkcml2ZXJzL210ZC9uYW5kL3NwaS93aW5i b25kLmMpLApkd19zcGlfZXhlY19lbmhfbWVtX29wKCkgc2VsZWN0cyBEV19TUElfRU5IX0NUUkxS MF9UUkFOU19UWVBFX1RUMCwgd2hpY2gKdHJhbnNtaXRzIGJvdGggdGhlIGluc3RydWN0aW9uIGFu ZCBhZGRyZXNzIHBoYXNlcyBpbiAxLXdpcmUgU0RSIG1vZGUgcmF0aGVyCnRoYW4gRERSLgoKMy4g Rm9yIDEtYml0IERUUiBpbnN0cnVjdGlvbiB3aXRoIG11bHRpLWJpdCBEVFIgYWRkcmVzcy9kYXRh CihvcC0+Y21kLmJ1c3dpZHRoID09IDEgJiYgb3AtPmNtZC5kdHIpLCBkd19zcGlfZXhlY19lbmhf bWVtX29wKCkgc2VsZWN0cwpUVDAgb3IgVFQxIHdpdGggRFdfU1BJX0VOSF9DVFJMUjBfSU5TVF9E RFJfRU4gc2V0LCB3aGVyZWFzIElOU1RfRERSX0VOIGlzCm9ubHkgdmFsaWQgaW4gRFdfU1BJX0VO SF9DVFJMUjBfVFJBTlNfVFlQRV9UVDIgd2hlbgpEV19TUElfRU5IX0NUUkxSMF9TUElfRERSX0VO IGlzIGFsc28gZW5hYmxlZC4KCjQuIEJlY2F1c2Ugb3AtPmFkZHIuZHRyIHx8IG9wLT5kdW1teS5k dHIgfHwgb3AtPmRhdGEuZHRyIGlzIGNvbGxhcHNlZCBpbnRvIGEKc2luZ2xlIERXX1NQSV9FTkhf Q1RSTFIwX1NQSV9ERFJfRU4gYml0IGNvbnRyb2xsaW5nIGJvdGggYWRkcmVzcyBhbmQgZGF0YQpw aGFzZXMgc2ltdWx0YW5lb3VzbHksIG1peGVkIFNEUi9ERFIgYWRkcmVzcyBhbmQgZGF0YSBwaGFz ZXMgY2Fubm90IGJlCmNvbmZpZ3VyZWQgaW5kZXBlbmRlbnRseS4KCjUuIEluIHNwaV9tZW1fZGVm YXVsdF9zdXBwb3J0c19vcCgpLCB0aGUgb3AtPmNtZC5uYnl0ZXMgIT0gMSBjaGVjayBpcwpza2lw cGVkIHdoZW5ldmVyIGFueSBwaGFzZSBoYXMgZHRyIHNldCwgYW5kIG9wLT5jbWQubmJ5dGVzID09 IDIgaXMgb25seQplbmZvcmNlZCB3aGVuIG9wLT5jbWQuZHRyICYmIG9wLT5jbWQuYnVzd2lkdGgg PT0gOC4gV2l0aG91dCBhbiBleHBsaWNpdApvcC0+Y21kLm5ieXRlcyA8PSAyIGNoZWNrIGluIGR3 X3NwaV9zdXBwb3J0c19lbmhfbWVtX29wKCksIG5vbi04RCBEVFIgb3BzCndpdGggb3AtPmNtZC5u Ynl0ZXMgPiAyIGFyZSBhY2NlcHRlZCBhbmQgcHJvZ3JhbW1lZCB3aXRoCkRXX1NQSV9FTkhfQ1RS TFIwX0lOU1RfTF9JTlNUX0wwLgoKU2hvdWxkIGR3X3NwaV9zdXBwb3J0c19lbmhfbWVtX29wKCkg cmVqZWN0IHRoZXNlIHVuc3VwcG9ydGVkIERUUiBwaGFzZSBhbmQKaW5zdHJ1Y3Rpb24gbGVuZ3Ro IGNvbWJpbmF0aW9ucz8KCj4gQEAgLTEwNzQsOCArMTEwNCwxMCBAQCBzdGF0aWMgaW50IGR3X3Nw aV9leGVjX2VuaF9tZW1fb3Aoc3RydWN0IHNwaV9tZW0gKm1lbSwgY29uc3Qgc3RydWN0IHNwaV9t ZW1fb3AgKgo+ICAJZWxzZQo+ICAJCWVuaF9jZmcuaW5zdF9sID0gRFdfU1BJX0VOSF9DVFJMUjBf SU5TVF9MX0lOU1RfTDA7Cj4gIAo+IC0JaWYgKG9wLT5kdW1teS5idXN3aWR0aCkKPiAtCQllbmhf Y2ZnLndhaXRfYyA9IG9wLT5kdW1teS5uYnl0ZXMgKiBCSVRTX1BFUl9CWVRFIC8gb3AtPmR1bW15 LmJ1c3dpZHRoOwo+ICsJZW5oX2NmZy53YWl0X2MgPSBkd19zcGlfZW5oX3dhaXRfY3ljbGVzKG9w KTsKPiArCj4gKwllbmhfY2ZnLmluc3RfZGRyID0gb3AtPmNtZC5kdHI7Cj4gKwllbmhfY2ZnLnNw aV9kZHIgPSBvcC0+YWRkci5kdHIgfHwgb3AtPmR1bW15LmR0ciB8fCBvcC0+ZGF0YS5kdHI7Cj4g IAo+ICAJZHdfc3BpX2VuYWJsZV9jaGlwKGR3cywgMCk7Cj4gIAoKW1NldmVyaXR5OiBIaWdoXQpI b3cgYXJlIG5vbi1kYXRhIE9jdGFsIERUUiBvcGVyYXRpb25zICg4RC0wLTAgYW5kIDhELThELTAp IGhhbmRsZWQgd2hlbgpvcC0+ZGF0YS5uYnl0ZXMgPT0gMCBhbmQgb3AtPmRhdGEuYnVzd2lkdGgg PT0gMD8KCk9uY2UgYW4gT2N0YWwgRFRSIGZsYXNoIGVudGVycyBzdGF0ZWZ1bCA4RC04RC04RCBt b2RlIChmb3IgZXhhbXBsZSB2aWEKc3BpX25vcl9pbml0KCkgc2V0dGluZyBTTk9SX1BST1RPXzhf OF84X0RUUiBhZnRlciA4RC04RC04RCByZWFkIGFuZCBwYWdlCnByb2dyYW0gcGFzcyBkd19zcGlf c3VwcG9ydHNfZW5oX21lbV9vcCgpKSwgY29tbWFuZC1vbmx5IG9wZXJhdGlvbnMgc3VjaCBhcwpX cml0ZSBFbmFibGUgb3IgU29mdCBSZXNldCAoOEQtMC0wKSBhbmQgYWRkcmVzcy1vbmx5IG9wZXJh dGlvbnMgc3VjaCBhcwpTZWN0b3Igb3IgQmxvY2sgRXJhc2UgKDhELThELTApIGhhdmUgb3AtPmRh dGEubmJ5dGVzID09IDAgYW5kCm9wLT5kYXRhLmJ1c3dpZHRoID09IDAuCgpJbiBkd19zcGlfc3Vw cG9ydHNfZW5oX21lbV9vcCgpLCB0aGUgYnVzd2lkdGggY2hlY2tzIGNvbXBhcmUKb3AtPmFkZHIu YnVzd2lkdGggYW5kIG9wLT5jbWQuYnVzd2lkdGggZGlyZWN0bHkgYWdhaW5zdCBvcC0+ZGF0YS5i dXN3aWR0aDoKCmRyaXZlcnMvc3BpL3NwaS1kdy1jb3JlLmM6ZHdfc3BpX3N1cHBvcnRzX2VuaF9t ZW1fb3AoKSB7CglpZiAob3AtPmFkZHIubmJ5dGVzICE9IDAgJiYgb3AtPmFkZHIuYnVzd2lkdGgg IT0gMSAmJgoJICAgIG9wLT5hZGRyLmJ1c3dpZHRoICE9IG9wLT5kYXRhLmJ1c3dpZHRoKQoJCXJl dHVybiBmYWxzZTsKCS4uLgoJaWYgKG9wLT5jbWQuYnVzd2lkdGggIT0gMSAmJiBvcC0+Y21kLmJ1 c3dpZHRoICE9IG9wLT5hZGRyLmJ1c3dpZHRoICYmCgkgICAgb3AtPmNtZC5idXN3aWR0aCAhPSBv cC0+ZGF0YS5idXN3aWR0aCkKCQlyZXR1cm4gZmFsc2U7Cn0KCldoZW4gb3AtPmRhdGEuYnVzd2lk dGggaXMgMCwgYm90aCA4RC04RC0wIGFuZCA4RC0wLTAgb3BlcmF0aW9ucyBmYWlsIHRoZXNlCmNo ZWNrcyBhbmQgcmV0dXJuIGZhbHNlLgoKQWRkaXRpb25hbGx5LCBpbiBkd19zcGlfZXhlY19lbmhf bWVtX29wKCksIGNmZy5zcGlfZnJmIGFuZCBlbmhfY2ZnLnRyYW5zX3QKYXJlIGRlcml2ZWQgZnJv bSBvcC0+ZGF0YS5idXN3aWR0aCAoZmFsbGluZyBiYWNrIHRvCkRXX1NQSV9DVFJMUjBfU1BJX0ZS Rl9TVERfU1BJIGFuZCBEV19TUElfRU5IX0NUUkxSMF9UUkFOU19UWVBFX1RUMCB3aGVuCm9wLT5k YXRhLmJ1c3dpZHRoIGlzIDApLCBhbmQgZm9yIDhELTAtMCBvcGVyYXRpb25zIHdoZXJlIG9ubHkg b3AtPmNtZC5kdHIgaXMKc2V0LCBlbmhfY2ZnLnNwaV9kZHIgZXZhbHVhdGVzIHRvIGZhbHNlLCBs ZWF2aW5nCkRXX1NQSV9FTkhfQ1RSTFIwX1NQSV9ERFJfRU4gdW5zZXQgYW5kIHRkZSA9IDAgaW4g ZHdfc3BpX3VwZGF0ZV9jb25maWcoKS4KCkNvdWxkIGR3X3NwaV9zdXBwb3J0c19lbmhfbWVtX29w KCkgYW5kIGR3X3NwaV9leGVjX2VuaF9tZW1fb3AoKSBkZXJpdmUgdGhlCnRyYW5zZmVyIGJ1c3dp ZHRoLCBmcmFtZSBmb3JtYXQsIGFuZCBERFIgZW5hYmxlIHN0YXRlIGZyb20gdGhlIGFjdGl2ZSBw aGFzZXMKd2hlbiBubyBkYXRhIHBoYXNlIGlzIHByZXNlbnQ/Cgo+IEBAIC0xMzgzLDYgKzE0MTUs MTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfY29udHJvbGxlcl9tZW1fY2FwcyBkd19zcGlf bWVtX2NhcHMgPSB7Cj4gIAkucGVyX29wX2ZyZXEgPSB0cnVlLAo+ICB9Owo+ICAKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBzcGlfY29udHJvbGxlcl9tZW1fY2FwcyBkd19zcGlfZW5oX21lbV9jYXBz ID0gewo+ICsJLnBlcl9vcF9mcmVxID0gdHJ1ZSwKPiArCS5kdHIgPSB0cnVlLAo+ICt9Owo+ICsK PiAgaW50IGR3X3NwaV9hZGRfY29udHJvbGxlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBk d19zcGkgKmR3cykKPiAgewo+ICAJc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyOwo+IEBAIC0x NDM5LDcgKzE0NzYsOCBAQCBpbnQgZHdfc3BpX2FkZF9jb250cm9sbGVyKHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGR3X3NwaSAqZHdzKQo+ICAJCQljdGxyLT5zZXRfY3MgPSBkd19zcGlfc2V0 X2NzOwo+ICAJCWlmIChkd3MtPm1lbV9vcHMuZXhlY19vcCkgewo+ICAJCQljdGxyLT5tZW1fb3Bz ID0gJmR3cy0+bWVtX29wczsKPiAtCQkJY3Rsci0+bWVtX2NhcHMgPSAmZHdfc3BpX21lbV9jYXBz Owo+ICsJCQljdGxyLT5tZW1fY2FwcyA9IChkd3MtPmNhcHMgJiBEV19TUElfQ0FQX0VNT0RFKSA/ Cj4gKwkJCQkJICZkd19zcGlfZW5oX21lbV9jYXBzIDogJmR3X3NwaV9tZW1fY2FwczsKPiAgCQl9 Cj4gIAkJY3Rsci0+bWF4X3NwZWVkX2h6ID0gZHdzLT5tYXhfZnJlcTsKPiAgCQljdGxyLT5mbGFn cyA9IFNQSV9DT05UUk9MTEVSX0dQSU9fU1M7CgpbU2V2ZXJpdHk6IEhpZ2hdCklzIGl0IHNhZmUg dG8gYWR2ZXJ0aXNlIGR3X3NwaV9lbmhfbWVtX2NhcHMgKC5kdHIgPSB0cnVlKSBmb3IgYWxsCmNv bnRyb2xsZXJzIHdpdGggRFdfU1BJX0NBUF9FTU9ERSB3aXRob3V0IHByb2Jpbmcgd2hldGhlciB0 aGUgaGFyZHdhcmUKYWN0dWFsbHkgc3ludGhlc2l6ZXMgRERSIHN1cHBvcnQ/CgpEdXJpbmcgaW5p dGlhbGl6YXRpb24gaW4gZHdfc3BpX2FkZF9jb250cm9sbGVyKCkgLT4gZHdfc3BpX2h3X2luaXQo KSAtPgpkZXRlY3RfZW5oX21vZGUoKSwgdGhlIGRyaXZlciBzZXRzIERXX1NQSV9DQVBfRU1PREUg YWZ0ZXIgdGVzdGluZyB3aGV0aGVyCkR1YWwvUXVhZC9PY3RhbCBmcmFtZSBmb3JtYXRzIGluIERX X1NQSV9DVFJMUjAgYW5kCkRXX1NQSV9FTkhfQ1RSTFIwX0NMS19TVFJFVENIX0VOIGluIERXX1NQ SV9TUElfQ1RSTFIwIGFyZSB3cml0YWJsZToKCmRyaXZlcnMvc3BpL3NwaS1kdy1jb3JlLmM6ZGV0 ZWN0X2VuaF9tb2RlKCkgewoJLi4uCgkvKiB0ZXN0IGNsb2NrIHN0cmV0Y2hpbmcgKi8KCWR3X3dy aXRlbChkd3MsIERXX1NQSV9TUElfQ1RSTFIwLCBEV19TUElfRU5IX0NUUkxSMF9DTEtfU1RSRVRD SF9FTik7CglpZiAoKERXX1NQSV9FTkhfQ1RSTFIwX0NMS19TVFJFVENIX0VOICYgZHdfcmVhZGwo ZHdzLCBEV19TUElfU1BJX0NUUkxSMCkpICE9CgkgICAgRFdfU1BJX0VOSF9DVFJMUjBfQ0xLX1NU UkVUQ0hfRU4pIHsKCQltb2RlID0gMDsKCQlnb3RvIGRpc2FibGVfZW5oOwoJfQoKCWR3cy0+Y2Fw cyB8PSBEV19TUElfQ0FQX0VNT0RFOwp9CgpPbiBTeW5vcHN5cyBEV19hcGJfc3NpIChQU1NJKSBh bmQgRFdDX3NzaSAoSFNTSSkgY29udHJvbGxlcnMsIGVuaGFuY2VkIFNQSQptb2RlLCBjbG9jayBz dHJldGNoaW5nLCBhbmQgRERSIHN1cHBvcnQgKFNTSV9IQVNfRERSLCBpbnRyb2R1Y2VkIGluCkRX X2FwYl9zc2kgdjQuMDJhKSBhcmUgaW5kZXBlbmRlbnQgc3ludGhlc2lzIHBhcmFtZXRlcnMuIFdo ZW4gU1NJX0hBU19ERFIgaXMKbm90IHN5bnRoZXNpemVkLCBEV19TUElfRU5IX0NUUkxSMF9TUElf RERSX0VOIGFuZApEV19TUElfRU5IX0NUUkxSMF9JTlNUX0REUl9FTiBhcmUgcmVhZC1vbmx5IHpl cm8gYml0cywgYW5kIHRoZQpEV19TUElfRERSX0RSSVZFX0VER0UgcmVnaXN0ZXIgYXQgb2Zmc2V0 IDB4ZjggaXMgbm90IGltcGxlbWVudGVkLgoKSWYgYSBEVFItY2FwYWJsZSBmbGFzaCBpcyBhdHRh Y2hlZCB0byBhIGNvbnRyb2xsZXIgdGhhdCBoYXMgRFdfU1BJX0NBUF9FTU9ERQpidXQgbGFja3Mg aGFyZHdhcmUgRERSIHN1cHBvcnQsIGFkdmVydGlzaW5nIGR3X3NwaV9lbmhfbWVtX2NhcHMgY2F1 c2VzCnNwaS1tZW0gdG8gaXNzdWUgRFRSIG9wZXJhdGlvbnMgd2hlcmUgRFdfU1BJX0VOSF9DVFJM UjBfU1BJX0REUl9FTiBpcwppZ25vcmVkIGJ5IGhhcmR3YXJlIHdoaWxlIGR3X3NwaV9lbmhfd2Fp dF9jeWNsZXMoKSBoYWx2ZXMgdGhlIGR1bW15IGN5Y2xlcywKYnJlYWtpbmcgZmxhc2ggdHJhbnNm ZXJzLiBJbiBhZGRpdGlvbiwgZHdfc3BpX3VwZGF0ZV9jb25maWcoKSB3aWxsCnVuY29uZGl0aW9u YWxseSB3cml0ZSB0byB0aGUgdW5pbXBsZW1lbnRlZCBEV19TUElfRERSX0RSSVZFX0VER0UgcmVn aXN0ZXIgb24KZXZlcnkgZW5oYW5jZWQgU1BJIHRyYW5zZmVyLgoKU2hvdWxkIGRldGVjdF9lbmhf bW9kZSgpIHByb2JlIHdoZXRoZXIgRFdfU1BJX0VOSF9DVFJMUjBfU1BJX0REUl9FTiBpcwp3cml0 YWJsZSBpbiBEV19TUElfU1BJX0NUUkxSMCAoc2ltaWxhciB0byB0aGUgY2xvY2sgc3RyZXRjaGlu ZyBjaGVjaykgYW5kCnJlY29yZCBhIGRlZGljYXRlZCBjYXBhYmlsaXR5IGZsYWcgYmVmb3JlIGFk dmVydGlzaW5nIERUUiBzdXBwb3J0IG9yIHdyaXRpbmcKRFdfU1BJX0REUl9EUklWRV9FREdFPwoK WyAuLi4gXQoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9w YXRjaHNldC8yMDI2MTAyMjEwMjYxNC43NTY5Ni0xLWNoYW5naHVhbmcubGlhbmdAc3RhcmZpdmV0 ZWNoLmNvbT9wYXJ0PTEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1tdGQvCg==