Received: by 2002:a05:6a10:c7d3:0:0:0:0 with SMTP id h19csp1413074pxy; Sun, 15 Aug 2021 20:39:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxZPhcuo5BFphk3CP2e6l+Fviyd+kogyCH4fWv/flwhNgGMrinCR/21tVEedc0RO/phaUjP X-Received: by 2002:a02:84c2:: with SMTP id f60mr1197105jai.133.1629085176854; Sun, 15 Aug 2021 20:39:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629085176; cv=none; d=google.com; s=arc-20160816; b=ri2TrgREZaBqyVhUWYPxKnGaz8ChMg4lYK/jnwUGwk0upgEAdQQOquPJ31BUqlcbL0 Bi7KJ85QZ9af8az1/iobd7CZ57ESTL0v3p/7IUgH/dUX/l5ox7yb1BJojrGjKZyS1i1y mH/Y5f0zRzXYWVa67kPnZh1THvbdN28ZAlK3/rxhj+z9zz74MOS8sxBYdA4nkD2f+zyb oNh9ijwbCX4QYgP0N9HTEzgbu/CbmPDiaBVGlLqs/+olGVVxNfh6tISQWQrP3gqU3uPm 33Mzq6A+NHKoHXFXcWNxIiCvwaaPadR+ZgTG3MM92myuJi0Dv8w35I3ylsil2ha20FAF kWqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=BniR1vT/ITzPIV/dl+gZPyHdSRm/k7l4QdTEiMfemhc=; b=VFcocOKhRwnXKYOBHsUUa8xDBktnjdaZtVGD/pixFGdKKuzg9vS/yW3Omwahr/c3bs MIiIhyWycEDL9NjK0t+HVrdDZnIfD0HHrCFwqlVYc3HqsBd4vwZtNzySv9qHhLJbVl4R QZ621fPMX8Pbo9qsWQ8YTLCosPOHYx43/MCdnd40pZXC2eUww0EKI/+A6oN2by3ja1h1 Jv5I8WTbeO7CmIjIIXNyC9BijWII5PwrtMO+6iJUl1tKgoFfcHvh9O12VJmLIh6o6GiN SyMWDT1nE5+glPp56DysotP4Ig7+Jea1Tg8se1BG1o2FUiOHkldYtpwnLhoTBNzHUlWo qSsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=vFocEYNo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b16si9551008ior.73.2021.08.15.20.39.24; Sun, 15 Aug 2021 20:39:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=vFocEYNo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232045AbhHPDit (ORCPT + 99 others); Sun, 15 Aug 2021 23:38:49 -0400 Received: from mailgw02.mediatek.com ([1.203.163.81]:15537 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S229816AbhHPDik (ORCPT ); Sun, 15 Aug 2021 23:38:40 -0400 X-UUID: e4712aae6dc341d480fe8057d6fc19f2-20210816 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=BniR1vT/ITzPIV/dl+gZPyHdSRm/k7l4QdTEiMfemhc=; b=vFocEYNogtTxR6BCyPqAx8Hhupbra+n6zya/5UbskyYTCoWetUOsGPX9R5xDlLl9mQIx3XBfuwHUojY5PEKmYsPwFkykTpv+2p91t92rInxdkgBSGQZDpdgAa6mKuw9MNf1UPB/y0dsNT6RXx2zeEY8PbcCBRGXaewSZOACnfdM=; X-UUID: e4712aae6dc341d480fe8057d6fc19f2-20210816 Received: from mtkcas35.mediatek.inc [(172.27.4.253)] by mailgw02.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 645195723; Mon, 16 Aug 2021 11:37:59 +0800 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by MTKMBS32N2.mediatek.inc (172.27.4.72) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 16 Aug 2021 11:37:47 +0800 Received: from mhfsdcap04 (10.17.3.154) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 16 Aug 2021 11:37:46 +0800 Message-ID: <8ec92b60f97b7e6516a0ffd32328f428d233fa93.camel@mediatek.com> Subject: Re: [PATCH v6 5/9] mtk-mdp: make mdp driver to be loadable by platform_device_register*() From: houlong wei To: Eizan Miyamoto , "linux-kernel@vger.kernel.org" CC: "wenst@chromium.org" , "Yong Wu =?UTF-8?Q?=28=E5=90=B4=E5=8B=87=29?=" , "enric.balletbo@collabora.com" , "devicetree@vger.kernel.org" , "chunkuang.hu@kernel.org" , "Andrew-CT Chen =?UTF-8?Q?=28=E9=99=B3=E6=99=BA=E8=BF=AA=29?=" , Matthias Brugger , Mauro Carvalho Chehab , "Minghsiu Tsai =?UTF-8?Q?=28=E8=94=A1=E6=98=8E=E4=BF=AE=29?=" , "linux-arm-kernel@lists.infradead.org" , "linux-media@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , Date: Mon, 16 Aug 2021 11:37:47 +0800 In-Reply-To: <20210802220943.v6.5.Iedb6b4f47788548b0cf7bfffae85cac917344c2f@changeid> References: <20210802121215.703023-1-eizan@chromium.org> <20210802220943.v6.5.Iedb6b4f47788548b0cf7bfffae85cac917344c2f@changeid> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 X-TM-SNTS-SMTP: 9B9AD6F64CBAAF17ECD8FEBE62D25A84C601BECC7CD52BDDFDAAAEEFE97A73EF2000:8 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gTW9uLCAyMDIxLTA4LTAyIGF0IDIwOjEyICswODAwLCBFaXphbiBNaXlhbW90byB3cm90ZToN Cj4gUmF0aGVyIHRoYW4gaGFuZ2luZyB0aGUgTURQIG1hc3RlciBjb21wb25lbnQgZHJpdmVyIG9m ZiBvZiB0aGUgcmRtYTANCj4gZGV2aWNlLCBtYWtlIGl0IHBvc3NpYmxlIHRvbyBjcmVhdGUgYSAi dmlydHVhbCIgZGV2aWNlIGJ5IHJlZ2lzdGVyaW5nDQo+IGl0IHdpdGggcGxhdGZvcm1fZGV2aWNl X3JlZ2lzdGVyXyooKSB0byBiZSBwcm9iZWQgYnkgdGhlIG10a19tZHBfY29yZQ0KPiBkcml2ZXIu DQo+IA0KPiBCcm9hZGx5LCB0aHJlZSBpbnRlcmRlcGVuZGVudCB0aGluZ3MgYXJlIGRvbmUgYnkg dGhpcyBjaGFuZ2U6DQo+IC0gTWFrZSBpdCBpcyBwb3NzaWJsZSB0byBzZWFyY2ggZm9yIE1EUCBk ZXZpY2VzIGluIHRoZSBkZXZpY2UgdHJlZQ0KPiAgIHRocm91Z2ggdGhlIGdyYW5kcGFyZW50IGRl dmljZSdzIG9mX25vZGUuDQo+IC0gdjRsLXJlbGF0ZWQgc2V0dXAgaXMgbW92ZWQgaW50byBmcm9t IHRoZSBtdGtfbWRwX2NvcmUgZHJpdmVyIHRvIHRoZQ0KPiAgIG10a19tZHBfY29tcCBkcml2ZXIu DQo+IC0gUHJlc2VuY2Ugb2YgYSBtZWRpYXRlayx2cHUgcHJvcGVydHkgaW4gYW4gTURQIGNvbXBv bmVudCBkZXZpY2Ugbm9kZQ0KPiAgIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoYXQgZGV2aWNlIHRv IHVzZSB3aGVuIGRpc3BhdGNoaW5nIERNQSBvcHMNCj4gZnJvbQ0KPiAgIHRoZSByZWxldmFudCBp b2N0bCwgYW5kIGFsc28gZG8gVjRMMiBpbml0aWFsaXphdGlvbiBpbiB0aGlzIGNhc2UuDQo+IA0K PiBTaWduZWQtb2ZmLWJ5OiBFaXphbiBNaXlhbW90byA8ZWl6YW5AY2hyb21pdW0ub3JnPg0KPiAt LS0NCj4gDQo+IENoYW5nZXMgaW4gdjY6DQo+IC0gRG9uJ3QgcHJvcGFnYXRlIGVycm9ycyBmcm9t IGNsb2NrX29uL29mZiBhcyBhbiBhZnRlcnRob3VnaHQuDQo+IC0gU3BsaXQgYXBhcnQgbW9kaWZ5 aW5nIG1kcCBkcml2ZXIgdG8gYmUgbG9hZGFibGUgZnJvbSBtbXN5cyBmcm9tDQo+ICAgYWN0dWFs bHkgbG9hZGluZyBpdCBmcm9tIG1tc3lzIGludG8gdHdvIGNoYW5ncyB0byBtYWtlIHJldmlldw0K PiBlYXNpZXIuDQo+IC0gVXBkYXRlIGRldmljZXRyZWUgYmluZGluZ3MgdG8gcmVmbGVjdCBubyBs b25nZXIgbmVlZGluZyB0aGUNCj4gICBtZWRpYXRlayx2cHUgcHJvcGVydHkgaW4gdGhlIG1kcF9y ZG1hMCBkZXZpY2Ugbm9kZS4NCj4gLSBTb21lIHN0eWxpc3RpYyBjbGVhbnVwcy4NCj4gDQo+IENo YW5nZXMgaW4gdjU6DQo+IC0gcmViYXNlIGFuZCB0ZXN0IG9uIDUuMTMtbmV4dCBAIGUyZjc0YjEz ZGJlNg0KPiANCj4gQ2hhbmdlcyBpbiB2NDoNCj4gLSByZWJhc2UgYW5kIHRlc3Qgb24gNS4xMw0K PiAtIGRvbid0IGRlcGVuZCBvbiANCj4gaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wcm9q ZWN0L2xpbnV4LW1lZGlhdGVrL2xpc3QvP3Nlcmllcz00NjQ4NzMNCj4gDQo+IENoYW5nZXMgaW4g djM6DQo+IC0gZ2V0IG1kcCBtYXN0ZXIgZnJvbSBhbGlhc2VzIGluc3RlYWQgb2Ygc3RyY21wIGFn YWluc3Qgb2Zfbm9kZS0+bmFtZQ0KPiANCj4gQ2hhbmdlcyBpbiB2MjoNCj4gLSByZWJhc2VkIG9u dG8gTGludXggNS4xMg0KPiAtIDEwMCBjaGFyIGxpbmUgbGVuZ3RoIGFsbG93YW5jZSB3YXMgdXRp bGl6ZWQgaW4gYSBmZXcgcGxhY2VzDQo+IC0gUmVtb3ZhbCBvZiBhIHJlZHVuZGFudCBkZXZfZXJy KCkgcHJpbnQgYXQgdGhlIGVuZCBvZg0KPiAgIG10a19tZHBfY29tcF9pbml0KCkNCj4gLSBJbnN0 ZWFkIG9mIHByaW50aW5nIGVycm9ycyBhbmQgaWdub3JpbmcgdGhlbSwgSSd2ZSBhZGRlZCBhIHBh dGNoIHRvDQo+ICAgY29ycmVjdGx5IHByb3BhZ2F0ZSB0aGVtLg0KPiAtIFVzZSBvZiBDIHN0eWxl IGNvbW1lbnRzLg0KPiAtIFRocmVlIGFkZGl0aW9uYWwgcGF0Y2hlcyB3ZXJlIGFkZGVkIHRvIGVs aW1pbmF0ZSBkZXBlbmRlbmN5IG9uIHRoZQ0KPiAgIG1lZGlhdGVrLHZwdSBwcm9wZXJ0eSBpbnNp ZGUgdGhlIG1kcF9yZG1hMCBkZXZpY2Ugbm9kZS4NCj4gDQo+ICBkcml2ZXJzL21lZGlhL3BsYXRm b3JtL210ay1tZHAvbXRrX21kcF9jb21wLmMgfCA1MSArKysrKysrKysrLS0tLS0NCj4gIGRyaXZl cnMvbWVkaWEvcGxhdGZvcm0vbXRrLW1kcC9tdGtfbWRwX2NvcmUuYyB8IDYyICsrKysrKy0tLS0t LS0tLS0tDQo+IC0tDQo+ICBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1tZHAvbXRrX21kcF9j b3JlLmggfCAgMiArDQo+ICBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1tZHAvbXRrX21kcF9t Mm0uYyAgfCAgNCArLQ0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA1OSBk ZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210 ay1tZHAvbXRrX21kcF9jb21wLmMNCj4gYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1tZHAv bXRrX21kcF9jb21wLmMNCj4gaW5kZXggN2I2YzhhM2YzNDU1Li44NWVmMjc0ODQxYTMgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRrLW1kcC9tdGtfbWRwX2NvbXAuYw0K PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1tZHAvbXRrX21kcF9jb21wLmMNCj4g QEAgLTE1NSw4ICsxNTUsNDUgQEAgc3RhdGljIGludCBtdGtfbWRwX2NvbXBfYmluZChzdHJ1Y3Qg ZGV2aWNlICpkZXYsDQo+IHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGENCj4gIHsNCj4g IAlzdHJ1Y3QgbXRrX21kcF9jb21wICpjb21wID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ICAJ c3RydWN0IG10a19tZHBfZGV2ICptZHAgPSBkYXRhOw0KPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAq dnB1X25vZGU7DQo+ICANCj4gIAltdGtfbWRwX3JlZ2lzdGVyX2NvbXBvbmVudChtZHAsIGNvbXAp Ow0KPiArDQo+ICsJLyoNCj4gKwkgKiBJZiB0aGlzIGNvbXBvbmVudCBoYXMgYSAibWVkaWF0ZWst dnB1IiBwcm9wZXJ0eSwgaXQgaXMNCj4gcmVzcG9uc2libGUgZm9yDQo+ICsJICogbm90aWZ5aW5n IHRoZSBtZHAgbWFzdGVyIGRyaXZlciBhYm91dCBpdCBzbyBpdCBjYW4gYmUNCj4gZnVydGhlciBp bml0aWFsaXplZA0KPiArCSAqIGxhdGVyLg0KPiArCSAqLw0KPiArCXZwdV9ub2RlID0gb2ZfcGFy c2VfcGhhbmRsZShkZXYtPm9mX25vZGUsICJtZWRpYXRlayx2cHUiLCAwKTsNCj4gKwlpZiAodnB1 X25vZGUpIHsNCj4gKwkJaW50IHJldDsNCj4gKw0KPiArCQltZHAtPnZwdV9kZXYgPSBvZl9maW5k X2RldmljZV9ieV9ub2RlKHZwdV9ub2RlKTsNCj4gKwkJaWYgKFdBUk5fT04oIW1kcC0+dnB1X2Rl dikpIHsNCj4gKwkJCWRldl9lcnIoZGV2LCAidnB1IHBkZXYgZmFpbGVkXG4iKTsNCj4gKwkJCW9m X25vZGVfcHV0KHZwdV9ub2RlKTsNCj4gKwkJfQ0KDQpNYXliZSAnb2Zfbm9kZV9wdXQodnB1X25v ZGUpJyBzaG91bGQgYmUgY2FsbGVkIHdoZW4gJ21kcC0+dnB1X2RldicgaXMNCnZhbGlkLg0KDQoN Cj4gKwkJcmV0ID0gdjRsMl9kZXZpY2VfcmVnaXN0ZXIoZGV2LCAmbWRwLT52NGwyX2Rldik7DQo+ ICsJCWlmIChyZXQpIHsNCj4gKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHY0 bDINCj4gZGV2aWNlXG4iKTsNCj4gKwkJCXJldHVybiAtRUlOVkFMOw0KPiArCQl9DQo+ICsNCj4g KwkJcmV0ID0gdmIyX2RtYV9jb250aWdfc2V0X21heF9zZWdfc2l6ZShkZXYsDQo+IERNQV9CSVRf TUFTSygzMikpOw0KPiArCQlpZiAocmV0KSB7DQo+ICsJCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0 byBzZXQgdmIyIGRtYSBtYWcgc2VnDQo+IHNpemVcbiIpOw0KPiArCQkJcmV0dXJuIC1FSU5WQUw7 DQo+ICsJCX0NCj4gKw0KPiArCQkvKg0KPiArCQkgKiBwcmVzZW5jZSBvZiB0aGUgIm1lZGlhdGVr LHZwdSIgcHJvcGVydHkgaW4gYSBkZXZpY2UNCj4gbm9kZQ0KPiArCQkgKiBpbmRpY2F0ZXMgdGhh dCBpdCBpcyB0aGUgcHJpbWFyeSBNRFAgcmRtYSBkZXZpY2UgYW5kDQo+IE1EUCBETUENCj4gKwkJ ICogb3BzIHNob3VsZCBiZSBoYW5kbGVkIGJ5IGl0cyBETUEgY2FsbGJhY2tzLg0KPiArCQkgKi8N Cj4gKwkJbWRwLT5yZG1hX2RldiA9IGRldjsNCj4gKwl9DQo+ICsNCj4gIAlwbV9ydW50aW1lX2Vu YWJsZShkZXYpOw0KPiAgDQo+ICAJcmV0dXJuIDA7DQo+IEBAIC0yMzcsMjMgKzI3NCw5IEBAIGlu dCBtdGtfbWRwX2NvbXBfaW5pdChzdHJ1Y3QgbXRrX21kcF9jb21wICpjb21wLA0KPiBzdHJ1Y3Qg ZGV2aWNlICpkZXYpDQo+ICBzdGF0aWMgaW50IG10a19tZHBfY29tcF9wcm9iZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQ0KPiAgew0KPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2 LT5kZXY7DQo+IC0Jc3RydWN0IGRldmljZV9ub2RlICp2cHVfbm9kZTsNCj4gIAlpbnQgc3RhdHVz Ow0KPiAgCXN0cnVjdCBtdGtfbWRwX2NvbXAgKmNvbXA7DQo+ICANCj4gLQl2cHVfbm9kZSA9IG9m X3BhcnNlX3BoYW5kbGUoZGV2LT5vZl9ub2RlLCAibWVkaWF0ZWssdnB1IiwgMCk7DQo+IC0JaWYg KHZwdV9ub2RlKSB7DQo+IC0JCW9mX25vZGVfcHV0KHZwdV9ub2RlKTsNCj4gLQkJLyoNCj4gLQkJ ICogVGhlIGRldmljZSB0cmVlIG5vZGUgd2l0aCBhIG1lZGlhdGVrLHZwdSBwcm9wZXJ0eSBpcw0K PiBkZWVtZWQNCj4gLQkJICogdGhlIE1EUCAibWFzdGVyIiBkZXZpY2UsIHdlIGRvbid0IHdhbnQg dG8gYWRkIGENCj4gY29tcG9uZW50DQo+IC0JCSAqIGZvciBpdCBpbiB0aGlzIGZ1bmN0aW9uIGJl Y2F1c2UgdGhlIGluaXRpYWxpemF0aW9uDQo+IGZvciB0aGUNCj4gLQkJICogbWFzdGVyIGlzIGRv bmUgZWxzZXdoZXJlLg0KPiAtCQkgKi8NCj4gLQkJZGV2X2luZm8oZGV2LCAidnB1IG5vZGUgZm91 bmQsIG5vdCBwcm9iaW5nXG4iKTsNCj4gLQkJcmV0dXJuIC1FTk9ERVY7DQo+IC0JfQ0KPiAtDQo+ ICAJY29tcCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqY29tcCksIEdGUF9LRVJORUwpOw0K PiAgCWlmICghY29tcCkNCj4gIAkJcmV0dXJuIC1FTk9NRU07DQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL210ay1tZHAvbXRrX21kcF9jb3JlLmMNCj4gYi9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL210ay1tZHAvbXRrX21kcF9jb3JlLmMNCj4gaW5kZXggYTcyYTliYTQxZWE2 Li41MGVhZmNjOTk5M2QgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRr LW1kcC9tdGtfbWRwX2NvcmUuYw0KPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1t ZHAvbXRrX21kcF9jb3JlLmMNCj4gQEAgLTE1OSw2ICsxNTksMTcgQEAgc3RhdGljIGludCBtdGtf bWRwX21hc3Rlcl9iaW5kKHN0cnVjdCBkZXZpY2UNCj4gKmRldikNCj4gIAkJZ290byBlcnJfY29t cG9uZW50X2JpbmRfYWxsOw0KPiAgCX0NCj4gIA0KPiArCWlmIChtZHAtPnZwdV9kZXYpIHsNCj4g KwkJaW50IHJldCA9IHZwdV93ZHRfcmVnX2hhbmRsZXIobWRwLT52cHVfZGV2LA0KPiBtdGtfbWRw X3Jlc2V0X2hhbmRsZXIsIG1kcCwNCj4gKwkJCQkJICBWUFVfUlNUX01EUCk7DQo+ICsJCWlmIChy ZXQpIHsNCj4gKwkJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIHJlc2V0DQo+IGhh bmRsZXJcbiIpOw0KPiArCQkJZ290byBlcnJfd2R0X3JlZzsNCj4gKwkJfQ0KPiArCX0gZWxzZSB7 DQo+ICsJCWRldl9lcnIoZGV2LCAibm8gdnB1X2RldiBmb3VuZFxuIik7DQo+ICsJfQ0KPiArDQo+ ICAJc3RhdHVzID0gbXRrX21kcF9yZWdpc3Rlcl9tMm1fZGV2aWNlKG1kcCk7DQo+ICAJaWYgKHN0 YXR1cykgew0KPiAgCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byByZWdpc3RlciBtMm0gZGV2aWNl OiAlZFxuIiwNCj4gc3RhdHVzKTsNCj4gQEAgLTE3MCw2ICsxODEsOCBAQCBzdGF0aWMgaW50IG10 a19tZHBfbWFzdGVyX2JpbmQoc3RydWN0IGRldmljZQ0KPiAqZGV2KQ0KPiAgCXJldHVybiAwOw0K PiAgDQo+ICBlcnJfbXRrX21kcF9yZWdpc3Rlcl9tMm1fZGV2aWNlOg0KPiArDQo+ICtlcnJfd2R0 X3JlZzoNCj4gIAljb21wb25lbnRfdW5iaW5kX2FsbChkZXYsIG1kcCk7DQo+ICANCj4gIGVycl9j b21wb25lbnRfYmluZF9hbGw6DQo+IEBAIC0yMjgsOCArMjQxLDEzIEBAIHN0YXRpYyBpbnQgbXRr X21kcF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ICpwZGV2KQ0KPiAgCQlvZl9ub2Rl X3B1dChub2RlKTsNCj4gIAkJcGFyZW50ID0gZGV2LT5vZl9ub2RlOw0KPiAgCQlkZXZfd2Fybihk ZXYsICJkZXZpY2UgdHJlZSBpcyBvdXQgb2YgZGF0ZVxuIik7DQo+IC0JfSBlbHNlIHsNCj4gKwl9 IGVsc2UgaWYgKGRldi0+b2Zfbm9kZSkgew0KPiAgCQlwYXJlbnQgPSBkZXYtPm9mX25vZGUtPnBh cmVudDsNCj4gKwl9IGVsc2UgaWYgKGRldi0+cGFyZW50KSB7DQo+ICsJCS8qIG1heWJlIHdlIHdl cmUgY3JlYXRlZCBmcm9tIGEgY2FsbCB0bw0KPiBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfZGF0 YSgpICovDQo+ICsJCXBhcmVudCA9IGRldi0+cGFyZW50LT5wYXJlbnQtPm9mX25vZGU7DQo+ICsJ fSBlbHNlIHsNCj4gKwkJcmV0dXJuIC1FTk9ERVY7DQo+ICAJfQ0KPiAgDQo+ICAJLyogSXRlcmF0 ZSBvdmVyIHNpYmxpbmcgTURQIGZ1bmN0aW9uIGJsb2NrcyAqLw0KPiBAQCAtMjYyLDE2ICsyODAs NiBAQCBzdGF0aWMgaW50IG10a19tZHBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiAq cGRldikNCj4gIAkJfQ0KPiAgCX0NCj4gIA0KPiAtCS8qDQo+IC0JICogQ3JlYXRlIGEgY29tcG9u ZW50IGZvciBteXNlbGYgc28gdGhhdCBjbG9ja3MgY2FuIGJlIHRvZ2dsZWQNCj4gaW4NCj4gLQkg KiBjbG9ja19vbigpLg0KPiAtCSAqLw0KPiAtCXJldCA9IG10a19tZHBfY29tcF9pbml0KCZtZHAt PmNvbXBfc2VsZiwgZGV2KTsNCj4gLQlpZiAocmV0KSB7DQo+IC0JCWRldl9lcnIoZGV2LCAiRmFp bGVkIHRvIGluaXRpYWxpemUgY29tcG9uZW50XG4iKTsNCj4gLQkJZ290byBlcnJfY29tcDsNCj4g LQl9DQo+IC0NCj4gIAltZHAtPmpvYl93cSA9DQo+IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1 ZXVlKE1US19NRFBfTU9EVUxFX05BTUUpOw0KPiAgCWlmICghbWRwLT5qb2Jfd3EpIHsNCj4gIAkJ ZGV2X2VycigmcGRldi0+ZGV2LCAidW5hYmxlIHRvIGFsbG9jIGpvYiB3b3JrcXVldWVcbiIpOw0K PiBAQCAtMjg3LDI5ICsyOTUsOCBAQCBzdGF0aWMgaW50IG10a19tZHBfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZQ0KPiAqcGRldikNCj4gIAl9DQo+ICAJSU5JVF9XT1JLKCZtZHAtPndkdF93 b3JrLCBtdGtfbWRwX3dkdF93b3JrZXIpOw0KPiAgDQo+IC0JcmV0ID0gdjRsMl9kZXZpY2VfcmVn aXN0ZXIoZGV2LCAmbWRwLT52NGwyX2Rldik7DQo+IC0JaWYgKHJldCkgew0KPiAtCQlkZXZfZXJy KCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgdjRsMg0KPiBkZXZpY2VcbiIpOw0KPiAt CQlyZXQgPSAtRUlOVkFMOw0KPiAtCQlnb3RvIGVycl9kZXZfcmVnaXN0ZXI7DQo+IC0JfQ0KPiAt DQo+IC0JbWRwLT52cHVfZGV2ID0gdnB1X2dldF9wbGF0X2RldmljZShwZGV2KTsNCj4gLQlyZXQg PSB2cHVfd2R0X3JlZ19oYW5kbGVyKG1kcC0+dnB1X2RldiwgbXRrX21kcF9yZXNldF9oYW5kbGVy LA0KPiBtZHAsDQo+IC0JCQkJICBWUFVfUlNUX01EUCk7DQo+IC0JaWYgKHJldCkgew0KPiAtCQlk ZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgcmVzZXQNCj4gaGFuZGxlclxu Iik7DQo+IC0JCWdvdG8gZXJyX3dkdF9yZWc7DQo+IC0JfQ0KPiAtDQo+ICAJcGxhdGZvcm1fc2V0 X2RydmRhdGEocGRldiwgbWRwKTsNCj4gIA0KPiAtCXJldCA9IHZiMl9kbWFfY29udGlnX3NldF9t YXhfc2VnX3NpemUoJnBkZXYtPmRldiwNCj4gRE1BX0JJVF9NQVNLKDMyKSk7DQo+IC0JaWYgKHJl dCkgew0KPiAtCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gc2V0IHZiMiBkbWEgbWFn IHNlZw0KPiBzaXplXG4iKTsNCj4gLQkJZ290byBlcnJfc2V0X21heF9zZWdfc2l6ZTsNCj4gLQl9 DQo+IC0NCj4gIAlyZXQgPSBjb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKGRldiwgJm10 a19tZHBfY29tX29wcywNCj4gbWF0Y2gpOw0KPiAgCWlmIChyZXQpIHsNCj4gIAkJZGV2X2Vycihk ZXYsICJDb21wb25lbnQgbWFzdGVyIGFkZCBmYWlsZWRcbiIpOw0KPiBAQCAtMzIxLDIyICszMDgs MTIgQEAgc3RhdGljIGludCBtdGtfbWRwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UNCj4g KnBkZXYpDQo+ICAJcmV0dXJuIDA7DQo+ICANCj4gIGVycl9jb21wb25lbnRfbWFzdGVyX2FkZDoN Cj4gLQl2YjJfZG1hX2NvbnRpZ19jbGVhcl9tYXhfc2VnX3NpemUoJnBkZXYtPmRldik7DQo+IC0N Cj4gLWVycl9zZXRfbWF4X3NlZ19zaXplOg0KPiAtDQo+IC1lcnJfd2R0X3JlZzoNCj4gLQl2NGwy X2RldmljZV91bnJlZ2lzdGVyKCZtZHAtPnY0bDJfZGV2KTsNCj4gLQ0KPiAtZXJyX2Rldl9yZWdp c3RlcjoNCj4gIAlkZXN0cm95X3dvcmtxdWV1ZShtZHAtPndkdF93cSk7DQo+ICANCj4gIGVycl9h bGxvY193ZHRfd3E6DQo+ICAJZGVzdHJveV93b3JrcXVldWUobWRwLT5qb2Jfd3EpOw0KPiAgDQo+ ICBlcnJfYWxsb2Nfam9iX3dxOg0KPiAtDQo+IC1lcnJfY29tcDoNCj4gIAlkZXZfZGJnKGRldiwg ImVyciAlZFxuIiwgcmV0KTsNCj4gIAlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiBAQCAtNDA0LDcgKzM4 MSw2IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19tZHBfZHJpdmVyID0gew0K PiAgCS5kcml2ZXIgPSB7DQo+ICAJCS5uYW1lCT0gTVRLX01EUF9NT0RVTEVfTkFNRSwNCj4gIAkJ LnBtCT0gJm10a19tZHBfcG1fb3BzLA0KPiAtCQkub2ZfbWF0Y2hfdGFibGUgPSBtdGtfbWRwX29m X2lkcywNCj4gIAl9DQo+ICB9Ow0KPiAgDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL210ay1tZHAvbXRrX21kcF9jb3JlLmgNCj4gYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L210ay1tZHAvbXRrX21kcF9jb3JlLmgNCj4gaW5kZXggOGE1MjUzOWIxNWQ0Li45ZmNkOGI4ZTdj MjUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRrLW1kcC9tdGtfbWRw X2NvcmUuaA0KPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1tZHAvbXRrX21kcF9j b3JlLmgNCj4gQEAgLTEzMyw2ICsxMzMsNyBAQCBzdHJ1Y3QgbXRrX21kcF92YXJpYW50IHsNCj4g ICAqIHN0cnVjdCBtdGtfbWRwX2RldiAtIGFic3RyYWN0aW9uIGZvciBpbWFnZSBwcm9jZXNzb3Ig ZW50aXR5DQo+ICAgKiBAbG9jazoJdGhlIG11dGV4IHByb3RlY3RpbmcgdGhpcyBkYXRhIHN0cnVj dHVyZQ0KPiAgICogQHZwdWxvY2s6CXRoZSBtdXRleCBwcm90ZWN0aW5nIHRoZSBjb21tdW5pY2F0 aW9uIHdpdGggVlBVDQo+ICsgKiBAcmRtYV9kZXY6ICBkZXZpY2UgcG9pbnRlciB0byByZG1hIGRl dmljZSBmb3IgTURQDQo+ICAgKiBAcGRldjoJcG9pbnRlciB0byB0aGUgaW1hZ2UgcHJvY2Vzc29y IHBsYXRmb3JtIGRldmljZQ0KPiAgICogQHZhcmlhbnQ6CXRoZSBJUCB2YXJpYW50IGluZm9ybWF0 aW9uDQo+ICAgKiBAaWQ6CQlpbWFnZSBwcm9jZXNzb3IgZGV2aWNlIGluZGV4DQo+ICgwLi5NVEtf TURQX01BWF9ERVZTKQ0KPiBAQCAtMTUxLDYgKzE1Miw3IEBAIHN0cnVjdCBtdGtfbWRwX3Zhcmlh bnQgew0KPiAgc3RydWN0IG10a19tZHBfZGV2IHsNCj4gIAlzdHJ1Y3QgbXV0ZXgJCQlsb2NrOw0K PiAgCXN0cnVjdCBtdXRleAkJCXZwdWxvY2s7DQo+ICsJc3RydWN0IGRldmljZQkJCSpyZG1hX2Rl djsNCj4gIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlCQkqcGRldjsNCj4gIAlzdHJ1Y3QgbXRrX21k cF92YXJpYW50CQkqdmFyaWFudDsNCj4gIAl1MTYJCQkJaWQ7DQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL21lZGlhL3BsYXRmb3JtL210ay1tZHAvbXRrX21kcF9tMm0uYw0KPiBiL2RyaXZlcnMvbWVk aWEvcGxhdGZvcm0vbXRrLW1kcC9tdGtfbWRwX20ybS5jDQo+IGluZGV4IGYxNDc3OWU3NTk2ZS4u OTgzNGQzYmJlODUxIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1t ZHAvbXRrX21kcF9tMm0uYw0KPiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1tZHAv bXRrX21kcF9tMm0uYw0KPiBAQCAtOTI5LDcgKzkyOSw3IEBAIHN0YXRpYyBpbnQgbXRrX21kcF9t Mm1fcXVldWVfaW5pdCh2b2lkICpwcml2LA0KPiBzdHJ1Y3QgdmIyX3F1ZXVlICpzcmNfdnEsDQo+ ICAJc3JjX3ZxLT5tZW1fb3BzID0gJnZiMl9kbWFfY29udGlnX21lbW9wczsNCj4gIAlzcmNfdnEt PmJ1Zl9zdHJ1Y3Rfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgdjRsMl9tMm1fYnVmZmVyKTsNCj4gIAlz cmNfdnEtPnRpbWVzdGFtcF9mbGFncyA9IFY0TDJfQlVGX0ZMQUdfVElNRVNUQU1QX0NPUFk7DQo+ IC0Jc3JjX3ZxLT5kZXYgPSAmY3R4LT5tZHBfZGV2LT5wZGV2LT5kZXY7DQo+ICsJc3JjX3ZxLT5k ZXYgPSBjdHgtPm1kcF9kZXYtPnJkbWFfZGV2Ow0KPiAgCXNyY192cS0+bG9jayA9ICZjdHgtPm1k cF9kZXYtPmxvY2s7DQo+ICANCj4gIAlyZXQgPSB2YjJfcXVldWVfaW5pdChzcmNfdnEpOw0KPiBA QCAtOTQ0LDcgKzk0NCw3IEBAIHN0YXRpYyBpbnQgbXRrX21kcF9tMm1fcXVldWVfaW5pdCh2b2lk ICpwcml2LA0KPiBzdHJ1Y3QgdmIyX3F1ZXVlICpzcmNfdnEsDQo+ICAJZHN0X3ZxLT5tZW1fb3Bz ID0gJnZiMl9kbWFfY29udGlnX21lbW9wczsNCj4gIAlkc3RfdnEtPmJ1Zl9zdHJ1Y3Rfc2l6ZSA9 IHNpemVvZihzdHJ1Y3QgdjRsMl9tMm1fYnVmZmVyKTsNCj4gIAlkc3RfdnEtPnRpbWVzdGFtcF9m bGFncyA9IFY0TDJfQlVGX0ZMQUdfVElNRVNUQU1QX0NPUFk7DQo+IC0JZHN0X3ZxLT5kZXYgPSAm Y3R4LT5tZHBfZGV2LT5wZGV2LT5kZXY7DQo+ICsJZHN0X3ZxLT5kZXYgPSBjdHgtPm1kcF9kZXYt PnJkbWFfZGV2Ow0KPiAgCWRzdF92cS0+bG9jayA9ICZjdHgtPm1kcF9kZXYtPmxvY2s7DQo+ICAN Cj4gIAlyZXR1cm4gdmIyX3F1ZXVlX2luaXQoZHN0X3ZxKTsNCj4gLS0gDQo+IDIuMzIuMC41NTQu Z2UxYjMyNzA2ZDgtZ29vZw0KPiANCg==