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 716FBC61D97 for ; Wed, 22 Nov 2023 17:51:02 +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: Content-Transfer-Encoding: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-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=hg3lYecm93J2mMuSAZdWCwTAKU7IcSFP+/jbVC0XxDE=; b=u4ibj6Qb2euHyK gJkPw5bXC0Ij6W/2mm5VrT2/mGAwQUV2Xa+Cf7QlozZBj/dExKEVUQaXIKF337vG/XQsuRHlBK/3T JXW45tDsSaGdlBFfpXfJ0qeODabKbMIpn4JMwmPNvFS98aE/jwajZXtrM2kaDzIy3g0HYcL8lO3Ax uJ3gSp+TRXmysTLNgLlD9rIrLZZA/q3EdWnC50NCYloMUEc8XFEkP1Vx6/7J8dty3R6jZ4zSSXW3W 3n7U7vn8cT53UGMc+DAeR7ZfwX7cuM/u16ZOgjzdbSV3yQUKQYM3teny1w/eKapzT3mu2TGxTCvq+ WLuoLoeZ7KuMOEykvLOA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r5rNO-002jhN-0X; Wed, 22 Nov 2023 17:51:02 +0000 Received: from out-189.mta1.migadu.com ([2001:41d0:203:375::bd]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r5rNK-002jez-2T for linux-phy@lists.infradead.org; Wed, 22 Nov 2023 17:51:00 +0000 Message-ID: <09a78110-99d7-44ca-8558-dd300c353632@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1700675447; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yOw+hHrA4r+TfdEE+WVDT6I3vzKD2GREfHEw4jCowto=; b=NNY0P3nkEdXIvTFdZgaEspupWc3C0vtePf8nbykCdgIOtMGqvdds/UkMdKZrFnfRkqAJpa yGRvRmyTeKle8rm7TxjZmNjkEsL4OYQ2TSRxg/KLwyB+510LT+j1uOjTAtigWzypkOzmnG TtGHevd26yRWoajYzSxHzQSQVkcjYOc= Date: Thu, 23 Nov 2023 01:50:37 +0800 MIME-Version: 1.0 Subject: Re: [v6,1/6] drm/bridge: add transparent bridge helper Content-Language: en-US To: Dmitry Baryshkov , David Airlie , Daniel Vetter , Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Andy Gross , Bjorn Andersson , Konrad Dybcio , Vinod Koul , Kishon Vijay Abraham I , Heikki Krogerus , Greg Kroah-Hartman , Maxime Ripard Cc: linux-phy@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org, freedreno@lists.freedesktop.org, dri-devel@lists.freedesktop.org References: <20231103230414.1483428-2-dmitry.baryshkov@linaro.org> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Sui Jingfeng In-Reply-To: <20231103230414.1483428-2-dmitry.baryshkov@linaro.org> X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231122_095058_947926_94C7B147 X-CRM114-Status: GOOD ( 37.46 ) X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy Mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org SGksCgoKT24gMjAyMy8xMS80IDA3OjAzLCBEbWl0cnkgQmFyeXNoa292IHdyb3RlOgo+IERlZmlu ZSBhIGhlbHBlciBmb3IgY3JlYXRpbmcgc2ltcGxlIHRyYW5zcGFyZW50IGJyaWRnZXMgd2hpY2gg c2VydmUgdGhlCj4gb25seSBwdXJwb3NlIG9mIGxpbmtpbmcgZGV2aWNlcyBpbnRvIHRoZSBicmlk Z2UgY2hhaW4gdXAgdG8gdGhlIGxhc3QKPiBicmlkZ2UgcmVwcmVzZW50aW5nIHRoZSBjb25uZWN0 b3IuCgpBcyBmYXIgYXMgSSBjYW4gdGVsbCwgdHJhZGl0aW9uYWxseSwgdHJhbnNwYXJlbnQgZGlz cGxheSBicmlkZ2VzIGFyZQp1c2VkIHRvIHJlZmVyIHRvIHRoZSBoYXJkd2FyZSBlbmNvZGVycyB3 aGljaCB0cmFuc2Zvcm0gdGhlIHZpZGVvIHNpZ25hbHMuClN1Y2ggYXMgQURWNzEyMy9BRFY3MTI1 KFJHQjg4OCB0byBWR0EpLCBURlA0MTAgKFJHQjg4OCB0byBEVkkpIGV0Yy4KV2hpY2ggY2FuIGJl IHVzZWQgd2l0aG91dCB0aGUgbmVlZCBvZiBzb2Z0d2FyZSBjb25maWd1cmF0aW9uLiBURlA0MTAK aXMgYSBsaXR0bGUgYml0IHNwZWNpYWwsIGl0IGNhbiBiZSBjb25maWd1cmVkIGJ5IEkyQyBpbnRl cmZhY2UsIGJ1dApURlA0MTAgZG9uJ3Qgc3VwcG9ydCByZWFkIGVkaWQgZm9yIHRoZSBtb25pdG9y LiBCdXQgYXQgdGhlIGxlYXN0LAp0aGVyZSBkbyBoYXMgYSBjb3JyZXNwb25kaW5nICpoYXJkd2Fy ZSBlbnRpdHkqIHdvcmtpbmcgaW4gdGhlIGNoYWlucy4KSXQgaXMganVzdCB0aGF0IGl0IGRvbid0 IG5lZWQgYSBkcml2ZXIgdG8gY29uZmlndXJlLgoKRG9lcyB0aGUgInNpbXBsZSB0cmFuc3BhcmVu dCBicmlkZ2VzIiB5b3UgY3JlYXRlZCBoYXMgYSBjb3JyZXNwb25kaW5nCmhhcmR3YXJlIGVudGl0 eT8gQXJlIHlvdSB0cnlpbmcgdG8gc29sdmUgc29mdHdhcmUgc2lkZSBwcm9ibGVtcyBieQphYnVz aW5nIHRoZSBkZXZpY2UtZHJpdmVyIG1vZGVsPwoKSSdtIGFmcmFpZCB0aGF0IHRoZSB3cml0dGVu ICJzaW1wbGUgdHJhbnNwYXJlbnQgYnJpZGdlcyIgaXMgbm90IGEKYWNjdXJhdGUgZGVzY3JpcHRp b24gaWYgeW91IGRvbid0IHJlYWxseSBoYXMgYSBoYXJkd2FyZSBlbnRpdHkgdG8KY29ycmVzcG9u ZGluZyB3aXRoLiBCZWNhdXNlIGFsbCBvZiB0aGUgY2xhc3NpYyBkcm0gZGlzcGxheSBicmlkZ2Vz CmFyZSBhYmxlIHRvIHRyYW5zZm9ybSB0cmFuc2Zlci9jb25zdW1lIHZpZGVvKGFuZC9vciBhdWRp bykgZGF0YS4KV2VsbCwgdGhlIGRldmljZSB5b3UgY3JlYXRlIGp1c3QgY2FuJ3QuIFByb2JhYmx5 LCB5b3Ugc2hvdWxkIGNhbGwKaXQgYXMgInNpbXBsZSBhdXhpbGlhcnkgZGV2aWNlIi4KCgo+IFRo aXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgZm9yCj4gRFAvVVNCLUMgYnJpZGdlIGNoYWlucywgd2hp Y2ggY2FuIHNwYW4gYWNyb3NzIHNldmVyYWwgZGV2aWNlcywgYnV0IGRvCj4gbm90IHJlcXVpcmUg YW55IGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eSBmcm9tIHRoZSBpbnRlcm1lZGlhdGUgYnJpZGdl cy4KPgo+IFNpZ25lZC1vZmYtYnk6IERtaXRyeSBCYXJ5c2hrb3YgPGRtaXRyeS5iYXJ5c2hrb3ZA bGluYXJvLm9yZz4KPiBSZXZpZXdlZC1ieTogTmVpbCBBcm1zdHJvbmcgPG5laWwuYXJtc3Ryb25n QGxpbmFyby5vcmc+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL0tjb25maWcgICAg ICB8ICAgOSArKwo+ICAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZSAgICAgfCAgIDEg Kwo+ICAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hdXgtYnJpZGdlLmMgfCAxNDAgKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ICAgaW5jbHVkZS9kcm0vYnJpZGdlL2F1eC1icmlkZ2UuaCAg ICAgfCAgMTkgKysrKwo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxNjkgaW5zZXJ0aW9ucygrKQo+ICAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYXV4LWJyaWRnZS5jCj4g ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0vYnJpZGdlL2F1eC1icmlkZ2UuaAo+Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvS2NvbmZpZwo+IGluZGV4IGJhODJhMTE0MmFkZi4uZjEyZWFiNjI3OTlmIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvS2NvbmZpZwo+IEBAIC0xMiw2ICsxMiwxNSBAQCBjb25maWcgRFJN X1BBTkVMX0JSSURHRQo+ICAgCWhlbHAKPiAgIAkgIERSTSBicmlkZ2Ugd3JhcHBlciBvZiBEUk0g cGFuZWxzCj4gICAKPiArY29uZmlnIERSTV9BVVhfQlJJREdFCj4gKwl0cmlzdGF0ZQo+ICsJZGVw ZW5kcyBvbiBEUk1fQlJJREdFICYmIE9GCj4gKwlzZWxlY3QgQVVYSUxJQVJZX0JVUwo+ICsJc2Vs ZWN0IERSTV9QQU5FTF9CUklER0UKPiArCWhlbHAKPiArCSAgU2ltcGxlIHRyYW5zcGFyZW50IGJy aWRnZSB0aGF0IGlzIHVzZWQgYnkgc2V2ZXJhbCBub24tRFJNIGRyaXZlcnMgdG8KPiArCSAgYnVp bGQgYnJpZGdlcyBjaGFpbi4KPiArCj4gICBtZW51ICJEaXNwbGF5IEludGVyZmFjZSBCcmlkZ2Vz Igo+ICAgCWRlcGVuZHMgb24gRFJNICYmIERSTV9CUklER0UKPiAgIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9N YWtlZmlsZQo+IGluZGV4IDJiODkyYjdlZDU5ZS4uOTE4ZTNiZmZmMDc5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YnJpZGdlL01ha2VmaWxlCj4gQEAgLTEsNCArMSw1IEBACj4gICAjIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wCj4gK29iai0kKENPTkZJR19EUk1fQVVYX0JSSURHRSkgKz0gYXV4LWJy aWRnZS5vCj4gICBvYmotJChDT05GSUdfRFJNX0NISVBPTkVfSUNONjIxMSkgKz0gY2hpcG9uZS1p Y242MjExLm8KPiAgIG9iai0kKENPTkZJR19EUk1fQ0hST05URUxfQ0g3MDMzKSArPSBjaHJvbnRl bC1jaDcwMzMubwo+ICAgb2JqLSQoQ09ORklHX0RSTV9DUk9TX0VDX0FOWDc2ODgpICs9IGNyb3Mt ZWMtYW54NzY4OC5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYXV4LWJy aWRnZS5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hdXgtYnJpZGdlLmMKPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNjI0NTk3NmI4ZmVmCj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYXV4LWJyaWRnZS5jCj4gQEAgLTAs MCArMSwxNDAgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCj4gKy8q Cj4gKyAqIENvcHlyaWdodCAoQykgMjAyMyBMaW5hcm8gTHRkLgo+ICsgKgo+ICsgKiBBdXRob3I6 IERtaXRyeSBCYXJ5c2hrb3YgPGRtaXRyeS5iYXJ5c2hrb3ZAbGluYXJvLm9yZz4KPiArICovCj4g KyNpbmNsdWRlIDxsaW51eC9hdXhpbGlhcnlfYnVzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KPiArCj4gKyNpbmNsdWRlIDxkcm0vZHJtX2JyaWRnZS5oPgo+ICsjaW5jbHVkZSA8ZHJt L2JyaWRnZS9hdXgtYnJpZGdlLmg+Cj4gKwo+ICtzdGF0aWMgREVGSU5FX0lEQShkcm1fYXV4X2Jy aWRnZV9pZGEpOwo+ICsKPiArc3RhdGljIHZvaWQgZHJtX2F1eF9icmlkZ2VfcmVsZWFzZShzdHJ1 Y3QgZGV2aWNlICpkZXYpCj4gK3sKPiArCXN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphZGV2ID0g dG9fYXV4aWxpYXJ5X2RldihkZXYpOwo+ICsKPiArCWlkYV9mcmVlKCZkcm1fYXV4X2JyaWRnZV9p ZGEsIGFkZXYtPmlkKTsKPiArCj4gKwlrZnJlZShhZGV2KTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgZHJtX2F1eF9icmlkZ2VfdW5yZWdpc3Rlcl9hZGV2KHZvaWQgKl9hZGV2KQo+ICt7Cj4gKwlz dHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAqYWRldiA9IF9hZGV2OwoKSXQgc2VlbXMgdGhhdCB0aGUg c2luZ2xlIHVuZGVyc2NvcmUocHJlZml4KSBhdCBoZXJlIGlzIGEgbGl0dGxlIGJpdApub3QgZ29v ZCBpbiBsb29raW5nLCBwbGVhc2UgcmVwbGFjZSBpdCB3aXRoICd2b2lkICpkYXRhJy4KCgo+ICsK PiArCWF1eGlsaWFyeV9kZXZpY2VfZGVsZXRlKGFkZXYpOwo+ICsJYXV4aWxpYXJ5X2RldmljZV91 bmluaXQoYWRldik7Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBkcm1fYXV4X2JyaWRnZV9yZWdpc3Rl ciAtIENyZWF0ZSBhIHNpbXBsZSBicmlkZ2UgZGV2aWNlIHRvIGxpbmsgdGhlIGNoYWluCj4gKyAq IEBwYXJlbnQ6IGRldmljZSBpbnN0YW5jZSBwcm92aWRpbmcgdGhpcyBicmlkZ2UKPiArICoKPiAr ICogQ3JlYXRlcyBhIHNpbXBsZSBEUk0gYnJpZGdlIHRoYXQgZG9lc24ndCBpbXBsZW1lbnQgYW55 IGRybV9icmlkZ2UKPiArICogb3BlcmF0aW9ucy4gU3VjaCBicmlkZ2VzIG1lcmVseSBmaWxsIGEg cGxhY2UgaW4gdGhlIGJyaWRnZSBjaGFpbiBsaW5raW5nCj4gKyAqIHN1cnJvdW5kaW5nIERSTSBi cmlkZ2VzLgo+ICsgKgo+ICsgKiBSZXR1cm46IHplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJy b3IgY29kZSBvbiBmYWlsdXJlCj4gKyAqLwo+ICtpbnQgZHJtX2F1eF9icmlkZ2VfcmVnaXN0ZXIo c3RydWN0IGRldmljZSAqcGFyZW50KQo+ICt7Cj4gKwlzdHJ1Y3QgYXV4aWxpYXJ5X2RldmljZSAq YWRldjsKPiArCWludCByZXQ7Cj4gKwo+ICsJYWRldiA9IGt6YWxsb2Moc2l6ZW9mKCphZGV2KSwg R0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWFkZXYpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJ cmV0ID0gaWRhX2FsbG9jKCZkcm1fYXV4X2JyaWRnZV9pZGEsIEdGUF9LRVJORUwpOwo+ICsJaWYg KHJldCA8IDApIHsKPiArCQlrZnJlZShhZGV2KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsK PiArCWFkZXYtPmlkID0gcmV0Owo+ICsJYWRldi0+bmFtZSA9ICJhdXhfYnJpZGdlIjsKPiArCWFk ZXYtPmRldi5wYXJlbnQgPSBwYXJlbnQ7Cj4gKwlhZGV2LT5kZXYub2Zfbm9kZSA9IHBhcmVudC0+ b2Zfbm9kZTsKPiArCWFkZXYtPmRldi5yZWxlYXNlID0gZHJtX2F1eF9icmlkZ2VfcmVsZWFzZTsK PiArCj4gKwlyZXQgPSBhdXhpbGlhcnlfZGV2aWNlX2luaXQoYWRldik7Cj4gKwlpZiAocmV0KSB7 Cj4gKwkJaWRhX2ZyZWUoJmRybV9hdXhfYnJpZGdlX2lkYSwgYWRldi0+aWQpOwo+ICsJCWtmcmVl KGFkZXYpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gYXV4aWxpYXJ5X2Rl dmljZV9hZGQoYWRldik7Cj4gKwlpZiAocmV0KSB7CgprZnJlZShhZGV2KQoKPiArCQlhdXhpbGlh cnlfZGV2aWNlX3VuaW5pdChhZGV2KTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJl dHVybiBkZXZtX2FkZF9hY3Rpb25fb3JfcmVzZXQocGFyZW50LCBkcm1fYXV4X2JyaWRnZV91bnJl Z2lzdGVyX2FkZXYsIGFkZXYpOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKGRybV9hdXhfYnJp ZGdlX3JlZ2lzdGVyKTsKCgpZZXQgc3RpbGwgY291cGxpbmcuIFNpbmNlIHlvdSBjaG9vc2UgdG8g ZXhwb3J0IHRoaXMgZnVuY3Rpb24gc3ltYm9sLAp0aGVuIGRvc2UgdGhpcyBtZWFucyB0aGF0IHRo ZSBwcm92aWRlZCBhcHByb2FjaCBpcyBzdGlsbCB0byBzb2x2ZSB0aGUKcHJvYmxlbSBieSBhbGxv d2luZyBzdGF0aWMgbGlua2luZz8gSWYgc28sIHNvcnJ5LCBJIHRoaW5rIHRoaXMgZG9lcwpub3Qg bWFrZSBhIGRpZmZlcmVuY2Ugd2l0aCBteSBpdDY2MTIxIHNlcmllcy4KCgo+ICsKPiArc3RydWN0 IGRybV9hdXhfYnJpZGdlX2RhdGEgewo+ICsJc3RydWN0IGRybV9icmlkZ2UgYnJpZGdlOwo+ICsJ c3RydWN0IGRybV9icmlkZ2UgKm5leHRfYnJpZGdlOwo+ICsJc3RydWN0IGRldmljZSAqZGV2Owo+ ICt9Owo+ICsKPiArc3RhdGljIGludCBkcm1fYXV4X2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKPiArCQkJCSAgICBlbnVtIGRybV9icmlkZ2VfYXR0YWNoX2ZsYWdzIGZs YWdzKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2F1eF9icmlkZ2VfZGF0YSAqZGF0YTsKPiArCj4gKwlp ZiAoIShmbGFncyAmIERSTV9CUklER0VfQVRUQUNIX05PX0NPTk5FQ1RPUikpCj4gKwkJcmV0dXJu IC1FSU5WQUw7CgpEb2VzIHRoaXMgZmxhZ3MgcmVhbGx5IHVzZWZ1bCBpbiBwcmFjdGljZT8KClNp bmNlwqB0aGlzIGJyaWRnZSBpcyBhIGlkZW50aXR5IGJyaWRnZSwgaW50ZW5kIHRvIGJlIHVzZWQg b24gbWlkZGxlIG9mIHRoZSB3aG9sZQpjaGFpbi4gRGlzcGxheSBjb250cm9sbGVyIGRyaXZlcnMg d2hpY2ggdGhpcyBtb2R1bGUgd29yayB3aXRoIHNob3VsZCBkZWZpbml0ZWx5CnNldCB0aGUgRFJN X0JSSURHRV9BVFRBQ0hfTk9fQ09OTkVDVE9SIGZsYWcuIEl0IGlzIGRlZmluaXRlbHkgYSBidWcg aWYgbm90IHNldC4KSXQgc2hvdWxkIGJlIGZvdW5kIGR1cmluZyBjb2RlIHJldmlldyBzdGFnZSwg SSBtZWFuIHRoYXQgdGhlIGVudW0gZHJtX2JyaWRnZV9hdHRhY2hfZmxhZ3MKaXMgYSBjb21waWxl LXRpbWUgdGhpbmcsIG5vdCBhIHJ1bnRpbWUgdGhpbmcgYW55bW9yZSwgQW0gSSBjb3JyZWN0Pwog IAoKPiArCWRhdGEgPSBjb250YWluZXJfb2YoYnJpZGdlLCBzdHJ1Y3QgZHJtX2F1eF9icmlkZ2Vf ZGF0YSwgYnJpZGdlKTsKPiArCj4gKwlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5l bmNvZGVyLCBkYXRhLT5uZXh0X2JyaWRnZSwgYnJpZGdlLAo+ICsJCQkJIERSTV9CUklER0VfQVRU QUNIX05PX0NPTk5FQ1RPUik7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Jy aWRnZV9mdW5jcyBkcm1fYXV4X2JyaWRnZV9mdW5jcyA9IHsKPiArCS5hdHRhY2gJPSBkcm1fYXV4 X2JyaWRnZV9hdHRhY2gsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IGRybV9hdXhfYnJpZGdlX3By b2JlKHN0cnVjdCBhdXhpbGlhcnlfZGV2aWNlICphdXhkZXYsCj4gKwkJCQkgICBjb25zdCBzdHJ1 Y3QgYXV4aWxpYXJ5X2RldmljZV9pZCAqaWQpCj4gK3sKPiArCXN0cnVjdCBkcm1fYXV4X2JyaWRn ZV9kYXRhICpkYXRhOwo+ICsKPiArCWRhdGEgPSBkZXZtX2t6YWxsb2MoJmF1eGRldi0+ZGV2LCBz aXplb2YoKmRhdGEpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghZGF0YSkKPiArCQlyZXR1cm4gLUVO T01FTTsKPiArCj4gKwlkYXRhLT5kZXYgPSAmYXV4ZGV2LT5kZXY7Cj4gKwlkYXRhLT5uZXh0X2Jy aWRnZSA9IGRldm1fZHJtX29mX2dldF9icmlkZ2UoJmF1eGRldi0+ZGV2LCBhdXhkZXYtPmRldi5v Zl9ub2RlLCAwLCAwKTsKPiArCWlmIChJU19FUlIoZGF0YS0+bmV4dF9icmlkZ2UpKQo+ICsJCXJl dHVybiBkZXZfZXJyX3Byb2JlKCZhdXhkZXYtPmRldiwgUFRSX0VSUihkYXRhLT5uZXh0X2JyaWRn ZSksCj4gKwkJCQkgICAgICJmYWlsZWQgdG8gYWNxdWlyZSBkcm1fYnJpZGdlXG4iKTsKPiArCj4g KwlkYXRhLT5icmlkZ2UuZnVuY3MgPSAmZHJtX2F1eF9icmlkZ2VfZnVuY3M7Cj4gKwlkYXRhLT5i cmlkZ2Uub2Zfbm9kZSA9IGRhdGEtPmRldi0+b2Zfbm9kZTsKPiArCj4gKwlyZXR1cm4gZGV2bV9k cm1fYnJpZGdlX2FkZChkYXRhLT5kZXYsICZkYXRhLT5icmlkZ2UpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IGF1eGlsaWFyeV9kZXZpY2VfaWQgZHJtX2F1eF9icmlkZ2VfdGFibGVb XSA9IHsKPiArCXsgLm5hbWUgPSBLQlVJTERfTU9ETkFNRSAiLmF1eF9icmlkZ2UiIH0sCj4gKwl7 fSwKPiArfTsKPiArTU9EVUxFX0RFVklDRV9UQUJMRShhdXhpbGlhcnksIGRybV9hdXhfYnJpZGdl X3RhYmxlKTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3QgYXV4aWxpYXJ5X2RyaXZlciBkcm1fYXV4X2Jy aWRnZV9kcnYgPSB7Cj4gKwkubmFtZSA9ICJhdXhfYnJpZGdlIiwKPiArCS5pZF90YWJsZSA9IGRy bV9hdXhfYnJpZGdlX3RhYmxlLAo+ICsJLnByb2JlID0gZHJtX2F1eF9icmlkZ2VfcHJvYmUsCj4g K307Cj4gK21vZHVsZV9hdXhpbGlhcnlfZHJpdmVyKGRybV9hdXhfYnJpZGdlX2Rydik7CgoKU29y cnksIEkgZG9uJ3QgdW5kZXJzdGFuZC4gSW4gZWZmZWN0LCB0aGlzIGlzIHN0aWxsIHdvcmtzIGJ5 IGV4cG9ydCBmdW5jdGlvbiBzeW1ib2wuCldoeSB0aGUga2VybmVsIG1vZHVsZSByZWxhdGVkIHN0 dWZmIGF0IGhlcmUgbWFrZSBzZW5zZSBpbiB0aGUgZW5kPwpTaW5jZSB3ZSBhcmUgYSBoZWxwZXIs IHdoeSB3ZSBkZXNlcnZlIGEgZHJpdmVyPyBzYXRpc2Z5IHRoZSBjb21wb25lbnQ/CgoKPiArCj4g K01PRFVMRV9BVVRIT1IoIkRtaXRyeSBCYXJ5c2hrb3YgPGRtaXRyeS5iYXJ5c2hrb3ZAbGluYXJv Lm9yZz4iKTsKPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJEUk0gdHJhbnNwYXJlbnQgYnJpZGdlIik7 Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vYnJp ZGdlL2F1eC1icmlkZ2UuaCBiL2luY2x1ZGUvZHJtL2JyaWRnZS9hdXgtYnJpZGdlLmgKPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uNDQxYWIzZjBlOTIwCj4gLS0t IC9kZXYvbnVsbAo+ICsrKyBiL2luY2x1ZGUvZHJtL2JyaWRnZS9hdXgtYnJpZGdlLmgKPiBAQCAt MCwwICsxLDE5IEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKwo+ICsv Kgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjMgTGluYXJvIEx0ZC4KPiArICoKPiArICogQXV0aG9y OiBEbWl0cnkgQmFyeXNoa292IDxkbWl0cnkuYmFyeXNoa292QGxpbmFyby5vcmc+Cj4gKyAqLwo+ ICsjaWZuZGVmIERSTV9BVVhfQlJJREdFX0gKPiArI2RlZmluZSBEUk1fQVVYX0JSSURHRV9ICj4g Kwo+ICsjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0FVWF9CUklER0UpCj4gK2ludCBkcm1fYXV4 X2JyaWRnZV9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpwYXJlbnQpOwo+ICsjZWxzZQo+ICtzdGF0 aWMgaW5saW5lIGludCBkcm1fYXV4X2JyaWRnZV9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpwYXJl bnQpCj4gK3sKPiArCXJldHVybiAwOwo+ICt9Cj4gKyNlbmRpZgo+ICsKPiArI2VuZGlmCgotLSAK bGludXgtcGh5IG1haWxpbmcgbGlzdApsaW51eC1waHlAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw czovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1waHkK