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,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 2B832C47247 for ; Sun, 3 May 2020 10:03:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 09F72206A5 for ; Sun, 3 May 2020 10:03:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=tronnes.org header.i=@tronnes.org header.b="FAYc8J7A" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727916AbgECKDA (ORCPT ); Sun, 3 May 2020 06:03:00 -0400 Received: from smtp.domeneshop.no ([194.63.252.55]:35009 "EHLO smtp.domeneshop.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727846AbgECKDA (ORCPT ); Sun, 3 May 2020 06:03:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tronnes.org ; s=ds201912; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=NS2CoJYzw0IxS1YT0lJIqQoh5wQ4JpU1SpV5xxu+elo=; b=FAYc8J7Ay3MDGNz/e+OgM/ytUV Twfj4DZGOz+dfMlvCwM0q/1KAa+3y7j7d00JM00B4i1wAgjNbdBE9cbtkyV6yu8ntE7PUlhzCL5K8 coksxwq9Yur6d+igWXRrCyyTfGZCDJSuZsjLZC3AiJHKhzlr9EydjzuLUHnYOj6C+pGWuBpfx/CKZ og/bjLmoC+pNANQ7sMI+qEg1uN65zvQHaCW9WvZ0a9+diVojzFwV2vcDArcYbt0PqyDHW/zNv2Uez WtHKjXbu+IZT/QRlc0lx4iXriUS8kxPrvpz0Rw5XLhDA3xt5apuYAts04sWrTLbuEr6UAJKeqraei Oi4Nx3Bw==; Received: from 211.81-166-168.customer.lyse.net ([81.166.168.211]:54850 helo=[192.168.10.61]) by smtp.domeneshop.no with esmtpsa (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jVBSb-0006vM-73; Sun, 03 May 2020 12:02:57 +0200 Subject: Re: [PATCH 05/10] drm/client: Add drm_client_modeset_check() To: Sam Ravnborg Cc: dri-devel@lists.freedesktop.org, linux-usb@vger.kernel.org References: <20200429124830.27475-1-noralf@tronnes.org> <20200429124830.27475-6-noralf@tronnes.org> <20200503080330.GC11582@ravnborg.org> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Message-ID: <5e4598a4-37fe-5a2d-cf71-76c43cbb8b08@tronnes.org> Date: Sun, 3 May 2020 12:02:52 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200503080330.GC11582@ravnborg.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org Den 03.05.2020 10.03, skrev Sam Ravnborg: > Hi Noralf. > > On Wed, Apr 29, 2020 at 02:48:25PM +0200, Noralf Trønnes wrote: >> Add a way for client to check the configuration before comitting. >> >> Signed-off-by: Noralf Trønnes > Two small ntis. With these addressed: > Reviewed-by: Sam Ravnborg >> --- >> drivers/gpu/drm/drm_client_modeset.c | 35 ++++++++++++++++++++++++---- >> include/drm/drm_client.h | 1 + >> 2 files changed, 32 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_client_modeset.c b/drivers/gpu/drm/drm_client_modeset.c >> index 7443114bd713..177158ff2a40 100644 >> --- a/drivers/gpu/drm/drm_client_modeset.c >> +++ b/drivers/gpu/drm/drm_client_modeset.c >> @@ -966,7 +966,7 @@ bool drm_client_rotation(struct drm_mode_set *modeset, unsigned int *rotation) >> } >> EXPORT_SYMBOL(drm_client_rotation); >> >> -static int drm_client_modeset_commit_atomic(struct drm_client_dev *client, bool active) >> +static int drm_client_modeset_commit_atomic(struct drm_client_dev *client, bool active, bool check) >> { >> struct drm_device *dev = client->dev; >> struct drm_plane *plane; >> @@ -1033,7 +1033,10 @@ static int drm_client_modeset_commit_atomic(struct drm_client_dev *client, bool >> } >> } >> >> - ret = drm_atomic_commit(state); >> + if (check) >> + ret = drm_atomic_check_only(state); >> + else >> + ret = drm_atomic_commit(state); >> >> out_state: >> if (ret == -EDEADLK) >> @@ -1094,6 +1097,30 @@ static int drm_client_modeset_commit_legacy(struct drm_client_dev *client) >> return ret; >> } >> >> +/** >> + * drm_client_modeset_check() - Check CRTC configuration > This part of the comment does not match the description below. > > >> + * @client: DRM client >> + * >> + * Check modeset configuration. >> + * >> + * Returns: >> + * Zero on success or negative error code on failure. >> + */ >> +int drm_client_modeset_check(struct drm_client_dev *client) >> +{ >> + int ret; >> + >> + if (!drm_drv_uses_atomic_modeset(client->dev)) >> + return 0; > If client does not use atomic the check should fail - no? Returning an error here would result in the client not working with non-atomic drivers which AFAIK doesn't have a way to check the state before hand. The client have to commit the state/configuration to find out if it is good. Noralf. > >> + >> + mutex_lock(&client->modeset_mutex); >> + ret = drm_client_modeset_commit_atomic(client, true, true); >> + mutex_unlock(&client->modeset_mutex); >> + >> + return ret; >> +} >> +EXPORT_SYMBOL(drm_client_modeset_check); >> + >> /** >> * drm_client_modeset_commit_locked() - Force commit CRTC configuration >> * @client: DRM client >> @@ -1112,7 +1139,7 @@ int drm_client_modeset_commit_locked(struct drm_client_dev *client) >> >> mutex_lock(&client->modeset_mutex); >> if (drm_drv_uses_atomic_modeset(dev)) >> - ret = drm_client_modeset_commit_atomic(client, true); >> + ret = drm_client_modeset_commit_atomic(client, true, false); >> else >> ret = drm_client_modeset_commit_legacy(client); >> mutex_unlock(&client->modeset_mutex); >> @@ -1188,7 +1215,7 @@ int drm_client_modeset_dpms(struct drm_client_dev *client, int mode) >> >> mutex_lock(&client->modeset_mutex); >> if (drm_drv_uses_atomic_modeset(dev)) >> - ret = drm_client_modeset_commit_atomic(client, mode == DRM_MODE_DPMS_ON); >> + ret = drm_client_modeset_commit_atomic(client, mode == DRM_MODE_DPMS_ON, false); >> else >> drm_client_modeset_dpms_legacy(client, mode); >> mutex_unlock(&client->modeset_mutex); >> diff --git a/include/drm/drm_client.h b/include/drm/drm_client.h >> index 6ef5364d6dfb..b6ffa4863e45 100644 >> --- a/include/drm/drm_client.h >> +++ b/include/drm/drm_client.h >> @@ -164,6 +164,7 @@ int drm_client_modeset_create(struct drm_client_dev *client); >> void drm_client_modeset_free(struct drm_client_dev *client); >> int drm_client_modeset_probe(struct drm_client_dev *client, unsigned int width, unsigned int height); >> bool drm_client_rotation(struct drm_mode_set *modeset, unsigned int *rotation); >> +int drm_client_modeset_check(struct drm_client_dev *client); >> int drm_client_modeset_commit_locked(struct drm_client_dev *client); >> int drm_client_modeset_commit(struct drm_client_dev *client); >> int drm_client_modeset_dpms(struct drm_client_dev *client, int mode); >> -- >> 2.23.0 >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel 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,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 EEF6EC28CBC for ; Sun, 3 May 2020 10:03:00 +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 B92B7206A5 for ; Sun, 3 May 2020 10:03:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=tronnes.org header.i=@tronnes.org header.b="FAYc8J7A" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B92B7206A5 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=tronnes.org 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 335FA6E0A0; Sun, 3 May 2020 10:03:00 +0000 (UTC) Received: from smtp.domeneshop.no (smtp.domeneshop.no [194.63.252.55]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0AD066E0A0 for ; Sun, 3 May 2020 10:02:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tronnes.org ; s=ds201912; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=NS2CoJYzw0IxS1YT0lJIqQoh5wQ4JpU1SpV5xxu+elo=; b=FAYc8J7Ay3MDGNz/e+OgM/ytUV Twfj4DZGOz+dfMlvCwM0q/1KAa+3y7j7d00JM00B4i1wAgjNbdBE9cbtkyV6yu8ntE7PUlhzCL5K8 coksxwq9Yur6d+igWXRrCyyTfGZCDJSuZsjLZC3AiJHKhzlr9EydjzuLUHnYOj6C+pGWuBpfx/CKZ og/bjLmoC+pNANQ7sMI+qEg1uN65zvQHaCW9WvZ0a9+diVojzFwV2vcDArcYbt0PqyDHW/zNv2Uez WtHKjXbu+IZT/QRlc0lx4iXriUS8kxPrvpz0Rw5XLhDA3xt5apuYAts04sWrTLbuEr6UAJKeqraei Oi4Nx3Bw==; Received: from 211.81-166-168.customer.lyse.net ([81.166.168.211]:54850 helo=[192.168.10.61]) by smtp.domeneshop.no with esmtpsa (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jVBSb-0006vM-73; Sun, 03 May 2020 12:02:57 +0200 Subject: Re: [PATCH 05/10] drm/client: Add drm_client_modeset_check() To: Sam Ravnborg References: <20200429124830.27475-1-noralf@tronnes.org> <20200429124830.27475-6-noralf@tronnes.org> <20200503080330.GC11582@ravnborg.org> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Message-ID: <5e4598a4-37fe-5a2d-cf71-76c43cbb8b08@tronnes.org> Date: Sun, 3 May 2020 12:02:52 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200503080330.GC11582@ravnborg.org> 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: linux-usb@vger.kernel.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" CgpEZW4gMDMuMDUuMjAyMCAxMC4wMywgc2tyZXYgU2FtIFJhdm5ib3JnOgo+IEhpIE5vcmFsZi4K PiAKPiBPbiBXZWQsIEFwciAyOSwgMjAyMCBhdCAwMjo0ODoyNVBNICswMjAwLCBOb3JhbGYgVHLD uG5uZXMgd3JvdGU6Cj4+IEFkZCBhIHdheSBmb3IgY2xpZW50IHRvIGNoZWNrIHRoZSBjb25maWd1 cmF0aW9uIGJlZm9yZSBjb21pdHRpbmcuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4 bm5lcyA8bm9yYWxmQHRyb25uZXMub3JnPgo+IFR3byBzbWFsbCBudGlzLiBXaXRoIHRoZXNlIGFk ZHJlc3NlZDoKPiBSZXZpZXdlZC1ieTogU2FtIFJhdm5ib3JnIDxzYW1AcmF2bmJvcmcub3JnPgo+ PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYyB8IDM1ICsrKysr KysrKysrKysrKysrKysrKysrKy0tLS0KPj4gIGluY2x1ZGUvZHJtL2RybV9jbGllbnQuaCAgICAg ICAgICAgICB8ICAxICsKPj4gIDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50 X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xpZW50X21vZGVzZXQuYwo+PiBpbmRl eCA3NDQzMTE0YmQ3MTMuLjE3NzE1OGZmMmE0MCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9jbGllbnRfbW9kZXNldC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY2xp ZW50X21vZGVzZXQuYwo+PiBAQCAtOTY2LDcgKzk2Niw3IEBAIGJvb2wgZHJtX2NsaWVudF9yb3Rh dGlvbihzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2Rlc2V0LCB1bnNpZ25lZCBpbnQgKnJvdGF0aW9u KQo+PiAgfQo+PiAgRVhQT1JUX1NZTUJPTChkcm1fY2xpZW50X3JvdGF0aW9uKTsKPj4gIAo+PiAt c3RhdGljIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYyhzdHJ1Y3QgZHJtX2Ns aWVudF9kZXYgKmNsaWVudCwgYm9vbCBhY3RpdmUpCj4+ICtzdGF0aWMgaW50IGRybV9jbGllbnRf bW9kZXNldF9jb21taXRfYXRvbWljKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBib29s IGFjdGl2ZSwgYm9vbCBjaGVjaykKPj4gIHsKPj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y2xpZW50LT5kZXY7Cj4+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4+IEBAIC0xMDMzLDcg KzEwMzMsMTAgQEAgc3RhdGljIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYyhz dHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwgYm9vbAo+PiAgCQl9Cj4+ICAJfQo+PiAgCj4+ IC0JcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwo+PiArCWlmIChjaGVjaykKPj4gKwkJ cmV0ID0gZHJtX2F0b21pY19jaGVja19vbmx5KHN0YXRlKTsKPj4gKwllbHNlCj4+ICsJCXJldCA9 IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKPj4gIAo+PiAgb3V0X3N0YXRlOgo+PiAgCWlmIChy ZXQgPT0gLUVERUFETEspCj4+IEBAIC0xMDk0LDYgKzEwOTcsMzAgQEAgc3RhdGljIGludCBkcm1f Y2xpZW50X21vZGVzZXRfY29tbWl0X2xlZ2FjeShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVu dCkKPj4gIAlyZXR1cm4gcmV0Owo+PiAgfQo+PiAgCj4+ICsvKioKPj4gKyAqIGRybV9jbGllbnRf bW9kZXNldF9jaGVjaygpIC0gQ2hlY2sgQ1JUQyBjb25maWd1cmF0aW9uCj4gVGhpcyBwYXJ0IG9m IHRoZSBjb21tZW50IGRvZXMgbm90IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBiZWxvdy4KPiAKPiAK Pj4gKyAqIEBjbGllbnQ6IERSTSBjbGllbnQKPj4gKyAqCj4+ICsgKiBDaGVjayBtb2Rlc2V0IGNv bmZpZ3VyYXRpb24uCj4+ICsgKgo+PiArICogUmV0dXJuczoKPj4gKyAqIFplcm8gb24gc3VjY2Vz cyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCj4+ICsgKi8KPj4gK2ludCBkcm1f Y2xpZW50X21vZGVzZXRfY2hlY2soc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpCj4+ICt7 Cj4+ICsJaW50IHJldDsKPj4gKwo+PiArCWlmICghZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0 KGNsaWVudC0+ZGV2KSkKPj4gKwkJcmV0dXJuIDA7Cj4gSWYgY2xpZW50IGRvZXMgbm90IHVzZSBh dG9taWMgdGhlIGNoZWNrIHNob3VsZCBmYWlsIC0gbm8/CgpSZXR1cm5pbmcgYW4gZXJyb3IgaGVy ZSB3b3VsZCByZXN1bHQgaW4gdGhlIGNsaWVudCBub3Qgd29ya2luZyB3aXRoCm5vbi1hdG9taWMg ZHJpdmVycyB3aGljaCBBRkFJSyBkb2Vzbid0IGhhdmUgYSB3YXkgdG8gY2hlY2sgdGhlIHN0YXRl CmJlZm9yZSBoYW5kLiBUaGUgY2xpZW50IGhhdmUgdG8gY29tbWl0IHRoZSBzdGF0ZS9jb25maWd1 cmF0aW9uIHRvIGZpbmQKb3V0IGlmIGl0IGlzIGdvb2QuCgpOb3JhbGYuCgo+IAo+PiArCj4+ICsJ bXV0ZXhfbG9jaygmY2xpZW50LT5tb2Rlc2V0X211dGV4KTsKPj4gKwlyZXQgPSBkcm1fY2xpZW50 X21vZGVzZXRfY29tbWl0X2F0b21pYyhjbGllbnQsIHRydWUsIHRydWUpOwo+PiArCW11dGV4X3Vu bG9jaygmY2xpZW50LT5tb2Rlc2V0X211dGV4KTsKPj4gKwo+PiArCXJldHVybiByZXQ7Cj4+ICt9 Cj4+ICtFWFBPUlRfU1lNQk9MKGRybV9jbGllbnRfbW9kZXNldF9jaGVjayk7Cj4+ICsKPj4gIC8q Kgo+PiAgICogZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9sb2NrZWQoKSAtIEZvcmNlIGNvbW1p dCBDUlRDIGNvbmZpZ3VyYXRpb24KPj4gICAqIEBjbGllbnQ6IERSTSBjbGllbnQKPj4gQEAgLTEx MTIsNyArMTEzOSw3IEBAIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xvY2tlZChzdHJ1 Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCkKPj4gIAo+PiAgCW11dGV4X2xvY2soJmNsaWVudC0+ bW9kZXNldF9tdXRleCk7Cj4+ICAJaWYgKGRybV9kcnZfdXNlc19hdG9taWNfbW9kZXNldChkZXYp KQo+PiAtCQlyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYyhjbGllbnQsIHRy dWUpOwo+PiArCQlyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2F0b21pYyhjbGllbnQs IHRydWUsIGZhbHNlKTsKPj4gIAllbHNlCj4+ICAJCXJldCA9IGRybV9jbGllbnRfbW9kZXNldF9j b21taXRfbGVnYWN5KGNsaWVudCk7Cj4+ICAJbXV0ZXhfdW5sb2NrKCZjbGllbnQtPm1vZGVzZXRf bXV0ZXgpOwo+PiBAQCAtMTE4OCw3ICsxMjE1LDcgQEAgaW50IGRybV9jbGllbnRfbW9kZXNldF9k cG1zKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50LCBpbnQgbW9kZSkKPj4gIAo+PiAgCW11 dGV4X2xvY2soJmNsaWVudC0+bW9kZXNldF9tdXRleCk7Cj4+ICAJaWYgKGRybV9kcnZfdXNlc19h dG9taWNfbW9kZXNldChkZXYpKQo+PiAtCQlyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0 X2F0b21pYyhjbGllbnQsIG1vZGUgPT0gRFJNX01PREVfRFBNU19PTik7Cj4+ICsJCXJldCA9IGRy bV9jbGllbnRfbW9kZXNldF9jb21taXRfYXRvbWljKGNsaWVudCwgbW9kZSA9PSBEUk1fTU9ERV9E UE1TX09OLCBmYWxzZSk7Cj4+ICAJZWxzZQo+PiAgCQlkcm1fY2xpZW50X21vZGVzZXRfZHBtc19s ZWdhY3koY2xpZW50LCBtb2RlKTsKPj4gIAltdXRleF91bmxvY2soJmNsaWVudC0+bW9kZXNldF9t dXRleCk7Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY2xpZW50LmggYi9pbmNsdWRl L2RybS9kcm1fY2xpZW50LmgKPj4gaW5kZXggNmVmNTM2NGQ2ZGZiLi5iNmZmYTQ4NjNlNDUgMTAw NjQ0Cj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jbGllbnQuaAo+PiArKysgYi9pbmNsdWRlL2Ry bS9kcm1fY2xpZW50LmgKPj4gQEAgLTE2NCw2ICsxNjQsNyBAQCBpbnQgZHJtX2NsaWVudF9tb2Rl c2V0X2NyZWF0ZShzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7Cj4+ICB2b2lkIGRybV9j bGllbnRfbW9kZXNldF9mcmVlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KTsKPj4gIGlu dCBkcm1fY2xpZW50X21vZGVzZXRfcHJvYmUoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQs IHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCk7Cj4+ICBib29sIGRybV9j bGllbnRfcm90YXRpb24oc3RydWN0IGRybV9tb2RlX3NldCAqbW9kZXNldCwgdW5zaWduZWQgaW50 ICpyb3RhdGlvbik7Cj4+ICtpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NoZWNrKHN0cnVjdCBkcm1f Y2xpZW50X2RldiAqY2xpZW50KTsKPj4gIGludCBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2xv Y2tlZChzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7Cj4+ICBpbnQgZHJtX2NsaWVudF9t b2Rlc2V0X2NvbW1pdChzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCk7Cj4+ICBpbnQgZHJt X2NsaWVudF9tb2Rlc2V0X2RwbXMoc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGludCBt b2RlKTsKPj4gLS0gCj4+IDIuMjMuMAo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==