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.1 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,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 D27C5C11D3D for ; Thu, 27 Feb 2020 19:04:15 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 A06B424690 for ; Thu, 27 Feb 2020 19:04:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="UGMKKY7J" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A06B424690 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 18C706ED09; Thu, 27 Feb 2020 19:04:15 +0000 (UTC) Received: from us-smtp-delivery-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1B3FC6ED21 for ; Thu, 27 Feb 2020 19:04:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1582830252; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mRTM0qDL7LPt32fg6hEYfZAkWRy5CSaJiXAXokjB0I4=; b=UGMKKY7JuCeG9qVB3xAtEaOV7yiIC1/hpPIpGlc5oQxXZ8cTy+MFUvoRzpjSihsqZQvq49 QFetMqjvJQTFCefFo9omYevSAx4ZDABNvra/5wrUCDPV8Jt6ZOwdm86ZPVQkVneKE28AlT D6+SsSX/6E4jR1vzv/afKr+qmziyVfQ= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-443-xGa89p7COs-qv-DHKopdGw-1; Thu, 27 Feb 2020 14:04:10 -0500 X-MC-Unique: xGa89p7COs-qv-DHKopdGw-1 Received: by mail-wr1-f69.google.com with SMTP id d9so215866wrv.21 for ; Thu, 27 Feb 2020 11:04:10 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=SwU85H2GFNteJLgeoaoLzgVRM2Oe0kTxhKVNogjdc4E=; b=lpGuaGXma12KEMZUwcucE3V375ju0BKRKBg34Xz2qGzKoAaKR9jQDQWtm+6nJ55NSh Y4sEZ9a2au2jk/2T6Q/KYIdXiZbaM1pvQYT8s2HUNCbyJjQULJJpsCnNMBT7U69fEVvc lMKadKiF+OzEyf2nO7Coi0SZQ0WBHX0JhFSA0UFrH4XIYBbvo5EVdeqBcaD5TgQn4Q/9 g0Mennxjzh2EthjQ8Gu0Qc6oTvwvsT3GhgUMOVI6nZpUBivzmf36J5DxcRZK32WEus+q ansgSSJETMQwT8uZQNVQVpEKXiVxLjPOmKQmN/7ETEhL8Rcf/jvvs8z4d2+Lbaax9uEb 92Ww== X-Gm-Message-State: APjAAAWrPSSqGDuTZYezm13UqQv7Jp9uFg41dYEB48ZzbWRlPqSw7go4 hUJLcSM5IlUKHdw2x2VccJz3tuhbL1hgQXlNDBSi5PXPS2q9/53OjXiwtg0YP5f6madxagOUX65 JjM9DGFZkyiLWoipoYDbeFi7iKnjD X-Received: by 2002:adf:d4cc:: with SMTP id w12mr295309wrk.249.1582830249255; Thu, 27 Feb 2020 11:04:09 -0800 (PST) X-Google-Smtp-Source: APXvYqxdTXwBVcJb4ROywKMnh9S/jxuerwdYy2w3jw1mxbPimb41LkzVf2Au1b03z5O7JDG3UnelIA== X-Received: by 2002:adf:d4cc:: with SMTP id w12mr295275wrk.249.1582830248918; Thu, 27 Feb 2020 11:04:08 -0800 (PST) Received: from x1.localdomain (2001-1c00-0c0c-fe00-fc7e-fd47-85c1-1ab3.cable.dynamic.v6.ziggo.nl. [2001:1c00:c0c:fe00:fc7e:fd47:85c1:1ab3]) by smtp.gmail.com with ESMTPSA id h71sm9957555wme.26.2020.02.27.11.04.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 27 Feb 2020 11:04:08 -0800 (PST) Subject: Re: [PATCH 45/51] drm/gm12u320: Simplify upload work To: Daniel Vetter , DRI Development References: <20200227181522.2711142-1-daniel.vetter@ffwll.ch> <20200227181522.2711142-46-daniel.vetter@ffwll.ch> From: Hans de Goede Message-ID: <39a5091b-cf17-0cd9-cf43-a7a8b3cd7b78@redhat.com> Date: Thu, 27 Feb 2020 20:04:07 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <20200227181522.2711142-46-daniel.vetter@ffwll.ch> Content-Language: en-US X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Vetter , Intel Graphics Development , m.felsch@pengutronix.de Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGksCgpPbiAyLzI3LzIwIDc6MTUgUE0sIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gSW5zdGVhZCBv ZiBoYXZpbmcgYSB3b3JrIGl0ZW0gdGhhdCBuZXZlciBzdG9wcyAod2hpY2ggcmVhbGx5IHNob3Vs ZCBiZQo+IGEga3RocmVhZCksIHdpdGggYSBkZWRpY2F0ZWQgd29ya3F1ZXVlIHRvIG5vdCB1cHNl dCBhbnlvbmUgZWxzZSwgdXNlIGEKPiBkZWxheWVkIHdvcmsuIEEgYnVuY2ggb2YgY2hhbmdlczoK PiAKPiAtIFdlIGNhbiB0aHJvdyBvdXQgYWxsIHRoZSBjdXN0b20gd2FrZXVwIGFuZCByZXF1ZXVl IGxvZ2ljIGFuZCBzdGF0ZQo+ICAgIHRyYWNraW5nLiBJZiB3ZSBzY2hlZHVsZSB0aGUgd29yayB3 aXRoIGEgMCBkZWxheSBpdCdsbCBnZXQKPiAgICBzY2hlZHVsZWQgaW1tZWRpYXRlbHkuCj4gCj4g LSBQZXJzaXN0ZW50IHN0YXRlIChmcmFtZSAmIGRyYXdfc3RhdHVzX3RpbWVvdXQpIG5lZWQgdG8g YmUgbW92ZWQgb3V0Cj4gICAgb2YgdGhlIHdvcmsuCj4gCj4gLSBkaWZmIGlzIGJpZ2dlciB0aGFu IHRoZSBjaGFuZ2VzLCBiaWdnZXN0IGNodW5rIGlzIHJlaW5kZW50aW5nIHRoZQo+ICAgIHdvcmsg Zm4gYmVjYXVzZSBpdCBsb3N0IGl0cyB3aGlsZSBsb29wLgo+IAo+IExvdHMgb2YgY29kZSBkZWxl dGluZyBhcyBjb25zZXF1ZW5jZSBhbGwgb3Zlci4gU3BlY2lmaWNhbGx5IHdlIGNhbgo+IGRlbGV0 ZSB0aGUgZHJtX2RyaXZlci5yZWxlYXNlIGNvZGUgbm93IQo+IAo+IHYyOiBSZXZpZXcgZnJvbSBI YW5zOgo+IC0gVXNlIG1vZF9kZWxheWVkX3dvcmsgaW4gdGhlIHBsYW5lIHVwZGF0ZSBwYXRoIHRv IG1ha2Ugc3VyZSB3ZSBkbwo+ICAgIGFjdHVhbGx5IHNjaGVkdWxlIGltbWVkaWF0ZWx5KS4gSW4g dGhlIHdvcmtlciB3ZSBzdGlsbCB3YW50Cj4gICAgcXVldWVfZGVsYXllZF93b3JrLCB3aGljaCB3 b24ndCBtb2RpZnkgdGhlIHRpbWVvdXQgd2hlbiB0aGUgd29yayBpcwo+ICAgIGFscmVhZHkgc2No ZWR1bGVkLiBXaGljaCBpcyBleGFjdGx5IHdoYXQgd2Ugd2FudCBpZiB0aGUgd29yayByYWNlcwo+ ICAgIHdpdGggYSBwbGFuZSB1cGRhdGUuCj4gLSBTd2l0Y2ggdG8gc3lzdGVtX2xvbmdfd3EsIEhh bnMgc2F5cyBvbiB1c2IyIGEgcGxhbmUgdXBsb2FkIGNhbiB0YWtlCj4gICAgODAgbXMuCj4gCj4g U2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4g Q2M6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+Cj4gQ2M6ICJOb3JhbGYgVHLD uG5uZXMiIDxub3JhbGZAdHJvbm5lcy5vcmc+CgpQYXRjaCBsb29rcyBnb29kIHRvIG1lOgoKUmV2 aWV3ZWQtYnk6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+CgpSZWdhcmRzLAoK SGFucwoKCj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vdGlueS9nbTEydTMyMC5jIHwgMTcxICsr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgNjggaW5z ZXJ0aW9ucygrKSwgMTAzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdGlueS9nbTEydTMyMC5jIGIvZHJpdmVycy9ncHUvZHJtL3RpbnkvZ20xMnUzMjAuYwo+ IGluZGV4IGMyMmIyZWU0NzBlYi4uYmJjNGVmNDQ1NmU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS90aW55L2dtMTJ1MzIwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueS9nbTEy dTMyMC5jCj4gQEAgLTg5LDEzICs4OSwxMiBAQCBzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlIHsKPiAg IAl1bnNpZ25lZCBjaGFyICAgICAgICAgICAgICAgICAgICpjbWRfYnVmOwo+ICAgCXVuc2lnbmVk IGNoYXIgICAgICAgICAgICAgICAgICAgKmRhdGFfYnVmW0dNMTJVMzIwX0JMT0NLX0NPVU5UXTsK PiAgIAlzdHJ1Y3Qgewo+IC0JCWJvb2wgICAgICAgICAgICAgICAgICAgICBydW47Cj4gLQkJc3Ry dWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndvcmtxOwo+IC0JCXN0cnVjdCB3b3JrX3N0cnVjdCAgICAg ICB3b3JrOwo+IC0JCXdhaXRfcXVldWVfaGVhZF90ICAgICAgICB3YWl0cTsKPiArCQlzdHJ1Y3Qg ZGVsYXllZF93b3JrICAgICAgIHdvcms7Cj4gICAJCXN0cnVjdCBtdXRleCAgICAgICAgICAgICBs b2NrOwo+ICAgCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICAqZmI7Cj4gICAJCXN0cnVjdCBkcm1f cmVjdCAgICAgICAgICByZWN0Owo+ICsJCWludCBmcmFtZTsKPiArCQlpbnQgZHJhd19zdGF0dXNf dGltZW91dDsKPiAgIAl9IGZiX3VwZGF0ZTsKPiAgIH07Cj4gICAKPiBAQCAtMTgzLDE5ICsxODIs OSBAQCBzdGF0aWMgaW50IGdtMTJ1MzIwX3VzYl9hbGxvYyhzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNl ICpnbTEydTMyMCkKPiAgIAkJICAgICAgIGRhdGFfYmxvY2tfZm9vdGVyLCBEQVRBX0JMT0NLX0ZP T1RFUl9TSVpFKTsKPiAgIAl9Cj4gICAKPiAtCWdtMTJ1MzIwLT5mYl91cGRhdGUud29ya3EgPSBj cmVhdGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZShEUklWRVJfTkFNRSk7Cj4gLQlpZiAoIWdtMTJ1 MzIwLT5mYl91cGRhdGUud29ya3EpCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQo+ICAgCXJldHVy biAwOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIGdtMTJ1MzIwX3VzYl9mcmVlKHN0cnVjdCBn bTEydTMyMF9kZXZpY2UgKmdtMTJ1MzIwKQo+IC17Cj4gLQlpZiAoZ20xMnUzMjAtPmZiX3VwZGF0 ZS53b3JrcSkKPiAtCQlkZXN0cm95X3dvcmtxdWV1ZShnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmtx KTsKPiAtfQo+IC0KPiAgIHN0YXRpYyBpbnQgZ20xMnUzMjBfbWlzY19yZXF1ZXN0KHN0cnVjdCBn bTEydTMyMF9kZXZpY2UgKmdtMTJ1MzIwLAo+ICAgCQkJCSB1OCByZXFfYSwgdTggcmVxX2IsCj4g ICAJCQkJIHU4IGFyZ19hLCB1OCBhcmdfYiwgdTggYXJnX2MsIHU4IGFyZ19kKQo+IEBAIC0zMzgs ODAgKzMyNyw3NyBAQCBzdGF0aWMgdm9pZCBnbTEydTMyMF9jb3B5X2ZiX3RvX2Jsb2NrcyhzdHJ1 Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCkKPiAgIHN0YXRpYyB2b2lkIGdtMTJ1MzIwX2Zi X3VwZGF0ZV93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgIHsKPiAgIAlzdHJ1Y3Qg Z20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCA9Cj4gLQkJY29udGFpbmVyX29mKHdvcmssIHN0cnVj dCBnbTEydTMyMF9kZXZpY2UsIGZiX3VwZGF0ZS53b3JrKTsKPiAtCWludCBkcmF3X3N0YXR1c190 aW1lb3V0ID0gRklSU1RfRlJBTUVfVElNRU9VVDsKPiArCQljb250YWluZXJfb2YodG9fZGVsYXll ZF93b3JrKHdvcmspLCBzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNlLAo+ICsJCQkgICAgIGZiX3VwZGF0 ZS53b3JrKTsKPiAgIAlpbnQgYmxvY2ssIGJsb2NrX3NpemUsIGxlbjsKPiAtCWludCBmcmFtZSA9 IDA7Cj4gICAJaW50IHJldCA9IDA7Cj4gICAKPiAtCXdoaWxlIChnbTEydTMyMC0+ZmJfdXBkYXRl LnJ1bikgewo+IC0JCWdtMTJ1MzIwX2NvcHlfZmJfdG9fYmxvY2tzKGdtMTJ1MzIwKTsKPiAtCj4g LQkJZm9yIChibG9jayA9IDA7IGJsb2NrIDwgR00xMlUzMjBfQkxPQ0tfQ09VTlQ7IGJsb2NrKysp IHsKPiAtCQkJaWYgKGJsb2NrID09IEdNMTJVMzIwX0JMT0NLX0NPVU5UIC0gMSkKPiAtCQkJCWJs b2NrX3NpemUgPSBEQVRBX0xBU1RfQkxPQ0tfU0laRTsKPiAtCQkJZWxzZQo+IC0JCQkJYmxvY2tf c2l6ZSA9IERBVEFfQkxPQ0tfU0laRTsKPiAtCj4gLQkJCS8qIFNlbmQgZGF0YSBjb21tYW5kIHRv IGRldmljZSAqLwo+IC0JCQltZW1jcHkoZ20xMnUzMjAtPmNtZF9idWYsIGNtZF9kYXRhLCBDTURf U0laRSk7Cj4gLQkJCWdtMTJ1MzIwLT5jbWRfYnVmWzhdID0gYmxvY2tfc2l6ZSAmIDB4ZmY7Cj4g LQkJCWdtMTJ1MzIwLT5jbWRfYnVmWzldID0gYmxvY2tfc2l6ZSA+PiA4Owo+IC0JCQlnbTEydTMy MC0+Y21kX2J1ZlsyMF0gPSAweGZjIC0gYmxvY2sgKiA0Owo+IC0JCQlnbTEydTMyMC0+Y21kX2J1 ZlsyMV0gPSBibG9jayB8IChmcmFtZSA8PCA3KTsKPiAtCj4gLQkJCXJldCA9IHVzYl9idWxrX21z ZyhnbTEydTMyMC0+dWRldiwKPiAtCQkJCXVzYl9zbmRidWxrcGlwZShnbTEydTMyMC0+dWRldiwg REFUQV9TTkRfRVBUKSwKPiAtCQkJCWdtMTJ1MzIwLT5jbWRfYnVmLCBDTURfU0laRSwgJmxlbiwK PiAtCQkJCUNNRF9USU1FT1VUKTsKPiAtCQkJaWYgKHJldCB8fCBsZW4gIT0gQ01EX1NJWkUpCj4g LQkJCQlnb3RvIGVycjsKPiAtCj4gLQkJCS8qIFNlbmQgZGF0YSBibG9jayB0byBkZXZpY2UgKi8K PiAtCQkJcmV0ID0gdXNiX2J1bGtfbXNnKGdtMTJ1MzIwLT51ZGV2LAo+IC0JCQkJdXNiX3NuZGJ1 bGtwaXBlKGdtMTJ1MzIwLT51ZGV2LCBEQVRBX1NORF9FUFQpLAo+IC0JCQkJZ20xMnUzMjAtPmRh dGFfYnVmW2Jsb2NrXSwgYmxvY2tfc2l6ZSwKPiAtCQkJCSZsZW4sIERBVEFfVElNRU9VVCk7Cj4g LQkJCWlmIChyZXQgfHwgbGVuICE9IGJsb2NrX3NpemUpCj4gLQkJCQlnb3RvIGVycjsKPiAtCj4g LQkJCS8qIFJlYWQgc3RhdHVzICovCj4gLQkJCXJldCA9IHVzYl9idWxrX21zZyhnbTEydTMyMC0+ dWRldiwKPiAtCQkJCXVzYl9yY3ZidWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFUQV9SQ1ZfRVBU KSwKPiAtCQkJCWdtMTJ1MzIwLT5jbWRfYnVmLCBSRUFEX1NUQVRVU19TSVpFLCAmbGVuLAo+IC0J CQkJQ01EX1RJTUVPVVQpOwo+IC0JCQlpZiAocmV0IHx8IGxlbiAhPSBSRUFEX1NUQVRVU19TSVpF KQo+IC0JCQkJZ290byBlcnI7Cj4gLQkJfQo+ICsJZ20xMnUzMjBfY29weV9mYl90b19ibG9ja3Mo Z20xMnUzMjApOwo+ICsKPiArCWZvciAoYmxvY2sgPSAwOyBibG9jayA8IEdNMTJVMzIwX0JMT0NL X0NPVU5UOyBibG9jaysrKSB7Cj4gKwkJaWYgKGJsb2NrID09IEdNMTJVMzIwX0JMT0NLX0NPVU5U IC0gMSkKPiArCQkJYmxvY2tfc2l6ZSA9IERBVEFfTEFTVF9CTE9DS19TSVpFOwo+ICsJCWVsc2UK PiArCQkJYmxvY2tfc2l6ZSA9IERBVEFfQkxPQ0tfU0laRTsKPiArCj4gKwkJLyogU2VuZCBkYXRh IGNvbW1hbmQgdG8gZGV2aWNlICovCj4gKwkJbWVtY3B5KGdtMTJ1MzIwLT5jbWRfYnVmLCBjbWRf ZGF0YSwgQ01EX1NJWkUpOwo+ICsJCWdtMTJ1MzIwLT5jbWRfYnVmWzhdID0gYmxvY2tfc2l6ZSAm IDB4ZmY7Cj4gKwkJZ20xMnUzMjAtPmNtZF9idWZbOV0gPSBibG9ja19zaXplID4+IDg7Cj4gKwkJ Z20xMnUzMjAtPmNtZF9idWZbMjBdID0gMHhmYyAtIGJsb2NrICogNDsKPiArCQlnbTEydTMyMC0+ Y21kX2J1ZlsyMV0gPQo+ICsJCQlibG9jayB8IChnbTEydTMyMC0+ZmJfdXBkYXRlLmZyYW1lIDw8 IDcpOwo+ICAgCj4gLQkJLyogU2VuZCBkcmF3IGNvbW1hbmQgdG8gZGV2aWNlICovCj4gLQkJbWVt Y3B5KGdtMTJ1MzIwLT5jbWRfYnVmLCBjbWRfZHJhdywgQ01EX1NJWkUpOwo+ICAgCQlyZXQgPSB1 c2JfYnVsa19tc2coZ20xMnUzMjAtPnVkZXYsCj4gICAJCQl1c2Jfc25kYnVsa3BpcGUoZ20xMnUz MjAtPnVkZXYsIERBVEFfU05EX0VQVCksCj4gLQkJCWdtMTJ1MzIwLT5jbWRfYnVmLCBDTURfU0la RSwgJmxlbiwgQ01EX1RJTUVPVVQpOwo+ICsJCQlnbTEydTMyMC0+Y21kX2J1ZiwgQ01EX1NJWkUs ICZsZW4sCj4gKwkJCUNNRF9USU1FT1VUKTsKPiAgIAkJaWYgKHJldCB8fCBsZW4gIT0gQ01EX1NJ WkUpCj4gICAJCQlnb3RvIGVycjsKPiAgIAo+ICsJCS8qIFNlbmQgZGF0YSBibG9jayB0byBkZXZp Y2UgKi8KPiArCQlyZXQgPSB1c2JfYnVsa19tc2coZ20xMnUzMjAtPnVkZXYsCj4gKwkJCXVzYl9z bmRidWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFUQV9TTkRfRVBUKSwKPiArCQkJZ20xMnUzMjAt PmRhdGFfYnVmW2Jsb2NrXSwgYmxvY2tfc2l6ZSwKPiArCQkJJmxlbiwgREFUQV9USU1FT1VUKTsK PiArCQlpZiAocmV0IHx8IGxlbiAhPSBibG9ja19zaXplKQo+ICsJCQlnb3RvIGVycjsKPiArCj4g ICAJCS8qIFJlYWQgc3RhdHVzICovCj4gICAJCXJldCA9IHVzYl9idWxrX21zZyhnbTEydTMyMC0+ dWRldiwKPiAgIAkJCXVzYl9yY3ZidWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFUQV9SQ1ZfRVBU KSwKPiAgIAkJCWdtMTJ1MzIwLT5jbWRfYnVmLCBSRUFEX1NUQVRVU19TSVpFLCAmbGVuLAo+IC0J CQlkcmF3X3N0YXR1c190aW1lb3V0KTsKPiArCQkJQ01EX1RJTUVPVVQpOwo+ICAgCQlpZiAocmV0 IHx8IGxlbiAhPSBSRUFEX1NUQVRVU19TSVpFKQo+ICAgCQkJZ290byBlcnI7Cj4gLQo+IC0JCWRy YXdfc3RhdHVzX3RpbWVvdXQgPSBDTURfVElNRU9VVDsKPiAtCQlmcmFtZSA9ICFmcmFtZTsKPiAt Cj4gLQkJLyoKPiAtCQkgKiBXZSBtdXN0IGRyYXcgYSBmcmFtZSBldmVyeSAycyBvdGhlcndpc2Ug dGhlIHByb2plY3Rvcgo+IC0JCSAqIHN3aXRjaGVzIGJhY2sgdG8gc2hvd2luZyBpdHMgbG9nby4K PiAtCQkgKi8KPiAtCQl3YWl0X2V2ZW50X3RpbWVvdXQoZ20xMnUzMjAtPmZiX3VwZGF0ZS53YWl0 cSwKPiAtCQkJCSAgICFnbTEydTMyMC0+ZmJfdXBkYXRlLnJ1biB8fAo+IC0JCQkJCWdtMTJ1MzIw LT5mYl91cGRhdGUuZmIgIT0gTlVMTCwKPiAtCQkJCSAgIElETEVfVElNRU9VVCk7Cj4gICAJfQo+ ICsKPiArCS8qIFNlbmQgZHJhdyBjb21tYW5kIHRvIGRldmljZSAqLwo+ICsJbWVtY3B5KGdtMTJ1 MzIwLT5jbWRfYnVmLCBjbWRfZHJhdywgQ01EX1NJWkUpOwo+ICsJcmV0ID0gdXNiX2J1bGtfbXNn KGdtMTJ1MzIwLT51ZGV2LAo+ICsJCXVzYl9zbmRidWxrcGlwZShnbTEydTMyMC0+dWRldiwgREFU QV9TTkRfRVBUKSwKPiArCQlnbTEydTMyMC0+Y21kX2J1ZiwgQ01EX1NJWkUsICZsZW4sIENNRF9U SU1FT1VUKTsKPiArCWlmIChyZXQgfHwgbGVuICE9IENNRF9TSVpFKQo+ICsJCWdvdG8gZXJyOwo+ ICsKPiArCS8qIFJlYWQgc3RhdHVzICovCj4gKwlyZXQgPSB1c2JfYnVsa19tc2coZ20xMnUzMjAt PnVkZXYsCj4gKwkJdXNiX3JjdmJ1bGtwaXBlKGdtMTJ1MzIwLT51ZGV2LCBEQVRBX1JDVl9FUFQp LAo+ICsJCWdtMTJ1MzIwLT5jbWRfYnVmLCBSRUFEX1NUQVRVU19TSVpFLCAmbGVuLAo+ICsJCWdt MTJ1MzIwLT5mYl91cGRhdGUuZHJhd19zdGF0dXNfdGltZW91dCk7Cj4gKwlpZiAocmV0IHx8IGxl biAhPSBSRUFEX1NUQVRVU19TSVpFKQo+ICsJCWdvdG8gZXJyOwo+ICsKPiArCWdtMTJ1MzIwLT5m Yl91cGRhdGUuZHJhd19zdGF0dXNfdGltZW91dCA9IENNRF9USU1FT1VUOwo+ICsJZ20xMnUzMjAt PmZiX3VwZGF0ZS5mcmFtZSA9ICFnbTEydTMyMC0+ZmJfdXBkYXRlLmZyYW1lOwo+ICsKPiArCS8q Cj4gKwkgKiBXZSBtdXN0IGRyYXcgYSBmcmFtZSBldmVyeSAycyBvdGhlcndpc2UgdGhlIHByb2pl Y3Rvcgo+ICsJICogc3dpdGNoZXMgYmFjayB0byBzaG93aW5nIGl0cyBsb2dvLgo+ICsJICovCj4g KwlxdWV1ZV9kZWxheWVkX3dvcmsoc3lzdGVtX2xvbmdfd3EsICZnbTEydTMyMC0+ZmJfdXBkYXRl LndvcmssCj4gKwkJCSAgIElETEVfVElNRU9VVCk7Cj4gKwo+ICAgCXJldHVybjsKPiAgIGVycjoK PiAgIAkvKiBEbyBub3QgbG9nIGVycm9ycyBjYXVzZWQgYnkgbW9kdWxlIHVubG9hZCBvciBkZXZp Y2UgdW5wbHVnICovCj4gQEAgLTQ0NiwzNiArNDMyLDI0IEBAIHN0YXRpYyB2b2lkIGdtMTJ1MzIw X2ZiX21hcmtfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gICAJbXV0ZXhfdW5s b2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOwo+ICAgCj4gICAJaWYgKHdha2V1cCkKPiAt CQl3YWtlX3VwKCZnbTEydTMyMC0+ZmJfdXBkYXRlLndhaXRxKTsKPiArCQltb2RfZGVsYXllZF93 b3JrKHN5c3RlbV9sb25nX3dxLCAmZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrLCAwKTsKPiAgIAo+ ICAgCWlmIChvbGRfZmIpCj4gICAJCWRybV9mcmFtZWJ1ZmZlcl9wdXQob2xkX2ZiKTsKPiAgIH0K PiAgIAo+IC1zdGF0aWMgdm9pZCBnbTEydTMyMF9zdGFydF9mYl91cGRhdGUoc3RydWN0IGdtMTJ1 MzIwX2RldmljZSAqZ20xMnUzMjApCj4gLXsKPiAtCW11dGV4X2xvY2soJmdtMTJ1MzIwLT5mYl91 cGRhdGUubG9jayk7Cj4gLQlnbTEydTMyMC0+ZmJfdXBkYXRlLnJ1biA9IHRydWU7Cj4gLQltdXRl eF91bmxvY2soJmdtMTJ1MzIwLT5mYl91cGRhdGUubG9jayk7Cj4gLQo+IC0JcXVldWVfd29yayhn bTEydTMyMC0+ZmJfdXBkYXRlLndvcmtxLCAmZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrKTsKPiAt fQo+IC0KPiAgIHN0YXRpYyB2b2lkIGdtMTJ1MzIwX3N0b3BfZmJfdXBkYXRlKHN0cnVjdCBnbTEy dTMyMF9kZXZpY2UgKmdtMTJ1MzIwKQo+ICAgewo+IC0JbXV0ZXhfbG9jaygmZ20xMnUzMjAtPmZi X3VwZGF0ZS5sb2NrKTsKPiAtCWdtMTJ1MzIwLT5mYl91cGRhdGUucnVuID0gZmFsc2U7Cj4gLQlt dXRleF91bmxvY2soJmdtMTJ1MzIwLT5mYl91cGRhdGUubG9jayk7Cj4gKwlzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpvbGRfZmI7Cj4gICAKPiAtCXdha2VfdXAoJmdtMTJ1MzIwLT5mYl91cGRhdGUu d2FpdHEpOwo+IC0JY2FuY2VsX3dvcmtfc3luYygmZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrKTsK PiArCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZ20xMnUzMjAtPmZiX3VwZGF0ZS53b3JrKTsK PiAgIAo+ICAgCW11dGV4X2xvY2soJmdtMTJ1MzIwLT5mYl91cGRhdGUubG9jayk7Cj4gLQlpZiAo Z20xMnUzMjAtPmZiX3VwZGF0ZS5mYikgewo+IC0JCWRybV9mcmFtZWJ1ZmZlcl9wdXQoZ20xMnUz MjAtPmZiX3VwZGF0ZS5mYik7Cj4gLQkJZ20xMnUzMjAtPmZiX3VwZGF0ZS5mYiA9IE5VTEw7Cj4g LQl9Cj4gKwlvbGRfZmIgPSBnbTEydTMyMC0+ZmJfdXBkYXRlLmZiOwo+ICsJZ20xMnUzMjAtPmZi X3VwZGF0ZS5mYiA9IE5VTEw7Cj4gICAJbXV0ZXhfdW5sb2NrKCZnbTEydTMyMC0+ZmJfdXBkYXRl LmxvY2spOwo+ICsKPiArCWRybV9mcmFtZWJ1ZmZlcl9wdXQob2xkX2ZiKTsKPiAgIH0KPiAgIAo+ ICAgc3RhdGljIGludCBnbTEydTMyMF9zZXRfZWNvbW9kZShzdHJ1Y3QgZ20xMnUzMjBfZGV2aWNl ICpnbTEydTMyMCkKPiBAQCAtNTgzLDExICs1NTcsMTEgQEAgc3RhdGljIHZvaWQgZ20xMnUzMjBf cGlwZV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAo+ICAgCQkJ CSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gICAJCQkJIHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ICAgewo+IC0Jc3RydWN0IGdtMTJ1MzIwX2Rldmlj ZSAqZ20xMnUzMjAgPSBwaXBlLT5jcnRjLmRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJc3RydWN0IGRy bV9yZWN0IHJlY3QgPSB7IDAsIDAsIEdNMTJVMzIwX1VTRVJfV0lEVEgsIEdNMTJVMzIwX0hFSUdI VCB9Owo+ICsJc3RydWN0IGdtMTJ1MzIwX2RldmljZSAqZ20xMnUzMjAgPSBwaXBlLT5jcnRjLmRl di0+ZGV2X3ByaXZhdGU7Cj4gICAKPiArCWdtMTJ1MzIwLT5mYl91cGRhdGUuZHJhd19zdGF0dXNf dGltZW91dCA9IEZJUlNUX0ZSQU1FX1RJTUVPVVQ7Cj4gICAJZ20xMnUzMjBfZmJfbWFya19kaXJ0 eShwbGFuZV9zdGF0ZS0+ZmIsICZyZWN0KTsKPiAtCWdtMTJ1MzIwX3N0YXJ0X2ZiX3VwZGF0ZShn bTEydTMyMCk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGdtMTJ1MzIwX3BpcGVfZGlzYWJs ZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUpCj4gQEAgLTYyMiwxMyArNTk2 LDYgQEAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGdtMTJ1MzIwX3BpcGVfbW9kaWZpZXJzW10gPSB7 Cj4gICAJRFJNX0ZPUk1BVF9NT0RfSU5WQUxJRAo+ICAgfTsKPiAgIAo+IC1zdGF0aWMgdm9pZCBn bTEydTMyMF9kcml2ZXJfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IC17Cj4gLQlz dHJ1Y3QgZ20xMnUzMjBfZGV2aWNlICpnbTEydTMyMCA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQo+ IC0JZ20xMnUzMjBfdXNiX2ZyZWUoZ20xMnUzMjApOwo+IC19Cj4gLQo+ICAgREVGSU5FX0RSTV9H RU1fRk9QUyhnbTEydTMyMF9mb3BzKTsKPiAgIAo+ICAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVy IGdtMTJ1MzIwX2RybV9kcml2ZXIgPSB7Cj4gQEAgLTY0MCw3ICs2MDcsNiBAQCBzdGF0aWMgc3Ry dWN0IGRybV9kcml2ZXIgZ20xMnUzMjBfZHJtX2RyaXZlciA9IHsKPiAgIAkubWFqb3IJCSA9IERS SVZFUl9NQUpPUiwKPiAgIAkubWlub3IJCSA9IERSSVZFUl9NSU5PUiwKPiAgIAo+IC0JLnJlbGVh c2UJID0gZ20xMnUzMjBfZHJpdmVyX3JlbGVhc2UsCj4gICAJLmZvcHMJCSA9ICZnbTEydTMyMF9m b3BzLAo+ICAgCURSTV9HRU1fU0hNRU1fRFJJVkVSX09QUywKPiAgIH07Cj4gQEAgLTY3MCw5ICs2 MzYsOCBAQCBzdGF0aWMgaW50IGdtMTJ1MzIwX3VzYl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFj ZSAqaW50ZXJmYWNlLAo+ICAgCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+ICAgCWdtMTJ1MzIwLT51 ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRlcmZhY2UpOwo+IC0JSU5JVF9XT1JLKCZnbTEy dTMyMC0+ZmJfdXBkYXRlLndvcmssIGdtMTJ1MzIwX2ZiX3VwZGF0ZV93b3JrKTsKPiArCUlOSVRf REVMQVlFRF9XT1JLKCZnbTEydTMyMC0+ZmJfdXBkYXRlLndvcmssIGdtMTJ1MzIwX2ZiX3VwZGF0 ZV93b3JrKTsKPiAgIAltdXRleF9pbml0KCZnbTEydTMyMC0+ZmJfdXBkYXRlLmxvY2spOwo+IC0J aW5pdF93YWl0cXVldWVfaGVhZCgmZ20xMnUzMjAtPmZiX3VwZGF0ZS53YWl0cSk7Cj4gICAKPiAg IAlkZXYgPSAmZ20xMnUzMjAtPmRldjsKPiAgIAlyZXQgPSBkZXZtX2RybV9kZXZfaW5pdCgmaW50 ZXJmYWNlLT5kZXYsIGRldiwgJmdtMTJ1MzIwX2RybV9kcml2ZXIpOwo+IAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==