From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [RFC] drm: rcar-du: Remove i2c slave encoder interface for hdmi encoder Date: Fri, 26 Feb 2016 01:04:19 +0200 Message-ID: <4483538.E0I7hvUfpU@avalon> References: <1452358346-6339-1-git-send-email-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [IPv6:2001:4b98:dc2:45:216:3eff:febb:480d]) by gabe.freedesktop.org (Postfix) with ESMTPS id EBE506E6D1 for ; Thu, 25 Feb 2016 23:04:18 +0000 (UTC) In-Reply-To: <1452358346-6339-1-git-send-email-architt@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgQXJjaGl0LAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2gsIEkgZmluYWxseSBnb3QgYXJvdW5k IHRvIHRlc3RpbmcgaXQuIFNvcnJ5IGZvciB0aGUgCmRlbGF5LgoKT24gU2F0dXJkYXkgMDkgSmFu dWFyeSAyMDE2IDIyOjIyOjI2IEFyY2hpdCBUYW5lamEgd3JvdGU6Cj4gVGhlIGhkbWkgb3V0cHV0 IGluIHJjYXItZHUgdXNlcyB0aGUgaTJjIHNsYXZlIGVuY29kZXIgaW50ZXJmYWNlIHRvIGxpbmsK PiB0byB0aGUgYWR2NzUxMSBlbmNvZGVyIGNoaXAuIFRoZSBrbXMgZHJpdmVyIGNyZWF0ZXMgZW5j b2RlciBhbmQgY29ubmVjdG9yCj4gZW50aXRpZXMgdGhhdCBpbnRlcm5hbGx5IHVzZXMgdGhlIGRy bV9lbmNvZGVyX3NsYXZlX2Z1bmNzIG9wcyBwcm92aWRlZCBieQo+IHRoZSBzbGF2ZSBlbmNvZGVy IGRyaXZlci4KPiAKPiBDaGFuZ2UgdGhlIGRyaXZlciBzdWNoIHRoYXQgaXQgZXhwZWN0cyBhIGJy aWRnZSBlbnRpdHkgaW5zdGVhZCBvZiBhIHNsYXZlCj4gZW5jb2Rlci4gVGhlIGhkbWkgY29ubmVj dG9yIGNvZGUgaXNuJ3QgbmVlZGVkIGFueW1vcmUgYXMgd2UgZXhwZWN0IHRoZQo+IGFkdjc1MTEg YnJpZGdlIGRyaXZlciB0byBjcmVhdGUvbWFuYWdlIHRoZSBjb25uZWN0b3IuCj4gCj4gTm90ZSB0 aGF0IHRoZSBrbXMgZHJpdmVyIHN0aWxsIGV4cGVjdHMgYSBjb25uZWN0b3Igbm9kZSBmb3IgaGRt aSB0byBiZQo+IHByZXNlbnQgaW4gRFQuIFRoaXMgbm9kZSBoYXMgbm8gY29ubmVjdGlvbiB0byB0 aGUgY29ubmVjdG9yIGNyZWF0ZWQKPiBieSB0aGUgYnJpZGdlIGRyaXZlci4KPiAKPiBDb21waWxl IHRlc3RlZCBvbmx5LgoKQW5kIGRvZXNuJ3QgYXBwbHkgYW55bW9yZSwgYnV0IHRoYXQncyBteSBm YXVsdCBmb3Igbm90IHJldmlld2luZyBpdCBmYXN0IAplbm91Z2gsIHNvIEkndmUgcmViYXNlZCBp dCAoYXMgd2VsbCBhcyB5b3VyICJbUEFUQ0hdIGRybTogaTJjOiBhZHY3NTExOiAKQ29udmVydCB0 byBkcm1fYnJpZGdlIiBwYXRjaCkuIEkndmUgcHVzaGVkIHRoZSByZXN1bHQgdG8KCglnaXQ6Ly9s aW51eHR2Lm9yZy9waW5jaGFydGwvbWVkaWEuZ2l0IGRybS9kdS9icmlkZ2UKClRoZSByZWJhc2Ug d2Fzbid0IGRpZmZpY3VsdCwgSSBkb24ndCBoYXZlIG11Y2ggdG8gc2F5IGFib3V0IHRoYXQuIFdo YXQgSSBtdXN0IApyZXBvcnQsIGhvd2V2ZXIsIGlzIHRoYXQgaXQgZG9lc24ndCB3b3JrIDotLyBJ IHJlY2VpdmUgdGhlIGZvbGxvd2luZyBrZXJuZWwgCndhcm5pbmc6CgpbICAgIDIuMTY1NTY5XSAt LS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KWyAgICAyLjE3MDIwNV0gV0FSTklO RzogQ1BVOiAyIFBJRDogNiBhdCAKL2hvbWUvbGF1cmVudC9zcmMvaW9iL3JlbmVzYXMvbGludXgv bGliL2tvYmplY3QuYzoyNDQgCmtvYmplY3RfYWRkX2ludGVybmFsKzB4MTM0LzB4MzY0KCkKWyAg ICAyLjE4MTYyN10ga29iamVjdF9hZGRfaW50ZXJuYWwgZmFpbGVkIGZvciBjYXJkMC1IRE1JLUEt MSAoZXJyb3I6IC0yIApwYXJlbnQ6IGNhcmQwKQpbICAgIDIuMTg5Mzk0XSBNb2R1bGVzIGxpbmtl ZCBpbjoKWyAgICAyLjE5MjQ2Nl0gQ1BVOiAyIFBJRDogNiBDb21tOiBrd29ya2VyL3UxNjowIE5v dCB0YWludGVkIDQuNS4wLXJjNS0wMDY3Ny0KZzZlMmQ3Y2Q3NzQ3MyAjNjQ5ClsgICAgMi4yMDA5 MTRdIEhhcmR3YXJlIG5hbWU6IEdlbmVyaWMgUjhBNzc5MCAoRmxhdHRlbmVkIERldmljZSBUcmVl KQpbICAgIDIuMjA3MTAzXSBXb3JrcXVldWU6IGRlZmVyd3EgZGVmZXJyZWRfcHJvYmVfd29ya19m dW5jClsgICAgMi4yMTIzNDFdIEJhY2t0cmFjZTogClsgICAgMi4yMTQ4MTZdIFs8YzAwMTRjOTg+ XSAoZHVtcF9iYWNrdHJhY2UpIGZyb20gWzxjMDAxNGZiMD5dIAooc2hvd19zdGFjaysweDIwLzB4 MjQpClsgICAgMi4yMjIzOTZdICByNjpjMDU5MTkxMCByNTowMDAwMDAwMCByNDo2MDAwMDAxMyBy MzplYTBlNDAwMApbICAgIDIuMjI4MTA0XSBbPGMwMDE0ZjkwPl0gKHNob3dfc3RhY2spIGZyb20g WzxjMDFmMjU5Yz5dIAooZHVtcF9zdGFjaysweDhjLzB4YWMpClsgICAgMi4yMzUzMzldIFs8YzAx ZjI1MTA+XSAoZHVtcF9zdGFjaykgZnJvbSBbPGMwMDJhZGI4Pl0gCih3YXJuX3Nsb3dwYXRoX2Nv bW1vbisweDg4LzB4YzQpClsgICAgMi4yNDM0MzhdICByNTowMDAwMDBmNCByNDplYTBlNWI0OApb ICAgIDIuMjQ3MDM4XSBbPGMwMDJhZDMwPl0gKHdhcm5fc2xvd3BhdGhfY29tbW9uKSBmcm9tIFs8 YzAwMmFlYjA+XSAKKHdhcm5fc2xvd3BhdGhfZm10KzB4NDAvMHg0OCkKWyAgICAyLjI1NTc0Nl0g IHI4OmVhMzhhYzA4IHI3OmVhMzhhYzAwIHI2OmZmZmZmZmZlIHI1OjAwMDAwMDAwIHI0OmVhMzhh YTA4ClsgICAgMi4yNjI1MDNdIFs8YzAwMmFlNzQ+XSAod2Fybl9zbG93cGF0aF9mbXQpIGZyb20g WzxjMDFmNTRmMD5dIAooa29iamVjdF9hZGRfaW50ZXJuYWwrMHgxMzQvMHgzNjQpClsgICAgMi4y NzEzODVdICByMzpjMDQ3MTVjOCByMjpjMDU5MWJmNApbICAgIDIuMjc0OTg2XSBbPGMwMWY1M2Jj Pl0gKGtvYmplY3RfYWRkX2ludGVybmFsKSBmcm9tIFs8YzAxZjU5MDQ+XSAKKGtvYmplY3RfYWRk KzB4NTQvMHg5YykKWyAgICAyLjI4MzE3M10gIHI4OjAwMDAwMDAwIHI3OmVhMzhhYzAwIHI2OmVh MzhhYzA4IHI1OjAwMDAwMDAwIHI0OmVhMzhhYTA4ClsgICAgMi4yODk5MzhdIFs8YzAxZjU4YjQ+ XSAoa29iamVjdF9hZGQpIGZyb20gWzxjMDJjNmQ5OD5dIAooZGV2aWNlX2FkZCsweGUwLzB4NTU4 KQpbICAgIDIuMjk3MzQzXSAgcjM6MDAwMDAwMDAgcjI6MDAwMDAwMDAKWyAgICAyLjMwMDkzOF0g IHI2OmVhMzhhYTA4IHI1OjAwMDAwMDAwIHI0OmVhMzhhYTAwClsgICAgMi4zMDU1OTJdIFs8YzAy YzZjYjg+XSAoZGV2aWNlX2FkZCkgZnJvbSBbPGMwMmM3MmMwPl0gCihkZXZpY2VfY3JlYXRlX2dy b3Vwc192YXJncysweGIwLzB4ZTApClsgICAgMi4zMTQyMTNdICByMTA6ZTg3YWY4NmMgcjk6ZTg3 YzgyNmMgcjg6MDAwMDAwMDAgcjc6ZWEzOGFjMDAgcjY6ZTlhMWY5NjAgCnI1OmU5YTE4YTQwClsg ICAgMi4zMjIxMDFdICByNDplYTM4YWEwMApbICAgIDIuMzI0NjUxXSBbPGMwMmM3MjEwPl0gKGRl dmljZV9jcmVhdGVfZ3JvdXBzX3ZhcmdzKSBmcm9tIFs8YzAyYzczMjQ+XSAKKGRldmljZV9jcmVh dGVfd2l0aF9ncm91cHMrMHgzNC8weDNjKQpbICAgIDIuMzM0NTc1XSAgcjg6ZTlhMWY5NDAgcjc6 YzA2OWNjZWMgcjY6YzA4ZDRhNTQgcjU6ZWEzODhjMDAgcjQ6YzA2OWNjZWMgCnIzOmU5YTFmOTYw ClsgICAgMi4zNDIzODVdIFs8YzAyYzcyZjA+XSAoZGV2aWNlX2NyZWF0ZV93aXRoX2dyb3Vwcykg ZnJvbSBbPGMwMmE2Y2VjPl0gCihkcm1fc3lzZnNfY29ubmVjdG9yX2FkZCsweDZjLzB4ZTApClsg ICAgMi4zNTIwNDhdICByNDplOWExZjk2MApbICAgIDIuMzU0NjAwXSBbPGMwMmE2YzgwPl0gKGRy bV9zeXNmc19jb25uZWN0b3JfYWRkKSBmcm9tIFs8YzAyYWExZjA+XSAKKGRybV9jb25uZWN0b3Jf cmVnaXN0ZXIrMHg0Yy8weDdjKQpbICAgIDIuMzY0MDAyXSAgcjc6ZWEzODhjMDAgcjY6ZWEzODhk NzAgcjU6ZTlhMWY5NzQgcjQ6ZTlhMWY5NjAKWyAgICAyLjM2OTcwOV0gWzxjMDJhYTFhND5dIChk cm1fY29ubmVjdG9yX3JlZ2lzdGVyKSBmcm9tIFs8YzAyYzMyNzA+XSAKKGFkdjc1MTFfYnJpZGdl X2F0dGFjaCsweDVjLzB4YTgpClsgICAgMi4zNzg5MzhdICByNzplOTlmYTU1MCByNjowMDAwMDAw MCByNTplOWExZjk2MCByNDplOWExZjk0MApbICAgIDIuMzg0NjQzXSBbPGMwMmMzMjE0Pl0gKGFk djc1MTFfYnJpZGdlX2F0dGFjaCkgZnJvbSBbPGMwMmJkMDkwPl0gCihkcm1fYnJpZGdlX2F0dGFj aCsweDQ4LzB4NjQpClsgICAgMi4zOTM0MzhdICByNjowMDAwMDAwMCByNTplOTgxNDAxMCByNDpl OTlmMWM5MCByMzpjMDJjMzIxNApbICAgIDIuMzk5MTQyXSBbPGMwMmJkMDQ4Pl0gKGRybV9icmlk Z2VfYXR0YWNoKSBmcm9tIFs8YzAyYzIyYTg+XSAKKHJjYXJfZHVfaGRtaWVuY19pbml0KzB4OTQv MHgxMDgpClsgICAgMi40MDc5NDJdIFs8YzAyYzIyMTQ+XSAocmNhcl9kdV9oZG1pZW5jX2luaXQp IGZyb20gWzxjMDJiZjllYz5dIAoocmNhcl9kdV9lbmNvZGVyX2luaXQrMHgxNGMvMHgxOWMpClsg ICAgMi40MTcwODRdICByODowMDAwMDAwMiByNzowMDAwMDAwNCByNjowMDAwMDAwMiByNTplOTgx NDAxMCByNDplOTlmMWM5MApbICAgIDIuNDIzODQwXSBbPGMwMmJmOGEwPl0gKHJjYXJfZHVfZW5j b2Rlcl9pbml0KSBmcm9tIFs8YzAyYzBhNzA+XSAKKHJjYXJfZHVfbW9kZXNldF9pbml0KzB4NGE0 LzB4NTc0KQpbICAgIDIuNDMyOTgyXSAgcjEwOjAwMDAwMDAyIHI4OjAwMDAwMDAxIHI3OmMwNGI3 ZTEwIHI2OmU4N2FmODZjIHI1OmU4N2I4OGI0IApyNDplOTgxNDAxMApbICAgIDIuNDQwODczXSBb PGMwMmMwNWNjPl0gKHJjYXJfZHVfbW9kZXNldF9pbml0KSBmcm9tIFs8YzAyYmY2MDA+XSAKKHJj YXJfZHVfcHJvYmUrMHhmYy8weDIzMCkKWyAgICAyLjQ0OTMxOV0gIHIxMDowMDAwMDAwMSByOTow MDAwMDAwMCByODowMDAwMDAwMCByNzplYTMxNWMxMCByNjplYTM4OGMwMCAKcjU6ZWEzMTVjMDAK WyAgICAyLjQ1NzIwNl0gIHI0OmU5ODE0MDEwClsgICAgMi40NTk3NTZdIFs8YzAyYmY1MDQ+XSAo cmNhcl9kdV9wcm9iZSkgZnJvbSBbPGMwMmNjMzYwPl0gCihwbGF0Zm9ybV9kcnZfcHJvYmUrMHg2 MC8weGMwKQpbICAgIDIuNDY3OTQzXSAgcjEwOjAwMDAwMDA1IHI4OmMwNjlkMzFjIHI3OmMwNjlk MzFjIHI2OmZmZmZmZGZiIHI1OmVhMzE1YzEwIApyNDpmZmZmZmZmZQpbICAgIDIuNDc1ODMzXSBb PGMwMmNjMzAwPl0gKHBsYXRmb3JtX2Rydl9wcm9iZSkgZnJvbSBbPGMwMmNhMWQwPl0gCihkcml2 ZXJfcHJvYmVfZGV2aWNlKzB4MjI0LzB4NDQwKQpbICAgIDIuNDg0NzE1XSAgcjc6YzA2YjRiZDAg cjY6YzA4ZDRiMDQgcjU6YzA4ZDRhZmMgcjQ6ZWEzMTVjMTAKWyAgICAyLjQ5MDQxOV0gWzxjMDJj OWZhYz5dIChkcml2ZXJfcHJvYmVfZGV2aWNlKSBmcm9tIFs8YzAyY2E2YmM+XSAKKF9fZGV2aWNl X2F0dGFjaF9kcml2ZXIrMHg5MC8weDljKQpbICAgIDIuNDk5NDc0XSAgcjEwOjAwMDAwMDAwIHI5 OjAwMDAwMDAwIHI4OmVhMmY5ZjAwIHI3OjAwMDAwMDAxIHI2OmVhMzE1YzEwIApyNTplYTBlNWU3 MApbICAgIDIuNTA3MzYwXSAgcjQ6YzA2OWQzMWMKWyAgICAyLjUwOTkwN10gWzxjMDJjYTYyYz5d IChfX2RldmljZV9hdHRhY2hfZHJpdmVyKSBmcm9tIFs8YzAyYzdmYzQ+XSAKKGJ1c19mb3JfZWFj aF9kcnYrMHg1NC8weDljKQpbICAgIDIuNTE4NzAyXSAgcjY6YzAyY2E2MmMgcjU6ZWEwZTVlNzAg cjQ6MDAwMDAwMDAgcjM6ZWEwZTQwMDAKWyAgICAyLjUyNDQwNl0gWzxjMDJjN2Y3MD5dIChidXNf Zm9yX2VhY2hfZHJ2KSBmcm9tIFs8YzAyYzllOTQ+XSAKKF9fZGV2aWNlX2F0dGFjaCsweGFjLzB4 MTQwKQpbICAgIDIuNTMyNjc5XSAgcjY6YzA2OWQ2ZDggcjU6ZWEzMTVjNDQgcjQ6ZWEzMTVjMTAK WyAgICAyLjUzNzMzMV0gWzxjMDJjOWRlOD5dIChfX2RldmljZV9hdHRhY2gpIGZyb20gWzxjMDJj YTZlND5dIAooZGV2aWNlX2luaXRpYWxfcHJvYmUrMHgxYy8weDIwKQpbICAgIDIuNTQ1ODY1XSAg cjc6YzA2YjRiZDAgcjY6YzA2OWQ2ZDggcjU6ZWEzMTVjMTAgcjQ6ZWEzMTVjMTAKWyAgICAyLjU1 MTU2OF0gWzxjMDJjYTZjOD5dIChkZXZpY2VfaW5pdGlhbF9wcm9iZSkgZnJvbSBbPGMwMmM5MWRj Pl0gCihidXNfcHJvYmVfZGV2aWNlKzB4OTQvMHg5YykKWyAgICAyLjU2MDE5Ml0gWzxjMDJjOTE0 OD5dIChidXNfcHJvYmVfZGV2aWNlKSBmcm9tIFs8YzAyYzk3Nzg+XSAKKGRlZmVycmVkX3Byb2Jl X3dvcmtfZnVuYysweDgwLzB4Y2MpClsgICAgMi41NjkxNjBdICByNjpjMDY5ZDY4MCByNTpjMDY5 ZDY2MCByNDplYTMxNWMxMCByMzowMDAwMDAwMApbICAgIDIuNTc0ODY5XSBbPGMwMmM5NmY4Pl0g KGRlZmVycmVkX3Byb2JlX3dvcmtfZnVuYykgZnJvbSBbPGMwMDQyY2FjPl0gCihwcm9jZXNzX29u ZV93b3JrKzB4MTcwLzB4NDk0KQpbICAgIDIuNTg0MDExXSAgcjc6YzA2YjBhMzggcjY6ZWEwODk0 MDAgcjU6YzA2OWQ2OTQgcjQ6ZWEwM2UwMDAKWyAgICAyLjU4OTcxNl0gWzxjMDA0MmIzYz5dIChw cm9jZXNzX29uZV93b3JrKSBmcm9tIFs8YzAwNDMwNTQ+XSAKKHdvcmtlcl90aHJlYWQrMHgzYy8w eDU1YykKWyAgICAyLjU5NzgxNV0gIHIxMDplYTA4OTQwMCByOTpjMDY2YzEwMCByODowMDAwMDA4 OCByNzplYTAzZTAxOCByNjplYTA4OTQxOCAKcjU6ZWEwODk0MDAKWyAgICAyLjYwNTcwMV0gIHI0 OmVhMDNlMDAwClsgICAgMi42MDgyNTNdIFs8YzAwNDMwMTg+XSAod29ya2VyX3RocmVhZCkgZnJv bSBbPGMwMDQ5MGUwPl0gCihrdGhyZWFkKzB4ZjQvMHgxMTQpClsgICAgMi42MTU1NzFdICByMTA6 MDAwMDAwMDAgcjk6MDAwMDAwMDAgcjg6MDAwMDAwMDAgcjc6YzAwNDMwMTggcjY6ZWEwM2UwMDAg CnI1OjAwMDAwMDAwClsgICAgMi42MjM0NTddICByNDplYTA4YzBjMApbICAgIDIuNjI2MDA2XSBb PGMwMDQ4ZmVjPl0gKGt0aHJlYWQpIGZyb20gWzxjMDAxMTllOD5dIAoocmV0X2Zyb21fZm9yaysw eDE0LzB4MmMpClsgICAgMi42MzMyMzddICByNzowMDAwMDAwMCByNjowMDAwMDAwMCByNTpjMDA0 OGZlYyByNDplYTA4YzBjMApbICAgIDIuNjM4OTYxXSAtLS1bIGVuZCB0cmFjZSBhNmExOTAyMjkx NDlkZDQ4IF0tLS0KWyAgICAyLjY0MzU5M10gW2RybTpkcm1fc3lzZnNfY29ubmVjdG9yX2FkZF0g KkVSUk9SKiBmYWlsZWQgdG8gcmVnaXN0ZXIgCmNvbm5lY3RvciBkZXZpY2U6IC0yCgpUaGlzIGlz IGNhdXNlZCBieSB0cnlpbmcgdG8gcmVnaXN0ZXIgYSBjb25uZWN0b3IgdG8gc3lzZnMgYmVmb3Jl IHRoZSBEUk0gCmRldmljZSBpcyByZWdpc3RlcmVkLiBTaW5jZSB0aGUgcmNhci1kdS1kcm0gZHJp dmVyIGhhcyBzdG9wcGVkIHVzaW5nIHRoZSByYWNlLQpwcm9uZSAubG9hZCgpIG9wZXJhdGlvbiBh bmQgc3dpdGNoZWQgdG8gY2FsbGluZyBkcm1fZGV2X3JlZ2lzdGVyKCkgZXhwbGljaXRseSwgCmNv bm5lY3RvcnMgbmVlZCB0byBiZSByZWdpc3RlcmVkIGFmdGVyIHRoZSBkcm1fZGV2X3JlZ2lzdGVy KCkgY2FsbCwgYW5kIHRodXMgCmFmdGVyIGF0dGFjaGluZyB0byB0aGUgYnJpZGdlLgoKT25lIHBv c3NpYmxlIGZpeCBoZXJlIGlzIHRvIHJlbW92ZSB0aGUgZHJtX2Nvbm5lY3Rvcl9yZWdpc3Rlcigp IGZyb20gdGhlIAphZHY3NTExIGF0dGFjaCgpIGhhbmRsZXIuIFRoaXMgZ2V0cyByaWQgb2YgdGhl IHdhcm5pbmcsIGFuZCB0aGUgY29ubmVjdG9yIHdpbGwgCmJlIHJlZ2lzdGVyZWQgYnkgdGhlIHJj YXItZHUtZHJtIGRyaXZlciBhdCBlbmQgb2YgcHJvYmUgYWxvbmcgd2l0aCBhbGwgdGhlIApvdGhl ciBjb25uZWN0b3JzLgoKVGhpcyB3b3VsZCBvZiBjb3Vyc2UgYnJlYWsgd2l0aCBkcml2ZXJzIHRo YXQgc3RpbGwgcmVseSBvbiB0aGUgLmxvYWQoKSAKaGFuZGxlciwgYXMgdGhlIGNvbm5lY3RvciB3 b3VsZCB0aGVuIG5ldmVyIGJlIHJlZ2lzdGVyZWQuIEknbSBub3Qgc3VyZSBob3cgYmFkIAphbiBp c3N1ZSB0aGlzIGlzLCBnaXZlbiB0aGF0IGRyaXZlcnMgYXJlIHN1cHBvc2VkIHRvIG1vdmUgYXdh eSBmcm9tIC5sb2FkKCkuIApJdCBjb3VsZCB0aHVzIGJlIGFyZ3VlZCB0aGF0IG5lZWRpbmcgdGhl IGFkdjc1MTEgYnJpZGdlIGRyaXZlciB3b3VsZCBiZSBhIGdvb2QgCmluY2VudGl2ZS4KCkFub3Ro ZXIgc29sdXRpb24gaXMgdG8gcmVnaXN0ZXIgdGhlIGNvbm5lY3RvciBpbiB0aGUgRFJNIGRyaXZl ciBpbnN0ZWFkIG9mIHRoZSAKYnJpZGdlIGRyaXZlci4gSSBtaWdodCBoYXZlIG1lbnRpb25lZCB0 aGF0IGFscmVhZHkgOy0pIEkgc3RpbGwgYmVsaWV2ZSB0aGF0IAp3b3VsZCBiZSBhIGdvb2QgaWRl YS4KCkkndmUgcmVtb3ZlZCB0aGUgZHJtX2Nvbm5lY3Rvcl9yZWdpc3RlcigpIGNhbGwgZnJvbSB0 aGUgYWR2NzUxMSBkcml2ZXIgZm9yIAp0ZXN0aW5nIHB1cnBvc2UuIFRoZSB3YXJuaW5nIGdvZXMg YXdheSwgYnV0IHVuZm9ydHVuYXRlbHkgdGhlIEhETUkgb3V0cHV0IApyZW1haW5zIGRpc2FibGVk LiBJJ2xsIHRyeSB0byBpbnZlc3RpZ2F0ZSB3aHkuCgo+IFNpZ25lZC1vZmYtYnk6IEFyY2hpdCBU YW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9y Y2FyLWR1L01ha2VmaWxlICAgICAgICAgIHwgICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfZHVfZW5jb2Rlci5jIHwgICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1 L3JjYXJfZHVfZW5jb2Rlci5oIHwgICA3ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj YXJfZHVfaGRtaWNvbi5jIHwgMTI2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2hkbWljb24uaCB8ICAzMSAtLS0tLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2hkbWllbmMuYyB8ICA2MCArKysrLS0tLS0t LS0tLQo+ICA2IGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDIxMCBkZWxldGlvbnMo LSkKPiAgZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVf aGRtaWNvbi5jCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9y Y2FyX2R1X2hkbWljb24uaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1k dS9NYWtlZmlsZQo+IGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvTWFrZWZpbGUgaW5kZXggMDVk ZTFjNC4uZThjZjQ1MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9NYWtl ZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L01ha2VmaWxlCj4gQEAgLTcsOCAr Nyw3IEBAIHJjYXItZHUtZHJtLXkgOj0gcmNhcl9kdV9jcnRjLm8gXAo+ICAJCSByY2FyX2R1X3Bs YW5lLm8gXAo+ICAJCSByY2FyX2R1X3ZnYWNvbi5vCj4gCj4gLXJjYXItZHUtZHJtLSQoQ09ORklH X0RSTV9SQ0FSX0hETUkpCSs9IHJjYXJfZHVfaGRtaWNvbi5vIFwKPiAtCQkJCQkgICByY2FyX2R1 X2hkbWllbmMubwo+ICtyY2FyLWR1LWRybS0kKENPTkZJR19EUk1fUkNBUl9IRE1JKQkrPSByY2Fy X2R1X2hkbWllbmMubwo+ICByY2FyLWR1LWRybS0kKENPTkZJR19EUk1fUkNBUl9MVkRTKQkrPSBy Y2FyX2R1X2x2ZHNlbmMubwo+IAo+ICBvYmotJChDT05GSUdfRFJNX1JDQVJfRFUpCQkrPSByY2Fy LWR1LWRybS5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVf ZW5jb2Rlci5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2VuY29kZXIuYyBp bmRleCBkMGFlMWU4Li5lYTAwZTMzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfZHVfZW5jb2Rlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNh cl9kdV9lbmNvZGVyLmMKPiBAQCAtMTksNyArMTksNiBAQAo+IAo+ICAjaW5jbHVkZSAicmNhcl9k dV9kcnYuaCIKPiAgI2luY2x1ZGUgInJjYXJfZHVfZW5jb2Rlci5oIgo+IC0jaW5jbHVkZSAicmNh cl9kdV9oZG1pY29uLmgiCj4gICNpbmNsdWRlICJyY2FyX2R1X2hkbWllbmMuaCIKPiAgI2luY2x1 ZGUgInJjYXJfZHVfa21zLmgiCj4gICNpbmNsdWRlICJyY2FyX2R1X2x2ZHNjb24uaCIKPiBAQCAt MTkwLDcgKzE4OSw3IEBAIGludCByY2FyX2R1X2VuY29kZXJfaW5pdChzdHJ1Y3QgcmNhcl9kdV9k ZXZpY2UgKnJjZHUsCj4gIAkJYnJlYWs7Cj4gCj4gIAljYXNlIERSTV9NT0RFX0VOQ09ERVJfVE1E UzoKPiAtCQlyZXQgPSByY2FyX2R1X2hkbWlfY29ubmVjdG9yX2luaXQocmNkdSwgcmVuYyk7Cj4g KwkJLyogY29ubmVjdG9yIG1hbmFnZWQgYnkgdGhlIGJyaWRnZSBkcml2ZXIgKi8KPiAgCQlicmVh azsKPiAKPiAgCWRlZmF1bHQ6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1 L3JjYXJfZHVfZW5jb2Rlci5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2Vu Y29kZXIuaCBpbmRleCA3MTliNmYyYS4uZGRlNTIzYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X2VuY29kZXIuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9y Y2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5oCj4gQEAgLTE1LDcgKzE1LDYgQEAKPiAgI2RlZmluZSBf X1JDQVJfRFVfRU5DT0RFUl9IX18KPiAKPiAgI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgo+IC0j aW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyX3NsYXZlLmg+Cj4gCj4gIHN0cnVjdCByY2FyX2R1X2Rl dmljZTsKPiAgc3RydWN0IHJjYXJfZHVfaGRtaWVuYzsKPiBAQCAtMzAsMTYgKzI5LDE2IEBAIGVu dW0gcmNhcl9kdV9lbmNvZGVyX3R5cGUgewo+ICB9Owo+IAo+ICBzdHJ1Y3QgcmNhcl9kdV9lbmNv ZGVyIHsKPiAtCXN0cnVjdCBkcm1fZW5jb2Rlcl9zbGF2ZSBzbGF2ZTsKPiArCXN0cnVjdCBkcm1f ZW5jb2RlciBiYXNlOwo+ICAJZW51bSByY2FyX2R1X291dHB1dCBvdXRwdXQ7Cj4gIAlzdHJ1Y3Qg cmNhcl9kdV9oZG1pZW5jICpoZG1pOwo+ICAJc3RydWN0IHJjYXJfZHVfbHZkc2VuYyAqbHZkczsK PiAgfTsKPiAKPiAgI2RlZmluZSB0b19yY2FyX2VuY29kZXIoZSkgXAo+IC0JY29udGFpbmVyX29m KGUsIHN0cnVjdCByY2FyX2R1X2VuY29kZXIsIHNsYXZlLmJhc2UpCj4gKwljb250YWluZXJfb2Yo ZSwgc3RydWN0IHJjYXJfZHVfZW5jb2RlciwgYmFzZSkKPiAKPiAtI2RlZmluZSByY2FyX2VuY29k ZXJfdG9fZHJtX2VuY29kZXIoZSkJKCYoZSktPnNsYXZlLmJhc2UpCj4gKyNkZWZpbmUgcmNhcl9l bmNvZGVyX3RvX2RybV9lbmNvZGVyKGUpCSgmKGUpLT5iYXNlKQo+IAo+ICBzdHJ1Y3QgcmNhcl9k dV9jb25uZWN0b3Igewo+ICAJc3RydWN0IGRybV9jb25uZWN0b3IgY29ubmVjdG9yOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2hkbWljb24uYwo+IGIvZHJp dmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9oZG1pY29uLmMgZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0Cj4gaW5kZXggOTZmMmViNC4uMDAwMDAwMAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y Y2FyLWR1L3JjYXJfZHVfaGRtaWNvbi5jCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDEyNiArMCww IEBACj4gLS8qCj4gLSAqIFItQ2FyIERpc3BsYXkgVW5pdCBIRE1JIENvbm5lY3Rvcgo+IC0gKgo+ IC0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgUmVuZXNhcyBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgo+ IC0gKgo+IC0gKiBDb250YWN0OiBMYXVyZW50IFBpbmNoYXJ0IChsYXVyZW50LnBpbmNoYXJ0QGlk ZWFzb25ib2FyZC5jb20pCj4gLSAqCj4gLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cj4gLSAqIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 Cj4gLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2Yg dGhlIExpY2Vuc2UsIG9yCj4gLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u Cj4gLSAqLwo+IC0KPiAtI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gLSNpbmNsdWRlIDxkcm0vZHJt X2F0b21pY19oZWxwZXIuaD4KPiAtI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgo+IC0jaW5jbHVk ZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyX3Ns YXZlLmg+Cj4gLQo+IC0jaW5jbHVkZSAicmNhcl9kdV9kcnYuaCIKPiAtI2luY2x1ZGUgInJjYXJf ZHVfZW5jb2Rlci5oIgo+IC0jaW5jbHVkZSAicmNhcl9kdV9oZG1pY29uLmgiCj4gLSNpbmNsdWRl ICJyY2FyX2R1X2ttcy5oIgo+IC0KPiAtI2RlZmluZSB0b19zbGF2ZV9mdW5jcyhlKQkodG9fcmNh cl9lbmNvZGVyKGUpLT5zbGF2ZS5zbGF2ZV9mdW5jcykKPiAtCj4gLXN0YXRpYyBpbnQgcmNhcl9k dV9oZG1pX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IKPiAqY29ubmVj dG9yKSAtewo+IC0Jc3RydWN0IHJjYXJfZHVfY29ubmVjdG9yICpjb24gPSB0b19yY2FyX2Nvbm5l Y3Rvcihjb25uZWN0b3IpOwo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gcmNhcl9l bmNvZGVyX3RvX2RybV9lbmNvZGVyKGNvbi0+ZW5jb2Rlcik7Cj4gLQlzdHJ1Y3QgZHJtX2VuY29k ZXJfc2xhdmVfZnVuY3MgKnNmdW5jcyA9IHRvX3NsYXZlX2Z1bmNzKGVuY29kZXIpOwo+IC0KPiAt CWlmIChzZnVuY3MtPmdldF9tb2RlcyA9PSBOVUxMKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCXJl dHVybiBzZnVuY3MtPmdldF9tb2RlcyhlbmNvZGVyLCBjb25uZWN0b3IpOwo+IC19Cj4gLQo+IC1z dGF0aWMgaW50IHJjYXJfZHVfaGRtaV9jb25uZWN0b3JfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcgo+ICpjb25uZWN0b3IsIC0JCQkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUpCj4gLXsKPiAtCXN0cnVjdCByY2FyX2R1X2Nvbm5lY3RvciAqY29uID0gdG9fcmNhcl9j b25uZWN0b3IoY29ubmVjdG9yKTsKPiAtCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IHJj YXJfZW5jb2Rlcl90b19kcm1fZW5jb2Rlcihjb24tPmVuY29kZXIpOwo+IC0Jc3RydWN0IGRybV9l bmNvZGVyX3NsYXZlX2Z1bmNzICpzZnVuY3MgPSB0b19zbGF2ZV9mdW5jcyhlbmNvZGVyKTsKPiAt Cj4gLQlpZiAoc2Z1bmNzLT5tb2RlX3ZhbGlkID09IE5VTEwpCj4gLQkJcmV0dXJuIE1PREVfT0s7 Cj4gLQo+IC0JcmV0dXJuIHNmdW5jcy0+bW9kZV92YWxpZChlbmNvZGVyLCBtb2RlKTsKPiAtfQo+ IC0KPiAtc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBjb25u ZWN0b3JfaGVscGVyX2Z1bmNzID0gewo+IC0JLmdldF9tb2RlcyA9IHJjYXJfZHVfaGRtaV9jb25u ZWN0b3JfZ2V0X21vZGVzLAo+IC0JLm1vZGVfdmFsaWQgPSByY2FyX2R1X2hkbWlfY29ubmVjdG9y X21vZGVfdmFsaWQsCj4gLQkuYmVzdF9lbmNvZGVyID0gcmNhcl9kdV9jb25uZWN0b3JfYmVzdF9l bmNvZGVyLAo+IC19Owo+IC0KPiAtc3RhdGljIHZvaWQgcmNhcl9kdV9oZG1pX2Nvbm5lY3Rvcl9k ZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gLXsKPiAtCWRybV9jb25u ZWN0b3JfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+IC0JZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKGNv bm5lY3Rvcik7Cj4gLX0KPiAtCj4gLXN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4g LXJjYXJfZHVfaGRtaV9jb25uZWN0b3JfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsIGJvb2wgZm9yY2UpCj4gLXsKPiAtCXN0cnVjdCByY2FyX2R1X2Nvbm5lY3RvciAqY29u ID0gdG9fcmNhcl9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAtCXN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlciA9IHJjYXJfZW5jb2Rlcl90b19kcm1fZW5jb2Rlcihjb24tPmVuY29kZXIpOwo+IC0J c3RydWN0IGRybV9lbmNvZGVyX3NsYXZlX2Z1bmNzICpzZnVuY3MgPSB0b19zbGF2ZV9mdW5jcyhl bmNvZGVyKTsKPiAtCj4gLQlpZiAoc2Z1bmNzLT5kZXRlY3QgPT0gTlVMTCkKPiAtCQlyZXR1cm4g Y29ubmVjdG9yX3N0YXR1c191bmtub3duOwo+IC0KPiAtCXJldHVybiBzZnVuY3MtPmRldGVjdChl bmNvZGVyLCBjb25uZWN0b3IpOwo+IC19Cj4gLQo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9j b25uZWN0b3JfZnVuY3MgY29ubmVjdG9yX2Z1bmNzID0gewo+IC0JLmRwbXMgPSBkcm1fYXRvbWlj X2hlbHBlcl9jb25uZWN0b3JfZHBtcywKPiAtCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9yZXNldCwKPiAtCS5kZXRlY3QgPSByY2FyX2R1X2hkbWlfY29ubmVjdG9yX2RldGVj dCwKPiAtCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21v ZGVzLAo+IC0JLmRlc3Ryb3kgPSByY2FyX2R1X2hkbWlfY29ubmVjdG9yX2Rlc3Ryb3ksCj4gLQku YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBs aWNhdGVfc3RhdGUsCj4gLQkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBl cl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiAtfTsKPiAtCj4gLWludCByY2FyX2R1X2hkbWlf Y29ubmVjdG9yX2luaXQoc3RydWN0IHJjYXJfZHVfZGV2aWNlICpyY2R1LAo+IC0JCQkJc3RydWN0 IHJjYXJfZHVfZW5jb2RlciAqcmVuYykKPiAtewo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyID0gcmNhcl9lbmNvZGVyX3RvX2RybV9lbmNvZGVyKHJlbmMpOwo+IC0Jc3RydWN0IHJjYXJf ZHVfY29ubmVjdG9yICpyY29uOwo+IC0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsK PiAtCWludCByZXQ7Cj4gLQo+IC0JcmNvbiA9IGRldm1fa3phbGxvYyhyY2R1LT5kZXYsIHNpemVv ZigqcmNvbiksIEdGUF9LRVJORUwpOwo+IC0JaWYgKHJjb24gPT0gTlVMTCkKPiAtCQlyZXR1cm4g LUVOT01FTTsKPiAtCj4gLQljb25uZWN0b3IgPSAmcmNvbi0+Y29ubmVjdG9yOwo+IC0JY29ubmVj dG9yLT5kaXNwbGF5X2luZm8ud2lkdGhfbW0gPSAwOwo+IC0JY29ubmVjdG9yLT5kaXNwbGF5X2lu Zm8uaGVpZ2h0X21tID0gMDsKPiAtCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93ZWQgPSB0cnVl Owo+IC0JY29ubmVjdG9yLT5wb2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwo+IC0KPiAt CXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChyY2R1LT5kZGV2LCBjb25uZWN0b3IsICZjb25uZWN0 b3JfZnVuY3MsCj4gLQkJCQkgRFJNX01PREVfQ09OTkVDVE9SX0hETUlBKTsKPiAtCWlmIChyZXQg PCAwKQo+IC0JCXJldHVybiByZXQ7Cj4gLQo+IC0JZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKGNv bm5lY3RvciwgJmNvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+IC0JcmV0ID0gZHJtX2Nvbm5lY3Rv cl9yZWdpc3Rlcihjb25uZWN0b3IpOwo+IC0JaWYgKHJldCA8IDApCj4gLQkJcmV0dXJuIHJldDsK PiAtCj4gLQljb25uZWN0b3ItPmRwbXMgPSBEUk1fTU9ERV9EUE1TX09GRjsKPiAtCWRybV9vYmpl Y3RfcHJvcGVydHlfc2V0X3ZhbHVlKCZjb25uZWN0b3ItPmJhc2UsCj4gLQkJcmNkdS0+ZGRldi0+ bW9kZV9jb25maWcuZHBtc19wcm9wZXJ0eSwgRFJNX01PREVfRFBNU19PRkYpOwo+IC0KPiAtCXJl dCA9IGRybV9tb2RlX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3IsIGVuY29kZXIp Owo+IC0JaWYgKHJldCA8IDApCj4gLQkJcmV0dXJuIHJldDsKPiAtCj4gLQlyY29uLT5lbmNvZGVy ID0gcmVuYzsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2R1X2hkbWljb24uaAo+IGIvZHJpdmVycy9ncHUvZHJtL3JjYXIt ZHUvcmNhcl9kdV9oZG1pY29uLmggZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggODdk YWE5NC4uMDAwMDAwMAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfaGRt aWNvbi5oCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDMxICswLDAgQEAKPiAtLyoKPiAtICogUi1D YXIgRGlzcGxheSBVbml0IEhETUkgQ29ubmVjdG9yCj4gLSAqCj4gLSAqIENvcHlyaWdodCAoQykg MjAxNCBSZW5lc2FzIEVsZWN0cm9uaWNzIENvcnBvcmF0aW9uCj4gLSAqCj4gLSAqIENvbnRhY3Q6 IExhdXJlbnQgUGluY2hhcnQgKGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbSkKPiAt ICoKPiAtICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKPiAtICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKPiAtICogdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPiAt ICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiAtICovCj4gLQo+IC0jaWZu ZGVmIF9fUkNBUl9EVV9IRE1JQ09OX0hfXwo+IC0jZGVmaW5lIF9fUkNBUl9EVV9IRE1JQ09OX0hf Xwo+IC0KPiAtc3RydWN0IHJjYXJfZHVfZGV2aWNlOwo+IC1zdHJ1Y3QgcmNhcl9kdV9lbmNvZGVy Owo+IC0KPiAtI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9SQ0FSX0hETUkpCj4gLWludCByY2Fy X2R1X2hkbWlfY29ubmVjdG9yX2luaXQoc3RydWN0IHJjYXJfZHVfZGV2aWNlICpyY2R1LAo+IC0J CQkJc3RydWN0IHJjYXJfZHVfZW5jb2RlciAqcmVuYyk7Cj4gLSNlbHNlCj4gLXN0YXRpYyBpbmxp bmUgaW50IHJjYXJfZHVfaGRtaV9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgcmNhcl9kdV9kZXZpY2Ug KnJjZHUsCj4gLQkJCQkJICAgICAgc3RydWN0IHJjYXJfZHVfZW5jb2RlciAqcmVuYykKPiAtewo+ IC0JcmV0dXJuIC1FTk9TWVM7Cj4gLX0KPiAtI2VuZGlmCj4gLQo+IC0jZW5kaWYgLyogX19SQ0FS X0RVX0hETUlDT05fSF9fICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1 L3JjYXJfZHVfaGRtaWVuYy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2hk bWllbmMuYyBpbmRleCA4MWRhODQxLi4xMmVjMWQ4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yY2FyLWR1L3JjYXJfZHVfaGRtaWVuYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jj YXItZHUvcmNhcl9kdV9oZG1pZW5jLmMKPiBAQCAtMTYsNyArMTYsNiBAQAo+ICAjaW5jbHVkZSA8 ZHJtL2RybVAuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgo+ICAjaW5jbHVkZSA8ZHJt L2RybV9jcnRjX2hlbHBlci5oPgo+IC0jaW5jbHVkZSA8ZHJtL2RybV9lbmNvZGVyX3NsYXZlLmg+ Cj4gCj4gICNpbmNsdWRlICJyY2FyX2R1X2Rydi5oIgo+ICAjaW5jbHVkZSAicmNhcl9kdV9lbmNv ZGVyLmgiCj4gQEAgLTI1LDIwICsyNCwxNCBAQAo+IAo+ICBzdHJ1Y3QgcmNhcl9kdV9oZG1pZW5j IHsKPiAgCXN0cnVjdCByY2FyX2R1X2VuY29kZXIgKnJlbmM7Cj4gLQlzdHJ1Y3QgZGV2aWNlICpk ZXY7Cj4gIAlib29sIGVuYWJsZWQ7Cj4gIH07Cj4gCj4gICNkZWZpbmUgdG9fcmNhcl9oZG1pZW5j KGUpCSh0b19yY2FyX2VuY29kZXIoZSktPmhkbWkpCj4gLSNkZWZpbmUgdG9fc2xhdmVfZnVuY3Mo ZSkJKHRvX3JjYXJfZW5jb2RlcihlKS0+c2xhdmUuc2xhdmVfZnVuY3MpCj4gCj4gIHN0YXRpYyB2 b2lkIHJjYXJfZHVfaGRtaWVuY19kaXNhYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikK PiAgewo+ICAJc3RydWN0IHJjYXJfZHVfaGRtaWVuYyAqaGRtaWVuYyA9IHRvX3JjYXJfaGRtaWVu YyhlbmNvZGVyKTsKPiAtCXN0cnVjdCBkcm1fZW5jb2Rlcl9zbGF2ZV9mdW5jcyAqc2Z1bmNzID0g dG9fc2xhdmVfZnVuY3MoZW5jb2Rlcik7Cj4gLQo+IC0JaWYgKHNmdW5jcy0+ZHBtcykKPiAtCQlz ZnVuY3MtPmRwbXMoZW5jb2RlciwgRFJNX01PREVfRFBNU19PRkYpOwo+IAo+ICAJaWYgKGhkbWll bmMtPnJlbmMtPmx2ZHMpCj4gIAkJcmNhcl9kdV9sdmRzZW5jX2VuYWJsZShoZG1pZW5jLT5yZW5j LT5sdmRzLCBlbmNvZGVyLT5jcnRjLAo+IEBAIC01MCwxNSArNDMsMTEgQEAgc3RhdGljIHZvaWQg cmNhcl9kdV9oZG1pZW5jX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyCj4gKmVuY29kZXIpIHN0 YXRpYyB2b2lkIHJjYXJfZHVfaGRtaWVuY19lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgcmNhcl9kdV9oZG1pZW5jICpoZG1pZW5jID0gdG9fcmNhcl9o ZG1pZW5jKGVuY29kZXIpOwo+IC0Jc3RydWN0IGRybV9lbmNvZGVyX3NsYXZlX2Z1bmNzICpzZnVu Y3MgPSB0b19zbGF2ZV9mdW5jcyhlbmNvZGVyKTsKPiAKPiAgCWlmIChoZG1pZW5jLT5yZW5jLT5s dmRzKQo+ICAJCXJjYXJfZHVfbHZkc2VuY19lbmFibGUoaGRtaWVuYy0+cmVuYy0+bHZkcywgZW5j b2Rlci0+Y3J0YywKPiAgCQkJCSAgICAgICB0cnVlKTsKPiAKPiAtCWlmIChzZnVuY3MtPmRwbXMp Cj4gLQkJc2Z1bmNzLT5kcG1zKGVuY29kZXIsIERSTV9NT0RFX0RQTVNfT04pOwo+IC0KPiAgCWhk bWllbmMtPmVuYWJsZWQgPSB0cnVlOwo+ICB9Cj4gCj4gQEAgLTY3LDkgKzU2LDcgQEAgc3RhdGlj IGludCByY2FyX2R1X2hkbWllbmNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZW5jb2Rlcgo+ICpl bmNvZGVyLCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJ c3RydWN0IHJjYXJfZHVfaGRtaWVuYyAqaGRtaWVuYyA9IHRvX3JjYXJfaGRtaWVuYyhlbmNvZGVy KTsKPiAtCXN0cnVjdCBkcm1fZW5jb2Rlcl9zbGF2ZV9mdW5jcyAqc2Z1bmNzID0gdG9fc2xhdmVf ZnVuY3MoZW5jb2Rlcik7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZjcnRjX3N0YXRlLT5hZGp1c3RlZF9tb2RlOwo+IC0JY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGUgPSAmY3J0Y19zdGF0ZS0+bW9kZTsKPiAKPiAgCS8qIFRoZSBpbnRlcm5h bCBMVkRTIGVuY29kZXIgaGFzIGEgY2xvY2sgZnJlcXVlbmN5IG9wZXJhdGluZyByYW5nZSBvZgo+ ICAJICogMzBNSHogdG8gMTUwTUh6LiBDbGFtcCB0aGUgY2xvY2sgYWNjb3JkaW5nbHkuCj4gQEAg LTc4LDEwICs2NSw3IEBAIHN0YXRpYyBpbnQgcmNhcl9kdV9oZG1pZW5jX2F0b21pY19jaGVjayhz dHJ1Y3QKPiBkcm1fZW5jb2RlciAqZW5jb2RlciwgYWRqdXN0ZWRfbW9kZS0+Y2xvY2sgPSBjbGFt cChhZGp1c3RlZF9tb2RlLT5jbG9jaywKPiAgCQkJCQkgICAgIDMwMDAwLCAxNTAwMDApOwo+IAo+ IC0JaWYgKHNmdW5jcy0+bW9kZV9maXh1cCA9PSBOVUxMKQo+IC0JCXJldHVybiAwOwo+IC0KPiAt CXJldHVybiBzZnVuY3MtPm1vZGVfZml4dXAoZW5jb2RlciwgbW9kZSwgYWRqdXN0ZWRfbW9kZSkg PyAwIDogLUVJTlZBTDsKPiArCXJldHVybiAwOwo+ICB9Cj4gCj4gIHN0YXRpYyB2b2lkIHJjYXJf ZHVfaGRtaWVuY19tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gQEAgLTg5 LDEwICs3Myw2IEBAIHN0YXRpYyB2b2lkIHJjYXJfZHVfaGRtaWVuY19tb2RlX3NldChzdHJ1Y3Qg ZHJtX2VuY29kZXIKPiAqZW5jb2Rlciwgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUpCj4gIHsKPiAgCXN0cnVjdCByY2FyX2R1X2hkbWllbmMgKmhkbWllbmMgPSB0b19yY2Fy X2hkbWllbmMoZW5jb2Rlcik7Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXJfc2xhdmVfZnVuY3MgKnNm dW5jcyA9IHRvX3NsYXZlX2Z1bmNzKGVuY29kZXIpOwo+IC0KPiAtCWlmIChzZnVuY3MtPm1vZGVf c2V0KQo+IC0JCXNmdW5jcy0+bW9kZV9zZXQoZW5jb2RlciwgbW9kZSwgYWRqdXN0ZWRfbW9kZSk7 Cj4gCj4gIAlyY2FyX2R1X2NydGNfcm91dGVfb3V0cHV0KGVuY29kZXItPmNydGMsIGhkbWllbmMt PnJlbmMtPm91dHB1dCk7Cj4gIH0KPiBAQCAtMTEyLDcgKzkyLDYgQEAgc3RhdGljIHZvaWQgcmNh cl9kdV9oZG1pZW5jX2NsZWFudXAoc3RydWN0IGRybV9lbmNvZGVyCj4gKmVuY29kZXIpIHJjYXJf ZHVfaGRtaWVuY19kaXNhYmxlKGVuY29kZXIpOwo+IAo+ICAJZHJtX2VuY29kZXJfY2xlYW51cChl bmNvZGVyKTsKPiAtCXB1dF9kZXZpY2UoaGRtaWVuYy0+ZGV2KTsKPiAgfQo+IAo+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGVuY29kZXJfZnVuY3MgPSB7Cj4gQEAgLTEy Myw4ICsxMDIsNyBAQCBpbnQgcmNhcl9kdV9oZG1pZW5jX2luaXQoc3RydWN0IHJjYXJfZHVfZGV2 aWNlICpyY2R1LAo+ICAJCQkgc3RydWN0IHJjYXJfZHVfZW5jb2RlciAqcmVuYywgc3RydWN0IGRl dmljZV9ub2RlICpucCkKPiAgewo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gcmNh cl9lbmNvZGVyX3RvX2RybV9lbmNvZGVyKHJlbmMpOwo+IC0Jc3RydWN0IGRybV9pMmNfZW5jb2Rl cl9kcml2ZXIgKmRyaXZlcjsKPiAtCXN0cnVjdCBpMmNfY2xpZW50ICppMmNfc2xhdmU7Cj4gKwlz dHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlOwo+ICAJc3RydWN0IHJjYXJfZHVfaGRtaWVuYyAqaGRt aWVuYzsKPiAgCWludCByZXQ7Cj4gCj4gQEAgLTEzMiwzNyArMTEwLDI5IEBAIGludCByY2FyX2R1 X2hkbWllbmNfaW5pdChzdHJ1Y3QgcmNhcl9kdV9kZXZpY2UgKnJjZHUsCj4gIAlpZiAoaGRtaWVu YyA9PSBOVUxMKQo+ICAJCXJldHVybiAtRU5PTUVNOwo+IAo+IC0JLyogTG9jYXRlIHRoZSBzbGF2 ZSBJMkMgZGV2aWNlIGFuZCBkcml2ZXIuICovCj4gLQlpMmNfc2xhdmUgPSBvZl9maW5kX2kyY19k ZXZpY2VfYnlfbm9kZShucCk7Cj4gLQlpZiAoIWkyY19zbGF2ZSB8fCAhaTJjX2dldF9jbGllbnRk YXRhKGkyY19zbGF2ZSkpCj4gKwkvKiBMb2NhdGUgZHJtIGJyaWRnZSBmcm9tIHRoZSBoZG1pIGVu Y29kZXIgRFQgbm9kZSAqLwo+ICsJYnJpZGdlID0gb2ZfZHJtX2ZpbmRfYnJpZGdlKG5wKTsKPiAr CWlmICghYnJpZGdlKQo+ICAJCXJldHVybiAtRVBST0JFX0RFRkVSOwo+IAo+IC0JaGRtaWVuYy0+ ZGV2ID0gJmkyY19zbGF2ZS0+ZGV2Owo+IC0KPiAtCWlmIChoZG1pZW5jLT5kZXYtPmRyaXZlciA9 PSBOVUxMKSB7Cj4gLQkJcmV0ID0gLUVQUk9CRV9ERUZFUjsKPiAtCQlnb3RvIGVycm9yOwo+IC0J fQo+IC0KPiAtCS8qIEluaXRpYWxpemUgdGhlIHNsYXZlIGVuY29kZXIuICovCj4gLQlkcml2ZXIg PSB0b19kcm1faTJjX2VuY29kZXJfZHJpdmVyKHRvX2kyY19kcml2ZXIoaGRtaWVuYy0+ZGV2LT5k cml2ZXIpKTsKPiAtCXJldCA9IGRyaXZlci0+ZW5jb2Rlcl9pbml0KGkyY19zbGF2ZSwgcmNkdS0+ ZGRldiwgJnJlbmMtPnNsYXZlKTsKPiAtCWlmIChyZXQgPCAwKQo+IC0JCWdvdG8gZXJyb3I7Cj4g LQo+ICAJcmV0ID0gZHJtX2VuY29kZXJfaW5pdChyY2R1LT5kZGV2LCBlbmNvZGVyLCAmZW5jb2Rl cl9mdW5jcywKPiAgCQkJICAgICAgIERSTV9NT0RFX0VOQ09ERVJfVE1EUyk7Cj4gIAlpZiAocmV0 IDwgMCkKPiAtCQlnb3RvIGVycm9yOwo+ICsJCXJldHVybiByZXQ7Cj4gCj4gIAlkcm1fZW5jb2Rl cl9oZWxwZXJfYWRkKGVuY29kZXIsICZlbmNvZGVyX2hlbHBlcl9mdW5jcyk7Cj4gCj4gIAlyZW5j LT5oZG1pID0gaGRtaWVuYzsKPiAgCWhkbWllbmMtPnJlbmMgPSByZW5jOwo+IAo+IC0JcmV0dXJu IDA7Cj4gKwkvKiBMaW5rIGRybV9icmlkZ2UgdG8gZW5jb2RlciAqLwo+ICsJYnJpZGdlLT5lbmNv ZGVyID0gZW5jb2RlcjsKPiAKPiAtZXJyb3I6Cj4gLQlwdXRfZGV2aWNlKGhkbWllbmMtPmRldik7 Cj4gLQlyZXR1cm4gcmV0Owo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2gocmNkdS0+ZGRldiwg YnJpZGdlKTsKPiArCWlmIChyZXQpIHsKPiArCQlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVuY29kZXIp Owo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KCi0tIApSZWdh cmRzLAoKTGF1cmVudCBQaW5jaGFydAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==