From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yakir Yang Subject: Re: [PATCH 1/3] drm/rockchip: inno_hdmi: add audio support Date: Thu, 4 Aug 2016 10:11:53 +0800 Message-ID: <57A2A469.3040308@rock-chips.com> References: <1465997312-17777-1-git-send-email-ykk@rock-chips.com> <57A2A1F7.2080405@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <57A2A1F7.2080405@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mark yao , Heiko Stuebner Cc: Mark Rutland , devicetree@vger.kernel.org, Zheng Yang , Pawel Moll , Ian Campbell , Ken Mixte , Russell King , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, Rob Herring , Kumar Gala , Thierry Reding , linux-arm-kernel@lists.infradead.org, Ben Chan List-Id: linux-rockchip.vger.kernel.org TWFyaywKCgpHb3QgaXQsIHdvdWxkIHJlYmFzZSBzb29uZXN0IDotKQoKClRoYW5rcywKLSBZYWtp cgoKT24gMDgvMDQvMjAxNiAxMDowMSBBTSwgTWFyayB5YW8gd3JvdGU6Cj4gSGkgWWFraXIKPgo+ IEFmdGVyIGFwcGx5IHlvdXIgcGF0Y2gsIEkgZ290IGZvbGxvd2luZyB3YXJuaW5nIG1lc3NnZToK Pgo+IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYzo4MTg6Mjogd2FybmluZzog aW5pdGlhbGl6YXRpb24gCj4gZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFtlbmFibGVk IGJ5IGRlZmF1bHRdCj4gZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jOjgxODoy OiB3YXJuaW5nOiAobmVhciAKPiBpbml0aWFsaXphdGlvbiBmb3IgJ2F1ZGlvX2NvZGVjX29wcy5o d19wYXJhbXMnKSBbZW5hYmxlZCBieSBkZWZhdWx0XQo+IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9pbm5vX2hkbWkuYzo4MTk6Mjogd2FybmluZzogaW5pdGlhbGl6YXRpb24gCj4gZnJvbSBpbmNv bXBhdGlibGUgcG9pbnRlciB0eXBlIFtlbmFibGVkIGJ5IGRlZmF1bHRdCj4gZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jOjgxOToyOiB3YXJuaW5nOiAobmVhciAKPiBpbml0aWFs aXphdGlvbiBmb3IgJ2F1ZGlvX2NvZGVjX29wcy5hdWRpb19zaHV0ZG93bicpIFtlbmFibGVkIGJ5 IGRlZmF1bHRdCj4gZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jOjgyMDoyOiB3 YXJuaW5nOiBpbml0aWFsaXphdGlvbiAKPiBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUg W2VuYWJsZWQgYnkgZGVmYXVsdF0KPiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvaW5ub19oZG1p LmM6ODIwOjI6IHdhcm5pbmc6IChuZWFyIAo+IGluaXRpYWxpemF0aW9uIGZvciAnYXVkaW9fY29k ZWNfb3BzLmRpZ2l0YWxfbXV0ZScpIFtlbmFibGVkIGJ5IGRlZmF1bHRdCj4gZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jOjgyMToyOiB3YXJuaW5nOiBpbml0aWFsaXphdGlvbiAK PiBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgW2VuYWJsZWQgYnkgZGVmYXVsdF0KPiBk cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvaW5ub19oZG1pLmM6ODIxOjI6IHdhcm5pbmc6IChuZWFy IAo+IGluaXRpYWxpemF0aW9uIGZvciAnYXVkaW9fY29kZWNfb3BzLmdldF9lbGQnKSBbZW5hYmxl ZCBieSBkZWZhdWx0XQo+Cj4gc2luY2UgdGhlIGNvbW1pdCAiZWZjOTE5NCBBU29DOiBoZG1pLWNv ZGVjOiBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIAo+IGNhbGxlZCB3aXRoIHByaXZhdGUgZGF0 YSIsCj4gdGhlIGhkbWlfY29kZWNfb3BzIGhhZCBzb21lIGNoYW5nZXMuCj4gQ2FuIHlvdSByZWJh c2UgeW91ciBwYXRjaCB0byB0aGUgbmV3ZXN0IGtlcm5lbD8KPgo+IFRoYW5rcy4KPiBPbiAyMDE2 5bm0MDbmnIgxNeaXpSAyMToyOCwgWWFraXIgWWFuZyB3cm90ZToKPj4gVXNpbmcgdGhlIGNvbW1v biBoZG1pLWNvZGVjIGRyaXZlciB0byBzdXBwb3J0IGhkbWkgYXVkaW8gZnVuY3Rpb24uCj4+Cj4+ IFNpZ25lZC1vZmYtYnk6IFlha2lyIFlhbmcgPHlra0Byb2NrLWNoaXBzLmNvbT4KPj4gLS0tCj4+ ICAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jIHwgMjM3IAo+PiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9pbm5vX2hkbWkuaCB8ICAgMiArCj4+ICAgMiBmaWxlcyBjaGFuZ2VkLCAyMzcgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9pbm5vX2hkbWkuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvaW5ub19o ZG1pLmMKPj4gaW5kZXggZjhiNGZlYi4uYzMxZGMwNyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9pbm5vX2hkbWkuYwo+PiBAQCAtMjksNiArMjksOCBAQAo+PiAgICNpbmNsdWRlIDxkcm0v ZHJtX2NydGNfaGVscGVyLmg+Cj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgo+PiAgICsj aW5jbHVkZSA8c291bmQvaGRtaS1jb2RlYy5oPgo+PiArCj4+ICAgI2luY2x1ZGUgInJvY2tjaGlw X2RybV9kcnYuaCIKPj4gICAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX3ZvcC5oIgo+PiAgIEBAIC0z Niw2ICszOCwxMiBAQAo+PiAgICAgI2RlZmluZSB0b19pbm5vX2hkbWkoeCkgICAgY29udGFpbmVy X29mKHgsIHN0cnVjdCBpbm5vX2hkbWksIHgpCj4+ICAgK3N0cnVjdCBhdWRpb19pbmZvIHsKPj4g KyAgICBpbnQgc2FtcGxlX3JhdGU7Cj4+ICsgICAgaW50IGNoYW5uZWxzOwo+PiArICAgIGludCBz YW1wbGVfd2lkdGg7Cj4+ICt9Owo+PiArCj4+ICAgc3RydWN0IGhkbWlfZGF0YV9pbmZvIHsKPj4g ICAgICAgaW50IHZpYzsKPj4gICAgICAgYm9vbCBzaW5rX2lzX2hkbWk7Cj4+IEBAIC03MSw2ICs3 OSw5IEBAIHN0cnVjdCBpbm5vX2hkbWkgewo+PiAgICAgICAgIHVuc2lnbmVkIGludCB0bWRzX3Jh dGU7Cj4+ICAgKyAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphdWRpb19wZGV2Owo+PiArICAg IGJvb2wgYXVkaW9fZW5hYmxlOwo+PiArCj4+ICAgICAgIHN0cnVjdCBoZG1pX2RhdGFfaW5mbyAg ICBoZG1pX2RhdGE7Cj4+ICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHByZXZpb3VzX21v ZGU7Cj4+ICAgfTsKPj4gQEAgLTMwNiw2ICszMTcsNTcgQEAgc3RhdGljIGludCBpbm5vX2hkbWlf Y29uZmlnX3ZpZGVvX2F2aShzdHJ1Y3QgCj4+IGlubm9faGRtaSAqaGRtaSwKPj4gICAgICAgcmV0 dXJuIGlubm9faGRtaV91cGxvYWRfZnJhbWUoaGRtaSwgcmMsICZmcmFtZSwgSU5GT0ZSQU1FX0FW SSwgCj4+IDAsIDAsIDApOwo+PiAgIH0KPj4gICArc3RhdGljIGludCBpbm5vX2hkbWlfY29uZmln X2F1ZGlvX2FhaShzdHJ1Y3QgaW5ub19oZG1pICpoZG1pLAo+PiArICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBhdWRpb19pbmZvICphdWRpbykKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgaGRtaV9h dWRpb19pbmZvZnJhbWUgKmZhdWRpbzsKPj4gKyAgICB1bmlvbiBoZG1pX2luZm9mcmFtZSBmcmFt ZTsKPj4gKyAgICBpbnQgcmM7Cj4+ICsKPj4gKyAgICByYyA9IGhkbWlfYXVkaW9faW5mb2ZyYW1l X2luaXQoJmZyYW1lLmF1ZGlvKTsKPj4gKyAgICBmYXVkaW8gPSAoc3RydWN0IGhkbWlfYXVkaW9f aW5mb2ZyYW1lICopJmZyYW1lOwo+PiArCj4+ICsgICAgZmF1ZGlvLT5jaGFubmVscyA9IGF1ZGlv LT5jaGFubmVsczsKPj4gKwo+PiArICAgIHN3aXRjaCAoYXVkaW8tPnNhbXBsZV93aWR0aCkgewo+ PiArICAgIGNhc2UgMTY6Cj4+ICsgICAgICAgIGZhdWRpby0+c2FtcGxlX3NpemUgPSBIRE1JX0FV RElPX1NBTVBMRV9TSVpFXzE2Owo+PiArICAgICAgICBicmVhazsKPj4gKyAgICBjYXNlIDIwOgo+ PiArICAgICAgICBmYXVkaW8tPnNhbXBsZV9zaXplID0gSERNSV9BVURJT19TQU1QTEVfU0laRV8y MDsKPj4gKyAgICAgICAgYnJlYWs7Cj4+ICsgICAgY2FzZSAyNDoKPj4gKyAgICAgICAgZmF1ZGlv LT5zYW1wbGVfc2l6ZSA9IEhETUlfQVVESU9fU0FNUExFX1NJWkVfMjQ7Cj4+ICsgICAgICAgIGJy ZWFrOwo+PiArICAgIH0KPj4gKwo+PiArICAgIHN3aXRjaCAoYXVkaW8tPnNhbXBsZV9yYXRlKSB7 Cj4+ICsgICAgY2FzZSAzMjAwMDoKPj4gKyAgICAgICAgZmF1ZGlvLT5zYW1wbGVfZnJlcXVlbmN5 ID0gSERNSV9BVURJT19TQU1QTEVfRlJFUVVFTkNZXzMyMDAwOwo+PiArICAgICAgICBicmVhazsK Pj4gKyAgICBjYXNlIDQ0MTAwOgo+PiArICAgICAgICBmYXVkaW8tPnNhbXBsZV9mcmVxdWVuY3kg PSBIRE1JX0FVRElPX1NBTVBMRV9GUkVRVUVOQ1lfNDQxMDA7Cj4+ICsgICAgICAgIGJyZWFrOwo+ PiArICAgIGNhc2UgNDgwMDA6Cj4+ICsgICAgICAgIGZhdWRpby0+c2FtcGxlX2ZyZXF1ZW5jeSA9 IEhETUlfQVVESU9fU0FNUExFX0ZSRVFVRU5DWV80ODAwMDsKPj4gKyAgICAgICAgYnJlYWs7Cj4+ ICsgICAgY2FzZSA4ODIwMDoKPj4gKyAgICAgICAgZmF1ZGlvLT5zYW1wbGVfZnJlcXVlbmN5ID0g SERNSV9BVURJT19TQU1QTEVfRlJFUVVFTkNZXzg4MjAwOwo+PiArICAgICAgICBicmVhazsKPj4g KyAgICBjYXNlIDk2MDAwOgo+PiArICAgICAgICBmYXVkaW8tPnNhbXBsZV9mcmVxdWVuY3kgPSBI RE1JX0FVRElPX1NBTVBMRV9GUkVRVUVOQ1lfOTYwMDA7Cj4+ICsgICAgICAgIGJyZWFrOwo+PiAr ICAgIGNhc2UgMTc2NDAwOgo+PiArICAgICAgICBmYXVkaW8tPnNhbXBsZV9mcmVxdWVuY3kgPSBI RE1JX0FVRElPX1NBTVBMRV9GUkVRVUVOQ1lfMTc2NDAwOwo+PiArICAgICAgICBicmVhazsKPj4g KyAgICBjYXNlIDE5MjAwMDoKPj4gKyAgICAgICAgZmF1ZGlvLT5zYW1wbGVfZnJlcXVlbmN5ID0g SERNSV9BVURJT19TQU1QTEVfRlJFUVVFTkNZXzE5MjAwMDsKPj4gKyAgICAgICAgYnJlYWs7Cj4+ ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJuIGlubm9faGRtaV91cGxvYWRfZnJhbWUoaGRtaSwg cmMsICZmcmFtZSwgSU5GT0ZSQU1FX0FBSSwgCj4+IDAsIDAsIDApOwo+PiArfQo+PiArCj4+ICAg c3RhdGljIGludCBpbm5vX2hkbWlfY29uZmlnX3ZpZGVvX2NzYyhzdHJ1Y3QgaW5ub19oZG1pICpo ZG1pKQo+PiAgIHsKPj4gICAgICAgc3RydWN0IGhkbWlfZGF0YV9pbmZvICpkYXRhID0gJmhkbWkt PmhkbWlfZGF0YTsKPj4gQEAgLTQ3OCw4ICs1NDAsOSBAQCBzdGF0aWMgaW50IGlubm9faGRtaV9z ZXR1cChzdHJ1Y3QgaW5ub19oZG1pICpoZG1pLAo+PiAgICAgICBpbm5vX2hkbWlfaTJjX2luaXQo aGRtaSk7Cj4+ICAgICAgICAgLyogVW5tdXRlIHZpZGVvIGFuZCBhdWRpbyBvdXRwdXQgKi8KPj4g LSAgICBoZG1pX21vZGIoaGRtaSwgSERNSV9BVl9NVVRFLCBtX0FVRElPX01VVEUgfCBtX1ZJREVP X0JMQUNLLAo+PiAtICAgICAgICAgIHZfQVVESU9fTVVURSgwKSB8IHZfVklERU9fTVVURSgwKSk7 Cj4+ICsgICAgaGRtaV9tb2RiKGhkbWksIEhETUlfQVZfTVVURSwgbV9WSURFT19CTEFDSywgdl9W SURFT19NVVRFKDApKTsKPj4gKyAgICBpZiAoaGRtaS0+YXVkaW9fZW5hYmxlKQo+PiArICAgICAg ICBoZG1pX21vZGIoaGRtaSwgSERNSV9BVl9NVVRFLCBtX0FVRElPX01VVEUsIHZfQVVESU9fTVVU RSgwKSk7Cj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+PiBAQCAtNjE2LDYgKzY3OSwxNzQg QEAgc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAKPj4gaW5ub19oZG1p X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4+ICAgICAgIC5iZXN0X2VuY29kZXIgPSBpbm5v X2hkbWlfY29ubmVjdG9yX2Jlc3RfZW5jb2RlciwKPj4gICB9Owo+PiAgICtpbnQgaW5ub19oZG1p X2F1ZGlvX2NvbmZpZ19zZXQoc3RydWN0IGlubm9faGRtaSAqaGRtaSwgc3RydWN0IAo+PiBhdWRp b19pbmZvICphdWRpbykKPj4gK3sKPj4gKyAgICBpbnQgcmF0ZSwgTiwgY2hhbm5lbDsKPj4gKwo+ PiArICAgIGlmIChhdWRpby0+Y2hhbm5lbHMgPCAzKQo+PiArICAgICAgICBjaGFubmVsID0gSTJT X0NIQU5ORUxfMV8yOwo+PiArICAgIGVsc2UgaWYgKGF1ZGlvLT5jaGFubmVscyA8IDUpCj4+ICsg ICAgICAgIGNoYW5uZWwgPSBJMlNfQ0hBTk5FTF8zXzQ7Cj4+ICsgICAgZWxzZSBpZiAoYXVkaW8t PmNoYW5uZWxzIDwgNykKPj4gKyAgICAgICAgY2hhbm5lbCA9IEkyU19DSEFOTkVMXzVfNjsKPj4g KyAgICBlbHNlCj4+ICsgICAgICAgIGNoYW5uZWwgPSBJMlNfQ0hBTk5FTF83Xzg7Cj4+ICsKPj4g KyAgICBzd2l0Y2ggKGF1ZGlvLT5zYW1wbGVfcmF0ZSkgewo+PiArICAgIGNhc2UgMzIwMDA6Cj4+ ICsgICAgICAgIHJhdGUgPSBBVURJT18zMks7Cj4+ICsgICAgICAgIE4gPSBOXzMySzsKPj4gKyAg ICAgICAgYnJlYWs7Cj4+ICsgICAgY2FzZSA0NDEwMDoKPj4gKyAgICAgICAgcmF0ZSA9IEFVRElP XzQ0MUs7Cj4+ICsgICAgICAgIE4gPSBOXzQ0MUs7Cj4+ICsgICAgICAgIGJyZWFrOwo+PiArICAg IGNhc2UgNDgwMDA6Cj4+ICsgICAgICAgIHJhdGUgPSBBVURJT180OEs7Cj4+ICsgICAgICAgIE4g PSBOXzQ4SzsKPj4gKyAgICAgICAgYnJlYWs7Cj4+ICsgICAgY2FzZSA4ODIwMDoKPj4gKyAgICAg ICAgcmF0ZSA9IEFVRElPXzg4Mks7Cj4+ICsgICAgICAgIE4gPSBOXzg4Mks7Cj4+ICsgICAgICAg IGJyZWFrOwo+PiArICAgIGNhc2UgOTYwMDA6Cj4+ICsgICAgICAgIHJhdGUgPSBBVURJT185Nks7 Cj4+ICsgICAgICAgIE4gPSBOXzk2SzsKPj4gKyAgICAgICAgYnJlYWs7Cj4+ICsgICAgY2FzZSAx NzY0MDA6Cj4+ICsgICAgICAgIHJhdGUgPSBBVURJT18xNzY0SzsKPj4gKyAgICAgICAgTiA9IE5f MTc2NEs7Cj4+ICsgICAgICAgIGJyZWFrOwo+PiArICAgIGNhc2UgMTkyMDAwOgo+PiArICAgICAg ICByYXRlID0gQVVESU9fMTkySzsKPj4gKyAgICAgICAgTiA9IE5fMTkySzsKPj4gKyAgICAgICAg YnJlYWs7Cj4+ICsgICAgZGVmYXVsdDoKPj4gKyAgICAgICAgZGV2X2VycihoZG1pLT5kZXYsICJb JXNdIG5vdCBzdXBwb3J0IHN1Y2ggc2FtcGxlIHJhdGUgJWRcbiIsCj4+ICsgICAgICAgICAgICBf X2Z1bmNfXywgYXVkaW8tPnNhbXBsZV9yYXRlKTsKPj4gKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7 Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgLyogc2V0X2F1ZGlvIHNvdXJjZSBJMlMgKi8KPj4gKyAg ICBoZG1pX3dyaXRlYihoZG1pLCBIRE1JX0FVRElPX0NUUkwxLCAweDAxKTsKPj4gKyAgICBoZG1p X3dyaXRlYihoZG1pLCBBVURJT19TQU1QTEVfUkFURSwgcmF0ZSk7Cj4+ICsgICAgaGRtaV93cml0 ZWIoaGRtaSwgQVVESU9fSTJTX01PREUsIHZfSTJTX01PREUoSTJTX1NUQU5EQVJEKSB8Cj4+ICsg ICAgICAgICAgICB2X0kyU19DSEFOTkVMKGNoYW5uZWwpKTsKPj4gKwo+PiArICAgIGhkbWlfd3Jp dGViKGhkbWksIEFVRElPX0kyU19NQVAsIDB4MDApOwo+PiArICAgIGhkbWlfd3JpdGViKGhkbWks IEFVRElPX0kyU19TV0FQU19TUERJRiwgMCk7Cj4+ICsKPj4gKyAgICAvKiBTZXQgTiB2YWx1ZSAq Lwo+PiArICAgIGhkbWlfd3JpdGViKGhkbWksIEFVRElPX05fSCwgKE4gPj4gMTYpICYgMHgwRik7 Cj4+ICsgICAgaGRtaV93cml0ZWIoaGRtaSwgQVVESU9fTl9NLCAoTiA+PiA4KSAmIDB4RkYpOwo+ PiArICAgIGhkbWlfd3JpdGViKGhkbWksIEFVRElPX05fTCwgTiAmIDB4RkYpOwo+PiArCj4+ICsg ICAgLypTZXQgaGRtaSBubHBjbSBtb2RlIHRvIHN1cHBvcnQgaGRtaSBiaXRzdHJlYW0qLwo+PiAr ICAgIGhkbWlfd3JpdGViKGhkbWksIEhETUlfQVVESU9fQ0hBTk5FTF9TVEFUVVMsIAo+PiB2X0FV RElPX1NUQVRVU19OTFBDTSgwKSk7Cj4+ICsKPj4gKyAgICByZXR1cm4gaW5ub19oZG1pX2NvbmZp Z19hdWRpb19hYWkoaGRtaSwgYXVkaW8pOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IGlubm9f aGRtaV9hdWRpb19od19wYXJhbXMoc3RydWN0IGRldmljZSAqZGV2LAo+PiArICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGhkbWlfY29kZWNfZGFpZm10ICpkYWlmbXQsCj4+ICsgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgaGRtaV9jb2RlY19wYXJhbXMgKnBhcmFtcykKPj4gK3sKPj4gKyAg ICBzdHJ1Y3QgaW5ub19oZG1pICpoZG1pID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ICsgICAg c3RydWN0IGF1ZGlvX2luZm8gYXVkaW8gPSB7Cj4+ICsgICAgICAgIC5zYW1wbGVfd2lkdGggPSBw YXJhbXMtPnNhbXBsZV93aWR0aCwKPj4gKyAgICAgICAgLnNhbXBsZV9yYXRlID0gcGFyYW1zLT5z YW1wbGVfcmF0ZSwKPj4gKyAgICAgICAgLmNoYW5uZWxzID0gcGFyYW1zLT5jaGFubmVscywKPj4g KyAgICB9Owo+PiArCj4+ICsgICAgaWYgKCFoZG1pLT5oZG1pX2RhdGEuc2lua19oYXNfYXVkaW8p IHsKPj4gKyAgICAgICAgZGV2X2VycihoZG1pLT5kZXYsICJTaW5rIGRvIG5vdCBzdXBwb3J0IGF1 ZGlvIVxuIik7Cj4+ICsgICAgICAgIHJldHVybiAtRU5PREVWOwo+PiArICAgIH0KPj4gKwo+PiAr ICAgIGlmICghaGRtaS0+ZW5jb2Rlci5jcnRjKQo+PiArICAgICAgICByZXR1cm4gLUVOT0RFVjsK Pj4gKwo+PiArICAgIHN3aXRjaCAoZGFpZm10LT5mbXQpIHsKPj4gKyAgICBjYXNlIEhETUlfSTJT Ogo+PiArICAgICAgICBicmVhazsKPj4gKyAgICBkZWZhdWx0Ogo+PiArICAgICAgICBkZXZfZXJy KGRldiwgIiVzOiBJbnZhbGlkIGZvcm1hdCAlZFxuIiwgX19mdW5jX18sIGRhaWZtdC0+Zm10KTsK Pj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJu IGlubm9faGRtaV9hdWRpb19jb25maWdfc2V0KGhkbWksICZhdWRpbyk7Cj4+ICt9Cj4+ICsKPj4g K3N0YXRpYyB2b2lkIGlubm9faGRtaV9hdWRpb19zaHV0ZG93bihzdHJ1Y3QgZGV2aWNlICpkZXYp Cj4+ICt7Cj4+ICsgICAgLyogZG8gbm90aGluZyAqLwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50 IGlubm9faGRtaV9hdWRpb19kaWdpdGFsX211dGUoc3RydWN0IGRldmljZSAqZGV2LCBib29sIG11 dGUpCj4+ICt7Cj4+ICsgICAgc3RydWN0IGlubm9faGRtaSAqaGRtaSA9IGRldl9nZXRfZHJ2ZGF0 YShkZXYpOwo+PiArCj4+ICsgICAgaWYgKCFoZG1pLT5oZG1pX2RhdGEuc2lua19oYXNfYXVkaW8p IHsKPj4gKyAgICAgICAgZGV2X2VycihoZG1pLT5kZXYsICJTaW5rIGRvIG5vdCBzdXBwb3J0IGF1 ZGlvIVxuIik7Cj4+ICsgICAgICAgIHJldHVybiAtRU5PREVWOwo+PiArICAgIH0KPj4gKwo+PiAr ICAgIGhkbWktPmF1ZGlvX2VuYWJsZSA9ICFtdXRlOwo+PiArCj4+ICsgICAgaWYgKG11dGUpCj4+ ICsgICAgICAgIGhkbWlfbW9kYihoZG1pLCBIRE1JX0FWX01VVEUsIG1fQVVESU9fTVVURSB8IG1f QVVESU9fUEQsCj4+ICsgICAgICAgICAgICAgIHZfQVVESU9fTVVURSgxKSB8IHZfQVVESU9fUEQo MSkpOwo+PiArICAgIGVsc2UKPj4gKyAgICAgICAgaGRtaV9tb2RiKGhkbWksIEhETUlfQVZfTVVU RSwgbV9BVURJT19NVVRFIHwgbV9BVURJT19QRCwKPj4gKyAgICAgICAgICAgICAgdl9BVURJT19N VVRFKDApIHwgdl9BVURJT19QRCgwKSk7Cj4+ICsKPj4gKyAgICByZXR1cm4gMDsKPj4gK30KPj4g Kwo+PiArc3RhdGljIGludCBpbm5vX2hkbWlfYXVkaW9fZ2V0X2VsZChzdHJ1Y3QgZGV2aWNlICpk ZXYsIHVpbnQ4X3QgKmJ1ZiwgCj4+IHNpemVfdCBsZW4pCj4+ICt7Cj4+ICsgICAgc3RydWN0IGlu bm9faGRtaSAqaGRtaSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+PiArICAgIHN0cnVjdCBkcm1f bW9kZV9jb25maWcgKmNvbmZpZyA9ICZoZG1pLT5lbmNvZGVyLmRldi0+bW9kZV9jb25maWc7Cj4+ ICsgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPj4gKyAgICBpbnQgcmV0ID0g LUVOT0RFVjsKPj4gKwo+PiArICAgIG11dGV4X2xvY2soJmNvbmZpZy0+bXV0ZXgpOwo+PiArICAg IGxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmY29uZmlnLT5jb25uZWN0b3JfbGlzdCwg aGVhZCkgewo+PiArICAgICAgICBpZiAoJmhkbWktPmVuY29kZXIgPT0gY29ubmVjdG9yLT5lbmNv ZGVyKSB7Cj4+ICsgICAgICAgICAgICBtZW1jcHkoYnVmLCBjb25uZWN0b3ItPmVsZCwKPj4gKyAg ICAgICAgICAgICAgICAgICBtaW4oc2l6ZW9mKGNvbm5lY3Rvci0+ZWxkKSwgbGVuKSk7Cj4+ICsg ICAgICAgICAgICByZXQgPSAwOwo+PiArICAgICAgICB9Cj4+ICsgICAgfQo+PiArICAgIG11dGV4 X3VubG9jaygmY29uZmlnLT5tdXRleCk7Cj4+ICsKPj4gKyAgICByZXR1cm4gcmV0Owo+PiArfQo+ PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGhkbWlfY29kZWNfb3BzIGF1ZGlvX2NvZGVjX29w cyA9IHsKPj4gKyAgICAuaHdfcGFyYW1zID0gaW5ub19oZG1pX2F1ZGlvX2h3X3BhcmFtcywKPj4g KyAgICAuYXVkaW9fc2h1dGRvd24gPSBpbm5vX2hkbWlfYXVkaW9fc2h1dGRvd24sCj4+ICsgICAg LmRpZ2l0YWxfbXV0ZSA9IGlubm9faGRtaV9hdWRpb19kaWdpdGFsX211dGUsCj4+ICsgICAgLmdl dF9lbGQgPSBpbm5vX2hkbWlfYXVkaW9fZ2V0X2VsZCwKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBp bnQgaW5ub19oZG1pX2F1ZGlvX2NvZGVjX2luaXQoc3RydWN0IGlubm9faGRtaSAqaGRtaSwKPj4g KyAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+ICt7Cj4+ICsgICAg c3RydWN0IGhkbWlfY29kZWNfcGRhdGEgY29kZWNfZGF0YSA9IHsKPj4gKyAgICAgICAgLmkycyA9 IDEsCj4+ICsgICAgICAgIC5vcHMgPSAmYXVkaW9fY29kZWNfb3BzLAo+PiArICAgICAgICAubWF4 X2kyc19jaGFubmVscyA9IDgsCj4+ICsgICAgfTsKPj4gKwo+PiArICAgIGhkbWktPmF1ZGlvX2Vu YWJsZSA9IGZhbHNlOwo+PiArICAgIGhkbWktPmF1ZGlvX3BkZXYgPSBwbGF0Zm9ybV9kZXZpY2Vf cmVnaXN0ZXJfZGF0YSgKPj4gKyAgICAgICAgICAgICAgICBkZXYsIEhETUlfQ09ERUNfRFJWX05B TUUsIFBMQVRGT1JNX0RFVklEX05PTkUsCj4+ICsgICAgICAgICAgICAgICAgJmNvZGVjX2RhdGEs IHNpemVvZihjb2RlY19kYXRhKSk7Cj4+ICsKPj4gKyAgICByZXR1cm4gUFRSX0VSUl9PUl9aRVJP KGhkbWktPmF1ZGlvX3BkZXYpOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIGludCBpbm5vX2hkbWlf cmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IAo+PiBpbm5vX2hkbWkgKmhk bWkpCj4+ICAgewo+PiAgICAgICBzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaGRtaS0+ ZW5jb2RlcjsKPj4gQEAgLTY0NSw2ICs4NzYsOCBAQCBzdGF0aWMgaW50IGlubm9faGRtaV9yZWdp c3RlcihzdHJ1Y3QgZHJtX2RldmljZSAKPj4gKmRybSwgc3RydWN0IGlubm9faGRtaSAqaGRtaSkK Pj4gZHJtX21vZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKCZoZG1pLT5jb25uZWN0b3IsIGVu Y29kZXIpOwo+PiAgICsgICAgaW5ub19oZG1pX2F1ZGlvX2NvZGVjX2luaXQoaGRtaSwgZGV2KTsK Pj4gKwo+PiAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ICAgZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvaW5ub19oZG1pLmgKPj4gaW5kZXggYWE3YzQxNS4uOGIyMzAzNyAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuaAo+PiBAQCAtMTA0LDExICsxMDQsMTMgQEAgZW51bSB7 Cj4+ICAgI2RlZmluZSBIRE1JX0FWX01VVEUgICAgICAgICAgICAweDA1Cj4+ICAgI2RlZmluZSBt X0FWTVVURV9DTEVBUiAgICAgICAgICAgICgxIDw8IDcpCj4+ICAgI2RlZmluZSBtX0FWTVVURV9F TkFCTEUgICAgICAgICAgICAoMSA8PCA2KQo+PiArI2RlZmluZSBtX0FVRElPX1BEICAgICAgICAg ICAgKDEgPDwgMikKPj4gICAjZGVmaW5lIG1fQVVESU9fTVVURSAgICAgICAgICAgICgxIDw8IDEp Cj4+ICAgI2RlZmluZSBtX1ZJREVPX0JMQUNLICAgICAgICAgICAgKDEgPDwgMCkKPj4gICAjZGVm aW5lIHZfQVZNVVRFX0NMRUFSKG4pICAgICAgICAobiA8PCA3KQo+PiAgICNkZWZpbmUgdl9BVk1V VEVfRU5BQkxFKG4pICAgICAgICAobiA8PCA2KQo+PiAgICNkZWZpbmUgdl9BVURJT19NVVRFKG4p ICAgICAgICAgICAgKG4gPDwgMSkKPj4gKyNkZWZpbmUgdl9BVURJT19QRChuKSAgICAgICAgICAg IChuIDw8IDIpCj4+ICAgI2RlZmluZSB2X1ZJREVPX01VVEUobikgICAgICAgICAgICAobiA8PCAw KQo+PiAgICAgI2RlZmluZSBIRE1JX1ZJREVPX1RJTUlOR19DVEwgICAgICAgIDB4MDgKPgo+CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==