From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Stultz Subject: [RESEND x2][PATCH 1/2 v4] drm/bridge: adv7511: Add Audio support. Date: Wed, 16 Nov 2016 17:03:48 -0800 Message-ID: <1479344629-23243-2-git-send-email-john.stultz@linaro.org> References: <1479344629-23243-1-git-send-email-john.stultz@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x22e.google.com (mail-pf0-x22e.google.com [IPv6:2607:f8b0:400e:c00::22e]) by gabe.freedesktop.org (Postfix) with ESMTPS id E875B6E26C for ; Thu, 17 Nov 2016 01:04:01 +0000 (UTC) Received: by mail-pf0-x22e.google.com with SMTP id d2so45697174pfd.0 for ; Wed, 16 Nov 2016 17:04:01 -0800 (PST) In-Reply-To: <1479344629-23243-1-git-send-email-john.stultz@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: lkml Cc: Kuninori Morimoto , Guodong Xu , dri-devel@lists.freedesktop.org, Jose Abreu , Wolfram Sang , Mark Brown , Laurent Pinchart , Zhangfei Gao , Andy Green , Srinivas Kandagatla , Dave Long List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gQXVkaW8gZm9yIGJvdGggYWR2NzUxMSBhbmQgYWR2 NzUzMwpicmlkZ2UgY2hpcHMuCgpUaGlzIHBhdGNoIHdhcyBvcmlnaW5hbGx5IGZyb20gWzFdIGJ5 IExhcnMtUGV0ZXIgQ2xhdXNlbiA8bGFyc0BtZXRhZm9vLmRlPgphbmQgd2FzIGFkYXB0ZWQgYnkg QXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4gYW5kClNyaW5pdmFzIEthbmRh Z2F0bGEgPHNyaW5pdmFzLmthbmRhZ2F0bGFAbGluYXJvLm9yZz4uCgpUaGVuIEkgaGVhdmlseSBy ZXdvcmtlZCBpdCB0byB1c2UgdGhlIGhkbWktY29kZWMgZHJpdmVyLiBBbmQgYWxzbwpmb2xkZWQg aW4gc29tZSBhdWRpbyBwYWNrZXQgaW5pdGlhbGl6YXRpb24gZG9uZSBieSBBbmR5IEdyZWVuCjxh bmR5LmdyZWVuQGxpbmFyby5vcmc+LiBTbyBjcmVkaXQgdG8gdGhlbSwgYnV0IGJsYW1lIHRvIG1l LgoKWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmFsb2dkZXZpY2VzaW5jL2xpbnV4L2Jsb2IveGNv bW1fenlucS9kcml2ZXJzL2dwdS9kcm0vaTJjL2Fkdjc1MTFfYXVkaW8uYwoKQ2M6IERhdmlkIEFp cmxpZSA8YWlybGllZEBsaW51eC5pZT4KQ2M6IEFyY2hpdCBUYW5lamEgPGFyY2hpdHRAY29kZWF1 cm9yYS5vcmc+CkNjOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25i b2FyZC5jb20+CkNjOiBXb2xmcmFtIFNhbmcgPHdzYStyZW5lc2FzQHNhbmctZW5naW5lZXJpbmcu Y29tPgpDYzogU3Jpbml2YXMgS2FuZGFnYXRsYSA8c3Jpbml2YXMua2FuZGFnYXRsYUBsaW5hcm8u b3JnPgpDYzogIlZpbGxlIFN5cmrDpGzDpCIgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t PgpDYzogQm9yaXMgQnJlemlsbG9uIDxib3Jpcy5icmV6aWxsb25AZnJlZS1lbGVjdHJvbnMuY29t PgpDYzogQW5keSBHcmVlbiA8YW5keUB3YXJtY2F0LmNvbT4KQ2M6IERhdmUgTG9uZyA8ZGF2ZS5s b25nQGxpbmFyby5vcmc+CkNjOiBHdW9kb25nIFh1IDxndW9kb25nLnh1QGxpbmFyby5vcmc+CkNj OiBaaGFuZ2ZlaSBHYW8gPHpoYW5nZmVpLmdhb0BsaW5hcm8ub3JnPgpDYzogTWFyayBCcm93biA8 YnJvb25pZUBrZXJuZWwub3JnPgpDYzogTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28u ZGU+CkNjOiBKb3NlIEFicmV1IDxqb2FicmV1QHN5bm9wc3lzLmNvbT4KQ2M6IEt1bmlub3JpIE1v cmltb3RvIDxrdW5pbm9yaS5tb3JpbW90by5neEByZW5lc2FzLmNvbT4KQ2M6IGRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKUmV2aWV3ZWQtYnk6IEFyY2hpdCBUYW5lamEgPGFyY2hpdHRA Y29kZWF1cm9yYS5vcmc+CkFja2VkLWJ5OiBMYXJzLVBldGVyIENsYXVzZW4gPGxhcnNAbWV0YWZv by5kZT4KU2lnbmVkLW9mZi1ieTogSm9obiBTdHVsdHogPGpvaG4uc3R1bHR6QGxpbmFyby5vcmc+ Ci0tLQp2NDoKKiBLY29uZmlnIHR3ZWFrcyBzdWdnZXN0ZWQgYnkgTGFycy1QZXRlciBDbGF1c2Vu CnYzOgoqIEFsbG93ZWQgYXVkaW8gc3VwcG9ydCB0byBiZSBjb25maWd1cmVkIGluIG9yIG91dCwg YXMgc3VnZ2VzdGVkIGJ5IExhdXJlbnQKKiBNaW5vciBjbGVhbnVwcyBzdWdnZXN0ZWQgYnkgTGF1 cmVudAoqIEZvbGRlZCBpbiBBbmR5J3MgYXVkaW8gcGFja2V0IGluaXRpYWxpemF0aW9uIHBhdGNo LCBhcyBzdWdnZXN0ZWQgYnkgQXJjaGl0Ci0tLQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3 NTExL0tjb25maWcgICAgICAgICB8ICAgOCArCiBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1 MTEvTWFrZWZpbGUgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUx MS9hZHY3NTExLmggICAgICAgfCAgMTYgKysKIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUx MS9hZHY3NTExX2F1ZGlvLmMgfCAyMTMgKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMgICB8ICAgNCArCiA1IGZpbGVz IGNoYW5nZWQsIDI0MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfYXVkaW8uYwoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9hZHY3NTExL0tjb25maWcKaW5kZXggZDJiMDQ5OS4uMmZlZDU2NyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9hZHY3NTExL0tjb25maWcKQEAgLTYsNiArNiwxNCBAQCBjb25maWcgRFJNX0kyQ19B RFY3NTExCiAJaGVscAogCSAgU3VwcG9ydCBmb3IgdGhlIEFuYWxvZyBEZXZpY2UgQURWNzUxMShX KSBhbmQgQURWNzUxMyBIRE1JIGVuY29kZXJzLgogCitjb25maWcgRFJNX0kyQ19BRFY3NTExX0FV RElPCisJYm9vbCAiQURWNzUxMSBIRE1JIEF1ZGlvIGRyaXZlciIKKwlkZXBlbmRzIG9uIERSTV9J MkNfQURWNzUxMSAmJiBTTkRfU09DCisJc2VsZWN0IFNORF9TT0NfSERNSV9DT0RFQworCWhlbHAK KwkgIFN1cHBvcnQgdGhlIEFEVjc1MTEgSERNSSBBdWRpbyBpbnRlcmZhY2UuIFRoaXMgaXMgdXNl ZCBpbgorCSAgY29uanVuY3Rpb24gd2l0aCB0aGUgQVY3NTExICBIRE1JIGRyaXZlci4KKwogY29u ZmlnIERSTV9JMkNfQURWNzUzMwogCWJvb2wgIkFEVjc1MzMgZW5jb2RlciIKIAlkZXBlbmRzIG9u IERSTV9JMkNfQURWNzUxMQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3 NTExL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL01ha2VmaWxlCmlu ZGV4IDkwMTkzMjcuLjViYTY3NTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv YWR2NzUxMS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvTWFr ZWZpbGUKQEAgLTEsMyArMSw0IEBACiBhZHY3NTExLXkgOj0gYWR2NzUxMV9kcnYubworYWR2NzUx MS0kKENPTkZJR19EUk1fSTJDX0FEVjc1MTFfQVVESU8pICs9IGFkdjc1MTFfYXVkaW8ubwogYWR2 NzUxMS0kKENPTkZJR19EUk1fSTJDX0FEVjc1MzMpICs9IGFkdjc1MzMubwogb2JqLSQoQ09ORklH X0RSTV9JMkNfQURWNzUxMSkgKz0gYWR2NzUxMS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMS5oIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3 NTExL2Fkdjc1MTEuaAppbmRleCAxNjFjOTIzLi45OTJkNzZjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvYWR2NzUxMS9hZHY3NTExLmgKQEAgLTMwOSw2ICszMDksOCBAQCBzdHJ1Y3QgYWR2NzUx MSB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgY3Vycl9tb2RlOwogCiAJdW5zaWduZWQgaW50 IGZfdG1kczsKKwl1bnNpZ25lZCBpbnQgZl9hdWRpbzsKKwl1bnNpZ25lZCBpbnQgYXVkaW9fc291 cmNlOwogCiAJdW5zaWduZWQgaW50IGN1cnJlbnRfZWRpZF9zZWdtZW50OwogCXVpbnQ4X3QgZWRp ZF9idWZbMjU2XTsKQEAgLTMzNCw2ICszMzYsNyBAQCBzdHJ1Y3QgYWR2NzUxMSB7CiAJYm9vbCB1 c2VfdGltaW5nX2dlbjsKIAogCWVudW0gYWR2NzUxMV90eXBlIHR5cGU7CisJc3RydWN0IHBsYXRm b3JtX2RldmljZSAqYXVkaW9fcGRldjsKIH07CiAKICNpZmRlZiBDT05GSUdfRFJNX0kyQ19BRFY3 NTMzCkBAIC0zODksNCArMzkyLDE3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGFkdjc1MzNfcGFyc2Vf ZHQoc3RydWN0IGRldmljZV9ub2RlICpucCwgc3RydWN0IGFkdjc1MTEgKmFkdikKIH0KICNlbmRp ZgogCisjaWZkZWYgQ09ORklHX0RSTV9JMkNfQURWNzUxMV9BVURJTworaW50IGFkdjc1MTFfYXVk aW9faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBhZHY3NTExICphZHY3NTExKTsKK3Zv aWQgYWR2NzUxMV9hdWRpb19leGl0KHN0cnVjdCBhZHY3NTExICphZHY3NTExKTsKKyNlbHNlIC8q Q09ORklHX0RSTV9JMkNfQURWNzUxMV9BVURJTyAqLworc3RhdGljIGlubGluZSBpbnQgYWR2NzUx MV9hdWRpb19pbml0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEp Cit7CisJcmV0dXJuIDA7Cit9CitzdGF0aWMgaW5saW5lIHZvaWQgYWR2NzUxMV9hdWRpb19leGl0 KHN0cnVjdCBhZHY3NTExICphZHY3NTExKQoreworfQorI2VuZGlmIC8qIENPTkZJR19EUk1fSTJD X0FEVjc1MTFfQVVESU8gKi8KKwogI2VuZGlmIC8qIF9fRFJNX0kyQ19BRFY3NTExX0hfXyAqLwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfYXVkaW8u YyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2F1ZGlvLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNlMjlhNQotLS0gL2Rldi9udWxsCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2F1ZGlvLmMKQEAgLTAsMCAr MSwyMTMgQEAKKy8qCisgKiBBbmFsb2cgRGV2aWNlcyBBRFY3NTExIEhETUkgdHJhbnNtaXR0ZXIg ZHJpdmVyCisgKgorICogQ29weXJpZ2h0IDIwMTIgQW5hbG9nIERldmljZXMgSW5jLgorICogQ29w eXJpZ2h0IChjKSAyMDE2LCBMaW5hcm8gTGltaXRlZAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRo ZSBHUEwtMi4KKyAqLworCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5k L2hkbWktY29kZWMuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9z b2MuaD4KKworI2luY2x1ZGUgImFkdjc1MTEuaCIKKworc3RhdGljIHZvaWQgYWR2NzUxMV9jYWxj X2N0c19uKHVuc2lnbmVkIGludCBmX3RtZHMsIHVuc2lnbmVkIGludCBmcywKKwkJCSAgICAgICB1 bnNpZ25lZCBpbnQgKmN0cywgdW5zaWduZWQgaW50ICpuKQoreworCXN3aXRjaCAoZnMpIHsKKwlj YXNlIDMyMDAwOgorCQkqbiA9IDQwOTY7CisJCWJyZWFrOworCWNhc2UgNDQxMDA6CisJCSpuID0g NjI3MjsKKwkJYnJlYWs7CisJY2FzZSA0ODAwMDoKKwkJKm4gPSA2MTQ0OworCQlicmVhazsKKwl9 CisKKwkqY3RzID0gKChmX3RtZHMgKiAqbikgLyAoMTI4ICogZnMpKSAqIDEwMDA7Cit9CisKK3N0 YXRpYyBpbnQgYWR2NzUxMV91cGRhdGVfY3RzX24oc3RydWN0IGFkdjc1MTEgKmFkdjc1MTEpCit7 CisJdW5zaWduZWQgaW50IGN0cyA9IDA7CisJdW5zaWduZWQgaW50IG4gPSAwOworCisJYWR2NzUx MV9jYWxjX2N0c19uKGFkdjc1MTEtPmZfdG1kcywgYWR2NzUxMS0+Zl9hdWRpbywgJmN0cywgJm4p OworCisJcmVnbWFwX3dyaXRlKGFkdjc1MTEtPnJlZ21hcCwgQURWNzUxMV9SRUdfTjAsIChuID4+ IDE2KSAmIDB4Zik7CisJcmVnbWFwX3dyaXRlKGFkdjc1MTEtPnJlZ21hcCwgQURWNzUxMV9SRUdf TjEsIChuID4+IDgpICYgMHhmZik7CisJcmVnbWFwX3dyaXRlKGFkdjc1MTEtPnJlZ21hcCwgQURW NzUxMV9SRUdfTjIsIG4gJiAweGZmKTsKKworCXJlZ21hcF93cml0ZShhZHY3NTExLT5yZWdtYXAs IEFEVjc1MTFfUkVHX0NUU19NQU5VQUwwLAorCQkgICAgIChjdHMgPj4gMTYpICYgMHhmKTsKKwly ZWdtYXBfd3JpdGUoYWR2NzUxMS0+cmVnbWFwLCBBRFY3NTExX1JFR19DVFNfTUFOVUFMMSwKKwkJ ICAgICAoY3RzID4+IDgpICYgMHhmZik7CisJcmVnbWFwX3dyaXRlKGFkdjc1MTEtPnJlZ21hcCwg QURWNzUxMV9SRUdfQ1RTX01BTlVBTDIsCisJCSAgICAgY3RzICYgMHhmZik7CisKKwlyZXR1cm4g MDsKK30KKworaW50IGFkdjc1MTFfaGRtaV9od19wYXJhbXMoc3RydWN0IGRldmljZSAqZGV2LCB2 b2lkICpkYXRhLAorCQkJCXN0cnVjdCBoZG1pX2NvZGVjX2RhaWZtdCAqZm10LAorCQkJCXN0cnVj dCBoZG1pX2NvZGVjX3BhcmFtcyAqaHBhcm1zKQoreworCXN0cnVjdCBhZHY3NTExICphZHY3NTEx ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdW5zaWduZWQgaW50IGF1ZGlvX3NvdXJjZSwgaTJz X2Zvcm1hdCA9IDA7CisJdW5zaWduZWQgaW50IGludmVydF9jbG9jazsKKwl1bnNpZ25lZCBpbnQg cmF0ZTsKKwl1bnNpZ25lZCBpbnQgbGVuOworCisJc3dpdGNoIChocGFybXMtPnNhbXBsZV9yYXRl KSB7CisJY2FzZSAzMjAwMDoKKwkJcmF0ZSA9IEFEVjc1MTFfU0FNUExFX0ZSRVFfMzIwMDA7CisJ CWJyZWFrOworCWNhc2UgNDQxMDA6CisJCXJhdGUgPSBBRFY3NTExX1NBTVBMRV9GUkVRXzQ0MTAw OworCQlicmVhazsKKwljYXNlIDQ4MDAwOgorCQlyYXRlID0gQURWNzUxMV9TQU1QTEVfRlJFUV80 ODAwMDsKKwkJYnJlYWs7CisJY2FzZSA4ODIwMDoKKwkJcmF0ZSA9IEFEVjc1MTFfU0FNUExFX0ZS RVFfODgyMDA7CisJCWJyZWFrOworCWNhc2UgOTYwMDA6CisJCXJhdGUgPSBBRFY3NTExX1NBTVBM RV9GUkVRXzk2MDAwOworCQlicmVhazsKKwljYXNlIDE3NjQwMDoKKwkJcmF0ZSA9IEFEVjc1MTFf U0FNUExFX0ZSRVFfMTc2NDAwOworCQlicmVhazsKKwljYXNlIDE5MjAwMDoKKwkJcmF0ZSA9IEFE Vjc1MTFfU0FNUExFX0ZSRVFfMTkyMDAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4g LUVJTlZBTDsKKwl9CisKKwlzd2l0Y2ggKGhwYXJtcy0+c2FtcGxlX3dpZHRoKSB7CisJY2FzZSAx NjoKKwkJbGVuID0gQURWNzUxMV9JMlNfU0FNUExFX0xFTl8xNjsKKwkJYnJlYWs7CisJY2FzZSAx ODoKKwkJbGVuID0gQURWNzUxMV9JMlNfU0FNUExFX0xFTl8xODsKKwkJYnJlYWs7CisJY2FzZSAy MDoKKwkJbGVuID0gQURWNzUxMV9JMlNfU0FNUExFX0xFTl8yMDsKKwkJYnJlYWs7CisJY2FzZSAy NDoKKwkJbGVuID0gQURWNzUxMV9JMlNfU0FNUExFX0xFTl8yNDsKKwkJYnJlYWs7CisJZGVmYXVs dDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJc3dpdGNoIChmbXQtPmZtdCkgeworCWNhc2Ug SERNSV9JMlM6CisJCWF1ZGlvX3NvdXJjZSA9IEFEVjc1MTFfQVVESU9fU09VUkNFX0kyUzsKKwkJ aTJzX2Zvcm1hdCA9IEFEVjc1MTFfSTJTX0ZPUk1BVF9JMlM7CisJCWJyZWFrOworCWNhc2UgSERN SV9SSUdIVF9KOgorCQlhdWRpb19zb3VyY2UgPSBBRFY3NTExX0FVRElPX1NPVVJDRV9JMlM7CisJ CWkyc19mb3JtYXQgPSBBRFY3NTExX0kyU19GT1JNQVRfUklHSFRfSjsKKwkJYnJlYWs7CisJY2Fz ZSBIRE1JX0xFRlRfSjoKKwkJYXVkaW9fc291cmNlID0gQURWNzUxMV9BVURJT19TT1VSQ0VfSTJT OworCQlpMnNfZm9ybWF0ID0gQURWNzUxMV9JMlNfRk9STUFUX0xFRlRfSjsKKwkJYnJlYWs7CisJ ZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaW52ZXJ0X2Nsb2NrID0gZm10LT5i aXRfY2xrX2ludjsKKworCXJlZ21hcF91cGRhdGVfYml0cyhhZHY3NTExLT5yZWdtYXAsIEFEVjc1 MTFfUkVHX0FVRElPX1NPVVJDRSwgMHg3MCwKKwkJCSAgIGF1ZGlvX3NvdXJjZSA8PCA0KTsKKwly ZWdtYXBfdXBkYXRlX2JpdHMoYWR2NzUxMS0+cmVnbWFwLCBBRFY3NTExX1JFR19BVURJT19DT05G SUcsIEJJVCg2KSwKKwkJCSAgIGludmVydF9jbG9jayA8PCA2KTsKKwlyZWdtYXBfdXBkYXRlX2Jp dHMoYWR2NzUxMS0+cmVnbWFwLCBBRFY3NTExX1JFR19JMlNfQ09ORklHLCAweDAzLAorCQkJICAg aTJzX2Zvcm1hdCk7CisKKwlhZHY3NTExLT5hdWRpb19zb3VyY2UgPSBhdWRpb19zb3VyY2U7CisK KwlhZHY3NTExLT5mX2F1ZGlvID0gaHBhcm1zLT5zYW1wbGVfcmF0ZTsKKworCWFkdjc1MTFfdXBk YXRlX2N0c19uKGFkdjc1MTEpOworCisJcmVnbWFwX3VwZGF0ZV9iaXRzKGFkdjc1MTEtPnJlZ21h cCwgQURWNzUxMV9SRUdfQVVESU9fQ0ZHMywKKwkJCSAgIEFEVjc1MTFfQVVESU9fQ0ZHM19MRU5f TUFTSywgbGVuKTsKKwlyZWdtYXBfdXBkYXRlX2JpdHMoYWR2NzUxMS0+cmVnbWFwLCBBRFY3NTEx X1JFR19JMkNfRlJFUV9JRF9DRkcsCisJCQkgICBBRFY3NTExX0kyQ19GUkVRX0lEX0NGR19SQVRF X01BU0ssIHJhdGUgPDwgNCk7CisJcmVnbWFwX3dyaXRlKGFkdjc1MTEtPnJlZ21hcCwgMHg3Mywg MHgxKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1ZGlvX3N0YXJ0dXAoc3RydWN0 IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBhZHY3NTExICphZHY3NTExID0g ZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlyZWdtYXBfdXBkYXRlX2JpdHMoYWR2NzUxMS0+cmVn bWFwLCBBRFY3NTExX1JFR19BVURJT19DT05GSUcsCisJCQkJQklUKDcpLCAwKTsKKworCS8qIGhp ZGUgQXVkaW8gaW5mb2ZyYW1lIHVwZGF0ZXMgKi8KKwlyZWdtYXBfdXBkYXRlX2JpdHMoYWR2NzUx MS0+cmVnbWFwLCBBRFY3NTExX1JFR19JTkZPRlJBTUVfVVBEQVRFLAorCQkJCUJJVCg1KSwgQklU KDUpKTsKKwkvKiBlbmFibGUgTi9DVFMsIGVuYWJsZSBBdWRpbyBzYW1wbGUgcGFja2V0cyAqLwor CXJlZ21hcF91cGRhdGVfYml0cyhhZHY3NTExLT5yZWdtYXAsIEFEVjc1MTFfUkVHX1BBQ0tFVF9F TkFCTEUxLAorCQkJCUJJVCg1KSwgQklUKDUpKTsKKwkvKiBlbmFibGUgTi9DVFMgKi8KKwlyZWdt YXBfdXBkYXRlX2JpdHMoYWR2NzUxMS0+cmVnbWFwLCBBRFY3NTExX1JFR19QQUNLRVRfRU5BQkxF MSwKKwkJCQlCSVQoNiksIEJJVCg2KSk7CisJLyogbm90IGNvcHlyaWdodGVkICovCisJcmVnbWFw X3VwZGF0ZV9iaXRzKGFkdjc1MTEtPnJlZ21hcCwgQURWNzUxMV9SRUdfQVVESU9fQ0ZHMSwKKwkJ CQlCSVQoNSksIEJJVCg1KSk7CisJLyogZW5hYmxlIGF1ZGlvIGluZm9mcmFtZXMgKi8KKwlyZWdt YXBfdXBkYXRlX2JpdHMoYWR2NzUxMS0+cmVnbWFwLCBBRFY3NTExX1JFR19QQUNLRVRfRU5BQkxF MSwKKwkJCQlCSVQoMyksIEJJVCgzKSk7CisJLyogQVYgbXV0ZSBkaXNhYmxlICovCisJcmVnbWFw X3VwZGF0ZV9iaXRzKGFkdjc1MTEtPnJlZ21hcCwgQURWNzUxMV9SRUdfR0MoMCksCisJCQkJQklU KDcpIHwgQklUKDYpLCBCSVQoNykpOworCS8qIHVzZSBBdWRpbyBpbmZvZnJhbWUgdXBkYXRlZCBp bmZvICovCisJcmVnbWFwX3VwZGF0ZV9iaXRzKGFkdjc1MTEtPnJlZ21hcCwgQURWNzUxMV9SRUdf R0MoMSksCisJCQkJQklUKDUpLCAwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYXVk aW9fc2h1dGRvd24oc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQoreworfQorCitzdGF0 aWMgY29uc3Qgc3RydWN0IGhkbWlfY29kZWNfb3BzIGFkdjc1MTFfY29kZWNfb3BzID0geworCS5o d19wYXJhbXMJPSBhZHY3NTExX2hkbWlfaHdfcGFyYW1zLAorCS5hdWRpb19zaHV0ZG93biA9IGF1 ZGlvX3NodXRkb3duLAorCS5hdWRpb19zdGFydHVwCT0gYXVkaW9fc3RhcnR1cCwKK307CisKK3N0 YXRpYyBzdHJ1Y3QgaGRtaV9jb2RlY19wZGF0YSBjb2RlY19kYXRhID0geworCS5vcHMgPSAmYWR2 NzUxMV9jb2RlY19vcHMsCisJLm1heF9pMnNfY2hhbm5lbHMgPSAyLAorCS5pMnMgPSAxLAorfTsK KworaW50IGFkdjc1MTFfYXVkaW9faW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBhZHY3 NTExICphZHY3NTExKQoreworCWFkdjc1MTEtPmF1ZGlvX3BkZXYgPSBwbGF0Zm9ybV9kZXZpY2Vf cmVnaXN0ZXJfZGF0YShkZXYsCisJCQkJCUhETUlfQ09ERUNfRFJWX05BTUUsCisJCQkJCVBMQVRG T1JNX0RFVklEX0FVVE8sCisJCQkJCSZjb2RlY19kYXRhLAorCQkJCQlzaXplb2YoY29kZWNfZGF0 YSkpOworCXJldHVybiBQVFJfRVJSX09SX1pFUk8oYWR2NzUxMS0+YXVkaW9fcGRldik7Cit9CisK K3ZvaWQgYWR2NzUxMV9hdWRpb19leGl0KHN0cnVjdCBhZHY3NTExICphZHY3NTExKQoreworCWlm IChhZHY3NTExLT5hdWRpb19wZGV2KSB7CisJCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKGFk djc1MTEtPmF1ZGlvX3BkZXYpOworCQlhZHY3NTExLT5hdWRpb19wZGV2ID0gTlVMTDsKKwl9Cit9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2NzUxMV9kcnYu YyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Rydi5jCmluZGV4IDhl ZDM5MDYuLjhkYmE3MjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUx MS9hZHY3NTExX2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3 NTExX2Rydi5jCkBAIC0xMDM3LDYgKzEwMzcsOCBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcHJvYmUo c3RydWN0IGkyY19jbGllbnQgKmkyYywgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmlkKQog CQlnb3RvIGVycl91bnJlZ2lzdGVyX2NlYzsKIAl9CiAKKwlhZHY3NTExX2F1ZGlvX2luaXQoZGV2 LCBhZHY3NTExKTsKKwogCXJldHVybiAwOwogCiBlcnJfdW5yZWdpc3Rlcl9jZWM6CkBAIC0xMDU4 LDYgKzEwNjAsOCBAQCBzdGF0aWMgaW50IGFkdjc1MTFfcmVtb3ZlKHN0cnVjdCBpMmNfY2xpZW50 ICppMmMpCiAKIAlkcm1fYnJpZGdlX3JlbW92ZSgmYWR2NzUxMS0+YnJpZGdlKTsKIAorCWFkdjc1 MTFfYXVkaW9fZXhpdChhZHY3NTExKTsKKwogCWkyY191bnJlZ2lzdGVyX2RldmljZShhZHY3NTEx LT5pMmNfZWRpZCk7CiAKIAlrZnJlZShhZHY3NTExLT5lZGlkKTsKLS0gCjIuNy40CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK