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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CB407C433EF for ; Sat, 13 Nov 2021 08:06:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9306361051 for ; Sat, 13 Nov 2021 08:06:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235672AbhKMHvh (ORCPT ); Sat, 13 Nov 2021 02:51:37 -0500 Received: from mailgw01.mediatek.com ([60.244.123.138]:41522 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S231250AbhKMHvf (ORCPT ); Sat, 13 Nov 2021 02:51:35 -0500 X-UUID: c7058d19c07d4ad1985949fda5c2606d-20211113 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=lDoc+w+kihBHvorGOIpjd/jRgsE69WL0pWLaNGxq9tY=; b=Ec2cMDDnlNqpu1hnZ29ETuCDEyIQ0AONCoZbuVZzO+SD/uOh385x8nMLz+UHlxxzfOBEYi9gXQ0uhADWbbZ1hj5HYx63y3yXpQFeXrbq+VCW+SOGbID3aTsodL9YfWozUeuvwaixDJjVLzpLwCidCUJC38EO+Y2UKFHJSFEIf80=; X-UUID: c7058d19c07d4ad1985949fda5c2606d-20211113 Received: from mtkexhb02.mediatek.inc [(172.21.101.103)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1577250192; Sat, 13 Nov 2021 15:48:38 +0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.3; Sat, 13 Nov 2021 15:48:38 +0800 Received: from mhfsdcap04 (10.17.3.154) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 13 Nov 2021 15:48:37 +0800 Message-ID: Subject: Re: [PATCH v6 6/7] phy: phy-mtk-dp: Add driver for DP phy From: Chunfeng Yun To: Guillaume Ranquet , Kishon Vijay Abraham I , Vinod Koul , Chun-Kuang Hu , Philipp Zabel , "Matthias Brugger" CC: Markus Schneider-Pargmann , , , , , Date: Sat, 13 Nov 2021 15:48:37 +0800 In-Reply-To: <20211110130623.20553-7-granquet@baylibre.com> References: <20211110130623.20553-1-granquet@baylibre.com> <20211110130623.20553-7-granquet@baylibre.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gV2VkLCAyMDIxLTExLTEwIGF0IDE0OjA2ICswMTAwLCBHdWlsbGF1bWUgUmFucXVldCB3cm90 ZToNCj4gRnJvbTogTWFya3VzIFNjaG5laWRlci1QYXJnbWFubiA8bXNwQGJheWxpYnJlLmNvbT4N Cj4gDQo+IFRoaXMgaXMgYSBuZXcgZHJpdmVyIHRoYXQgc3VwcG9ydHMgdGhlIGludGVncmF0ZWQg RGlzcGxheVBvcnQgcGh5IGZvcg0KPiBtZWRpYXRlayBTb0NzLCBlc3BlY2lhbGx5IHRoZSBtdDgx OTUuIFRoZSBwaHkgaXMgaW50ZWdyYXRlZCBpbnRvIHRoZQ0KPiBEaXNwbGF5UG9ydCBjb250cm9s bGVyIGFuZCB3aWxsIGJlIGNyZWF0ZWQgYnkgdGhlIG10ay1kcCBkcml2ZXIuIFRoaXMNCj4gZHJp dmVyIGV4cGVjdHMgYSBzdHJ1Y3QgcmVnbWFwIHRvIGJlIGFibGUgdG8gd29yayBvbiB0aGUgc2Ft ZQ0KPiByZWdpc3RlcnMNCj4gYXMgdGhlIERpc3BsYXlQb3J0IGNvbnRyb2xsZXIuIEl0IHNldHMg dGhlIGRldmljZSBkYXRhIHRvIGJlIHRoZQ0KPiBzdHJ1Y3QNCj4gcGh5IHNvIHRoYXQgdGhlIERp c3BsYXlQb3J0IGNvbnRyb2xsZXIgY2FuIGVhc2lseSB3b3JrIHdpdGggaXQuDQo+IA0KPiBUaGUg ZHJpdmVyIGRvZXMgbm90IGhhdmUgYW55IGRldmljZXRyZWUgYmluZGluZ3MgYmVjYXVzZSB0aGUN Cj4gZGF0YXNoZWV0DQo+IGRvZXMgbm90IGxpc3QgdGhlIGNvbnRyb2xsZXIgYW5kIHRoZSBwaHkg YXMgZGlzdGluY3QgdW5pdHMuDQo+IA0KPiBUaGUgaW50ZXJhY3Rpb24gd2l0aCB0aGUgY29udHJv bGxlciBjYW4gYmUgY292ZXJlZCBieSB0aGUgY29uZmlndXJlDQo+IGNhbGxiYWNrIG9mIHRoZSBw aHkgZnJhbWV3b3JrIGFuZCBpdHMgZGlzcGxheXBvcnQgcGFyYW1ldGVycy4NCj4gDQo+IFNpZ25l ZC1vZmYtYnk6IE1hcmt1cyBTY2huZWlkZXItUGFyZ21hbm4gPG1zcEBiYXlsaWJyZS5jb20+DQo+ IFNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBSYW5xdWV0IDxncmFucXVldEBiYXlsaWJyZS5jb20+ DQo+IC0tLQ0KPiAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsNCj4g IGRyaXZlcnMvcGh5L21lZGlhdGVrL0tjb25maWcgICAgICB8ICAgOCArKw0KPiAgZHJpdmVycy9w aHkvbWVkaWF0ZWsvTWFrZWZpbGUgICAgIHwgICAxICsNCj4gIGRyaXZlcnMvcGh5L21lZGlhdGVr L3BoeS1tdGstZHAuYyB8IDIxOQ0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4g IDQgZmlsZXMgY2hhbmdlZCwgMjI5IGluc2VydGlvbnMoKykNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL3BoeS9tZWRpYXRlay9waHktbXRrLWRwLmMNCj4gDQo+IGRpZmYgLS1naXQgYS9N QUlOVEFJTkVSUyBiL01BSU5UQUlORVJTDQo+IGluZGV4IDE3MGJiYmVlZmMzZjQuLmY5YTcxYjZk MmE0YTkgMTAwNjQ0DQo+IC0tLSBhL01BSU5UQUlORVJTDQo+ICsrKyBiL01BSU5UQUlORVJTDQo+ IEBAIC02MzY3LDYgKzYzNjcsNyBAQCBMOglsaW51eC1tZWRpYXRla0BsaXN0cy5pbmZyYWRlYWQu b3JnDQo+IChtb2RlcmF0ZWQgZm9yIG5vbi1zdWJzY3JpYmVycykNCj4gIFM6CVN1cHBvcnRlZA0K PiAgRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvbWVkaWF0ZWsv DQo+ICBGOglkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvDQo+ICtGOglkcml2ZXJzL3BoeS9tZWRp YXRlay9waHktbXRrLWRwLmMNCj4gIEY6CWRyaXZlcnMvcGh5L21lZGlhdGVrL3BoeS1tdGstaGRt aSoNCj4gIEY6CWRyaXZlcnMvcGh5L21lZGlhdGVrL3BoeS1tdGstbWlwaSoNCj4gIA0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9waHkvbWVkaWF0ZWsvS2NvbmZpZw0KPiBiL2RyaXZlcnMvcGh5L21l ZGlhdGVrL0tjb25maWcNCj4gaW5kZXggNTVmOGU2YzA0OGFiMy4uZjdlYzg2MDU5MDQ5MiAxMDA2 NDQNCj4gLS0tIGEvZHJpdmVycy9waHkvbWVkaWF0ZWsvS2NvbmZpZw0KPiArKysgYi9kcml2ZXJz L3BoeS9tZWRpYXRlay9LY29uZmlnDQo+IEBAIC01NSwzICs1NSwxMSBAQCBjb25maWcgUEhZX01U S19NSVBJX0RTSQ0KPiAgCXNlbGVjdCBHRU5FUklDX1BIWQ0KPiAgCWhlbHANCj4gIAkgIFN1cHBv cnQgTUlQSSBEU0kgZm9yIE1lZGlhdGVrIFNvQ3MuDQo+ICsNCj4gK2NvbmZpZyBQSFlfTVRLX0RQ DQo+ICsJdHJpc3RhdGUgIk1lZGlhVGVrIERQLVBIWSBEcml2ZXIiDQo+ICsJZGVwZW5kcyBvbiBB UkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVA0KPiArCWRlcGVuZHMgb24gT0YNCj4gKwlzZWxl Y3QgR0VORVJJQ19QSFkNCj4gKwloZWxwDQo+ICsJICBTdXBwb3J0IERpc3BsYXlQb3J0IFBIWSBm b3IgTWVkaWF0ZWsgU29Dcy4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGh5L21lZGlhdGVrL01h a2VmaWxlDQo+IGIvZHJpdmVycy9waHkvbWVkaWF0ZWsvTWFrZWZpbGUNCj4gaW5kZXggYWNlNjYw ZmJlZDNhMS4uNGJhMWUwNjUwNDM0NiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9waHkvbWVkaWF0 ZWsvTWFrZWZpbGUNCj4gKysrIGIvZHJpdmVycy9waHkvbWVkaWF0ZWsvTWFrZWZpbGUNCj4gQEAg LTMsNiArMyw3IEBADQo+ICAjIE1ha2VmaWxlIGZvciB0aGUgcGh5IGRyaXZlcnMuDQo+ICAjDQo+ ICANCj4gK29iai0kKENPTkZJR19QSFlfTVRLX0RQKQkJKz0gcGh5LW10ay1kcC5vDQo+ICBvYmot JChDT05GSUdfUEhZX01US19UUEhZKQkJKz0gcGh5LW10ay10cGh5Lm8NCj4gIG9iai0kKENPTkZJ R19QSFlfTVRLX1VGUykJCSs9IHBoeS1tdGstdWZzLm8NCj4gIG9iai0kKENPTkZJR19QSFlfTVRL X1hTUEhZKQkJKz0gcGh5LW10ay14c3BoeS5vDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BoeS9t ZWRpYXRlay9waHktbXRrLWRwLmMNCj4gYi9kcml2ZXJzL3BoeS9tZWRpYXRlay9waHktbXRrLWRw LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwMC4uNGY4ZDI2 ZWMwMzQ2Yg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvcGh5L21lZGlhdGVrL3Bo eS1tdGstZHAuYw0KPiBAQCAtMCwwICsxLDIxOSBAQA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjANCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQmF5TGlicmUN Cj4gKyAqIEF1dGhvcjogTWFya3VzIFNjaG5laWRlci1QYXJnbWFubiA8bXNwQGJheWxpYnJlLmNv bT4NCj4gKyAqLw0KPiArDQo+ICsjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4NCj4gKyNpbmNsdWRl IDxsaW51eC9pby5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L29mLmg+DQo+ICsjaW5jbHVkZSA8bGlu dXgvcGh5L3BoeS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KPiAr I2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPg0KPiArDQo+ICsjZGVmaW5lIFBIWV9PRkZTRVQgMHgx MDAwDQpXaHkgbm90IHByb3ZpZGUgcmVnaXN0ZXIgYmFzZSBhZGRyZXNzIGluIERUUz8NCkkgZmlu ZCB0aGF0IHBoeSdzIHBsYXRmb3JtIGRldmljZSBpcyByZWdpc3RlcmVkIGJ5IGRwIGRyaXZlciBi dXQgdGhlDQpvbmUgYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gcGFyc2UgZHRzPw0KDQo+ICsN Cj4gKyNkZWZpbmUgTVRLX0RQX1BIWV9ESUdfUExMX0NUTF8xCQkoUEhZX09GRlNFVCArIDB4MDE0 KQ0KPiArIyBkZWZpbmUgVFBMTF9TU0NfRU4JCQkJQklUKDMpDQo+ICsNCj4gKyNkZWZpbmUgTVRL X0RQX1BIWV9ESUdfQklUX1JBVEUJCQkoUEhZX09GRlNFVCArDQo+IDB4MDNDKQ0KPiArIyBkZWZp bmUgQklUX1JBVEVfUkJSCQkJCTANCj4gKyMgZGVmaW5lIEJJVF9SQVRFX0hCUgkJCQkxDQo+ICsj IGRlZmluZSBCSVRfUkFURV9IQlIyCQkJCTINCj4gKyMgZGVmaW5lIEJJVF9SQVRFX0hCUjMJCQkJ Mw0KPiArDQo+ICsjZGVmaW5lIE1US19EUF9QSFlfRElHX1NXX1JTVAkJCShQSFlfT0ZGU0VUICsN Cj4gMHgwMzgpDQo+ICsjIGRlZmluZSBEUF9HTEJfU1dfUlNUX1BIWUQJCQlCSVQoMCkNCj4gKw0K PiArI2RlZmluZSBNVEtfRFBfTEFORTBfRFJJVklOR19QQVJBTV8zCQkoUEhZX09GRlNFVCArIDB4 MTM4KQ0KPiArI2RlZmluZSBNVEtfRFBfTEFORTFfRFJJVklOR19QQVJBTV8zCQkoUEhZX09GRlNF VCArIDB4MjM4KQ0KPiArI2RlZmluZSBNVEtfRFBfTEFORTJfRFJJVklOR19QQVJBTV8zCQkoUEhZ X09GRlNFVCArIDB4MzM4KQ0KPiArI2RlZmluZSBNVEtfRFBfTEFORTNfRFJJVklOR19QQVJBTV8z CQkoUEhZX09GRlNFVCArIDB4NDM4KQ0KPiArIyBkZWZpbmUgWFRQX0xOX1RYX0xDVFhDMF9TVzBf UFJFMF9ERUZBVUxUCTB4MTANCj4gKyMgZGVmaW5lIFhUUF9MTl9UWF9MQ1RYQzBfU1cwX1BSRTFf REVGQVVMVAkoMHgxNCA8PCA4KQ0KPiArIyBkZWZpbmUgWFRQX0xOX1RYX0xDVFhDMF9TVzBfUFJF Ml9ERUZBVUxUCSgweDE4IDw8IDE2KQ0KPiArIyBkZWZpbmUgWFRQX0xOX1RYX0xDVFhDMF9TVzBf UFJFM19ERUZBVUxUCSgweDIwIDw8IDI0KQ0KPiArIyBkZWZpbmUgRFJJVklOR19QQVJBTV8zX0RF RkFVTFQJCShYVFBfTE5fVFhfTENUWEMwX1NXMF9QDQo+IFJFMF9ERUZBVUxUIHwgXA0KPiArCQkJ CQkJIFhUUF9MTl9UWF9MQ1RYQzBfU1cwX1ANCj4gUkUxX0RFRkFVTFQgfCBcDQo+ICsJCQkJCQkg WFRQX0xOX1RYX0xDVFhDMF9TVzBfUA0KPiBSRTJfREVGQVVMVCB8IFwNCj4gKwkJCQkJCSBYVFBf TE5fVFhfTENUWEMwX1NXMF9QDQo+IFJFM19ERUZBVUxUKQ0KPiArDQo+ICsjZGVmaW5lIE1US19E UF9MQU5FMF9EUklWSU5HX1BBUkFNXzQJCShQSFlfT0ZGU0VUICsgMHgxM0MpDQo+ICsjZGVmaW5l IE1US19EUF9MQU5FMV9EUklWSU5HX1BBUkFNXzQJCShQSFlfT0ZGU0VUICsgMHgyM0MpDQo+ICsj ZGVmaW5lIE1US19EUF9MQU5FMl9EUklWSU5HX1BBUkFNXzQJCShQSFlfT0ZGU0VUICsgMHgzM0Mp DQo+ICsjZGVmaW5lIE1US19EUF9MQU5FM19EUklWSU5HX1BBUkFNXzQJCShQSFlfT0ZGU0VUICsg MHg0M0MpDQo+ICsjIGRlZmluZSBYVFBfTE5fVFhfTENUWEMwX1NXMV9QUkUwX0RFRkFVTFQJMHgx OA0KPiArIyBkZWZpbmUgWFRQX0xOX1RYX0xDVFhDMF9TVzFfUFJFMV9ERUZBVUxUCSgweDFlIDw8 IDgpDQo+ICsjIGRlZmluZSBYVFBfTE5fVFhfTENUWEMwX1NXMV9QUkUyX0RFRkFVTFQJKDB4MjQg PDwgMTYpDQo+ICsjIGRlZmluZSBYVFBfTE5fVFhfTENUWEMwX1NXMl9QUkUwX0RFRkFVTFQJKDB4 MjAgPDwgMjQpDQo+ICsjIGRlZmluZSBEUklWSU5HX1BBUkFNXzRfREVGQVVMVAkJKFhUUF9MTl9U WF9MQ1RYQzBfU1cxX1ANCj4gUkUwX0RFRkFVTFQgfCBcDQo+ICsJCQkJCQkgWFRQX0xOX1RYX0xD VFhDMF9TVzFfUA0KPiBSRTFfREVGQVVMVCB8IFwNCj4gKwkJCQkJCSBYVFBfTE5fVFhfTENUWEMw X1NXMV9QDQo+IFJFMl9ERUZBVUxUIHwgXA0KPiArCQkJCQkJIFhUUF9MTl9UWF9MQ1RYQzBfU1cy X1ANCj4gUkUwX0RFRkFVTFQpDQo+ICsNCj4gKyNkZWZpbmUgTVRLX0RQX0xBTkUwX0RSSVZJTkdf UEFSQU1fNQkJKFBIWV9PRkZTRVQgKyAweDE0MCkNCj4gKyNkZWZpbmUgTVRLX0RQX0xBTkUxX0RS SVZJTkdfUEFSQU1fNQkJKFBIWV9PRkZTRVQgKyAweDI0MCkNCj4gKyNkZWZpbmUgTVRLX0RQX0xB TkUyX0RSSVZJTkdfUEFSQU1fNQkJKFBIWV9PRkZTRVQgKyAweDM0MCkNCj4gKyNkZWZpbmUgTVRL X0RQX0xBTkUzX0RSSVZJTkdfUEFSQU1fNQkJKFBIWV9PRkZTRVQgKyAweDQ0MCkNCj4gKyMgZGVm aW5lIFhUUF9MTl9UWF9MQ1RYQzBfU1cyX1BSRTFfREVGQVVMVAkweDI4DQo+ICsjIGRlZmluZSBY VFBfTE5fVFhfTENUWEMwX1NXM19QUkUwX0RFRkFVTFQJKDB4MzAgPDwgOCkNCj4gKyMgZGVmaW5l IERSSVZJTkdfUEFSQU1fNV9ERUZBVUxUCQkoWFRQX0xOX1RYX0xDVFhDMF9TVzJfUA0KPiBSRTFf REVGQVVMVCB8IFwNCj4gKwkJCQkJCSBYVFBfTE5fVFhfTENUWEMwX1NXM19QDQo+IFJFMF9ERUZB VUxUKQ0KPiArDQo+ICsjZGVmaW5lIE1US19EUF9MQU5FMF9EUklWSU5HX1BBUkFNXzYJCShQSFlf T0ZGU0VUICsgMHgxNDQpDQo+ICsjZGVmaW5lIE1US19EUF9MQU5FMV9EUklWSU5HX1BBUkFNXzYJ CShQSFlfT0ZGU0VUICsgMHgyNDQpDQo+ICsjZGVmaW5lIE1US19EUF9MQU5FMl9EUklWSU5HX1BB UkFNXzYJCShQSFlfT0ZGU0VUICsgMHgzNDQpDQo+ICsjZGVmaW5lIE1US19EUF9MQU5FM19EUklW SU5HX1BBUkFNXzYJCShQSFlfT0ZGU0VUICsgMHg0NDQpDQo+ICsjIGRlZmluZSBYVFBfTE5fVFhf TENUWENQMV9TVzBfUFJFMF9ERUZBVUxUCTB4MDANCj4gKyMgZGVmaW5lIFhUUF9MTl9UWF9MQ1RY Q1AxX1NXMF9QUkUxX0RFRkFVTFQJKDB4MDQgPDwgOCkNCj4gKyMgZGVmaW5lIFhUUF9MTl9UWF9M Q1RYQ1AxX1NXMF9QUkUyX0RFRkFVTFQJKDB4MDggPDwgMTYpDQo+ICsjIGRlZmluZSBYVFBfTE5f VFhfTENUWENQMV9TVzBfUFJFM19ERUZBVUxUCSgweDEwIDw8IDI0KQ0KPiArIyBkZWZpbmUgRFJJ VklOR19QQVJBTV82X0RFRkFVTFQJCShYVFBfTE5fVFhfTENUWENQMV9TVzBfDQo+IFBSRTBfREVG QVVMVCB8IFwNCj4gKwkJCQkJCSBYVFBfTE5fVFhfTENUWENQMV9TVzBfDQo+IFBSRTFfREVGQVVM VCB8IFwNCj4gKwkJCQkJCSBYVFBfTE5fVFhfTENUWENQMV9TVzBfDQo+IFBSRTJfREVGQVVMVCB8 IFwNCj4gKwkJCQkJCSBYVFBfTE5fVFhfTENUWENQMV9TVzBfDQo+IFBSRTNfREVGQVVMVCkNCj4g Kw0KPiArI2RlZmluZSBNVEtfRFBfTEFORTBfRFJJVklOR19QQVJBTV83CQkoUEhZX09GRlNFVCAr IDB4MTQ4KQ0KPiArI2RlZmluZSBNVEtfRFBfTEFORTFfRFJJVklOR19QQVJBTV83CQkoUEhZX09G RlNFVCArIDB4MjQ4KQ0KPiArI2RlZmluZSBNVEtfRFBfTEFORTJfRFJJVklOR19QQVJBTV83CQko UEhZX09GRlNFVCArIDB4MzQ4KQ0KPiArI2RlZmluZSBNVEtfRFBfTEFORTNfRFJJVklOR19QQVJB TV83CQkoUEhZX09GRlNFVCArIDB4NDQ4KQ0KPiArIyBkZWZpbmUgWFRQX0xOX1RYX0xDVFhDUDFf U1cxX1BSRTBfREVGQVVMVAkweDAwDQo+ICsjIGRlZmluZSBYVFBfTE5fVFhfTENUWENQMV9TVzFf UFJFMV9ERUZBVUxUCSgweDA2IDw8IDgpDQo+ICsjIGRlZmluZSBYVFBfTE5fVFhfTENUWENQMV9T VzFfUFJFMl9ERUZBVUxUCSgweDBjIDw8IDE2KQ0KPiArIyBkZWZpbmUgWFRQX0xOX1RYX0xDVFhD UDFfU1cyX1BSRTBfREVGQVVMVAkoMHgwMCA8PCAyNCkNCj4gKyMgZGVmaW5lIERSSVZJTkdfUEFS QU1fN19ERUZBVUxUCQkoWFRQX0xOX1RYX0xDVFhDUDFfU1cxXw0KPiBQUkUwX0RFRkFVTFQgfCBc DQo+ICsJCQkJCQkgWFRQX0xOX1RYX0xDVFhDUDFfU1cxXw0KPiBQUkUxX0RFRkFVTFQgfCBcDQo+ ICsJCQkJCQkgWFRQX0xOX1RYX0xDVFhDUDFfU1cxXw0KPiBQUkUyX0RFRkFVTFQgfCBcDQo+ICsJ CQkJCQkgWFRQX0xOX1RYX0xDVFhDUDFfU1cyXw0KPiBQUkUwX0RFRkFVTFQpDQo+ICsNCj4gKyNk ZWZpbmUgTVRLX0RQX0xBTkUwX0RSSVZJTkdfUEFSQU1fOAkJKFBIWV9PRkZTRVQgKyAweDE0QykN Cj4gKyNkZWZpbmUgTVRLX0RQX0xBTkUxX0RSSVZJTkdfUEFSQU1fOAkJKFBIWV9PRkZTRVQgKyAw eDI0QykNCj4gKyNkZWZpbmUgTVRLX0RQX0xBTkUyX0RSSVZJTkdfUEFSQU1fOAkJKFBIWV9PRkZT RVQgKyAweDM0QykNCj4gKyNkZWZpbmUgTVRLX0RQX0xBTkUzX0RSSVZJTkdfUEFSQU1fOAkJKFBI WV9PRkZTRVQgKyAweDQ0QykNCj4gKyMgZGVmaW5lIFhUUF9MTl9UWF9MQ1RYQ1AxX1NXMl9QUkUx X0RFRkFVTFQJMHgwOA0KPiArIyBkZWZpbmUgWFRQX0xOX1RYX0xDVFhDUDFfU1czX1BSRTBfREVG QVVMVAkoMHgwMCA8PCA4KQ0KPiArIyBkZWZpbmUgRFJJVklOR19QQVJBTV84X0RFRkFVTFQJCShY VFBfTE5fVFhfTENUWENQMV9TVzJfDQo+IFBSRTFfREVGQVVMVCB8IFwNCj4gKwkJCQkJCSBYVFBf TE5fVFhfTENUWENQMV9TVzNfDQo+IFBSRTBfREVGQVVMVCkNCj4gKw0KPiArc3RydWN0IG10a19k cF9waHkgew0KPiArCXN0cnVjdCByZWdtYXAgKnJlZ3M7DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMg aW50IG10a19kcF9waHlfaW5pdChzdHJ1Y3QgcGh5ICpwaHkpDQo+ICt7DQo+ICsJc3RydWN0IG10 a19kcF9waHkgKmRwX3BoeSA9IHBoeV9nZXRfZHJ2ZGF0YShwaHkpOw0KPiArCXUzMiBkcml2aW5n X3BhcmFtc1tdID0gew0KPiArCQlEUklWSU5HX1BBUkFNXzNfREVGQVVMVCwNCj4gKwkJRFJJVklO R19QQVJBTV80X0RFRkFVTFQsDQo+ICsJCURSSVZJTkdfUEFSQU1fNV9ERUZBVUxULA0KPiArCQlE UklWSU5HX1BBUkFNXzZfREVGQVVMVCwNCj4gKwkJRFJJVklOR19QQVJBTV83X0RFRkFVTFQsDQo+ ICsJCURSSVZJTkdfUEFSQU1fOF9ERUZBVUxUDQo+ICsJfTsNCj4gKw0KPiArCXJlZ21hcF9idWxr X3dyaXRlKGRwX3BoeS0+cmVncywgTVRLX0RQX0xBTkUwX0RSSVZJTkdfUEFSQU1fMywNCj4gKwkJ CSAgZHJpdmluZ19wYXJhbXMsIEFSUkFZX1NJWkUoZHJpdmluZ19wYXJhbXMpKTsNCj4gKwlyZWdt YXBfYnVsa193cml0ZShkcF9waHktPnJlZ3MsIE1US19EUF9MQU5FMV9EUklWSU5HX1BBUkFNXzMs DQo+ICsJCQkgIGRyaXZpbmdfcGFyYW1zLCBBUlJBWV9TSVpFKGRyaXZpbmdfcGFyYW1zKSk7DQo+ ICsJcmVnbWFwX2J1bGtfd3JpdGUoZHBfcGh5LT5yZWdzLCBNVEtfRFBfTEFORTJfRFJJVklOR19Q QVJBTV8zLA0KPiArCQkJICBkcml2aW5nX3BhcmFtcywgQVJSQVlfU0laRShkcml2aW5nX3BhcmFt cykpOw0KPiArCXJlZ21hcF9idWxrX3dyaXRlKGRwX3BoeS0+cmVncywgTVRLX0RQX0xBTkUzX0RS SVZJTkdfUEFSQU1fMywNCj4gKwkJCSAgZHJpdmluZ19wYXJhbXMsIEFSUkFZX1NJWkUoZHJpdmlu Z19wYXJhbXMpKTsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50 IG10a19kcF9waHlfY29uZmlndXJlKHN0cnVjdCBwaHkgKnBoeSwgdW5pb24NCj4gcGh5X2NvbmZp Z3VyZV9vcHRzICpvcHRzKQ0KPiArew0KPiArCXN0cnVjdCBtdGtfZHBfcGh5ICpkcF9waHkgPSBw aHlfZ2V0X2RydmRhdGEocGh5KTsNCj4gKwl1MzIgdmFsOw0KPiArDQo+ICsJaWYgKG9wdHMtPmRw LnNldF9yYXRlKSB7DQo+ICsJCXN3aXRjaCAob3B0cy0+ZHAubGlua19yYXRlKSB7DQo+ICsJCWRl ZmF1bHQ6DQo+ICsJCQlkZXZfZXJyKCZwaHktPmRldiwNCj4gKwkJCQkiSW1wbGVtZW50YXRpb24g ZXJyb3IsIHVua25vd24gbGlua3JhdGUNCj4gJXhcbiIsDQo+ICsJCQkJb3B0cy0+ZHAubGlua19y YXRlKTsNCj4gKwkJCXJldHVybiAtRUlOVkFMOw0KPiArCQljYXNlIDE2MjA6DQo+ICsJCQl2YWwg PSBCSVRfUkFURV9SQlI7DQo+ICsJCQlicmVhazsNCj4gKwkJY2FzZSAyNzAwOg0KPiArCQkJdmFs ID0gQklUX1JBVEVfSEJSOw0KPiArCQkJYnJlYWs7DQo+ICsJCWNhc2UgNTQwMDoNCj4gKwkJCXZh bCA9IEJJVF9SQVRFX0hCUjI7DQo+ICsJCQlicmVhazsNCj4gKwkJY2FzZSA4MTAwOg0KPiArCQkJ dmFsID0gQklUX1JBVEVfSEJSMzsNCj4gKwkJCWJyZWFrOw0KPiArCQl9DQo+ICsJCXJlZ21hcF93 cml0ZShkcF9waHktPnJlZ3MsIE1US19EUF9QSFlfRElHX0JJVF9SQVRFLA0KPiB2YWwpOw0KPiAr CX0NCj4gKw0KPiArCXJlZ21hcF91cGRhdGVfYml0cyhkcF9waHktPnJlZ3MsIE1US19EUF9QSFlf RElHX1BMTF9DVExfMSwNCj4gKwkJCSAgIFRQTExfU1NDX0VOLCBvcHRzLT5kcC5zc2MgPyBUUExM X1NTQ19FTiA6DQo+IDApOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyBpbnQgbXRrX2RwX3BoeV9yZXNldChzdHJ1Y3QgcGh5ICpwaHkpDQo+ICt7DQo+ICsJc3RydWN0 IG10a19kcF9waHkgKmRwX3BoeSA9IHBoeV9nZXRfZHJ2ZGF0YShwaHkpOw0KPiArDQo+ICsJcmVn bWFwX3VwZGF0ZV9iaXRzKGRwX3BoeS0+cmVncywgTVRLX0RQX1BIWV9ESUdfU1dfUlNULA0KPiAr CQkJICAgRFBfR0xCX1NXX1JTVF9QSFlELCAwKTsNCj4gKwl1c2xlZXBfcmFuZ2UoNTAsIDIwMCk7 DQo+ICsJcmVnbWFwX3VwZGF0ZV9iaXRzKGRwX3BoeS0+cmVncywgTVRLX0RQX1BIWV9ESUdfU1df UlNULA0KPiArCQkJICAgRFBfR0xCX1NXX1JTVF9QSFlELCAxKTsNCj4gKw0KPiArCXJldHVybiAw Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHBoeV9vcHMgbXRrX2RwX3BoeV9k ZXZfb3BzID0gew0KPiArCS5pbml0ID0gbXRrX2RwX3BoeV9pbml0LA0KPiArCS5jb25maWd1cmUg PSBtdGtfZHBfcGh5X2NvbmZpZ3VyZSwNCj4gKwkucmVzZXQgPSBtdGtfZHBfcGh5X3Jlc2V0LA0K PiArCS5vd25lciA9IFRISVNfTU9EVUxFLA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGludCBtdGtf ZHBfcGh5X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ICt7DQo+ICsJc3Ry dWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4gKwlzdHJ1Y3QgbXRrX2RwX3BoeSAqZHBf cGh5Ow0KPiArCXN0cnVjdCBwaHkgKnBoeTsNCj4gKw0KPiArCWRwX3BoeSA9IGRldm1fa3phbGxv YyhkZXYsIHNpemVvZigqZHBfcGh5KSwgR0ZQX0tFUk5FTCk7DQo+ICsJaWYgKCFkcF9waHkpDQo+ ICsJCXJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsJZHBfcGh5LT5yZWdzID0gKihzdHJ1Y3QgcmVn bWFwICoqKWRldi0+cGxhdGZvcm1fZGF0YTsNCj4gKwlpZiAoIWRwX3BoeS0+cmVncykgew0KPiAr CQlkZXZfZXJyKGRldiwgIk5vIGRhdGEgcGFzc2VkLCByZXF1aXJlcyBzdHJ1Y3QNCj4gcmVnbWFw KipcbiIpOw0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwl9DQpXaHkgbm90IGdldCBpdCBmcm9t IGR0cz8NCg0KPiArDQo+ICsJcGh5ID0gZGV2bV9waHlfY3JlYXRlKGRldiwgTlVMTCwgJm10a19k cF9waHlfZGV2X29wcyk7DQo+ICsJaWYgKElTX0VSUihwaHkpKSB7DQo+ICsJCWRldl9lcnIoZGV2 LCAiRmFpbGVkIHRvIGNyZWF0ZSBEUCBQSFk6ICVsZFxuIiwNCj4gUFRSX0VSUihwaHkpKTsNCj4g KwkJcmV0dXJuIFBUUl9FUlIocGh5KTsNCj4gKwl9DQo+ICsJcGh5X3NldF9kcnZkYXRhKHBoeSwg ZHBfcGh5KTsNCj4gKw0KPiArCS8vIFNldCBkZXZpY2UgZGF0YSB0byB0aGUgcGh5IHNvIHRoYXQg bXRrLWRwIGNhbiBnZXQgaXQgZWFzaWx5DQp1c2UgLyogKi8NCj4gKwlkZXZfc2V0X2RydmRhdGEo ZGV2LCBwaHkpOw0KPiArDQo+ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0cnVjdCBwbGF0 Zm9ybV9kcml2ZXIgbXRrX2RwX3BoeV9kcml2ZXIgPSB7DQo+ICsJLnByb2JlID0gbXRrX2RwX3Bo eV9wcm9iZSwNCj4gKwkuZHJpdmVyID0gew0KPiArCQkubmFtZSA9ICJtZWRpYXRlay1kcC1waHki LA0KPiArCX0sDQo+ICt9Ow0KPiArbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihtdGtfZHBfcGh5X2Ry aXZlcik7DQo+ICsNCj4gK01PRFVMRV9BVVRIT1IoIk1hcmt1cyBTY2huZWlkZXItUGFyZ21hbm4g PG1zcEBiYXlsaWJyZS5jb20+Iik7DQo+ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1lZGlhVGVrIERQ IFBIWSBEcml2ZXIiKTsNCj4gK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsNCg==