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 5B823C6FA82 for ; Fri, 23 Sep 2022 09:07:19 +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-Type: List-Subscribe:List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id: In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:Message-ID: Reply-To:Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date :Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=xoS8Wz0muBK9z/5YJANLrTTtUH85WiyOxeaSn15TpFU=; b=lXxWPli5N6m4CFQ3ji4wqvO637 CIgzqCx07tMePkvV4xGxGQuuaNPZWTUKWg1lu3xYjdasppIOxNocbxUNExKlQg2cVn73/1nkX/4U4 F8s6WMQb1KMotzOJobxHMTOGthkqenfwTl28GnOP99JDC4h5BxSkgfeJVQi29b+k4+ShVtjB86Bbg AL38FUOoouJcfRBBSaJV2QbUoPi6lC0VVOA653OMNv0P8UBLS9E12LrC+PwsB5sY4xR8In9poy3W+ Zk0AocWu5NdwFstWquP9cTudEMFlEWuCkOfzq2yZDyxixbVY0SWYepMos46Xu/qhpYDQ611T/+2qs SP8JBciQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1obedG-003Ag2-1o; Fri, 23 Sep 2022 09:06:02 +0000 Received: from smtp-out2.suse.de ([195.135.220.29]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1obed7-003Ac9-So for linux-arm-kernel@lists.infradead.org; Fri, 23 Sep 2022 09:05:57 +0000 Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id EDD591F962; Fri, 23 Sep 2022 09:05:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1663923949; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=kiBSdw26NujjuRUZSHSPFZ1nqIkTB8djfalZR1IgX/s=; b=sYkk1UaBzRdnaQUCKNylRzHutAWd1kpvGBBkXBSx8lkT8DTWlQgflA9bg6e6HyPP+hrAkv UMcLLiY0Rw9p/+dslVHlhF8xlozHm6Sk+jNDLwKh/fOBUsKPox2mQQHyOF3aNdK29ak3Aq P5tC9sQUvIdQFrRrE0duRpZHsGxTIIE= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1663923949; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=kiBSdw26NujjuRUZSHSPFZ1nqIkTB8djfalZR1IgX/s=; b=XsjiokBFhoesD542yYlWPSTc02YIcIUPhi93slvdNBxNdZ88FhvVyti1fqF3Rh9vNxKYPi r6W9n6eT6/nakaCA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 6478913AA5; Fri, 23 Sep 2022 09:05:49 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id d5qbF+12LWNEGwAAMHmgww (envelope-from ); Fri, 23 Sep 2022 09:05:49 +0000 Message-ID: <72a8c3ce-ed03-0a77-fb92-eaa992eb86fe@suse.de> Date: Fri, 23 Sep 2022 11:05:48 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Subject: Re: [PATCH v2 10/33] drm/modes: Add a function to generate analog display modes Content-Language: en-US To: Maxime Ripard , Jernej Skrabec , Rodrigo Vivi , Ben Skeggs , David Airlie , Maxime Ripard , Joonas Lahtinen , Emma Anholt , Karol Herbst , Samuel Holland , Jani Nikula , Daniel Vetter , Lyude Paul , Maarten Lankhorst , Tvrtko Ursulin , Chen-Yu Tsai Cc: Hans de Goede , nouveau@lists.freedesktop.org, Geert Uytterhoeven , Dave Stevenson , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Phil Elwell , intel-gfx@lists.freedesktop.org, =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= , Dom Cobley , linux-sunxi@lists.linux.dev, Mateusz Kwiatkowski , dri-devel@lists.freedesktop.org References: <20220728-rpi-analog-tv-properties-v2-0-f733a0ed9f90@cerno.tech> <20220728-rpi-analog-tv-properties-v2-10-f733a0ed9f90@cerno.tech> From: Thomas Zimmermann In-Reply-To: <20220728-rpi-analog-tv-properties-v2-10-f733a0ed9f90@cerno.tech> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220923_020554_271159_DADFA020 X-CRM114-Status: GOOD ( 26.71 ) 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: multipart/mixed; boundary="===============7921016153970531791==" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --===============7921016153970531791== Content-Language: en-US Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------U1O9sJMHnBIq0KE1ICICUCtJ" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------U1O9sJMHnBIq0KE1ICICUCtJ Content-Type: multipart/mixed; boundary="------------cvQbkQQo4p5S70TWUoA9OpM8"; protected-headers="v1" From: Thomas Zimmermann To: Maxime Ripard , Jernej Skrabec , Rodrigo Vivi , Ben Skeggs , David Airlie , Maxime Ripard , Joonas Lahtinen , Emma Anholt , Karol Herbst , Samuel Holland , Jani Nikula , Daniel Vetter , Lyude Paul , Maarten Lankhorst , Tvrtko Ursulin , Chen-Yu Tsai Cc: Hans de Goede , nouveau@lists.freedesktop.org, Geert Uytterhoeven , Dave Stevenson , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Phil Elwell , intel-gfx@lists.freedesktop.org, =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= , Dom Cobley , linux-sunxi@lists.linux.dev, Mateusz Kwiatkowski , dri-devel@lists.freedesktop.org Message-ID: <72a8c3ce-ed03-0a77-fb92-eaa992eb86fe@suse.de> Subject: Re: [PATCH v2 10/33] drm/modes: Add a function to generate analog display modes References: <20220728-rpi-analog-tv-properties-v2-0-f733a0ed9f90@cerno.tech> <20220728-rpi-analog-tv-properties-v2-10-f733a0ed9f90@cerno.tech> In-Reply-To: <20220728-rpi-analog-tv-properties-v2-10-f733a0ed9f90@cerno.tech> --------------cvQbkQQo4p5S70TWUoA9OpM8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGkNCg0KQW0gMjIuMDkuMjIgdW0gMTY6MjUgc2NocmllYiBNYXhpbWUgUmlwYXJkOg0KPiBN dWx0aXBsZSBkcml2ZXJzIChtZXNvbiwgdmM0LCBzdW40aSkgZGVmaW5lIGFuYWxvZyBUViA1 MjUtbGluZXMgYW5kDQo+IDYyNS1saW5lcyBtb2RlcyBpbiB0aGVpciBkcml2ZXJzLg0KPiAN Cj4gU2luY2UgdGhvc2UgbW9kZXMgYXJlIGZhaXJseSBzdGFuZGFyZCwgYW5kIHRoYXQgd2Un bGwgbmVlZCB0byB1c2UgdGhlbQ0KPiBpbiBtb3JlIHBsYWNlcyBpbiB0aGUgZnV0dXJlLCBp dCBtYWtlcyBzZW5zZSB0byBtb3ZlIHRoZWlyIGRlZmluaXRpb24NCj4gaW50byB0aGUgY29y ZSBmcmFtZXdvcmsuDQo+IA0KPiBIb3dldmVyLCBhbmFsb2cgZGlzcGxheSB1c3VhbGx5IGhh dmUgZmFpcmx5IGxvb3NlIHRpbWluZ3MgcmVxdWlyZW1lbnRzLA0KPiB0aGUgb25seSBkaXNj cmV0ZSBwYXJhbWV0ZXJzIGJlaW5nIHRoZSB0b3RhbCBudW1iZXIgb2YgbGluZXMgYW5kIHBp eGVsDQo+IGNsb2NrIGZyZXF1ZW5jeS4gVGh1cywgd2UgY3JlYXRlZCBhIGZ1bmN0aW9uIHRo YXQgd2lsbCBjcmVhdGUgYSBkaXNwbGF5DQo+IG1vZGUgZnJvbSB0aGUgc3RhbmRhcmQsIHRo ZSBwaXhlbCBmcmVxdWVuY3kgYW5kIHRoZSBhY3RpdmUgYXJlYS4NCj4gDQo+IFNpZ25lZC1v ZmYtYnk6IE1heGltZSBSaXBhcmQgPG1heGltZUBjZXJuby50ZWNoPg0KPiANCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fbW9kZXMuYw0KPiBpbmRleCAzMDQwMDRmYjgwYWEuLjc2YWI3MDBmNTZmZiAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jDQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fbW9kZXMuYw0KPiBAQCAtMTE2LDYgKzExNiw0ODAgQEAgdm9pZCBkcm1f bW9kZV9wcm9iZWRfYWRkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsDQo+ICAg fQ0KPiAgIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfcHJvYmVkX2FkZCk7DQo+ICAgDQo+ICtl bnVtIGRybV9tb2RlX2FuYWxvZyB7DQo+ICsJRFJNX01PREVfQU5BTE9HX05UU0MsIC8qIDUy NSBsaW5lcywgNjBIeiAqLw0KPiArCURSTV9NT0RFX0FOQUxPR19QQUwsIC8qIDYyNSBsaW5l cywgNTBIeiAqLw0KPiArfTsNCj4gKw0KPiArLyoNCj4gKyAqIFRoZSB0aW1pbmdzIGNvbWUg ZnJvbToNCj4gKyAqIC0gaHR0cHM6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMjIwNDA2MjMy NzA4L2h0dHA6Ly93d3cua29sdW1idXMuZmkvcGFtaTEvdmlkZW8vcGFsX250c2MuaHRtbA0K PiArICogLSBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAyMjA0MDYxMjQ5MTQvaHR0 cDovL21hcnRpbi5oaW5uZXIuaW5mby92Z2EvcGFsLmh0bWwNCj4gKyAqIC0gaHR0cHM6Ly93 ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMjIwNjA5MjAyNDMzL2h0dHA6Ly93d3cuYmF0c29ja3Mu Y28udWsvcmVhZG1lL3ZpZGVvX3RpbWluZy5odG0NCj4gKyAqLw0KPiArI2RlZmluZSBOVFND X0xJTkVfRFVSQVRJT05fTlMJCTYzNTU2VQ0KPiArI2RlZmluZSBOVFNDX0xJTkVTX05VTUJF UgkJNTI1DQo+ICsNCj4gKyNkZWZpbmUgTlRTQ19IQkxLX0RVUkFUSU9OX1RZUF9OUwkxMDkw MFUNCj4gKyNkZWZpbmUgTlRTQ19IQkxLX0RVUkFUSU9OX01JTl9OUwkoTlRTQ19IQkxLX0RV UkFUSU9OX1RZUF9OUyAtIDIwMCkNCj4gKyNkZWZpbmUgTlRTQ19IQkxLX0RVUkFUSU9OX01B WF9OUwkoTlRTQ19IQkxLX0RVUkFUSU9OX1RZUF9OUyArIDIwMCkNCj4gKw0KPiArI2RlZmlu ZSBOVFNDX0hBQ1RfRFVSQVRJT05fVFlQX05TCShOVFNDX0xJTkVfRFVSQVRJT05fTlMgLSBO VFNDX0hCTEtfRFVSQVRJT05fVFlQX05TKQ0KPiArI2RlZmluZSBOVFNDX0hBQ1RfRFVSQVRJ T05fTUlOX05TCShOVFNDX0xJTkVfRFVSQVRJT05fTlMgLSBOVFNDX0hCTEtfRFVSQVRJT05f TUFYX05TKQ0KPiArI2RlZmluZSBOVFNDX0hBQ1RfRFVSQVRJT05fTUFYX05TCShOVFNDX0xJ TkVfRFVSQVRJT05fTlMgLSBOVFNDX0hCTEtfRFVSQVRJT05fTUlOX05TKQ0KPiArDQo+ICsj ZGVmaW5lIE5UU0NfSEZQX0RVUkFUSU9OX1RZUF9OUwkxNTAwDQo+ICsjZGVmaW5lIE5UU0Nf SEZQX0RVUkFUSU9OX01JTl9OUwkxMjcwDQo+ICsjZGVmaW5lIE5UU0NfSEZQX0RVUkFUSU9O X01BWF9OUwkyMjIwDQo+ICsNCj4gKyNkZWZpbmUgTlRTQ19IU0xFTl9EVVJBVElPTl9UWVBf TlMJNDcwMA0KPiArI2RlZmluZSBOVFNDX0hTTEVOX0RVUkFUSU9OX01JTl9OUwkoTlRTQ19I U0xFTl9EVVJBVElPTl9UWVBfTlMgLSAxMDApDQo+ICsjZGVmaW5lIE5UU0NfSFNMRU5fRFVS QVRJT05fTUFYX05TCShOVFNDX0hTTEVOX0RVUkFUSU9OX1RZUF9OUyArIDEwMCkNCj4gKw0K PiArI2RlZmluZSBOVFNDX0hCUF9EVVJBVElPTl9UWVBfTlMJNDcwMA0KPiArDQo+ICsvKg0K PiArICogSSBjb3VsZG4ndCBmaW5kIHRoZSBhY3R1YWwgdG9sZXJhbmNlIGZvciB0aGUgYmFj ayBwb3JjaCwgc28gbGV0J3MNCj4gKyAqIGp1c3QgcmV1c2UgdGhlIHN5bmMgbGVuZ3RoIG9u ZXMuDQo+ICsgKi8NCj4gKyNkZWZpbmUgTlRTQ19IQlBfRFVSQVRJT05fTUlOX05TCShOVFND X0hCUF9EVVJBVElPTl9UWVBfTlMgLSAxMDApDQo+ICsjZGVmaW5lIE5UU0NfSEJQX0RVUkFU SU9OX01BWF9OUwkoTlRTQ19IQlBfRFVSQVRJT05fVFlQX05TICsgMTAwKQ0KPiArDQo+ICsj ZGVmaW5lIFBBTF9MSU5FX0RVUkFUSU9OX05TCQk2NDAwMFUNCj4gKyNkZWZpbmUgUEFMX0xJ TkVTX05VTUJFUgkJNjI1DQo+ICsNCj4gKyNkZWZpbmUgUEFMX0hBQ1RfRFVSQVRJT05fVFlQ X05TCTUxOTUwVQ0KPiArI2RlZmluZSBQQUxfSEFDVF9EVVJBVElPTl9NSU5fTlMJKFBBTF9I QUNUX0RVUkFUSU9OX1RZUF9OUyAtIDEwMCkNCj4gKyNkZWZpbmUgUEFMX0hBQ1RfRFVSQVRJ T05fTUFYX05TCShQQUxfSEFDVF9EVVJBVElPTl9UWVBfTlMgKyA0MDApDQo+ICsNCj4gKyNk ZWZpbmUgUEFMX0hCTEtfRFVSQVRJT05fVFlQX05TCShQQUxfTElORV9EVVJBVElPTl9OUyAt IFBBTF9IQUNUX0RVUkFUSU9OX1RZUF9OUykNCj4gKyNkZWZpbmUgUEFMX0hCTEtfRFVSQVRJ T05fTUlOX05TCShQQUxfTElORV9EVVJBVElPTl9OUyAtIFBBTF9IQUNUX0RVUkFUSU9OX01B WF9OUykNCj4gKyNkZWZpbmUgUEFMX0hCTEtfRFVSQVRJT05fTUFYX05TCShQQUxfTElORV9E VVJBVElPTl9OUyAtIFBBTF9IQUNUX0RVUkFUSU9OX01JTl9OUykNCj4gKw0KPiArI2RlZmlu ZSBQQUxfSEZQX0RVUkFUSU9OX1RZUF9OUwkJMTY1MA0KPiArI2RlZmluZSBQQUxfSEZQX0RV UkFUSU9OX01JTl9OUwkJKFBBTF9IRlBfRFVSQVRJT05fVFlQX05TIC0gMTAwKQ0KPiArI2Rl ZmluZSBQQUxfSEZQX0RVUkFUSU9OX01BWF9OUwkJKFBBTF9IRlBfRFVSQVRJT05fVFlQX05T ICsgNDAwKQ0KPiArDQo+ICsjZGVmaW5lIFBBTF9IU0xFTl9EVVJBVElPTl9UWVBfTlMJNDcw MA0KPiArI2RlZmluZSBQQUxfSFNMRU5fRFVSQVRJT05fTUlOX05TCShQQUxfSFNMRU5fRFVS QVRJT05fVFlQX05TIC0gMjAwKQ0KPiArI2RlZmluZSBQQUxfSFNMRU5fRFVSQVRJT05fTUFY X05TCShQQUxfSFNMRU5fRFVSQVRJT05fVFlQX05TICsgMjAwKQ0KPiArDQo+ICsjZGVmaW5l IFBBTF9IQlBfRFVSQVRJT05fVFlQX05TCQk1NzAwDQo+ICsjZGVmaW5lIFBBTF9IQlBfRFVS QVRJT05fTUlOX05TCQkoUEFMX0hCUF9EVVJBVElPTl9UWVBfTlMgLSAyMDApDQo+ICsjZGVm aW5lIFBBTF9IQlBfRFVSQVRJT05fTUFYX05TCQkoUEFMX0hCUF9EVVJBVElPTl9UWVBfTlMg KyAyMDApDQo+ICsNCj4gK3N0cnVjdCBhbmFsb2dfcGFyYW1fZmllbGQgew0KPiArCXVuc2ln bmVkIGludCBldmVuLCBvZGQ7DQo+ICt9Ow0KPiArDQo+ICsjZGVmaW5lIFBBUkFNX0ZJRUxE KF9vZGQsIF9ldmVuKQkJXA0KPiArCXsgLmV2ZW4gPSBfZXZlbiwgLm9kZCA9IF9vZGQgfQ0K PiArDQo+ICtzdHJ1Y3QgYW5hbG9nX3BhcmFtX3JhbmdlIHsNCj4gKwl1bnNpZ25lZCBpbnQJ bWluLCB0eXAsIG1heDsNCj4gK307DQo+ICsNCj4gKyNkZWZpbmUgUEFSQU1fUkFOR0UoX21p biwgX3R5cCwgX21heCkJCVwNCj4gKwl7IC5taW4gPSBfbWluLCAudHlwID0gX3R5cCwgLm1h eCA9IF9tYXggfQ0KPiArDQo+ICtzdHJ1Y3QgYW5hbG9nX3BhcmFtZXRlcnMgew0KPiArCXVu c2lnbmVkIGludAkJCW51bV9saW5lczsNCj4gKwl1bnNpZ25lZCBpbnQJCQlsaW5lX2R1cmF0 aW9uX25zOw0KPiArDQo+ICsJc3RydWN0IGFuYWxvZ19wYXJhbV9yYW5nZQloYWN0X25zOw0K PiArCXN0cnVjdCBhbmFsb2dfcGFyYW1fcmFuZ2UJaGZwX25zOw0KPiArCXN0cnVjdCBhbmFs b2dfcGFyYW1fcmFuZ2UJaHNsZW5fbnM7DQo+ICsJc3RydWN0IGFuYWxvZ19wYXJhbV9yYW5n ZQloYnBfbnM7DQo+ICsJc3RydWN0IGFuYWxvZ19wYXJhbV9yYW5nZQloYmxrX25zOw0KPiAr DQo+ICsJdW5zaWduZWQgaW50CQkJYnQ2MDFfaGZwOw0KPiArDQo+ICsJc3RydWN0IGFuYWxv Z19wYXJhbV9maWVsZAl2ZnBfbGluZXM7DQo+ICsJc3RydWN0IGFuYWxvZ19wYXJhbV9maWVs ZAl2c2xlbl9saW5lczsNCj4gKwlzdHJ1Y3QgYW5hbG9nX3BhcmFtX2ZpZWxkCXZicF9saW5l czsNCj4gK307DQo+ICsNCj4gKyNkZWZpbmUgVFZfTU9ERV9QQVJBTUVURVIoX21vZGUsIF9s aW5lcywgX2xpbmVfZHVyLCBfaGFjdCwgX2hmcCwgX2hzbGVuLCBfaGJwLCBfaGJsaywgX2J0 NjAxX2hmcCwgX3ZmcCwgX3ZzbGVuLCBfdmJwKSBcDQo+ICsJW19tb2RlXSA9IHsJCQkJCQkJ XA0KPiArCQkubnVtX2xpbmVzID0gX2xpbmVzLAkJCQkJXA0KPiArCQkubGluZV9kdXJhdGlv bl9ucyA9IF9saW5lX2R1ciwJCQkJXA0KPiArCQkuaGFjdF9ucyA9IF9oYWN0LAkJCQkJXA0K PiArCQkuaGZwX25zID0gX2hmcCwJCQkJCQlcDQo+ICsJCS5oc2xlbl9ucyA9IF9oc2xlbiwJ CQkJCVwNCj4gKwkJLmhicF9ucyA9IF9oYnAsCQkJCQkJXA0KPiArCQkuaGJsa19ucyA9IF9o YmxrLAkJCQkJXA0KPiArCQkuYnQ2MDFfaGZwID0gX2J0NjAxX2hmcCwJCQkJXA0KPiArCQku dmZwX2xpbmVzID0gX3ZmcCwJCQkJCVwNCj4gKwkJLnZzbGVuX2xpbmVzID0gX3ZzbGVuLAkJ CQkJXA0KPiArCQkudmJwX2xpbmVzID0gX3ZicCwJCQkJCVwNCj4gKwl9DQo+ICsNCj4gK2Nv bnN0IHN0YXRpYyBzdHJ1Y3QgYW5hbG9nX3BhcmFtZXRlcnMgdHZfbW9kZXNfcGFyYW1ldGVy c1tdID0gew0KPiArCVRWX01PREVfUEFSQU1FVEVSKERSTV9NT0RFX0FOQUxPR19OVFNDLA0K PiArCQkJICBOVFNDX0xJTkVTX05VTUJFUiwNCj4gKwkJCSAgTlRTQ19MSU5FX0RVUkFUSU9O X05TLA0KPiArCQkJICBQQVJBTV9SQU5HRShOVFNDX0hBQ1RfRFVSQVRJT05fTUlOX05TLA0K PiArCQkJCSAgICAgIE5UU0NfSEFDVF9EVVJBVElPTl9UWVBfTlMsDQo+ICsJCQkJICAgICAg TlRTQ19IQUNUX0RVUkFUSU9OX01BWF9OUyksDQo+ICsJCQkgIFBBUkFNX1JBTkdFKE5UU0Nf SEZQX0RVUkFUSU9OX01JTl9OUywNCj4gKwkJCQkgICAgICBOVFNDX0hGUF9EVVJBVElPTl9U WVBfTlMsDQo+ICsJCQkJICAgICAgTlRTQ19IRlBfRFVSQVRJT05fTUFYX05TKSwNCj4gKwkJ CSAgUEFSQU1fUkFOR0UoTlRTQ19IU0xFTl9EVVJBVElPTl9NSU5fTlMsDQo+ICsJCQkJICAg ICAgTlRTQ19IU0xFTl9EVVJBVElPTl9UWVBfTlMsDQo+ICsJCQkJICAgICAgTlRTQ19IU0xF Tl9EVVJBVElPTl9NQVhfTlMpLA0KPiArCQkJICBQQVJBTV9SQU5HRShOVFNDX0hCUF9EVVJB VElPTl9NSU5fTlMsDQo+ICsJCQkJICAgICAgTlRTQ19IQlBfRFVSQVRJT05fVFlQX05TLA0K PiArCQkJCSAgICAgIE5UU0NfSEJQX0RVUkFUSU9OX01BWF9OUyksDQo+ICsJCQkgIFBBUkFN X1JBTkdFKE5UU0NfSEJMS19EVVJBVElPTl9NSU5fTlMsDQo+ICsJCQkJICAgICAgTlRTQ19I QkxLX0RVUkFUSU9OX1RZUF9OUywNCj4gKwkJCQkgICAgICBOVFNDX0hCTEtfRFVSQVRJT05f TUFYX05TKSwNCj4gKwkJCSAgMTYsDQo+ICsJCQkgIFBBUkFNX0ZJRUxEKDMsIDMpLA0KPiAr CQkJICBQQVJBTV9GSUVMRCgzLCAzKSwNCj4gKwkJCSAgUEFSQU1fRklFTEQoMTYsIDE3KSks DQo+ICsJVFZfTU9ERV9QQVJBTUVURVIoRFJNX01PREVfQU5BTE9HX1BBTCwNCj4gKwkJCSAg UEFMX0xJTkVTX05VTUJFUiwNCj4gKwkJCSAgUEFMX0xJTkVfRFVSQVRJT05fTlMsDQo+ICsJ CQkgIFBBUkFNX1JBTkdFKFBBTF9IQUNUX0RVUkFUSU9OX01JTl9OUywNCj4gKwkJCQkgICAg ICBQQUxfSEFDVF9EVVJBVElPTl9UWVBfTlMsDQo+ICsJCQkJICAgICAgUEFMX0hBQ1RfRFVS QVRJT05fTUFYX05TKSwNCj4gKwkJCSAgUEFSQU1fUkFOR0UoUEFMX0hGUF9EVVJBVElPTl9N SU5fTlMsDQo+ICsJCQkJICAgICAgUEFMX0hGUF9EVVJBVElPTl9UWVBfTlMsDQo+ICsJCQkJ ICAgICAgUEFMX0hGUF9EVVJBVElPTl9NQVhfTlMpLA0KPiArCQkJICBQQVJBTV9SQU5HRShQ QUxfSFNMRU5fRFVSQVRJT05fTUlOX05TLA0KPiArCQkJCSAgICAgIFBBTF9IU0xFTl9EVVJB VElPTl9UWVBfTlMsDQo+ICsJCQkJICAgICAgUEFMX0hTTEVOX0RVUkFUSU9OX01BWF9OUyks DQo+ICsJCQkgIFBBUkFNX1JBTkdFKFBBTF9IQlBfRFVSQVRJT05fTUlOX05TLA0KPiArCQkJ CSAgICAgIFBBTF9IQlBfRFVSQVRJT05fVFlQX05TLA0KPiArCQkJCSAgICAgIFBBTF9IQlBf RFVSQVRJT05fTUFYX05TKSwNCj4gKwkJCSAgUEFSQU1fUkFOR0UoUEFMX0hCTEtfRFVSQVRJ T05fTUlOX05TLA0KPiArCQkJCSAgICAgIFBBTF9IQkxLX0RVUkFUSU9OX1RZUF9OUywNCj4g KwkJCQkgICAgICBQQUxfSEJMS19EVVJBVElPTl9NQVhfTlMpLA0KPiArCQkJICAxMiwNCj4g Kw0KPiArCQkJICAvKg0KPiArCQkJICAgKiBUaGUgZnJvbnQgcG9yY2ggaXMgYWN0dWFsbHkg NiBzaG9ydCBzeW5jDQo+ICsJCQkgICAqIHB1bHNlcyBmb3IgdGhlIGV2ZW4gZmllbGQsIGFu ZCA1IGZvciB0aGUNCj4gKwkJCSAgICogb2RkIGZpZWxkLiBFYWNoIHN5bmMgdGFrZXMgaGFs ZiBhIGxpZmUgc28NCj4gKwkJCSAgICogdGhlIG9kZCBmaWVsZCBmcm9udCBwb3JjaCBpcyBz aG9ydGVyIGJ5DQo+ICsJCQkgICAqIGhhbGYgYSBsaW5lLg0KPiArCQkJICAgKg0KPiArCQkJ ICAgKiBJbiBwcm9ncmVzc2l2ZSwgd2UncmUgc3VwcG9zZWQgdG8gdXNlIDYNCj4gKwkJCSAg ICogcHVsc2VzLCBzbyB3ZSdyZSBmaW5lIHRoZXJlDQo+ICsJCQkgICAqLw0KPiArCQkJICBQ QVJBTV9GSUVMRCgzLCAyKSwNCj4gKw0KPiArCQkJICAvKg0KPiArCQkJICAgKiBUaGUgdnN5 bmMgbGVuZ3RoIGlzIDUgbG9uZyBzeW5jIHB1bHNlcywNCj4gKwkJCSAgICogZWFjaCBmaWVs ZCB0YWtpbmcgaGFsZiBhIGxpbmUuIFdlJ3JlDQo+ICsJCQkgICAqIHNob3J0ZXIgZm9yIGJv dGggZmllbGRzIGJ5IGhhbGYgYSBsaW5lLg0KPiArCQkJICAgKg0KPiArCQkJICAgKiBJbiBw cm9ncmVzc2l2ZSwgd2UncmUgc3VwcG9zZWQgdG8gdXNlIDUNCj4gKwkJCSAgICogcHVsc2Vz LCBzbyB3ZSdyZSBvZmYgYnkgaGFsZg0KPiArCQkJICAgKiBhIGxpbmUuDQo+ICsJCQkgICAq DQo+ICsJCQkgICAqIEluIGludGVybGFjZSwgd2UncmUgbm93IG9mZiBieSBoYWxmIGEgbGlu ZQ0KPiArCQkJICAgKiBmb3IgdGhlIGV2ZW4gZmllbGQgYW5kIG9uZSBsaW5lIGZvciB0aGUg b2RkDQo+ICsJCQkgICAqIGZpZWxkLg0KPiArCQkJICAgKi8NCj4gKwkJCSAgUEFSQU1fRklF TEQoMywgMyksDQo+ICsNCj4gKwkJCSAgLyoNCj4gKwkJCSAgICogVGhlIGJhY2sgcG9yY2gg c3RhcnRzIHdpdGggcG9zdC1lcXVhbGl6aW5nDQo+ICsJCQkgICAqIHB1bHNlcywgY29uc2lz dGluZyBpbiA1IHNob3J0IHN5bmMgcHVsc2VzDQo+ICsJCQkgICAqIGZvciB0aGUgZXZlbiBm aWVsZCwgNCBmb3IgdGhlIG9kZCBmaWVsZC4gSW4NCj4gKwkJCSAgICogcHJvZ3Jlc3NpdmUs IGl0J3MgNSBzaG9ydCBzeW5jcy4NCj4gKwkJCSAgICoNCj4gKwkJCSAgICogSW4gcHJvZ3Jl c3NpdmUsIHdlIHRodXMgaGF2ZSAyLjUgbGluZXMsDQo+ICsJCQkgICAqIHBsdXMgdGhlIDAu NSBsaW5lIHdlIHdlcmUgbWlzc2luZw0KPiArCQkJICAgKiBwcmV2aW91c2x5LCBzbyB3ZSBz aG91bGQgdXNlIDMgbGluZXMuDQo+ICsJCQkgICAqDQo+ICsJCQkgICAqIEluIGludGVybGFj ZSwgdGhlIGV2ZW4gZmllbGQgaXMgaW4gdGhlDQo+ICsJCQkgICAqIGV4YWN0IHNhbWUgY2Fz ZSB0aGFuIHByb2dyZXNzaXZlLiBGb3IgdGhlDQo+ICsJCQkgICAqIG9kZCBmaWVsZCwgd2Ug c2hvdWxkIGJlIHVzaW5nIDIgbGluZXMgYnV0DQo+ICsJCQkgICAqIHdlJ3JlIG9uZSBsaW5l IHNob3J0LCBzbyB3ZSdsbCBtYWtlIHVwIGZvcg0KPiArCQkJICAgKiBpdCBoZXJlIGJ5IHVz aW5nIDMuDQo+ICsJCQkgICAqDQo+ICsJCQkgICAqIFRoZSBlbnRpcmUgYmxhbmtpbmcgYXJl YSBpcyBzdXBwb3NlZCB0bw0KPiArCQkJICAgKiB0YWtlIDI1IGxpbmVzLCBzbyB3ZSBhbHNv IG5lZWQgdG8gYWNjb3VudA0KPiArCQkJICAgKiBmb3IgdGhlIHJlc3Qgb2YgdGhlIGJsYW5r aW5nIGFyZWEgdGhhdA0KPiArCQkJICAgKiBjYW4ndCBiZSBpbiBlaXRoZXIgdGhlIGZyb250 IHBvcmNoIG9yIHN5bmMNCj4gKwkJCSAgICogcGVyaW9kLg0KPiArCQkJICAgKi8NCj4gKwkJ CSAgUEFSQU1fRklFTEQoMTksIDIwKSksDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgaW50IGZp bGxfYW5hbG9nX21vZGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gKwkJCSAgICBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwNCj4gKwkJCSAgICBjb25zdCBzdHJ1Y3QgYW5h bG9nX3BhcmFtZXRlcnMgKnBhcmFtcywNCj4gKwkJCSAgICB1bnNpZ25lZCBsb25nIHBpeGVs X2Nsb2NrX2h6LA0KPiArCQkJICAgIHVuc2lnbmVkIGludCBoYWN0aXZlLA0KPiArCQkJICAg IHVuc2lnbmVkIGludCB2YWN0aXZlLA0KPiArCQkJICAgIGJvb2wgaW50ZXJsYWNlKQ0KPiAr ew0KPiArCXVuc2lnbmVkIGxvbmcgcGl4ZWxfZHVyYXRpb25fbnMgPSBOU0VDX1BFUl9TRUMg LyBwaXhlbF9jbG9ja19oejsNCj4gKwl1bnNpZ25lZCBpbnQgaHRvdGFsLCB2dG90YWw7DQo+ ICsJdW5zaWduZWQgaW50IG1heF9oYWN0LCBoYWN0X2R1cmF0aW9uX25zOw0KPiArCXVuc2ln bmVkIGludCBoYmxrLCBoYmxrX2R1cmF0aW9uX25zOw0KPiArCXVuc2lnbmVkIGludCBoZnAs IGhmcF9kdXJhdGlvbl9uczsNCj4gKwl1bnNpZ25lZCBpbnQgaHNsZW4sIGhzbGVuX2R1cmF0 aW9uX25zOw0KPiArCXVuc2lnbmVkIGludCBoYnAsIGhicF9kdXJhdGlvbl9uczsNCj4gKwl1 bnNpZ25lZCBpbnQgcG9yY2hlcywgcG9yY2hlc19kdXJhdGlvbl9uczsNCj4gKwl1bnNpZ25l ZCBpbnQgdmZwLCB2ZnBfbWluOw0KPiArCXVuc2lnbmVkIGludCB2YnAsIHZicF9taW47DQo+ ICsJdW5zaWduZWQgaW50IHZzbGVuOw0KPiArCWJvb2wgYnQ2MDEgPSBmYWxzZTsNCj4gKwlp bnQgcG9yY2hlc19yZW07DQo+ICsJdTY0IHJlc3VsdDsNCj4gKw0KPiArCWRybV9kYmdfa21z KGRldiwNCj4gKwkJICAgICJHZW5lcmF0aW5nIGEgJXV4JXUlYywgJXUtbGluZSBtb2RlIHdp dGggYSAlbHUga0h6IGNsb2NrXG4iLA0KPiArCQkgICAgaGFjdGl2ZSwgdmFjdGl2ZSwNCj4g KwkJICAgIGludGVybGFjZSA/ICdpJyA6ICdwJywNCj4gKwkJICAgIHBhcmFtcy0+bnVtX2xp bmVzLA0KPiArCQkgICAgcGl4ZWxfY2xvY2tfaHogLyAxMDAwKTsNCg0KRGl2aWRlIGJ5IEha X1BFUl9LSFogaGVyZSBhbmQgaW4gb3RoZXIgcGxhY2VzLg0KDQogICBodHRwczovL2VsaXhp ci5ib290bGluLmNvbS9saW51eC9sYXRlc3Qvc291cmNlL2luY2x1ZGUvbGludXgvdW5pdHMu aCNMMjMNCg0KPiArDQo+ICsJbWF4X2hhY3QgPSBwYXJhbXMtPmhhY3RfbnMubWF4IC8gcGl4 ZWxfZHVyYXRpb25fbnM7DQo+ICsJaWYgKHBpeGVsX2Nsb2NrX2h6ID09IDEzNTAwMDAwICYm IGhhY3RpdmUgPiBtYXhfaGFjdCAmJiBoYWN0aXZlIDw9IDcyMCkgew0KPiArCQlkcm1fZGJn X2ttcyhkZXYsICJUcnlpbmcgdG8gZ2VuZXJhdGUgYSBCVC42MDEgbW9kZS4gRGlzYWJsaW5n IGNoZWNrcy5cbiIpOw0KPiArCQlidDYwMSA9IHRydWU7DQo+ICsJfQ0KPiArDQo+ICsJLyoN Cj4gKwkgKiBPdXIgcGl4ZWwgZHVyYXRpb24gaXMgZ29pbmcgdG8gYmUgcm91bmQgZG93biBi eSB0aGUgZGl2aXNpb24sDQo+ICsJICogc28gcm91bmRpbmcgdXAgaXMgcHJvYmFibHkgZ29p bmcgdG8gaW50cm9kdWNlIGV2ZW4gbW9yZQ0KPiArCSAqIGRldmlhdGlvbi4NCj4gKwkgKi8N Cj4gKwlyZXN1bHQgPSAodTY0KXBhcmFtcy0+bGluZV9kdXJhdGlvbl9ucyAqIHBpeGVsX2Ns b2NrX2h6Ow0KPiArCWRvX2RpdihyZXN1bHQsIE5TRUNfUEVSX1NFQyk7DQo+ICsJaHRvdGFs ID0gcmVzdWx0Ow0KPiArDQo+ICsJZHJtX2RiZ19rbXMoZGV2LCAiVG90YWwgSG9yaXpvbnRh bCBOdW1iZXIgb2YgUGl4ZWxzOiAldVxuIiwgaHRvdGFsKTsNCj4gKw0KPiArCWhhY3RfZHVy YXRpb25fbnMgPSBoYWN0aXZlICogcGl4ZWxfZHVyYXRpb25fbnM7DQo+ICsJaWYgKCFidDYw MSAmJg0KPiArCSAgICAoaGFjdF9kdXJhdGlvbl9ucyA8IHBhcmFtcy0+aGFjdF9ucy5taW4g fHwNCj4gKwkgICAgIGhhY3RfZHVyYXRpb25fbnMgPiBwYXJhbXMtPmhhY3RfbnMubWF4KSkg ew0KPiArCQlEUk1fRVJST1IoIkludmFsaWQgaG9yaXpvbnRhbCBhY3RpdmUgYXJlYSBkdXJh dGlvbjogJXVucyAobWluOiAldSwgbWF4ICV1KVxuIiwNCj4gKwkJCSAgaGFjdF9kdXJhdGlv bl9ucywgcGFyYW1zLT5oYWN0X25zLm1pbiwgcGFyYW1zLT5oYWN0X25zLm1heCk7DQo+ICsJ CXJldHVybiAtRUlOVkFMOw0KPiArCX0NCj4gKw0KPiArCWhibGsgPSBodG90YWwgLSBoYWN0 aXZlOw0KPiArCWRybV9kYmdfa21zKGRldiwgIkhvcml6b250YWwgQmxhbmtpbmcgUGVyaW9k OiAldVxuIiwgaGJsayk7DQo+ICsNCj4gKwloYmxrX2R1cmF0aW9uX25zID0gaGJsayAqIHBp eGVsX2R1cmF0aW9uX25zOw0KPiArCWlmICghYnQ2MDEgJiYNCj4gKwkgICAgKGhibGtfZHVy YXRpb25fbnMgPCBwYXJhbXMtPmhibGtfbnMubWluIHx8DQo+ICsJICAgICBoYmxrX2R1cmF0 aW9uX25zID4gcGFyYW1zLT5oYmxrX25zLm1heCkpIHsNCj4gKwkJRFJNX0VSUk9SKCJJbnZh bGlkIGhvcml6b250YWwgYmxhbmtpbmcgZHVyYXRpb246ICV1bnMgKG1pbjogJXUsIG1heCAl dSlcbiIsDQo+ICsJCQkgIGhibGtfZHVyYXRpb25fbnMsIHBhcmFtcy0+aGJsa19ucy5taW4s IHBhcmFtcy0+aGJsa19ucy5tYXgpOw0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9DQo+ ICsNCj4gKwloc2xlbiA9IERJVl9ST1VORF9VUChwYXJhbXMtPmhzbGVuX25zLnR5cCwgcGl4 ZWxfZHVyYXRpb25fbnMpOw0KPiArCWRybV9kYmdfa21zKGRldiwgIkhvcml6b250YWwgU3lu YyBQZXJpb2Q6ICV1XG4iLCBoc2xlbik7DQo+ICsNCj4gKwloc2xlbl9kdXJhdGlvbl9ucyA9 IGhzbGVuICogcGl4ZWxfZHVyYXRpb25fbnM7DQo+ICsJaWYgKCFidDYwMSAmJg0KPiArCSAg ICAoaHNsZW5fZHVyYXRpb25fbnMgPCBwYXJhbXMtPmhzbGVuX25zLm1pbiB8fA0KPiArCSAg ICAgaHNsZW5fZHVyYXRpb25fbnMgPiBwYXJhbXMtPmhzbGVuX25zLm1heCkpIHsNCj4gKwkJ RFJNX0VSUk9SKCJJbnZhbGlkIGhvcml6b250YWwgc3luYyBkdXJhdGlvbjogJXVucyAobWlu OiAldSwgbWF4ICV1KVxuIiwNCj4gKwkJCSAgaHNsZW5fZHVyYXRpb25fbnMsIHBhcmFtcy0+ aHNsZW5fbnMubWluLCBwYXJhbXMtPmhzbGVuX25zLm1heCk7DQo+ICsJCXJldHVybiAtRUlO VkFMOw0KPiArCX0NCj4gKw0KPiArCXBvcmNoZXMgPSBoYmxrIC0gaHNsZW47DQo+ICsJZHJt X2RiZ19rbXMoZGV2LCAiUmVtYWluaW5nIGhvcml6b250YWwgcGl4ZWxzIGZvciBib3RoIHBv cmNoZXM6ICV1XG4iLCBwb3JjaGVzKTsNCj4gKw0KPiArCXBvcmNoZXNfZHVyYXRpb25fbnMg PSBwb3JjaGVzICogcGl4ZWxfZHVyYXRpb25fbnM7DQo+ICsJaWYgKCFidDYwMSAmJg0KPiAr CSAgICAocG9yY2hlc19kdXJhdGlvbl9ucyA+IChwYXJhbXMtPmhmcF9ucy5tYXggKyBwYXJh bXMtPmhicF9ucy5tYXgpIHx8DQo+ICsJICAgICBwb3JjaGVzX2R1cmF0aW9uX25zIDwgKHBh cmFtcy0+aGZwX25zLm1pbiArIHBhcmFtcy0+aGJwX25zLm1pbikpKSB7DQo+ICsJCURSTV9F UlJPUigiSW52YWxpZCBob3Jpem9udGFsIHBvcmNoZXMgZHVyYXRpb246ICV1bnNcbiIsIHBv cmNoZXNfZHVyYXRpb25fbnMpOw0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9DQo+ICsN Cj4gKwlpZiAoYnQ2MDEpIHsNCj4gKwkJaGZwID0gcGFyYW1zLT5idDYwMV9oZnA7DQo+ICsJ fSBlbHNlIHsNCj4gKwkJdW5zaWduZWQgaW50IGhmcF9taW4gPSBESVZfUk9VTkRfVVAocGFy YW1zLT5oZnBfbnMubWluLA0KPiArCQkJCQkJICAgIHBpeGVsX2R1cmF0aW9uX25zKTsNCj4g KwkJdW5zaWduZWQgaW50IGhicF9taW4gPSBESVZfUk9VTkRfVVAocGFyYW1zLT5oYnBfbnMu bWluLA0KPiArCQkJCQkJICAgIHBpeGVsX2R1cmF0aW9uX25zKTsNCj4gKwkJIGludCBwb3Jj aGVzX3JlbSA9IHBvcmNoZXMgLSBoZnBfbWluIC0gaGJwX21pbjsNCj4gKw0KPiArCQloZnAg PSBoZnBfbWluICsgRElWX1JPVU5EX1VQKHBvcmNoZXNfcmVtLCAyKTsNCj4gKwl9DQo+ICsN Cj4gKwlkcm1fZGJnX2ttcyhkZXYsICJIb3Jpem9udGFsIEZyb250IFBvcmNoOiAldVxuIiwg aGZwKTsNCj4gKw0KPiArCWhmcF9kdXJhdGlvbl9ucyA9IGhmcCAqIHBpeGVsX2R1cmF0aW9u X25zOw0KPiArCWlmICghYnQ2MDEgJiYNCj4gKwkgICAgKGhmcF9kdXJhdGlvbl9ucyA8IHBh cmFtcy0+aGZwX25zLm1pbiB8fA0KPiArCSAgICAgaGZwX2R1cmF0aW9uX25zID4gcGFyYW1z LT5oZnBfbnMubWF4KSkgew0KPiArCQlEUk1fRVJST1IoIkludmFsaWQgaG9yaXpvbnRhbCBm cm9udCBwb3JjaCBkdXJhdGlvbjogJXVucyAobWluOiAldSwgbWF4ICV1KVxuIiwNCj4gKwkJ CSAgaGZwX2R1cmF0aW9uX25zLCBwYXJhbXMtPmhmcF9ucy5taW4sIHBhcmFtcy0+aGZwX25z Lm1heCk7DQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArCX0NCj4gKw0KPiArCWhicCA9IHBv cmNoZXMgLSBoZnA7DQo+ICsJZHJtX2RiZ19rbXMoZGV2LCAiSG9yaXpvbnRhbCBCYWNrIFBv cmNoOiAldVxuIiwgaGJwKTsNCj4gKw0KPiArCWhicF9kdXJhdGlvbl9ucyA9IGhicCAqIHBp eGVsX2R1cmF0aW9uX25zOw0KPiArCWlmICghYnQ2MDEgJiYNCj4gKwkgICAgKGhicF9kdXJh dGlvbl9ucyA8IHBhcmFtcy0+aGJwX25zLm1pbiB8fA0KPiArCSAgICAgaGJwX2R1cmF0aW9u X25zID4gcGFyYW1zLT5oYnBfbnMubWF4KSkgew0KPiArCQlEUk1fRVJST1IoIkludmFsaWQg aG9yaXpvbnRhbCBiYWNrIHBvcmNoIGR1cmF0aW9uOiAldW5zIChtaW46ICV1LCBtYXggJXUp XG4iLA0KPiArCQkJICBoYnBfZHVyYXRpb25fbnMsIHBhcmFtcy0+aGJwX25zLm1pbiwgcGFy YW1zLT5oYnBfbnMubWF4KTsNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsJfQ0KPiArDQo+ ICsJaWYgKGh0b3RhbCAhPSAoaGFjdGl2ZSArIGhmcCArIGhzbGVuICsgaGJwKSkNCj4gKwkJ cmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwltb2RlLT5jbG9jayA9IHBpeGVsX2Nsb2NrX2h6 IC8gMTAwMDsNCg0KSFpfUEVSX0tIWg0KDQo+ICsJbW9kZS0+aGRpc3BsYXkgPSBoYWN0aXZl Ow0KPiArCW1vZGUtPmhzeW5jX3N0YXJ0ID0gaGFjdGl2ZSArIGhmcDsNCj4gKwltb2RlLT5o c3luY19lbmQgPSBoYWN0aXZlICsgaGZwICsgaHNsZW47DQo+ICsJbW9kZS0+aHRvdGFsID0g aGFjdGl2ZSArIGhmcCArIGhzbGVuICsgaGJwOw0KDQpJJ2QgY29tcHV0ZSB0aGVtIGZyb20g ZWFjaCBvdGhlcjoNCg0KICAgaGRpc3BsYXkgPSBoYWN0aXZlDQogICBoc3luY19zdGFydCA9 IGhhY3RpdmUgKyBoZnANCiAgIGhzeW52X2VuZCAgPSBoc3luY19zdGFydCArIGhzbGVuDQog ICBodG90YWwgPSBoc3luY19lbmQgKyBoYnANCg0KSXQncyBjZXJ0YWlubHkgYSBwZXJzb25h bCBwcmVmZXJlbmNlLCBidXQgc2VlbXMgZWFzaWVyIHRvIHNlZSBob3cgdGhleSANCnJlbGF0 ZSB0byBlYWNoIG90aGVyLg0KDQo+ICsNCj4gKwlpZiAoaW50ZXJsYWNlKSB7DQo+ICsJCXZm cF9taW4gPSBwYXJhbXMtPnZmcF9saW5lcy5ldmVuICsgcGFyYW1zLT52ZnBfbGluZXMub2Rk Ow0KPiArCQl2YnBfbWluID0gcGFyYW1zLT52YnBfbGluZXMuZXZlbiArIHBhcmFtcy0+dmJw X2xpbmVzLm9kZDsNCj4gKwkJdnNsZW4gPSBwYXJhbXMtPnZzbGVuX2xpbmVzLmV2ZW4gKyBw YXJhbXMtPnZzbGVuX2xpbmVzLm9kZDsNCj4gKwl9IGVsc2Ugew0KPiArCQkvKg0KPiArCQkg KiBCeSBjb252ZW50aW9uLCBOU1RDIChha2EgNTI1LzYwKSBzeXN0ZW1zIHN0YXJ0IHdpdGgN Cj4gKwkJICogdGhlIGV2ZW4gZmllbGQsIGJ1dCBQQUwgKGFrYSA2MjUvNTApIHN5c3RlbXMg c3RhcnQNCj4gKwkJICogd2l0aCB0aGUgb2RkIG9uZS4NCj4gKwkJICoNCj4gKwkJICogUEFM IHN5c3RlbXMgYWxzbyBoYXZlIGFzeW1ldHJpYyB0aW1pbmdzIGJldHdlZW4gdGhlDQo+ICsJ CSAqIGV2ZW4gYW5kIG9kZCBmaWVsZCwgd2hpbGUgTlRTQyBpcyBzeW1ldHJpYy4NCj4gKwkJ ICoNCj4gKwkJICogTW9yZW92ZXIsIGlmIHdlIHdhbnQgdG8gY3JlYXRlIGEgcHJvZ3Jlc3Np dmUgbW9kZSBmb3INCj4gKwkJICogUEFMLCB3ZSBuZWVkIHRvIHVzZSB0aGUgb2RkIGZpZWxk IHRpbWluZ3MuDQo+ICsJCSAqDQo+ICsJCSAqIFNpbmNlIG9kZCA9PSBldmVuIGZvciBOVFND LCB3ZSBjYW4ganVzdCB1c2UgdGhlIG9kZA0KPiArCQkgKiBvbmUgYWxsIHRoZSB0aW1lIHRv IHNpbXBsaWZ5IHRoZSBjb2RlIGEgYml0Lg0KPiArCQkgKi8NCj4gKwkJdmZwX21pbiA9IHBh cmFtcy0+dmZwX2xpbmVzLm9kZDsNCj4gKwkJdmJwX21pbiA9IHBhcmFtcy0+dmJwX2xpbmVz Lm9kZDsNCj4gKwkJdnNsZW4gPSBwYXJhbXMtPnZzbGVuX2xpbmVzLm9kZDsNCj4gKwl9DQo+ ICsNCj4gKwlkcm1fZGJnX2ttcyhkZXYsICJWZXJ0aWNhbCBTeW5jIFBlcmlvZDogJXVcbiIs IHZzbGVuKTsNCj4gKw0KPiArCXBvcmNoZXMgPSBwYXJhbXMtPm51bV9saW5lcyAtIHZhY3Rp dmUgLSB2c2xlbjsNCj4gKwlkcm1fZGJnX2ttcyhkZXYsICJSZW1haW5pbmcgdmVydGljYWwg cGl4ZWxzIGZvciBib3RoIHBvcmNoZXM6ICV1XG4iLCBwb3JjaGVzKTsNCj4gKw0KPiArCXBv cmNoZXNfcmVtID0gcG9yY2hlcyAtIHZmcF9taW4gLSB2YnBfbWluOw0KPiArCXZmcCA9IHZm cF9taW4gKyAocG9yY2hlc19yZW0gLyAyKTsNCj4gKwlkcm1fZGJnX2ttcyhkZXYsICJWZXJ0 aWNhbCBGcm9udCBQb3JjaDogJXVcbiIsIHZmcCk7DQo+ICsNCj4gKwl2YnAgPSBwb3JjaGVz IC0gdmZwOw0KPiArCWRybV9kYmdfa21zKGRldiwgIlZlcnRpY2FsIEJhY2sgUG9yY2g6ICV1 XG4iLCB2YnApOw0KPiArDQo+ICsJdnRvdGFsID0gdmFjdGl2ZSArIHZmcCArIHZzbGVuICsg dmJwOw0KPiArCWlmIChwYXJhbXMtPm51bV9saW5lcyAhPSB2dG90YWwpIHsNCj4gKwkJRFJN X0VSUk9SKCJJbnZhbGlkIHZlcnRpY2FsIHRvdGFsOiAldXB4IChleHBlY3RlZCAldXB4KVxu IiwNCj4gKwkJCSAgdnRvdGFsLCBwYXJhbXMtPm51bV9saW5lcyk7DQo+ICsJCXJldHVybiAt RUlOVkFMOw0KPiArCX0NCj4gKw0KPiArCW1vZGUtPnZkaXNwbGF5ID0gdmFjdGl2ZTsNCj4g Kwltb2RlLT52c3luY19zdGFydCA9IHZhY3RpdmUgKyB2ZnA7DQo+ICsJbW9kZS0+dnN5bmNf ZW5kID0gdmFjdGl2ZSArIHZmcCArIHZzbGVuOw0KPiArCW1vZGUtPnZ0b3RhbCA9IHZhY3Rp dmUgKyB2ZnAgKyB2c2xlbiArIHZicDsNCg0KU2FtZSBjb21tZW50IGFzIGZvciB0aGUgaG9y aXpvbnRhbCB2YWx1ZXMuDQoNCj4gKw0KPiArCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBF X0RSSVZFUjsNCj4gKwltb2RlLT5mbGFncyA9IERSTV9NT0RFX0ZMQUdfTlZTWU5DIHwgRFJN X01PREVfRkxBR19OSFNZTkM7DQo+ICsJaWYgKGludGVybGFjZSkNCj4gKwkJbW9kZS0+Zmxh Z3MgfD0gRFJNX01PREVfRkxBR19JTlRFUkxBQ0U7DQo+ICsNCj4gKwlkcm1fbW9kZV9zZXRf bmFtZShtb2RlKTsNCj4gKw0KPiArCWlmIChtb2RlLT52dG90YWwgIT0gcGFyYW1zLT5udW1f bGluZXMpDQo+ICsJCXJldHVybiAtRUlOVkFMOw0KDQpTaG91bGQgdGhpcyB0ZXN0IGhhcHBl biBlYXJsaWVyPw0KDQo+ICsNCj4gKwlkcm1fZGJnX2ttcyhkZXYsICJHZW5lcmF0ZWQgbW9k ZSAiIERSTV9NT0RFX0ZNVCAiXG4iLCBEUk1fTU9ERV9BUkcobW9kZSkpOw0KPiArDQo+ICsJ cmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogZHJtX2FuYWxvZ190dl9tb2Rl IC0gY3JlYXRlIGEgZGlzcGxheSBtb2RlIGZvciBhbiBhbmFsb2cgVFYNCj4gKyAqIEBkZXY6 IGRybSBkZXZpY2UNCj4gKyAqIEB0dl9tb2RlOiBUViBNb2RlIHN0YW5kYXJkIHRvIGNyZWF0 ZSBhIG1vZGUgZm9yLiBTZWUgRFJNX01PREVfVFZfTU9ERV8qLg0KPiArICogQHBpeGVsX2Ns b2NrX2h6OiBQaXhlbCBDbG9jayBGcmVxdWVuY3ksIGluIEhlcnR6DQo+ICsgKiBAaGRpc3Bs YXk6IGhkaXNwbGF5IHNpemUNCj4gKyAqIEB2ZGlzcGxheTogdmRpc3BsYXkgc2l6ZQ0KPiAr ICogQGludGVybGFjZTogd2hldGhlciB0byBjb21wdXRlIGFuIGludGVybGFjZWQgbW9kZQ0K PiArICoNCj4gKyAqIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlIGluc3RhbmNlIHN1aXRlZCBmb3INCj4gKyAqIGFuIGFuYWxvZyBUViBvdXRwdXQs IGZvciBvbmUgb2YgdGhlIHVzdWFsIGFuYWxvZyBUViBtb2RlLg0KPiArICoNCj4gKyAqIE5v dGUgdGhhdCBAaGRpc3BsYXkgaXMgbGFyZ2VyIHRoYW4gdGhlIHVzdWFsIGNvbnN0cmFpbnRz IGZvciB0aGUgUEFMDQo+ICsgKiBhbmQgTlRTQyB0aW1pbmdzLCBhbmQgd2UnbGwgY2hvb3Nl IHRvIGlnbm9yZSBtb3N0IHRpbWluZ3MgY29uc3RyYWludHMNCj4gKyAqIHRvIHJlYWNoIHRo b3NlIHJlc29sdXRpb25zLg0KPiArICoNCj4gKyAqIFJldHVybnM6DQo+ICsgKg0KPiArICog QSBwb2ludGVyIHRvIHRoZSBtb2RlLCBhbGxvY2F0ZWQgd2l0aCBkcm1fbW9kZV9jcmVhdGUo KS4gUmV0dXJucyBOVUxMDQo+ICsgKiBvbiBlcnJvci4NCj4gKyAqLw0KPiArc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmRybV9hbmFsb2dfdHZfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LA0KPiArCQkJCQkgICAgZW51bSBkcm1fY29ubmVjdG9yX3R2X21vZGUgdHZfbW9kZSwN Cj4gKwkJCQkJICAgIHVuc2lnbmVkIGxvbmcgcGl4ZWxfY2xvY2tfaHosDQo+ICsJCQkJCSAg ICB1bnNpZ25lZCBpbnQgaGRpc3BsYXksDQo+ICsJCQkJCSAgICB1bnNpZ25lZCBpbnQgdmRp c3BsYXksDQo+ICsJCQkJCSAgICBib29sIGludGVybGFjZSkNCj4gK3sNCj4gKwlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsNCj4gKwllbnVtIGRybV9tb2RlX2FuYWxvZyBhbmFs b2c7DQo+ICsJaW50IHJldDsNCj4gKw0KPiArCXN3aXRjaCAodHZfbW9kZSkgew0KPiArCWNh c2UgRFJNX01PREVfVFZfTU9ERV9OVFNDOg0KPiArCQlmYWxsdGhyb3VnaDsNCj4gKwljYXNl IERSTV9NT0RFX1RWX01PREVfTlRTQ180NDM6DQo+ICsJCWZhbGx0aHJvdWdoOw0KPiArCWNh c2UgRFJNX01PREVfVFZfTU9ERV9OVFNDX0o6DQo+ICsJCWZhbGx0aHJvdWdoOw0KPiArCWNh c2UgRFJNX01PREVfVFZfTU9ERV9QQUxfTToNCj4gKwkJYW5hbG9nID0gRFJNX01PREVfQU5B TE9HX05UU0M7DQo+ICsJCWJyZWFrOw0KPiArDQo+ICsJY2FzZSBEUk1fTU9ERV9UVl9NT0RF X1BBTDoNCj4gKwkJZmFsbHRocm91Z2g7DQo+ICsJY2FzZSBEUk1fTU9ERV9UVl9NT0RFX1BB TF9OOg0KPiArCQlmYWxsdGhyb3VnaDsNCj4gKwljYXNlIERSTV9NT0RFX1RWX01PREVfU0VD QU06DQo+ICsJCWFuYWxvZyA9IERSTV9NT0RFX0FOQUxPR19QQUw7DQo+ICsJCWJyZWFrOw0K PiArDQo+ICsJZGVmYXVsdDoNCj4gKwkJcmV0dXJuIE5VTEw7DQo+ICsJfQ0KPiArDQo+ICsJ bW9kZSA9IGRybV9tb2RlX2NyZWF0ZShkZXYpOw0KPiArCWlmICghbW9kZSkNCj4gKwkJcmV0 dXJuIE5VTEw7DQo+ICsNCj4gKwlyZXQgPSBmaWxsX2FuYWxvZ19tb2RlKGRldiwgbW9kZSwN Cj4gKwkJCSAgICAgICAmdHZfbW9kZXNfcGFyYW1ldGVyc1thbmFsb2ddLA0KPiArCQkJICAg ICAgIHBpeGVsX2Nsb2NrX2h6LCBoZGlzcGxheSwgdmRpc3BsYXksIGludGVybGFjZSk7DQo+ ICsJaWYgKHJldCkNCj4gKwkJZ290byBlcnJfZnJlZV9tb2RlOw0KPiArDQo+ICsJcmV0dXJu IG1vZGU7DQo+ICsNCj4gK2Vycl9mcmVlX21vZGU6DQo+ICsJZHJtX21vZGVfZGVzdHJveShk ZXYsIG1vZGUpOw0KPiArCXJldHVybiBOVUxMOw0KPiArfQ0KPiArRVhQT1JUX1NZTUJPTChk cm1fYW5hbG9nX3R2X21vZGUpOw0KPiArDQo+ICAgLyoqDQo+ICAgICogZHJtX2N2dF9tb2Rl IC1jcmVhdGUgYSBtb2RlbGluZSBiYXNlZCBvbiB0aGUgQ1ZUIGFsZ29yaXRobQ0KPiAgICAq IEBkZXY6IGRybSBkZXZpY2UNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0 cy9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtlZmlsZQ0KPiBpbmRleCBi MjllZjEwODVjYWQuLmIyMmFjOTZmZGQ2NSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3Rlc3RzL01ha2VmaWxlDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9NYWtl ZmlsZQ0KPiBAQCAtMTAsNSArMTAsNiBAQCBvYmotJChDT05GSUdfRFJNX0tVTklUX1RFU1Qp ICs9IFwNCj4gICAJZHJtX2ZyYW1lYnVmZmVyX3Rlc3QubyBcDQo+ICAgCWRybV9rdW5pdF9o ZWxwZXJzLm8gXA0KPiAgIAlkcm1fbW1fdGVzdC5vIFwNCj4gKwlkcm1fbW9kZXNfdGVzdC5v IFwNCj4gICAJZHJtX3BsYW5lX2hlbHBlcl90ZXN0Lm8gXA0KPiAgIAlkcm1fcmVjdF90ZXN0 Lm8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fbW9kZXNfdGVz dC5jIGIvZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9tb2Rlc190ZXN0LmMNCj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi5iZTFmZjBlMjEwMjINCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX21vZGVz X3Rlc3QuYw0KPiBAQCAtMCwwICsxLDEzNiBAQA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjANCj4gKy8qDQo+ICsgKiBLdW5pdCB0ZXN0IGZvciBkcm1fbW9kZXMg ZnVuY3Rpb25zDQo+ICsgKi8NCj4gKw0KPiArI2luY2x1ZGUgPGt1bml0L3Rlc3QuaD4NCj4g Kw0KPiArI2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4NCj4gKw0KPiArI2luY2x1ZGUgImRy bV9rdW5pdF9oZWxwZXJzLmgiDQo+ICsNCj4gK3N0cnVjdCBkcm1fbW9kZXNfdGVzdF9wcml2 IHsNCj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtOw0KPiArfTsNCj4gKw0KPiArc3RhdGlj IGludCBkcm1fbW9kZXNfdGVzdF9pbml0KHN0cnVjdCBrdW5pdCAqdGVzdCkNCj4gK3sNCj4g KwlzdHJ1Y3QgZHJtX21vZGVzX3Rlc3RfcHJpdiAqcHJpdjsNCj4gKw0KPiArCXByaXYgPSBr dW5pdF9remFsbG9jKHRlc3QsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpOw0KPiArCUtV TklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCBwcml2KTsNCj4gKw0KPiArCXByaXYtPmRybSA9 IGRybV9rdW5pdF9kZXZpY2VfaW5pdCgiZHJtLW1vZGVzLXRlc3QiKTsNCj4gKwlLVU5JVF9B U1NFUlRfTk9UX0VSUl9PUl9OVUxMKHRlc3QsIHByaXYtPmRybSk7DQo+ICsNCj4gKwl0ZXN0 LT5wcml2ID0gcHJpdjsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0 aWMgdm9pZCBkcm1fbW9kZXNfdGVzdF9leGl0KHN0cnVjdCBrdW5pdCAqdGVzdCkNCj4gK3sN Cj4gKwlzdHJ1Y3QgZHJtX21vZGVzX3Rlc3RfcHJpdiAqcHJpdiA9IHRlc3QtPnByaXY7DQo+ ICsNCj4gKwlkcm1fa3VuaXRfZGV2aWNlX2V4aXQocHJpdi0+ZHJtKTsNCj4gK30NCj4gKw0K PiArc3RhdGljIHZvaWQgZHJtX21vZGVzX2FuYWxvZ190dl9udHNjXzQ4MGkoc3RydWN0IGt1 bml0ICp0ZXN0KQ0KPiArew0KPiArCXN0cnVjdCBkcm1fbW9kZXNfdGVzdF9wcml2ICpwcml2 ID0gdGVzdC0+cHJpdjsNCj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsNCj4g Kw0KPiArCW1vZGUgPSBkcm1fYW5hbG9nX3R2X21vZGUocHJpdi0+ZHJtLA0KPiArCQkJCSAg RFJNX01PREVfVFZfTU9ERV9OVFNDLA0KPiArCQkJCSAgMTM1MDAgKiAxMDAwLCA3MjAsIDQ4 MCwNCg0KSFpfUEVSX0tIWg0KDQo+ICsJCQkJICB0cnVlKTsNCj4gKwlLVU5JVF9BU1NFUlRf Tk9UX05VTEwodGVzdCwgbW9kZSk7DQo+ICsNCj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVzdCwg ZHJtX21vZGVfdnJlZnJlc2gobW9kZSksIDYwKTsNCj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVz dCwgbW9kZS0+aGRpc3BsYXksIDcyMCk7DQo+ICsNCj4gKwkvKiBCVC42MDEgZGVmaW5lcyBo c3luY19zdGFydCBhdCA3MzYgZm9yIDQ4MGkgKi8NCj4gKwlLVU5JVF9FWFBFQ1RfRVEodGVz dCwgbW9kZS0+aHN5bmNfc3RhcnQsIDczNik7DQo+ICsNCj4gKwkvKiA2My41NTZ1cyAqIDEz LjVNSHogPSA4NTggcGl4ZWxzICovDQoNCkkga2luZCBvZiBnZXQgd2hhdCB0aGUgY29tbWVu dCB3YW50cyB0byB0ZWxsIG1lLCBidXQgdGhlIHVuaXRzIGRvbid0IGFkZCANCnVwLiBJIHRo aW5rIHlvdSB3YW50IHRvIGVuZCB1cCB3aXRoIDg1OCBwaXhlbHMvbGluZSA9DQoNCiAgIDEz LDUgcGl4ZWxzL3NlY29uZCAvICg2MC8ySSBmcmFtZS9zZWNvbmQgKiA1MjUgbGluZXMvZnJh bWUpDQoNCkk6IGludGVybGFjZWQNCg0KTWF5YmUganVzdCByZW1vdmUgdGhlIHNob3J0IGNv bW1lbnRzIGFuZCBkb2N1bWVudCB0aGF0IGluIGEgbW9yZSANCm1lYW5pbmdmdWwgcGxhY2Uu DQoNCg0KPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCBtb2RlLT5odG90YWwsIDg1OCk7DQo+ ICsJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIG1vZGUtPnZkaXNwbGF5LCA0ODApOw0KPiArCUtV TklUX0VYUEVDVF9FUSh0ZXN0LCBtb2RlLT52dG90YWwsIDUyNSk7DQo+ICt9DQo+ICsNCj4g K3N0YXRpYyB2b2lkIGRybV9tb2Rlc19hbmFsb2dfdHZfbnRzY180ODBpX2lubGluZWQoc3Ry dWN0IGt1bml0ICp0ZXN0KQ0KPiArew0KPiArCXN0cnVjdCBkcm1fbW9kZXNfdGVzdF9wcml2 ICpwcml2ID0gdGVzdC0+cHJpdjsNCj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZXhw ZWN0ZWQsICptb2RlOw0KPiArDQo+ICsJZXhwZWN0ZWQgPSBkcm1fYW5hbG9nX3R2X21vZGUo cHJpdi0+ZHJtLA0KPiArCQkJCSAgICAgIERSTV9NT0RFX1RWX01PREVfTlRTQywNCj4gKwkJ CQkgICAgICAxMzUwMCAqIDEwMDAsIDcyMCwgNDgwLA0KDQpIWl9QRVJfS0haDQoNCj4gKwkJ CQkgICAgICB0cnVlKTsNCj4gKwlLVU5JVF9BU1NFUlRfTk9UX05VTEwodGVzdCwgZXhwZWN0 ZWQpOw0KPiArDQo+ICsJbW9kZSA9IGRybV9tb2RlX2FuYWxvZ19udHNjXzQ4MGkocHJpdi0+ ZHJtKTsNCj4gKwlLVU5JVF9BU1NFUlRfTk9UX05VTEwodGVzdCwgbW9kZSk7DQo+ICsNCj4g KwlLVU5JVF9FWFBFQ1RfVFJVRSh0ZXN0LCBkcm1fbW9kZV9lcXVhbChleHBlY3RlZCwgbW9k ZSkpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBkcm1fbW9kZXNfYW5hbG9nX3R2X3Bh bF81NzZpKHN0cnVjdCBrdW5pdCAqdGVzdCkNCj4gK3sNCj4gKwlzdHJ1Y3QgZHJtX21vZGVz X3Rlc3RfcHJpdiAqcHJpdiA9IHRlc3QtPnByaXY7DQo+ICsJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGU7DQo+ICsNCj4gKwltb2RlID0gZHJtX2FuYWxvZ190dl9tb2RlKHByaXYt PmRybSwNCj4gKwkJCQkgIERSTV9NT0RFX1RWX01PREVfUEFMLA0KPiArCQkJCSAgMTM1MDAg KiAxMDAwLCA3MjAsIDU3NiwNCj4gKwkJCQkgIHRydWUpOw0KPiArCUtVTklUX0FTU0VSVF9O T1RfTlVMTCh0ZXN0LCBtb2RlKTsNCj4gKw0KPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCBk cm1fbW9kZV92cmVmcmVzaChtb2RlKSwgNTApOw0KPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0 LCBtb2RlLT5oZGlzcGxheSwgNzIwKTsNCj4gKw0KPiArCS8qIEJULjYwMSBkZWZpbmVzIGhz eW5jX3N0YXJ0IGF0IDczMiBmb3IgNTc2aSAqLw0KPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0 LCBtb2RlLT5oc3luY19zdGFydCwgNzMyKTsNCj4gKw0KPiArCS8qIDY0dXMgKiAxMy41TUh6 ID0gODY0IHBpeGVscyAqLw0KPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCBtb2RlLT5odG90 YWwsIDg2NCk7DQo+ICsJS1VOSVRfRVhQRUNUX0VRKHRlc3QsIG1vZGUtPnZkaXNwbGF5LCA1 NzYpOw0KPiArCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCBtb2RlLT52dG90YWwsIDYyNSk7DQo+ ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIGRybV9tb2Rlc19hbmFsb2dfdHZfcGFsXzU3Nmlf aW5saW5lZChzdHJ1Y3Qga3VuaXQgKnRlc3QpDQo+ICt7DQo+ICsJc3RydWN0IGRybV9tb2Rl c190ZXN0X3ByaXYgKnByaXYgPSB0ZXN0LT5wcml2Ow0KPiArCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICpleHBlY3RlZCwgKm1vZGU7DQo+ICsNCj4gKwlleHBlY3RlZCA9IGRybV9hbmFs b2dfdHZfbW9kZShwcml2LT5kcm0sDQo+ICsJCQkJICAgICAgRFJNX01PREVfVFZfTU9ERV9Q QUwsDQo+ICsJCQkJICAgICAgMTM1MDAgKiAxMDAwLCA3MjAsIDU3NiwNCj4gKwkJCQkgICAg ICB0cnVlKTsNCj4gKwlLVU5JVF9BU1NFUlRfTk9UX05VTEwodGVzdCwgZXhwZWN0ZWQpOw0K PiArDQo+ICsJbW9kZSA9IGRybV9tb2RlX2FuYWxvZ19wYWxfNTc2aShwcml2LT5kcm0pOw0K PiArCUtVTklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCBtb2RlKTsNCj4gKw0KPiArCUtVTklU X0VYUEVDVF9UUlVFKHRlc3QsIGRybV9tb2RlX2VxdWFsKGV4cGVjdGVkLCBtb2RlKSk7DQo+ ICt9DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBkcm1fbW9kZXNfYW5hbG9n X3R2X3Rlc3RzW10gPSB7DQo+ICsJS1VOSVRfQ0FTRShkcm1fbW9kZXNfYW5hbG9nX3R2X250 c2NfNDgwaSksDQo+ICsJS1VOSVRfQ0FTRShkcm1fbW9kZXNfYW5hbG9nX3R2X250c2NfNDgw aV9pbmxpbmVkKSwNCj4gKwlLVU5JVF9DQVNFKGRybV9tb2Rlc19hbmFsb2dfdHZfcGFsXzU3 NmkpLA0KPiArCUtVTklUX0NBU0UoZHJtX21vZGVzX2FuYWxvZ190dl9wYWxfNTc2aV9pbmxp bmVkKSwNCj4gKwl7IH0NCj4gK307DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3Vp dGUgZHJtX21vZGVzX2FuYWxvZ190dl90ZXN0X3N1aXRlID0gew0KPiArCS5uYW1lID0gImRy bV9tb2Rlc19hbmFsb2dfdHYiLA0KPiArCS5pbml0ID0gZHJtX21vZGVzX3Rlc3RfaW5pdCwN Cj4gKwkuZXhpdCA9IGRybV9tb2Rlc190ZXN0X2V4aXQsDQo+ICsJLnRlc3RfY2FzZXMgPSBk cm1fbW9kZXNfYW5hbG9nX3R2X3Rlc3RzLA0KPiArfTsNCj4gKw0KPiAra3VuaXRfdGVzdF9z dWl0ZXMoDQo+ICsJJmRybV9tb2Rlc19hbmFsb2dfdHZfdGVzdF9zdWl0ZQ0KPiArKTsNCj4g K01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2RybV9tb2Rlcy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgNCj4gaW5kZXggYTgwYWU5 NjM5ZTk2Li5kYzAzY2UwM2UyMjkgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9t b2Rlcy5oDQo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5oDQo+IEBAIC00NDMsNiAr NDQzLDIzIEBAIGJvb2wgZHJtX21vZGVfaXNfNDIwX2Fsc28oY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X2luZm8gKmRpc3BsYXksDQo+ICAgYm9vbCBkcm1fbW9kZV9pc180MjAoY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpc3BsYXksDQo+ICAgCQkgICAgIGNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsNCj4gICANCj4gK3N0cnVjdCBkcm1fZGlz cGxheV9tb2RlICpkcm1fYW5hbG9nX3R2X21vZGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwN Cj4gKwkJCQkJICAgIGVudW0gZHJtX2Nvbm5lY3Rvcl90dl9tb2RlIG1vZGUsDQo+ICsJCQkJ CSAgICB1bnNpZ25lZCBsb25nIHBpeGVsX2Nsb2NrX2h6LA0KPiArCQkJCQkgICAgdW5zaWdu ZWQgaW50IGhkaXNwbGF5LA0KPiArCQkJCQkgICAgdW5zaWduZWQgaW50IHZkaXNwbGF5LA0K PiArCQkJCQkgICAgYm9vbCBpbnRlcmxhY2UpOw0KPiArDQo+ICtzdGF0aWMgaW5saW5lIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkcm1fbW9kZV9hbmFsb2dfbnRzY180ODBpKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpDQo+ICt7DQo+ICsJcmV0dXJuIGRybV9hbmFsb2dfdHZfbW9k ZShkZXYsIERSTV9NT0RFX1RWX01PREVfTlRTQywgMTM1MDAwMDAsIDcyMCwgNDgwLCB0cnVl KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqZHJtX21vZGVfYW5hbG9nX3BhbF81NzZpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpDQo+ ICt7DQo+ICsJcmV0dXJuIGRybV9hbmFsb2dfdHZfbW9kZShkZXYsIERSTV9NT0RFX1RWX01P REVfUEFMLCAxMzUwMDAwMCwgNzIwLCA1NzYsIHRydWUpOw0KPiArfQ0KPiArDQo+ICAgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9jdnRfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LA0KPiAgIAkJCQkgICAgICBpbnQgaGRpc3BsYXksIGludCB2ZGlzcGxheSwgaW50IHZy ZWZyZXNoLA0KPiAgIAkJCQkgICAgICBib29sIHJlZHVjZWQsIGJvb2wgaW50ZXJsYWNlZCwN Cj4gDQoNCi0tIA0KVGhvbWFzIFppbW1lcm1hbm4NCkdyYXBoaWNzIERyaXZlciBEZXZlbG9w ZXINClNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSA0KTWF4ZmVsZHN0ci4g NSwgOTA0MDkgTsO8cm5iZXJnLCBHZXJtYW55DQooSFJCIDM2ODA5LCBBRyBOw7xybmJlcmcp DQpHZXNjaMOkZnRzZsO8aHJlcjogSXZvIFRvdGV2DQo= --------------cvQbkQQo4p5S70TWUoA9OpM8-- --------------U1O9sJMHnBIq0KE1ICICUCtJ Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmMtduwFAwAAAAAACgkQlh/E3EQov+Dx HhAAjpX74+GX2ZTv4+ZYzADFd4TP443ZcPNPsKZR8iZp9eNyUhrcu69K4JTDt8SfiP2Z3pRcG324 xzCDuEEQZmTryijKzv/cmg+12rD52V3BAgHiawC8XaYkuwPmlGRqu6OJRGZ2qjSymVY5KPwxZj8q fWxjPVWhFNELgL4XW55XuIRZCyC9g/296aCuaakcv0spffh+sLERklrpwjy9m8DTMHPWK249yy3N IBzuzPHb+WGNeuW0TzBGAnAeY9KeL1RojMcp1GCjtrSl1fONRVoXyUNBGr60xoHSN6+UG7PR+hs5 EWiHPatQxvVwGlH95HJ2TfnDyuyZ1oOGBhuEf5DgoEqcjrBkK+gZD2ie10j1aC2GmJJwq24G8Gvb wv+DD8o/prZQV6DYlqq7DBwFGFPtcs4NPFbt0W8HrmGJLNbagaPBBLBz33f55xGqolw+2dewFyIL PnmgGOILqaUYsfqFowd4m/9i+kjk+8eYAJ6JVRZK5mEz8fsTZzS436CfM5zNuyBbMHaXtt2lhLjg Pk5AGZjaa37Fblb/CdKA7/ALj/VlDoSsuRxhFX1/NvOEY+gUhbgKx1MvLzZYWfV1AIB1LMAAok+L 0FRDGwzObgCut/y8vUek8Y7Ryp47APQcKCoWz1+nI+gCgkon/GcU0CLxipkSGh8I3BjAAyP8ttnJ rv8= =nB7L -----END PGP SIGNATURE----- --------------U1O9sJMHnBIq0KE1ICICUCtJ-- --===============7921016153970531791== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel --===============7921016153970531791==--