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 2D0ADC48BC3 for ; Tue, 20 Feb 2024 10:50:58 +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:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=DM+GnV1Fe7j8nb1p/qQ9Y9+N3bm1XUOoJtFeDBthQOE=; b=qC5nbydNzXd695 7b4Kt1YxOaY01BfpU9ub1sLFXabZvOzDg215Jp+JfIEKpaOX/B6OzFYGWsO5qVfdEpvapSR5FMltj sCDGkk1BtLe1gaamzy5KDbusfU+OuyC2ewvGT0NDKor8Vp9z23mb3ReM+G/Tr+h/GH1yde3hF7RDo gSaC/+W+1HdbzMI6ZyhNNHvPlFQ01OKbTp/OGwLTSMYDzkZg6JMI9gmRd1zgZm2JZ3epysDW6RUaZ 5koQwEGsJhEPBnxeEocDbaeEX6r027tE3ianGyupeNTKUlSPAyE9jruGoKA21L6UKQzzPQter8jil eHmC2mWtzTdTO851mrQw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rcNi2-0000000EKY3-17KA; Tue, 20 Feb 2024 10:50:46 +0000 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rcNhz-0000000EKWt-1CfA for linux-arm-kernel@lists.infradead.org; Tue, 20 Feb 2024 10:50:44 +0000 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-a30f7c9574eso677342466b.0 for ; Tue, 20 Feb 2024 02:50:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708426241; x=1709031041; darn=lists.infradead.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=exAcQ8hd3pfK/VT0lsqz2Rx4G6poxL7RUx54/PgzT+I=; b=PKu3qUrWl10Q5C2JOLWHTId1dQpoWGg04W3LmYEsM5OD+gOsg091SwFyT32D1xwMF/ kDpF4X7FiF+1QynJLTmQWX82KLOwo8GoQNN1+lGmDuQHEdAPjVqE7bEidaAn3ANUmGxo IuCgtv6pguYzxtNeOoqQCO4ya3EZxHvk0YKR4Posd7p93qyjBHNXNyWsIpuKfADXKhhC 1GOrNmJZVAa1UWNUgytn3QyrcrvzMAEBdCZIc62+wCKNluOynIWQjYZfEFZWXfez8o8S HTg7xOhvop76QXVsGcDWCMtX5cTRj9Y31PYskmhTNrGAf5MV5aXUfTi1J4K17fme16tk dlhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708426241; x=1709031041; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=exAcQ8hd3pfK/VT0lsqz2Rx4G6poxL7RUx54/PgzT+I=; b=tbjz4gSn0hGzVcxx4pJ/qaafhdLehJpsUo8io6CGEluDV8Daf1eVXcJTUuz347/6gl JuHUa3H5fsDJv3hcSg53SGi4XRJexCclB7c8EQEwZYiO+KFr9XuCJAONxW8ghc1U2RjN oE+22Z1dqOAdosQcabKGBa815zWRUNY8k59GGlLrEGzxcBVExiD7YLZU3q4S39rhRF9W hFHdJk4VtxuDbeTXybgK7jtTJ8OKQ5NtfjOPaWrxYRHqh/V24PsvxPARXGVZKhF7WfmZ 24HP5idIJWo6yv6NQF02OY3FEvPGAjdkqa4k1As0uuODGIZcPx7l1G4hm0AotsKiDY/e 34Aw== X-Forwarded-Encrypted: i=1; AJvYcCUvfM9Zc7BPG9BNUmwjaEEoFObekXaDe8GQHcFfj+W4ySqGWk7ymU0hBXoljy/PieyDwyK9d/sLu6u98kx9jSVKjPtF0+y45O7MHAv4hBzGLwpSEsg= X-Gm-Message-State: AOJu0YzrufAF03a+9YaR85iWV2IvEXPPsTu+rnJH4R3FFmBLr6WpAPdw vkUONVv+yTZHBZK1kw4J+PReUIOe9vYc8qz1u9JQGT/bago11WYU X-Google-Smtp-Source: AGHT+IGE+XXRoZfdf9m+H4h8aUUhvlJDR54bjKCSJpCqHOj/lUuJF2x7nUF3e3v1rlgSM8Y7BZUaOQ== X-Received: by 2002:a17:906:40cb:b0:a3e:405c:d5d1 with SMTP id a11-20020a17090640cb00b00a3e405cd5d1mr4695537ejk.50.1708426241096; Tue, 20 Feb 2024 02:50:41 -0800 (PST) Received: from ?IPv6:2001:a61:3456:4e01:6ae:b55a:bd1d:57fc? ([2001:a61:3456:4e01:6ae:b55a:bd1d:57fc]) by smtp.gmail.com with ESMTPSA id x19-20020a1709065ad300b00a3e786d8729sm2338011ejs.168.2024.02.20.02.50.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Feb 2024 02:50:40 -0800 (PST) Message-ID: <42bc659ddda05f3d4ece7e4a65e4548da17d17ad.camel@gmail.com> Subject: Re: [PATCH v2 1/5] spi: add spi_optimize_message() APIs From: Nuno =?ISO-8859-1?Q?S=E1?= To: David Lechner , Mark Brown Cc: Martin Sperl , David Jander , Jonathan Cameron , Michael Hennerich , Nuno =?ISO-8859-1?Q?S=E1?= , Alain Volmat , Maxime Coquelin , Alexandre Torgue , linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-iio@vger.kernel.org Date: Tue, 20 Feb 2024 11:50:40 +0100 In-Reply-To: <20240219-mainline-spi-precook-message-v2-1-4a762c6701b9@baylibre.com> References: <20240219-mainline-spi-precook-message-v2-0-4a762c6701b9@baylibre.com> <20240219-mainline-spi-precook-message-v2-1-4a762c6701b9@baylibre.com> User-Agent: Evolution 3.50.3 (3.50.3-1.fc39) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240220_025043_364694_F1006B36 X-CRM114-Status: GOOD ( 45.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCAyMDI0LTAyLTE5IGF0IDE2OjMzIC0wNjAwLCBEYXZpZCBMZWNobmVyIHdyb3RlOgo+ IFRoaXMgYWRkcyBhIG5ldyBzcGlfb3B0aW1pemVfbWVzc2FnZSgpIGZ1bmN0aW9uIHRoYXQgY2Fu IGJlIHVzZWQgdG8KPiBvcHRpbWl6ZSBTUEkgbWVzc2FnZXMgdGhhdCBhcmUgdXNlZCBtb3JlIHRo YW4gb25jZS4gUGVyaXBoZXJhbCBkcml2ZXJzCj4gdGhhdCB1c2UgdGhlIHNhbWUgbWVzc2FnZSBt dWx0aXBsZSB0aW1lcyBjYW4gdXNlIHRoaXMgQVBJIHRvIHBlcmZvcm0gU1BJCj4gbWVzc2FnZSB2 YWxpZGF0aW9uIGFuZCBjb250cm9sbGVyLXNwZWNpZmljIG9wdGltaXphdGlvbnMgb25jZSBhbmQg dGhlbgo+IHJldXNlIHRoZSBtZXNzYWdlIHdoaWxlIGF2b2lkaW5nIHRoZSBvdmVyaGVhZCBvZiBy ZXZhbGlkYXRpbmcgdGhlCj4gbWVzc2FnZSBvbiBlYWNoIHNwaV8oYSlzeW5jKCkgY2FsbC4KPiAK PiBJbnRlcm5hbGx5LCB0aGUgU1BJIGNvcmUgd2lsbCBhbHNvIGNhbGwgdGhpcyBmdW5jdGlvbiBm b3IgZWFjaCBtZXNzYWdlCj4gaWYgdGhlIHBlcmlwaGVyYWwgZHJpdmVyIGRpZCBub3QgZXhwbGlj aXRseSBjYWxsIGl0LiBUaGlzIGlzIGRvbmUgdG8gc28KPiB0aGF0IGNvbnRyb2xsZXIgZHJpdmVy cyBkb24ndCBoYXZlIHRvIGhhdmUgbXVsdGlwbGUgY29kZSBwYXRocyBmb3IKPiBvcHRpbWl6ZWQg YW5kIG5vbi1vcHRpbWl6ZWQgbWVzc2FnZXMuCj4gCj4gQSBob29rIGlzIHByb3ZpZGVkIGZvciBj b250cm9sbGVyIGRyaXZlcnMgdG8gcGVyZm9ybSBjb250cm9sbGVyLXNwZWNpZmljCj4gb3B0aW1p emF0aW9ucy4KPiAKPiBTdWdnZXN0ZWQtYnk6IE1hcnRpbiBTcGVybCA8a2VybmVsQG1hcnRpbi5z cGVybC5vcmc+Cj4gTGluazoKPiBodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1zcGkvMzlE RUMwMDQtMTBBMS00N0VGLTlENzctMjc2MTg4RDI1ODBDQG1hcnRpbi5zcGVybC5vcmcvCj4gU2ln bmVkLW9mZi1ieTogRGF2aWQgTGVjaG5lciA8ZGxlY2huZXJAYmF5bGlicmUuY29tPgo+IC0tLQoK QWNrZWQtYnk6IE51bm8gU2EgPG51bm8uc2FAYW5hbG9nLmNvbT4KCj4gCj4gdjIgY2hhbmdlczoK PiAtIFJlbW92ZWQgcHJlX29wdGltaXplZCBwYXJhbWV0ZXIgZnJvbSBfX3NwaV9vcHRpbWl6ZV9t ZXNzYWdlKCkKPiAtIEFkZGVkIGNvbW1lbnQgZXhwbGFpbmluZyBwdXJwb3NlIG9mIHByZV9vcHRp bWl6ZWQgZmxhZwo+IC0gRml4ZWQgbWlzc2luZyBkb2MgY29tbWVudCBmb3IgQHByZV9vcHRpbWl6 ZWQKPiAtIFJlbW92ZWQga2VybmVsIGRvYyBpbmNsdXNpb24gKC8qKiAtPiAvKikgZnJvbSBzdGF0 aWMgbWVtYmVycwo+IC0gUmVtb3ZlZCB1bnJlbGF0ZWQgY29tbWVudCBhYm91dCBjYWxsaW5nIHNw aV9maW5hbGl6ZV9jdXJyZW50X21lc3NhZ2UoKQo+IAo+IMKgZHJpdmVycy9zcGkvc3BpLmPCoMKg wqDCoMKgwqAgfCAxNTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tCj4gwqBpbmNsdWRlL2xpbnV4L3NwaS9zcGkuaCB8wqAgMjAgKysrKysrKwo+IMKgMiBm aWxlcyBjaGFuZ2VkLCAxNjcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLmMgYi9kcml2ZXJzL3NwaS9zcGkuYwo+IGluZGV4IGMy YjEwZTJjNzVmMC4uZjY4ZDkyYjU3NTQzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvc3BpL3NwaS5j Cj4gKysrIGIvZHJpdmVycy9zcGkvc3BpLmMKPiBAQCAtMjEwNiw2ICsyMTA2LDQxIEBAIHN0cnVj dCBzcGlfbWVzc2FnZSAqc3BpX2dldF9uZXh0X3F1ZXVlZF9tZXNzYWdlKHN0cnVjdAo+IHNwaV9j b250cm9sbGVyICpjdGxyKQo+IMKgfQo+IMKgRVhQT1JUX1NZTUJPTF9HUEwoc3BpX2dldF9uZXh0 X3F1ZXVlZF9tZXNzYWdlKTsKPiDCoAo+ICsvKgo+ICsgKiBfX3NwaV91bm9wdGltaXplX21lc3Nh Z2UgLSBzaGFyZWQgaW1wbGVtZW50YXRpb24gb2Ygc3BpX3Vub3B0aW1pemVfbWVzc2FnZSgpCj4g KyAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGFuZCBzcGlfbWF5YmVfdW5vcHRpbWl6ZV9tZXNzYWdlKCkKPiArICogQG1zZzogdGhlIG1lc3Nh Z2UgdG8gdW5vcHRpbWl6ZQo+ICsgKgo+ICsgKiBQZXJpcGhlcmFsIGRyaXZlcnMgc2hvdWxkIHVz ZSBzcGlfdW5vcHRpbWl6ZV9tZXNzYWdlKCkgYW5kIGNhbGxlcnMgaW5zaWRlCj4gKyAqIGNvcmUg c2hvdWxkIHVzZSBzcGlfbWF5YmVfdW5vcHRpbWl6ZV9tZXNzYWdlKCkgcmF0aGVyIHRoYW4gY2Fs bGluZyB0aGlzCj4gKyAqIGZ1bmN0aW9uIGRpcmVjdGx5Lgo+ICsgKgo+ICsgKiBJdCBpcyBub3Qg dmFsaWQgdG8gY2FsbCB0aGlzIG9uIGEgbWVzc2FnZSB0aGF0IGlzIG5vdCBjdXJyZW50bHkgb3B0 aW1pemVkLgo+ICsgKi8KPiArc3RhdGljIHZvaWQgX19zcGlfdW5vcHRpbWl6ZV9tZXNzYWdlKHN0 cnVjdCBzcGlfbWVzc2FnZSAqbXNnKQo+ICt7Cj4gKwlzdHJ1Y3Qgc3BpX2NvbnRyb2xsZXIgKmN0 bHIgPSBtc2ctPnNwaS0+Y29udHJvbGxlcjsKPiArCj4gKwlpZiAoY3Rsci0+dW5vcHRpbWl6ZV9t ZXNzYWdlKQo+ICsJCWN0bHItPnVub3B0aW1pemVfbWVzc2FnZShtc2cpOwo+ICsKPiArCW1zZy0+ b3B0aW1pemVkID0gZmFsc2U7Cj4gKwltc2ctPm9wdF9zdGF0ZSA9IE5VTEw7Cj4gK30KPiArCj4g Ky8qCj4gKyAqIHNwaV9tYXliZV91bm9wdGltaXplX21lc3NhZ2UgLSB1bm9wdGltaXplIG1zZyBu b3QgbWFuYWdlZCBieSBhIHBlcmlwaGVyYWwKPiArICogQG1zZzogdGhlIG1lc3NhZ2UgdG8gdW5v cHRpbWl6ZQo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gdW5vcHRpbWl6ZSBh IG1lc3NhZ2UgaWYgYW5kIG9ubHkgaWYgaXQgd2FzCj4gKyAqIG9wdGltaXplZCBieSB0aGUgY29y ZSAodmlhIHNwaV9tYXliZV9vcHRpbWl6ZV9tZXNzYWdlKCkpLgo+ICsgKi8KPiArc3RhdGljIHZv aWQgc3BpX21heWJlX3Vub3B0aW1pemVfbWVzc2FnZShzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm1zZykK PiArewo+ICsJaWYgKCFtc2ctPnByZV9vcHRpbWl6ZWQgJiYgbXNnLT5vcHRpbWl6ZWQpCj4gKwkJ X19zcGlfdW5vcHRpbWl6ZV9tZXNzYWdlKG1zZyk7Cj4gK30KPiArCj4gwqAvKioKPiDCoCAqIHNw aV9maW5hbGl6ZV9jdXJyZW50X21lc3NhZ2UoKSAtIHRoZSBjdXJyZW50IG1lc3NhZ2UgaXMgY29t cGxldGUKPiDCoCAqIEBjdGxyOiB0aGUgY29udHJvbGxlciB0byByZXR1cm4gdGhlIG1lc3NhZ2Ug dG8KPiBAQCAtMjE1Myw2ICsyMTg4LDggQEAgdm9pZCBzcGlfZmluYWxpemVfY3VycmVudF9tZXNz YWdlKHN0cnVjdCBzcGlfY29udHJvbGxlcgo+ICpjdGxyKQo+IMKgCj4gwqAJbWVzZy0+cHJlcGFy ZWQgPSBmYWxzZTsKPiDCoAo+ICsJc3BpX21heWJlX3Vub3B0aW1pemVfbWVzc2FnZShtZXNnKTsK PiArCj4gwqAJV1JJVEVfT05DRShjdGxyLT5jdXJfbXNnX2luY29tcGxldGUsIGZhbHNlKTsKPiDC oAlzbXBfbWIoKTsgLyogU2VlIF9fc3BpX3B1bXBfdHJhbnNmZXJfbWVzc2FnZSgpLi4uICovCj4g wqAJaWYgKFJFQURfT05DRShjdGxyLT5jdXJfbXNnX25lZWRfY29tcGxldGlvbikpCj4gQEAgLTQx OTQsNiArNDIzMSwxMTAgQEAgc3RhdGljIGludCBfX3NwaV92YWxpZGF0ZShzdHJ1Y3Qgc3BpX2Rl dmljZSAqc3BpLCBzdHJ1Y3QKPiBzcGlfbWVzc2FnZSAqbWVzc2FnZSkKPiDCoAlyZXR1cm4gMDsK PiDCoH0KPiDCoAo+ICsvKgo+ICsgKiBfX3NwaV9vcHRpbWl6ZV9tZXNzYWdlIC0gc2hhcmVkIGlt cGxlbWVudGF0aW9uIGZvciBzcGlfb3B0aW1pemVfbWVzc2FnZSgpCj4gKyAqwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYW5kIHNwaV9tYXliZV9vcHRp bWl6ZV9tZXNzYWdlKCkKPiArICogQHNwaTogdGhlIGRldmljZSB0aGF0IHdpbGwgYmUgdXNlZCBm b3IgdGhlIG1lc3NhZ2UKPiArICogQG1zZzogdGhlIG1lc3NhZ2UgdG8gb3B0aW1pemUKPiArICoK PiArICogUGVyaXBoZXJhbCBkcml2ZXJzIHdpbGwgY2FsbCBzcGlfb3B0aW1pemVfbWVzc2FnZSgp IGFuZCB0aGUgc3BpIGNvcmUgd2lsbAo+ICsgKiBjYWxsIHNwaV9tYXliZV9vcHRpbWl6ZV9tZXNz YWdlKCkgaW5zdGVhZCBvZiBjYWxsaW5nIHRoaXMgZGlyZWN0bHkuCj4gKyAqCj4gKyAqIEl0IGlz IG5vdCB2YWxpZCB0byBjYWxsIHRoaXMgb24gYSBtZXNzYWdlIHRoYXQgaGFzIGFscmVhZHkgYmVl biBvcHRpbWl6ZWQuCj4gKyAqCj4gKyAqIFJldHVybjogemVybyBvbiBzdWNjZXNzLCBlbHNlIGEg bmVnYXRpdmUgZXJyb3IgY29kZQo+ICsgKi8KPiArc3RhdGljIGludCBfX3NwaV9vcHRpbWl6ZV9t ZXNzYWdlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGksCj4gKwkJCQnCoCBzdHJ1Y3Qgc3BpX21lc3Nh Z2UgKm1zZykKPiArewo+ICsJc3RydWN0IHNwaV9jb250cm9sbGVyICpjdGxyID0gc3BpLT5jb250 cm9sbGVyOwo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBfX3NwaV92YWxpZGF0ZShzcGksIG1z Zyk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJaWYgKGN0bHItPm9wdGlt aXplX21lc3NhZ2UpIHsKPiArCQlyZXQgPSBjdGxyLT5vcHRpbWl6ZV9tZXNzYWdlKG1zZyk7Cj4g KwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwltc2ctPm9wdGltaXpl ZCA9IHRydWU7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gKy8qCj4gKyAqIHNwaV9tYXli ZV9vcHRpbWl6ZV9tZXNzYWdlIC0gb3B0aW1pemUgbWVzc2FnZSBpZiBpdCBpc24ndCBhbHJlYWR5 IHByZS1vcHRpbWl6ZWQKPiArICogQHNwaTogdGhlIGRldmljZSB0aGF0IHdpbGwgYmUgdXNlZCBm b3IgdGhlIG1lc3NhZ2UKPiArICogQG1zZzogdGhlIG1lc3NhZ2UgdG8gb3B0aW1pemUKPiArICog UmV0dXJuOiB6ZXJvIG9uIHN1Y2Nlc3MsIGVsc2UgYSBuZWdhdGl2ZSBlcnJvciBjb2RlCj4gKyAq Lwo+ICtzdGF0aWMgaW50IHNwaV9tYXliZV9vcHRpbWl6ZV9tZXNzYWdlKHN0cnVjdCBzcGlfZGV2 aWNlICpzcGksCj4gKwkJCQnCoMKgwqDCoMKgIHN0cnVjdCBzcGlfbWVzc2FnZSAqbXNnKQo+ICt7 Cj4gKwlpZiAobXNnLT5wcmVfb3B0aW1pemVkKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCXJldHVy biBfX3NwaV9vcHRpbWl6ZV9tZXNzYWdlKHNwaSwgbXNnKTsKPiArfQo+ICsKPiArLyoqCj4gKyAq IHNwaV9vcHRpbWl6ZV9tZXNzYWdlIC0gZG8gYW55IG9uZS10aW1lIHZhbGlkYXRpb24gYW5kIHNl dHVwIGZvciBhIFNQSSBtZXNzYWdlCj4gKyAqIEBzcGk6IHRoZSBkZXZpY2UgdGhhdCB3aWxsIGJl IHVzZWQgZm9yIHRoZSBtZXNzYWdlCj4gKyAqIEBtc2c6IHRoZSBtZXNzYWdlIHRvIG9wdGltaXpl Cj4gKyAqCj4gKyAqIFBlcmlwaGVyYWwgZHJpdmVycyB0aGF0IHJldXNlIHRoZSBzYW1lIG1lc3Nh Z2UgcmVwZWF0ZWRseSBtYXkgY2FsbCB0aGlzIHRvCj4gKyAqIHBlcmZvcm0gYXMgbXVjaCBtZXNz YWdlIHByZXAgYXMgcG9zc2libGUgb25jZSwgcmF0aGVyIHRoYW4gcmVwZWF0aW5nIGl0IGVhY2gK PiArICogdGltZSBhIG1lc3NhZ2UgdHJhbnNmZXIgaXMgcGVyZm9ybWVkIHRvIGltcHJvdmUgdGhy b3VnaHB1dCBhbmQgcmVkdWNlIENQVQo+ICsgKiB1c2FnZS4KPiArICoKPiArICogT25jZSBhIG1l c3NhZ2UgaGFzIGJlZW4gb3B0aW1pemVkLCBpdCBjYW5ub3QgYmUgbW9kaWZpZWQgd2l0aCB0aGUg ZXhjZXB0aW9uCj4gKyAqIG9mIHVwZGF0aW5nIHRoZSBjb250ZW50cyBvZiBhbnkgeGZlci0+dHhf YnVmICh0aGUgcG9pbnRlciBjYW4ndCBiZSBjaGFuZ2VkLAo+ICsgKiBvbmx5IHRoZSBkYXRhIGlu IHRoZSBtZW1vcnkgaXQgcG9pbnRzIHRvKS4KPiArICoKPiArICogQ2FsbHMgdG8gdGhpcyBmdW5j dGlvbiBtdXN0IGJlIGJhbGFuY2VkIHdpdGggY2FsbHMgdG8gc3BpX3Vub3B0aW1pemVfbWVzc2Fn ZSgpCj4gKyAqIHRvIGF2b2lkIGxlYWtpbmcgcmVzb3VyY2VzLgo+ICsgKgo+ICsgKiBDb250ZXh0 OiBjYW4gc2xlZXAKPiArICogUmV0dXJuOiB6ZXJvIG9uIHN1Y2Nlc3MsIGVsc2UgYSBuZWdhdGl2 ZSBlcnJvciBjb2RlCj4gKyAqLwo+ICtpbnQgc3BpX29wdGltaXplX21lc3NhZ2Uoc3RydWN0IHNw aV9kZXZpY2UgKnNwaSwgc3RydWN0IHNwaV9tZXNzYWdlICptc2cpCj4gK3sKPiArCWludCByZXQ7 Cj4gKwo+ICsJcmV0ID0gX19zcGlfb3B0aW1pemVfbWVzc2FnZShzcGksIG1zZyk7Cj4gKwlpZiAo cmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJLyoKPiArCSAqIFRoaXMgZmxhZyBpbmRpY2F0 ZXMgdGhhdCB0aGUgcGVyaXBoZXJhbCBkcml2ZXIgY2FsbGVkCj4gc3BpX29wdGltaXplX21lc3Nh Z2UoKQo+ICsJICogYW5kIHRoZXJlZm9yZSB3ZSBzaG91bGRuJ3QgdW5vcHRpbWl6ZSBtZXNzYWdl IGF1dG9tYXRpY2FsbHkgd2hlbgo+IGZpbmFsaXppbmcKPiArCSAqIHRoZSBtZXNzYWdlIGJ1dCBy YXRoZXIgd2FpdCB1bnRpbCBzcGlfdW5vcHRpbWl6ZV9tZXNzYWdlKCkgaXMgY2FsbGVkCj4gKwkg KiBieSB0aGUgcGVyaXBoZXJhbCBkcml2ZXIuCj4gKwkgKi8KPiArCW1zZy0+cHJlX29wdGltaXpl ZCA9IHRydWU7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwoc3Bp X29wdGltaXplX21lc3NhZ2UpOwo+ICsKPiArLyoqCj4gKyAqIHNwaV91bm9wdGltaXplX21lc3Nh Z2UgLSByZWxlYXNlcyBhbnkgcmVzb3VyY2VzIGFsbG9jYXRlZCBieQo+IHNwaV9vcHRpbWl6ZV9t ZXNzYWdlKCkKPiArICogQG1zZzogdGhlIG1lc3NhZ2UgdG8gdW5vcHRpbWl6ZQo+ICsgKgo+ICsg KiBDYWxscyB0byB0aGlzIGZ1bmN0aW9uIG11c3QgYmUgYmFsYW5jZWQgd2l0aCBjYWxscyB0byBz cGlfb3B0aW1pemVfbWVzc2FnZSgpLgo+ICsgKgo+ICsgKiBDb250ZXh0OiBjYW4gc2xlZXAKPiAr ICovCj4gK3ZvaWQgc3BpX3Vub3B0aW1pemVfbWVzc2FnZShzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm1z ZykKPiArewo+ICsJX19zcGlfdW5vcHRpbWl6ZV9tZXNzYWdlKG1zZyk7Cj4gKwltc2ctPnByZV9v cHRpbWl6ZWQgPSBmYWxzZTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MX0dQTChzcGlfdW5vcHRpbWl6 ZV9tZXNzYWdlKTsKPiArCj4gwqBzdGF0aWMgaW50IF9fc3BpX2FzeW5jKHN0cnVjdCBzcGlfZGV2 aWNlICpzcGksIHN0cnVjdCBzcGlfbWVzc2FnZSAqbWVzc2FnZSkKPiDCoHsKPiDCoAlzdHJ1Y3Qg c3BpX2NvbnRyb2xsZXIgKmN0bHIgPSBzcGktPmNvbnRyb2xsZXI7Cj4gQEAgLTQyNTgsOCArNDM5 OSw4IEBAIGludCBzcGlfYXN5bmMoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IHNwaV9t ZXNzYWdlCj4gKm1lc3NhZ2UpCj4gwqAJaW50IHJldDsKPiDCoAl1bnNpZ25lZCBsb25nIGZsYWdz Owo+IMKgCj4gLQlyZXQgPSBfX3NwaV92YWxpZGF0ZShzcGksIG1lc3NhZ2UpOwo+IC0JaWYgKHJl dCAhPSAwKQo+ICsJcmV0ID0gc3BpX21heWJlX29wdGltaXplX21lc3NhZ2Uoc3BpLCBtZXNzYWdl KTsKPiArCWlmIChyZXQpCj4gwqAJCXJldHVybiByZXQ7Cj4gwqAKPiDCoAlzcGluX2xvY2tfaXJx c2F2ZSgmY3Rsci0+YnVzX2xvY2tfc3BpbmxvY2ssIGZsYWdzKTsKPiBAQCAtNDI3MSw2ICs0NDEy LDggQEAgaW50IHNwaV9hc3luYyhzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBzdHJ1Y3Qgc3BpX21l c3NhZ2UKPiAqbWVzc2FnZSkKPiDCoAo+IMKgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0bHIt PmJ1c19sb2NrX3NwaW5sb2NrLCBmbGFncyk7Cj4gwqAKPiArCXNwaV9tYXliZV91bm9wdGltaXpl X21lc3NhZ2UobWVzc2FnZSk7Cj4gKwo+IMKgCXJldHVybiByZXQ7Cj4gwqB9Cj4gwqBFWFBPUlRf U1lNQk9MX0dQTChzcGlfYXN5bmMpOwo+IEBAIC00MzMxLDggKzQ0NzQsOCBAQCBzdGF0aWMgaW50 IF9fc3BpX3N5bmMoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0Cj4gc3BpX21lc3NhZ2Ug Km1lc3NhZ2UpCj4gwqAJCXJldHVybiAtRVNIVVRET1dOOwo+IMKgCX0KPiDCoAo+IC0Jc3RhdHVz ID0gX19zcGlfdmFsaWRhdGUoc3BpLCBtZXNzYWdlKTsKPiAtCWlmIChzdGF0dXMgIT0gMCkKPiAr CXN0YXR1cyA9IHNwaV9tYXliZV9vcHRpbWl6ZV9tZXNzYWdlKHNwaSwgbWVzc2FnZSk7Cj4gKwlp ZiAoc3RhdHVzKQo+IMKgCQlyZXR1cm4gc3RhdHVzOwo+IMKgCj4gwqAJU1BJX1NUQVRJU1RJQ1Nf SU5DUkVNRU5UX0ZJRUxEKGN0bHItPnBjcHVfc3RhdGlzdGljcywgc3BpX3N5bmMpOwo+IGRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L3NwaS9zcGkuaCBiL2luY2x1ZGUvbGludXgvc3BpL3NwaS5o Cj4gaW5kZXggMmI4ZTI3NDY3NjlhLi5kZGZiNjZkZDRjYWYgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVk ZS9saW51eC9zcGkvc3BpLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L3NwaS9zcGkuaAo+IEBAIC00 NzUsNiArNDc1LDggQEAgZXh0ZXJuIHN0cnVjdCBzcGlfZGV2aWNlICpzcGlfbmV3X2FuY2lsbGFy eV9kZXZpY2Uoc3RydWN0Cj4gc3BpX2RldmljZSAqc3BpLCB1OCBjaAo+IMKgICoKPiDCoCAqIEBz ZXRfY3M6IHNldCB0aGUgbG9naWMgbGV2ZWwgb2YgdGhlIGNoaXAgc2VsZWN0IGxpbmUuwqAgTWF5 IGJlIGNhbGxlZAo+IMKgICrCoMKgwqDCoMKgwqDCoMKgwqAgZnJvbSBpbnRlcnJ1cHQgY29udGV4 dC4KPiArICogQG9wdGltaXplX21lc3NhZ2U6IG9wdGltaXplIHRoZSBtZXNzYWdlIGZvciByZXVz ZQo+ICsgKiBAdW5vcHRpbWl6ZV9tZXNzYWdlOiByZWxlYXNlIHJlc291cmNlcyBhbGxvY2F0ZWQg Ynkgb3B0aW1pemVfbWVzc2FnZQo+IMKgICogQHByZXBhcmVfbWVzc2FnZTogc2V0IHVwIHRoZSBj b250cm9sbGVyIHRvIHRyYW5zZmVyIGEgc2luZ2xlIG1lc3NhZ2UsCj4gwqAgKsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmb3IgZXhhbXBsZSBkb2luZyBETUEgbWFwcGluZy7C oCBDYWxsZWQgZnJvbSB0aHJlYWRlZAo+IMKgICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgY29udGV4dC4KPiBAQCAtNzE1LDYgKzcxNyw4IEBAIHN0cnVjdCBzcGlfY29udHJv bGxlciB7Cj4gwqAJc3RydWN0IGNvbXBsZXRpb27CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHhmZXJfY29tcGxldGlvbjsKPiDCoAlzaXplX3QJCQkJbWF4X2RtYV9sZW47Cj4gwqAKPiArCWlu dCAoKm9wdGltaXplX21lc3NhZ2UpKHN0cnVjdCBzcGlfbWVzc2FnZSAqbXNnKTsKPiArCWludCAo KnVub3B0aW1pemVfbWVzc2FnZSkoc3RydWN0IHNwaV9tZXNzYWdlICptc2cpOwo+IMKgCWludCAo KnByZXBhcmVfdHJhbnNmZXJfaGFyZHdhcmUpKHN0cnVjdCBzcGlfY29udHJvbGxlciAqY3Rscik7 Cj4gwqAJaW50ICgqdHJhbnNmZXJfb25lX21lc3NhZ2UpKHN0cnVjdCBzcGlfY29udHJvbGxlciAq Y3RsciwKPiDCoAkJCQnCoMKgwqAgc3RydWN0IHNwaV9tZXNzYWdlICptZXNnKTsKPiBAQCAtMTEx MSw2ICsxMTE1LDggQEAgc3RydWN0IHNwaV90cmFuc2ZlciB7Cj4gwqAgKiBAc3BpOiBTUEkgZGV2 aWNlIHRvIHdoaWNoIHRoZSB0cmFuc2FjdGlvbiBpcyBxdWV1ZWQKPiDCoCAqIEBpc19kbWFfbWFw cGVkOiBpZiB0cnVlLCB0aGUgY2FsbGVyIHByb3ZpZGVkIGJvdGggRE1BIGFuZCBDUFUgdmlydHVh bAo+IMKgICoJYWRkcmVzc2VzIGZvciBlYWNoIHRyYW5zZmVyIGJ1ZmZlcgo+ICsgKiBAcHJlX29w dGltaXplZDogcGVyaXBoZXJhbCBkcml2ZXIgcHJlLW9wdGltaXplZCB0aGUgbWVzc2FnZQo+ICsg KiBAb3B0aW1pemVkOiB0aGUgbWVzc2FnZSBpcyBpbiB0aGUgb3B0aW1pemVkIHN0YXRlCj4gwqAg KiBAcHJlcGFyZWQ6IHNwaV9wcmVwYXJlX21lc3NhZ2Ugd2FzIGNhbGxlZCBmb3IgdGhlIHRoaXMg bWVzc2FnZQo+IMKgICogQHN0YXR1czogemVybyBmb3Igc3VjY2VzcywgZWxzZSBuZWdhdGl2ZSBl cnJubwo+IMKgICogQGNvbXBsZXRlOiBjYWxsZWQgdG8gcmVwb3J0IHRyYW5zYWN0aW9uIGNvbXBs ZXRpb25zCj4gQEAgLTExMjAsNiArMTEyNiw3IEBAIHN0cnVjdCBzcGlfdHJhbnNmZXIgewo+IMKg ICoJc3VjY2Vzc2Z1bCBzZWdtZW50cwo+IMKgICogQHF1ZXVlOiBmb3IgdXNlIGJ5IHdoaWNoZXZl ciBkcml2ZXIgY3VycmVudGx5IG93bnMgdGhlIG1lc3NhZ2UKPiDCoCAqIEBzdGF0ZTogZm9yIHVz ZSBieSB3aGljaGV2ZXIgZHJpdmVyIGN1cnJlbnRseSBvd25zIHRoZSBtZXNzYWdlCj4gKyAqIEBv cHRfc3RhdGU6IGZvciB1c2UgYnkgd2hpY2hldmVyIGRyaXZlciBjdXJyZW50bHkgb3ducyB0aGUg bWVzc2FnZQo+IMKgICogQHJlc291cmNlczogZm9yIHJlc291cmNlIG1hbmFnZW1lbnQgd2hlbiB0 aGUgU1BJIG1lc3NhZ2UgaXMgcHJvY2Vzc2VkCj4gwqAgKgo+IMKgICogQSBAc3BpX21lc3NhZ2Ug aXMgdXNlZCB0byBleGVjdXRlIGFuIGF0b21pYyBzZXF1ZW5jZSBvZiBkYXRhIHRyYW5zZmVycywK PiBAQCAtMTE0Myw2ICsxMTUwLDExIEBAIHN0cnVjdCBzcGlfbWVzc2FnZSB7Cj4gwqAKPiDCoAl1 bnNpZ25lZAkJaXNfZG1hX21hcHBlZDoxOwo+IMKgCj4gKwkvKiBzcGlfb3B0aW1pemVfbWVzc2Fn ZSgpIHdhcyBjYWxsZWQgZm9yIHRoaXMgbWVzc2FnZSAqLwo+ICsJYm9vbAkJCXByZV9vcHRpbWl6 ZWQ7Cj4gKwkvKiBfX3NwaV9vcHRpbWl6ZV9tZXNzYWdlKCkgd2FzIGNhbGxlZCBmb3IgdGhpcyBt ZXNzYWdlICovCj4gKwlib29sCQkJb3B0aW1pemVkOwo+ICsKPiDCoAkvKiBzcGlfcHJlcGFyZV9t ZXNzYWdlKCkgd2FzIGNhbGxlZCBmb3IgdGhpcyBtZXNzYWdlICovCj4gwqAJYm9vbAkJCXByZXBh cmVkOwo+IMKgCj4gQEAgLTExNzIsNiArMTE4NCwxMSBAQCBzdHJ1Y3Qgc3BpX21lc3NhZ2Ugewo+ IMKgCSAqLwo+IMKgCXN0cnVjdCBsaXN0X2hlYWQJcXVldWU7Cj4gwqAJdm9pZAkJCSpzdGF0ZTsK PiArCS8qCj4gKwkgKiBPcHRpb25hbCBzdGF0ZSBmb3IgdXNlIGJ5IGNvbnRyb2xsZXIgZHJpdmVy IGJldHdlZW4gY2FsbHMgdG8KPiArCSAqIF9fc3BpX29wdGltaXplX21lc3NhZ2UoKSBhbmQgX19z cGlfdW5vcHRpbWl6ZV9tZXNzYWdlKCkuCj4gKwkgKi8KPiArCXZvaWQJCQkqb3B0X3N0YXRlOwo+ IMKgCj4gwqAJLyogTGlzdCBvZiBzcGlfcmVzIHJlc291cmNlcyB3aGVuIHRoZSBTUEkgbWVzc2Fn ZSBpcyBwcm9jZXNzZWQgKi8KPiDCoAlzdHJ1Y3QgbGlzdF9oZWFkwqDCoMKgwqDCoMKgwqAgcmVz b3VyY2VzOwo+IEBAIC0xMjU1LDYgKzEyNzIsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3BpX21l c3NhZ2VfZnJlZShzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm0pCj4gwqAJa2ZyZWUobSk7Cj4gwqB9Cj4g wqAKPiArZXh0ZXJuIGludCBzcGlfb3B0aW1pemVfbWVzc2FnZShzdHJ1Y3Qgc3BpX2RldmljZSAq c3BpLCBzdHJ1Y3Qgc3BpX21lc3NhZ2UgKm1zZyk7Cj4gK2V4dGVybiB2b2lkIHNwaV91bm9wdGlt aXplX21lc3NhZ2Uoc3RydWN0IHNwaV9tZXNzYWdlICptc2cpOwo+ICsKPiDCoGV4dGVybiBpbnQg c3BpX3NldHVwKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpOwo+IMKgZXh0ZXJuIGludCBzcGlfYXN5 bmMoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSwgc3RydWN0IHNwaV9tZXNzYWdlICptZXNzYWdlKTsK PiDCoGV4dGVybiBpbnQgc3BpX3NsYXZlX2Fib3J0KHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpOwo+ IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK