From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicholas Kazlauskas Subject: [PATCH 2/2] drm/amd/display: Add drm_audio_component support to amdgpu_dm Date: Tue, 9 Jul 2019 12:30:19 -0400 Message-ID: <20190709163019.32085-2-nicholas.kazlauskas@amd.com> References: <20190709163019.32085-1-nicholas.kazlauskas@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190709163019.32085-1-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Takashi Iwai , Leo Li , Harry Wentland , Nicholas Kazlauskas W1doeV0KVGhlIGRybV9hdWRpb19jb21wb25lbnQgY2FuIGJlIHVzZWQgdG8gZ2l2ZSBwaW4gRUxE IG5vdGlmaWNhdGlvbnMKZGlyZWN0bHkgdG8gdGhlIHNvdW5kIGRyaXZlci4gVGhpcyBmaXhlcyBh dWRpbyBlbmRwb2ludHMgZGlzYXBwZWFyaW5nCmR1ZSB0byBtaXNzaW5nIHVuc29saWNpdGVkIG5v dGlmaWNhdGlvbnMuCgpbSG93XQpTZW5kIHRoZSBub3RpZmljYXRpb24gdmlhIHRoZSBhdWRpbyBj b21wb25lbnQgd2hlbmV2ZXIgd2UgZW5hYmxlIG9yCmRpc2FibGUgYXVkaW8gc3RhdGUgb24gYSBz dHJlYW0uIFRoaXMgbWF0Y2hlcyB3aGF0IGk5MTUgZG9lcyB3aXRoCnRoZWlyIGRybV9hdWRpb19j b21wb25lbnQgYW5kIHdoYXQgVGFrYXNoaSBJd2FpJ3MgcHJvcG9zZWQgaGFjayBmb3IKcmFkZW9u L2FtZHBndSBkaWQuCgpUaGlzIGlzIGEgYml0IGRlbGF5ZWQgaW4gd2hlbiB0aGUgbm90aWZpY2F0 aW9uIGFjdHVhbGx5IG9jY3VycywgaG93ZXZlci4KV2Ugd2FpdCB1bnRpbCBhZnRlciBhbGwgdGhl IHByb2dyYW1taW5nIGlzIGNvbXBsZXRlIHJhdGhlciB0aGFuIHNlbmRpbmcKdGhlIG5vdGlmaWNh dGlvbiBtaWQgc2VxdWVuY2UuCgpQYXJ0aWN1bGFyIGNhcmUgaXMgbmVlZGVkIGZvciB0aGUgZ2V0 IEVMRCBjYWxsYmFjayBzaW5jZSBpdCBjYW4gaGFwcGVuCm91dHNpZGUgdGhlIGxvY2tpbmcgYW5k IGZlbmNpbmcgRFJNIGRvZXMgZm9yIGF0b21pYyBjb21taXRzLgoKQ2M6IFRha2FzaGkgSXdhaSA8 dGl3YWlAc3VzZS5kZT4KQ2M6IExlbyBMaSA8c3VucGVuZy5saUBhbWQuY29tPgpDYzogSGFycnkg V2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IE5pY2hvbGFz IEthemxhdXNrYXMgPG5pY2hvbGFzLmthemxhdXNrYXNAYW1kLmNvbT4KLS0tCiAuLi4vZ3B1L2Ry bS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmMgfCAyMjIgKysrKysrKysrKysrKysr KysrCiAuLi4vZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2RtLmggfCAgMjUg KysKIDIgZmlsZXMgY2hhbmdlZCwgMjQ3IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwppbmRleCBmMjZjN2IzNDhh YTkuLjllZjc4NTQ5N2ViNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2FtZGdwdV9kbS9hbWRncHVfZG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv YW1kZ3B1X2RtL2FtZGdwdV9kbS5jCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSA8bGludXgv dHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+CiAjaW5jbHVkZSA8bGludXgv ZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KIAogI2luY2x1ZGUgPGRy bS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KQEAgLTYzLDYgKzY0LDcgQEAK ICNpbmNsdWRlIDxkcm0vZHJtX2RwX21zdF9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2Zi X2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgorI2luY2x1ZGUgPGRybS9kcm1f YXVkaW9fY29tcG9uZW50Lmg+CiAKICNpZiBkZWZpbmVkKENPTkZJR19EUk1fQU1EX0RDX0RDTjFf MCkKICNpbmNsdWRlICJpdnNyY2lkL2Rjbi9pcnFzcmNzX2Rjbl8xXzAuaCIKQEAgLTUwNiw2ICs1 MDgsMTM5IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kbV9mYmNfaW5pdChzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQogCiB9CiAKK3N0YXRpYyBpbnQgYW1kZ3B1X2RtX2F1ZGlvX2NvbXBv bmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmtkZXYsIGludCBwb3J0LAorCQkJCQkgIGludCBw aXBlLCBib29sICplbmFibGVkLAorCQkJCQkgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9i eXRlcykKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGtkZXYp OworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3Rf aXRlciBjb25uX2l0ZXI7CisJc3RydWN0IGFtZGdwdV9kbV9jb25uZWN0b3IgKmFjb25uZWN0b3I7 CisJaW50IHJldCA9IDA7CisKKwkqZW5hYmxlZCA9IGZhbHNlOworCisJbXV0ZXhfbG9jaygmYWRl di0+ZG0uYXVkaW9fbG9jayk7CisKKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYs ICZjb25uX2l0ZXIpOworCWRybV9mb3JfZWFjaF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZj b25uX2l0ZXIpIHsKKwkJYWNvbm5lY3RvciA9IHRvX2FtZGdwdV9kbV9jb25uZWN0b3IoY29ubmVj dG9yKTsKKwkJaWYgKGFjb25uZWN0b3ItPmF1ZGlvX2luc3QgIT0gcG9ydCkKKwkJCWNvbnRpbnVl OworCisJCSplbmFibGVkID0gdHJ1ZTsKKwkJcmV0ID0gZHJtX2VsZF9zaXplKGNvbm5lY3Rvci0+ ZWxkKTsKKwkJbWVtY3B5KGJ1ZiwgY29ubmVjdG9yLT5lbGQsIG1pbihtYXhfYnl0ZXMsIHJldCkp OworCisJCWJyZWFrOworCX0KKwlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5faXRl cik7CisKKwltdXRleF91bmxvY2soJmFkZXYtPmRtLmF1ZGlvX2xvY2spOworCisJRFJNX0RFQlVH X0tNUygiR2V0IEVMRCA6IGlkeD0lZCByZXQ9JWQgZW49JWRcbiIsIHBvcnQsIHJldCwgKmVuYWJs ZWQpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fYXVkaW9f Y29tcG9uZW50X29wcyBhbWRncHVfZG1fYXVkaW9fY29tcG9uZW50X29wcyA9IHsKKwkuZ2V0X2Vs ZCA9IGFtZGdwdV9kbV9hdWRpb19jb21wb25lbnRfZ2V0X2VsZCwKK307CisKK3N0YXRpYyBpbnQg YW1kZ3B1X2RtX2F1ZGlvX2NvbXBvbmVudF9iaW5kKHN0cnVjdCBkZXZpY2UgKmtkZXYsCisJCQkJ ICAgICAgIHN0cnVjdCBkZXZpY2UgKmhkYV9rZGV2LCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEoa2Rldik7CisJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1fYXVkaW9fY29tcG9u ZW50ICphY29tcCA9IGRhdGE7CisKKwlhY29tcC0+b3BzID0gJmFtZGdwdV9kbV9hdWRpb19jb21w b25lbnRfb3BzOworCWFjb21wLT5kZXYgPSBrZGV2OworCWFkZXYtPmRtLmF1ZGlvX2NvbXBvbmVu dCA9IGFjb21wOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGFtZGdwdV9kbV9hdWRp b19jb21wb25lbnRfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmtkZXYsCisJCQkJCSAgc3RydWN0IGRl dmljZSAqaGRhX2tkZXYsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGRldl9nZXRfZHJ2ZGF0YShrZGV2KTsKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRl di0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGF0 YTsKKworCWFjb21wLT5vcHMgPSBOVUxMOworCWFjb21wLT5kZXYgPSBOVUxMOworCWFkZXYtPmRt LmF1ZGlvX2NvbXBvbmVudCA9IE5VTEw7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9u ZW50X29wcyBhbWRncHVfZG1fYXVkaW9fY29tcG9uZW50X2JpbmRfb3BzID0geworCS5iaW5kCT0g YW1kZ3B1X2RtX2F1ZGlvX2NvbXBvbmVudF9iaW5kLAorCS51bmJpbmQJPSBhbWRncHVfZG1fYXVk aW9fY29tcG9uZW50X3VuYmluZCwKK307CisKK3N0YXRpYyBpbnQgYW1kZ3B1X2RtX2F1ZGlvX2lu aXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJaW50IGksIHJldDsKKworCWlmICgh YW1kZ3B1X2F1ZGlvKQorCQlyZXR1cm4gMDsKKworCWFkZXYtPm1vZGVfaW5mby5hdWRpby5lbmFi bGVkID0gdHJ1ZTsKKworCWFkZXYtPm1vZGVfaW5mby5hdWRpby5udW1fcGlucyA9IGFkZXYtPmRt LmRjLT5yZXNfcG9vbC0+YXVkaW9fY291bnQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bW9k ZV9pbmZvLmF1ZGlvLm51bV9waW5zOyBpKyspIHsKKwkJYWRldi0+bW9kZV9pbmZvLmF1ZGlvLnBp bltpXS5jaGFubmVscyA9IC0xOworCQlhZGV2LT5tb2RlX2luZm8uYXVkaW8ucGluW2ldLnJhdGUg PSAtMTsKKwkJYWRldi0+bW9kZV9pbmZvLmF1ZGlvLnBpbltpXS5iaXRzX3Blcl9zYW1wbGUgPSAt MTsKKwkJYWRldi0+bW9kZV9pbmZvLmF1ZGlvLnBpbltpXS5zdGF0dXNfYml0cyA9IDA7CisJCWFk ZXYtPm1vZGVfaW5mby5hdWRpby5waW5baV0uY2F0ZWdvcnlfY29kZSA9IDA7CisJCWFkZXYtPm1v ZGVfaW5mby5hdWRpby5waW5baV0uY29ubmVjdGVkID0gZmFsc2U7CisJCWFkZXYtPm1vZGVfaW5m by5hdWRpby5waW5baV0uaWQgPQorCQkJYWRldi0+ZG0uZGMtPnJlc19wb29sLT5hdWRpb3NbaV0t Pmluc3Q7CisJCWFkZXYtPm1vZGVfaW5mby5hdWRpby5waW5baV0ub2Zmc2V0ID0gMDsKKwl9CisK KwlyZXQgPSBjb21wb25lbnRfYWRkKGFkZXYtPmRldiwgJmFtZGdwdV9kbV9hdWRpb19jb21wb25l bnRfYmluZF9vcHMpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJYWRldi0+ZG0u YXVkaW9fcmVnaXN0ZXJlZCA9IHRydWU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQg YW1kZ3B1X2RtX2F1ZGlvX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCit7CisJaWYg KCFhbWRncHVfYXVkaW8pCisJCXJldHVybjsKKworCWlmICghYWRldi0+bW9kZV9pbmZvLmF1ZGlv LmVuYWJsZWQpCisJCXJldHVybjsKKworCWlmIChhZGV2LT5kbS5hdWRpb19yZWdpc3RlcmVkKSB7 CisJCWNvbXBvbmVudF9kZWwoYWRldi0+ZGV2LCAmYW1kZ3B1X2RtX2F1ZGlvX2NvbXBvbmVudF9i aW5kX29wcyk7CisJCWFkZXYtPmRtLmF1ZGlvX3JlZ2lzdGVyZWQgPSBmYWxzZTsKKwl9CisKKwkv KiBUT0RPOiBEaXNhYmxlIGF1ZGlvPyAqLworCisJYWRldi0+bW9kZV9pbmZvLmF1ZGlvLmVuYWJs ZWQgPSBmYWxzZTsKK30KKwordm9pZCBhbWRncHVfZG1fYXVkaW9fZWxkX25vdGlmeShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwgaW50IHBpbikKK3sKKwlzdHJ1Y3QgZHJtX2F1ZGlvX2NvbXBv bmVudCAqYWNvbXAgPSBhZGV2LT5kbS5hdWRpb19jb21wb25lbnQ7CisKKwlpZiAoYWNvbXAgJiYg YWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeSkgewor CQlEUk1fREVCVUdfS01TKCJOb3RpZnkgRUxEOiAlZFxuIiwgcGluKTsKKworCQlhY29tcC0+YXVk aW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsCisJCQkJ CQkgcGluLCAtMSk7CisJfQorfQorCiBzdGF0aWMgaW50IGFtZGdwdV9kbV9pbml0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQogewogCXN0cnVjdCBkY19pbml0X2RhdGEgaW5pdF9kYXRhOwpA QCAtNTE2LDYgKzY1MSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RtX2luaXQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpCiAJbWVtc2V0KCZpbml0X2RhdGEsIDAsIHNpemVvZihpbml0X2RhdGEp KTsKIAogCW11dGV4X2luaXQoJmFkZXYtPmRtLmRjX2xvY2spOworCW11dGV4X2luaXQoJmFkZXYt PmRtLmF1ZGlvX2xvY2spOwogCiAJaWYoYW1kZ3B1X2RtX2lycV9pbml0KGFkZXYpKSB7CiAJCURS TV9FUlJPUigiYW1kZ3B1OiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBETSBJUlEgc3VwcG9ydC5cbiIp OwpAQCAtNjE5LDYgKzc1NSw4IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RtX2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiAKIHN0YXRpYyB2b2lkIGFtZGdwdV9kbV9maW5pKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KQogeworCWFtZGdwdV9kbV9hdWRpb19maW5pKGFkZXYpOworCiAJ YW1kZ3B1X2RtX2Rlc3Ryb3lfZHJtX2RldmljZSgmYWRldi0+ZG0pOwogCiAJLyogREMgRGVzdHJv eSBUT0RPOiBSZXBsYWNlIGRlc3Ryb3kgREFMICovCkBAIC02MzksNiArNzc3LDcgQEAgc3RhdGlj IHZvaWQgYW1kZ3B1X2RtX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCWFkZXYt PmRtLmZyZWVzeW5jX21vZHVsZSA9IE5VTEw7CiAJfQogCisJbXV0ZXhfZGVzdHJveSgmYWRldi0+ ZG0uYXVkaW9fbG9jayk7CiAJbXV0ZXhfZGVzdHJveSgmYWRldi0+ZG0uZGNfbG9jayk7CiAKIAly ZXR1cm47CkBAIC0xODg3LDYgKzIwMjYsMTAgQEAgc3RhdGljIGludCBhbWRncHVfZG1fbW9kZV9j b25maWdfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpZiAocikKIAkJcmV0dXJu IHI7CiAKKwlyID0gYW1kZ3B1X2RtX2F1ZGlvX2luaXQoYWRldik7CisJaWYgKHIpCisJCXJldHVy biByOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTQ4MDMsNiArNDk0Niw3IEBAIHZvaWQgYW1kZ3B1 X2RtX2Nvbm5lY3Rvcl9pbml0X2hlbHBlcihzdHJ1Y3QgYW1kZ3B1X2Rpc3BsYXlfbWFuYWdlciAq ZG0sCiAJYWNvbm5lY3Rvci0+YmFzZS5zdGVyZW9fYWxsb3dlZCA9IGZhbHNlOwogCWFjb25uZWN0 b3ItPmJhc2UuZHBtcyA9IERSTV9NT0RFX0RQTVNfT0ZGOwogCWFjb25uZWN0b3ItPmhwZC5ocGQg PSBBTURHUFVfSFBEX05PTkU7IC8qIG5vdCB1c2VkICovCisJYWNvbm5lY3Rvci0+YXVkaW9faW5z dCA9IC0xOwogCW11dGV4X2luaXQoJmFjb25uZWN0b3ItPmhwZF9sb2NrKTsKIAogCS8qCkBAIC01 Njk3LDYgKzU4NDEsODEgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RtX2NvbW1pdF9wbGFuZXMoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWtmcmVlKGJ1bmRsZSk7CiB9CiAKK3N0YXRp YyB2b2lkIGFtZGdwdV9kbV9jb21taXRfYXVkaW8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJ CQkgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBhbWRncHVfZG1fY29ubmVj dG9yICphY29ubmVjdG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25fc3RhdGUsICpuZXdfY29uX3N0YXRlOwor CXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7CisJc3RydWN0IGRtX2NydGNf c3RhdGUgKm5ld19kbV9jcnRjX3N0YXRlOworCWNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdHVz ICpzdGF0dXM7CisJaW50IGksIGluc3Q7CisKKwkvKiBOb3RpZnkgZGV2aWNlIHJlbW92YWxzLiAq LworCWZvcl9lYWNoX29sZG5ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3Rvciwg b2xkX2Nvbl9zdGF0ZSwgbmV3X2Nvbl9zdGF0ZSwgaSkgeworCQlpZiAob2xkX2Nvbl9zdGF0ZS0+ Y3J0YyAhPSBuZXdfY29uX3N0YXRlLT5jcnRjKSB7CisJCQkvKiBDUlRDIGNoYW5nZXMgcmVxdWly ZSBub3RpZmljYXRpb24uICovCisJCQlnb3RvIG5vdGlmeTsKKwkJfQorCisJCWlmICghbmV3X2Nv bl9zdGF0ZS0+Y3J0YykKKwkJCWNvbnRpbnVlOworCisJCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0 b21pY19nZXRfbmV3X2NydGNfc3RhdGUoCisJCQlzdGF0ZSwgbmV3X2Nvbl9zdGF0ZS0+Y3J0Yyk7 CisKKwkJaWYgKCFuZXdfY3J0Y19zdGF0ZSkKKwkJCWNvbnRpbnVlOworCisJCWlmICghZHJtX2F0 b21pY19jcnRjX25lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpKQorCQkJY29udGludWU7CisK Kwlub3RpZnk6CisJCWFjb25uZWN0b3IgPSB0b19hbWRncHVfZG1fY29ubmVjdG9yKGNvbm5lY3Rv cik7CisKKwkJbXV0ZXhfbG9jaygmYWRldi0+ZG0uYXVkaW9fbG9jayk7CisJCWluc3QgPSBhY29u bmVjdG9yLT5hdWRpb19pbnN0OworCQlhY29ubmVjdG9yLT5hdWRpb19pbnN0ID0gLTE7CisJCW11 dGV4X3VubG9jaygmYWRldi0+ZG0uYXVkaW9fbG9jayk7CisKKwkJYW1kZ3B1X2RtX2F1ZGlvX2Vs ZF9ub3RpZnkoYWRldiwgaW5zdCk7CisJfQorCisJLyogTm90aWZ5IGF1ZGlvIGRldmljZSBhZGRp dGlvbnMuICovCisJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVj dG9yLCBuZXdfY29uX3N0YXRlLCBpKSB7CisJCWlmICghbmV3X2Nvbl9zdGF0ZS0+Y3J0YykKKwkJ CWNvbnRpbnVlOworCisJCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNf c3RhdGUoCisJCQlzdGF0ZSwgbmV3X2Nvbl9zdGF0ZS0+Y3J0Yyk7CisKKwkJaWYgKCFuZXdfY3J0 Y19zdGF0ZSkKKwkJCWNvbnRpbnVlOworCisJCWlmICghZHJtX2F0b21pY19jcnRjX25lZWRzX21v ZGVzZXQobmV3X2NydGNfc3RhdGUpKQorCQkJY29udGludWU7CisKKwkJbmV3X2RtX2NydGNfc3Rh dGUgPSB0b19kbV9jcnRjX3N0YXRlKG5ld19jcnRjX3N0YXRlKTsKKwkJaWYgKCFuZXdfZG1fY3J0 Y19zdGF0ZS0+c3RyZWFtKQorCQkJY29udGludWU7CisKKwkJc3RhdHVzID0gZGNfc3RyZWFtX2dl dF9zdGF0dXMobmV3X2RtX2NydGNfc3RhdGUtPnN0cmVhbSk7CisJCWlmICghc3RhdHVzKQorCQkJ Y29udGludWU7CisKKwkJYWNvbm5lY3RvciA9IHRvX2FtZGdwdV9kbV9jb25uZWN0b3IoY29ubmVj dG9yKTsKKworCQltdXRleF9sb2NrKCZhZGV2LT5kbS5hdWRpb19sb2NrKTsKKwkJaW5zdCA9IHN0 YXR1cy0+YXVkaW9faW5zdDsKKwkJYWNvbm5lY3Rvci0+YXVkaW9faW5zdCA9IGluc3Q7CisJCW11 dGV4X3VubG9jaygmYWRldi0+ZG0uYXVkaW9fbG9jayk7CisKKwkJYW1kZ3B1X2RtX2F1ZGlvX2Vs ZF9ub3RpZnkoYWRldiwgaW5zdCk7CisJfQorfQorCiAvKgogICogRW5hYmxlIGludGVycnVwdHMg b24gQ1JUQ3MgdGhhdCBhcmUgbmV3bHkgYWN0aXZlLCB1bmRlcmdvbmUKICAqIGEgbW9kZXNldCwg b3IgaGF2ZSBhY3RpdmUgcGxhbmVzIGFnYWluLgpAQCAtNjA2MCw2ICs2Mjc5LDkgQEAgc3RhdGlj IHZvaWQgYW1kZ3B1X2RtX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAJLyogRW5hYmxlIGludGVycnVwdHMgZm9yIENSVENzIGdvaW5nIGZyb20gMCB0 byBuIGFjdGl2ZSBwbGFuZXMuICovCiAJYW1kZ3B1X2RtX2VuYWJsZV9jcnRjX2ludGVycnVwdHMo ZGV2LCBzdGF0ZSwgZmFsc2UpOwogCisJLyogVXBkYXRlIGF1ZGlvIGluc3RhbmNlcyBmb3IgZWFj aCBjb25uZWN0b3IuICovCisJYW1kZ3B1X2RtX2NvbW1pdF9hdWRpbyhkZXYsIHN0YXRlKTsKKwog CS8qCiAJICogc2VuZCB2YmxhbmsgZXZlbnQgb24gYWxsIGV2ZW50cyBub3QgaGFuZGxlZCBpbiBm bGlwIGFuZAogCSAqIG1hcmsgY29uc3VtZWQgZXZlbnQgZm9yIGRybV9hdG9taWNfaGVscGVyX2Nv bW1pdF9od19kb25lCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1k Z3B1X2RtL2FtZGdwdV9kbS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9k bS9hbWRncHVfZG0uaAppbmRleCAxZDQ5OGU2ZGMxZmUuLmM3Y2QwY2Q0YTg1YyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5oCkBAIC0x NDAsNiArMTQwLDI4IEBAIHN0cnVjdCBhbWRncHVfZGlzcGxheV9tYW5hZ2VyIHsKIAkgKi8KIAlz dHJ1Y3QgbXV0ZXggZGNfbG9jazsKIAorCS8qKgorCSAqIEBhdWRpb19sb2NrOgorCSAqCisJICog R3VhcmRzIGFjY2VzcyB0byBhdWRpbyBpbnN0YW5jZSBjaGFuZ2VzLgorCSAqLworCXN0cnVjdCBt dXRleCBhdWRpb19sb2NrOworCisJLyoqCisJICogQGF1ZGlvX2NvbXBvbmVudDoKKwkgKgorCSAq IFVzZWQgdG8gbm90aWZ5IEVMRCBjaGFuZ2VzIHRvIHNvdW5kIGRyaXZlci4KKwkgKi8KKwlzdHJ1 Y3QgZHJtX2F1ZGlvX2NvbXBvbmVudCAqYXVkaW9fY29tcG9uZW50OworCisJLyoqCisJICogQGF1 ZGlvX3JlZ2lzdGVyZWQ6CisJICoKKwkgKiBUcnVlIGlmIHRoZSBhdWRpbyBjb21wb25lbnQgaGFz IGJlZW4gcmVnaXN0ZXJlZAorCSAqIHN1Y2Nlc3NmdWxseSwgZmFsc2Ugb3RoZXJ3aXNlLgorCSAq LworCWJvb2wgYXVkaW9fcmVnaXN0ZXJlZDsKKwogCS8qKgogCSAqIEBpcnFfaGFuZGxlcl9saXN0 X2xvd190YWI6CiAJICoKQEAgLTI1MSw2ICsyNzMsOSBAQCBzdHJ1Y3QgYW1kZ3B1X2RtX2Nvbm5l Y3RvciB7CiAJaW50IG1heF92ZnJlcSA7CiAJaW50IHBpeGVsX2Nsb2NrX21oejsKIAorCS8qIEF1 ZGlvIGluc3RhbmNlIC0gcHJvdGVjdGVkIGJ5IGF1ZGlvX2xvY2suICovCisJaW50IGF1ZGlvX2lu c3Q7CisKIAlzdHJ1Y3QgbXV0ZXggaHBkX2xvY2s7CiAKIAlib29sIGZha2VfZW5hYmxlOwotLSAK Mi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwph bWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=