From: Rob Herring Subject: [PATCH] drm/rockchip: Use drm_fbdev_generic_setup() Date: Sat, 2 Feb 2019 11:07:11 -0600 Message-ID: <20190202170711.29471-1-robh@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?q?Heiko=20St=C3=BCbner?= Cc: David Airlie , dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org T3RoZXIgdGhhbiB1c2luZyBhIHJvY2tjaGlwX2dlbV9vYmplY3QgZGlyZWN0bHksIHRoZSBSb2Nr Y2hpcCBmYmRldgpzZXR1cCBoYXMgbm90aGluZyBzcGVjaWFsIGFuZCBjYW4gYmUgY29udmVydGVk IHRvIHVzZSB0aGUgZ2VuZXJpYyBmYmRldgplbXVsYXRpb24gaW5zdGVhZC4KClRoaXMgcGF0Y2gg bWFrZXMgZnVsbCB1c2Ugb2YgdGhlIGdlbmVyaWMgZmJkZXYgZW11bGF0aW9uIGJ5IHVzaW5nIGl0 cwpkcm1fY2xpZW50IGNhbGxiYWNrcy4gVGhpcyBtZWFucyB0aGF0CmRybV9tb2RlX2NvbmZpZ19m dW5jcy0+b3V0cHV0X3BvbGxfY2hhbmdlZCBhbmQgZHJtX2RyaXZlci0+bGFzdGNsb3NlIGFyZQpu b3cgaGFuZGxlZCBieSB0aGUgZW11bGF0aW9uIGNvZGUuIEFkZGl0aW9uYWxseSBmYmRldiB1bnJl Z2lzdGVyIGhhcHBlbnMKYXV0b21hdGljYWxseSBvbiBkcm1fZGV2X3VucmVnaXN0ZXIoKS4KClRo ZSBkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cCgpIGNhbGwgaXMgcHV0IGFmdGVyIGRybV9kZXZfcmVn aXN0ZXIoKSBpbiB0aGUKZHJpdmVyLiBUaGlzIGlzIGRvbmUgdG8gaGlnaGxpZ2h0IHRoZSBmYWN0 IHRoYXQgZmJkZXYgZW11bGF0aW9uIGlzIGFuCmludGVybmFsIGNsaWVudCB0aGF0IG1ha2VzIHVz ZSBvZiB0aGUgZHJpdmVyLCBpdCBpcyBub3QgcGFydCBvZiB0aGUKZHJpdmVyIGFzIHN1Y2guIElm IGZiZGV2IHNldHVwIGZhaWxzLCBhbiBlcnJvciBpcyBwcmludGVkLCBidXQgdGhlIGRyaXZlcgpz dWNjZWVkcyBwcm9iaW5nLgoKQ2M6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25uZXMub3Jn PgpDYzogU2FuZHkgSHVhbmcgPGhqY0Byb2NrLWNoaXBzLmNvbT4KQ2M6ICJIZWlrbyBTdMO8Ym5l ciIgPGhlaWtvQHNudGVjaC5kZT4KQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4K Q2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KQ2M6IGRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKQ2M6IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpD YzogbGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpTaWduZWQtb2ZmLWJ5OiBSb2Ig SGVycmluZyA8cm9iaEBrZXJuZWwub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9N YWtlZmlsZSAgICAgICAgICAgICB8ICAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfZHJtX2Rydi5jICAgfCAgMTAgKy0KIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9kcm1fZHJ2LmggICB8ICAgMiAtCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX2ZiLmMgICAgfCAgMTQgLS0KIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hp cF9kcm1fZmIuaCAgICB8ICAgNiAtCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZHJtX2ZiZGV2LmMgfCAxODMgLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX2ZiZGV2LmggfCAgMzIgLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMjQ2IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuYwogZGVsZXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuaAoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9NYWtlZmlsZQppbmRleCBmNmZjOWQ1ZGQwYWQuLmRmZjFkMDk2MmZmNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZQpAQCAtNiw3ICs2LDYgQEAKIHJvY2tjaGlwZHJtLXkg Oj0gcm9ja2NoaXBfZHJtX2Rydi5vIHJvY2tjaGlwX2RybV9mYi5vIFwKIAkJcm9ja2NoaXBfZHJt X2dlbS5vIHJvY2tjaGlwX2RybV9wc3IubyBcCiAJCXJvY2tjaGlwX2RybV92b3AubyByb2NrY2hp cF92b3BfcmVnLm8KLXJvY2tjaGlwZHJtLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICs9 IHJvY2tjaGlwX2RybV9mYmRldi5vCiAKIHJvY2tjaGlwZHJtLSQoQ09ORklHX1JPQ0tDSElQX0FO QUxPR0lYX0RQKSArPSBhbmFsb2dpeF9kcC1yb2NrY2hpcC5vCiByb2NrY2hpcGRybS0kKENPTkZJ R19ST0NLQ0hJUF9DRE5fRFApICs9IGNkbi1kcC1jb3JlLm8gY2RuLWRwLXJlZy5vCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jIGIvZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuYwppbmRleCBiZTZjMjU3MzAzOWEu LjcwODlmMDQ5NzBhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2RybV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJt X2Rydi5jCkBAIC0zMSw3ICszMSw2IEBACiAKICNpbmNsdWRlICJyb2NrY2hpcF9kcm1fZHJ2Lmgi CiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2ZiLmgiCi0jaW5jbHVkZSAicm9ja2NoaXBfZHJtX2Zi ZGV2LmgiCiAjaW5jbHVkZSAicm9ja2NoaXBfZHJtX2dlbS5oIgogCiAjZGVmaW5lIERSSVZFUl9O QU1FCSJyb2NrY2hpcCIKQEAgLTE2MiwxMCArMTYxLDYgQEAgc3RhdGljIGludCByb2NrY2hpcF9k cm1fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJICovCiAJZHJtX2Rldi0+aXJxX2VuYWJsZWQg PSB0cnVlOwogCi0JcmV0ID0gcm9ja2NoaXBfZHJtX2ZiZGV2X2luaXQoZHJtX2Rldik7Ci0JaWYg KHJldCkKLQkJZ290byBlcnJfdW5iaW5kX2FsbDsKLQogCS8qIGluaXQga21zIHBvbGwgZm9yIGhh bmRsaW5nIGhwZCAqLwogCWRybV9rbXNfaGVscGVyX3BvbGxfaW5pdChkcm1fZGV2KTsKIApAQCAt MTczLDEwICsxNjgsMTEgQEAgc3RhdGljIGludCByb2NrY2hpcF9kcm1fYmluZChzdHJ1Y3QgZGV2 aWNlICpkZXYpCiAJaWYgKHJldCkKIAkJZ290byBlcnJfa21zX2hlbHBlcl9wb2xsX2Zpbmk7CiAK Kwlkcm1fZmJkZXZfZ2VuZXJpY19zZXR1cChkcm1fZGV2LCAzMik7CisKIAlyZXR1cm4gMDsKIGVy cl9rbXNfaGVscGVyX3BvbGxfZmluaToKIAlkcm1fa21zX2hlbHBlcl9wb2xsX2ZpbmkoZHJtX2Rl dik7Ci0Jcm9ja2NoaXBfZHJtX2ZiZGV2X2ZpbmkoZHJtX2Rldik7CiBlcnJfdW5iaW5kX2FsbDoK IAljb21wb25lbnRfdW5iaW5kX2FsbChkZXYsIGRybV9kZXYpOwogZXJyX21vZGVfY29uZmlnX2Ns ZWFudXA6CkBAIC0xOTUsNyArMTkxLDYgQEAgc3RhdGljIHZvaWQgcm9ja2NoaXBfZHJtX3VuYmlu ZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAKIAlkcm1fZGV2X3VucmVnaXN0ZXIoZHJtX2Rldik7CiAK LQlyb2NrY2hpcF9kcm1fZmJkZXZfZmluaShkcm1fZGV2KTsKIAlkcm1fa21zX2hlbHBlcl9wb2xs X2ZpbmkoZHJtX2Rldik7CiAKIAlkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bihkcm1fZGV2KTsK QEAgLTIyMiw3ICsyMTcsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBy b2NrY2hpcF9kcm1fZHJpdmVyX2ZvcHMgPSB7CiBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgcm9j a2NoaXBfZHJtX2RyaXZlciA9IHsKIAkuZHJpdmVyX2ZlYXR1cmVzCT0gRFJJVkVSX01PREVTRVQg fCBEUklWRVJfR0VNIHwKIAkJCQkgIERSSVZFUl9QUklNRSB8IERSSVZFUl9BVE9NSUMsCi0JLmxh c3RjbG9zZQkJPSBkcm1fZmJfaGVscGVyX2xhc3RjbG9zZSwKIAkuZ2VtX3ZtX29wcwkJPSAmZHJt X2dlbV9jbWFfdm1fb3BzLAogCS5nZW1fZnJlZV9vYmplY3RfdW5sb2NrZWQgPSByb2NrY2hpcF9n ZW1fZnJlZV9vYmplY3QsCiAJLmR1bWJfY3JlYXRlCQk9IHJvY2tjaGlwX2dlbV9kdW1iX2NyZWF0 ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5oCmluZGV4IGNl NDg1NjhlYzhhMC4uN2Y0ZWJkNjgyYWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fZHJ2LmgKQEAgLTUwLDggKzUwLDYgQEAgc3RydWN0IHJvY2tjaGlwX2NydGNf c3RhdGUgewogICogQG1tX2xvY2s6IHByb3RlY3QgZHJtX21tIG9uIG11bHRpLXRocmVhZHMuCiAg Ki8KIHN0cnVjdCByb2NrY2hpcF9kcm1fcHJpdmF0ZSB7Ci0Jc3RydWN0IGRybV9mYl9oZWxwZXIg ZmJkZXZfaGVscGVyOwotCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZmJkZXZfYm87CiAJc3RydWN0 IGlvbW11X2RvbWFpbiAqZG9tYWluOwogCXN0cnVjdCBtdXRleCBtbV9sb2NrOwogCXN0cnVjdCBk cm1fbW0gbW07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZHJtX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2ZiLmMKaW5k ZXggZWExOGNiMmE3NmMwLi41YTAwOGVmYTFlN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX2ZiLmMKQEAgLTE5NywyMCArMTk3LDYgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3Mgcm9ja2NoaXBfZHJtX21vZGVfY29uZmlnX2Z1bmNz ID0gewogCS5hdG9taWNfY29tbWl0ID0gZHJtX2F0b21pY19oZWxwZXJfY29tbWl0LAogfTsKIAot c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqCi1yb2NrY2hpcF9kcm1fZnJhbWVidWZmZXJfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9tb2RlX2Zi X2NtZDIgKm1vZGVfY21kLAotCQkJICAgICAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCi17 Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Ci0KLQlmYiA9IHJvY2tjaGlwX2ZiX2FsbG9j KGRldiwgbW9kZV9jbWQsICZvYmosIDEpOwotCWlmIChJU19FUlIoZmIpKQotCQlyZXR1cm4gRVJS X0NBU1QoZmIpOwotCi0JcmV0dXJuIGZiOwotfQotCiB2b2lkIHJvY2tjaGlwX2RybV9tb2RlX2Nv bmZpZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJZGV2LT5tb2RlX2NvbmZpZy5t aW5fd2lkdGggPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2RybV9mYi5oIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYi5o CmluZGV4IGYxMjY1Y2IxYWVlOC4uNjkyNzFkZjk2ZmE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2ZiLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX2RybV9mYi5oCkBAIC0xNSwxMSArMTUsNSBAQAogI2lmbmRlZiBfUk9D S0NISVBfRFJNX0ZCX0gKICNkZWZpbmUgX1JPQ0tDSElQX0RSTV9GQl9ICiAKLXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKgotcm9ja2NoaXBfZHJtX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICptb2Rl X2NtZCwKLQkJCSAgICAgIHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKLXZvaWQgcm9ja2No aXBfZHJtX2ZyYW1lYnVmZmVyX2Zpbmkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwotCiB2 b2lkIHJvY2tjaGlwX2RybV9tb2RlX2NvbmZpZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp OwogI2VuZGlmIC8qIF9ST0NLQ0hJUF9EUk1fRkJfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYmRldi5jIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX2RybV9mYmRldi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBlNjY1MDU1M2Y1ZDYuLjAwMDAwMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX2ZiZGV2LmMKKysrIC9kZXYvbnVsbApAQCAtMSwxODMgKzAsMCBAQAot LyoKLSAqIENvcHlyaWdodCAoQykgRnV6aG91IFJvY2tjaGlwIEVsZWN0cm9uaWNzIENvLkx0ZAot ICogQXV0aG9yOk1hcmsgWWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4KLSAqCi0gKiBUaGlz IHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljCi0gKiBMaWNlbnNlIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIGFuZAotICogbWF5IGJlIGNvcGllZCwgZGlzdHJpYnV0ZWQsIGFu ZCBtb2RpZmllZCB1bmRlciB0aG9zZSB0ZXJtcy4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCi0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot ICovCi0KLSNpbmNsdWRlIDxkcm0vZHJtLmg+Ci0jaW5jbHVkZSA8ZHJtL2RybVAuaD4KLSNpbmNs dWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgotI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIu aD4KLQotI2luY2x1ZGUgInJvY2tjaGlwX2RybV9kcnYuaCIKLSNpbmNsdWRlICJyb2NrY2hpcF9k cm1fZ2VtLmgiCi0jaW5jbHVkZSAicm9ja2NoaXBfZHJtX2ZiLmgiCi0jaW5jbHVkZSAicm9ja2No aXBfZHJtX2ZiZGV2LmgiCi0KLSNkZWZpbmUgUFJFRkVSUkVEX0JQUAkJMzIKLSNkZWZpbmUgdG9f ZHJtX3ByaXZhdGUoeCkgXAotCQljb250YWluZXJfb2YoeCwgc3RydWN0IHJvY2tjaGlwX2RybV9w cml2YXRlLCBmYmRldl9oZWxwZXIpCi0KLXN0YXRpYyBpbnQgcm9ja2NoaXBfZmJkZXZfbW1hcChz dHJ1Y3QgZmJfaW5mbyAqaW5mbywKLQkJCSAgICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSkKLXsKLQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyID0gaW5mby0+cGFyOwotCXN0cnVj dCByb2NrY2hpcF9kcm1fcHJpdmF0ZSAqcHJpdmF0ZSA9IHRvX2RybV9wcml2YXRlKGhlbHBlcik7 Ci0KLQlyZXR1cm4gcm9ja2NoaXBfZ2VtX21tYXBfYnVmKHByaXZhdGUtPmZiZGV2X2JvLCB2bWEp OwotfQotCi1zdGF0aWMgc3RydWN0IGZiX29wcyByb2NrY2hpcF9kcm1fZmJkZXZfb3BzID0gewot CS5vd25lcgkJPSBUSElTX01PRFVMRSwKLQlEUk1fRkJfSEVMUEVSX0RFRkFVTFRfT1BTLAotCS5m Yl9tbWFwCT0gcm9ja2NoaXBfZmJkZXZfbW1hcCwKLQkuZmJfZmlsbHJlY3QJPSBkcm1fZmJfaGVs cGVyX2NmYl9maWxscmVjdCwKLQkuZmJfY29weWFyZWEJPSBkcm1fZmJfaGVscGVyX2NmYl9jb3B5 YXJlYSwKLQkuZmJfaW1hZ2VibGl0CT0gZHJtX2ZiX2hlbHBlcl9jZmJfaW1hZ2VibGl0LAotfTsK LQotc3RhdGljIGludCByb2NrY2hpcF9kcm1fZmJkZXZfY3JlYXRlKHN0cnVjdCBkcm1fZmJfaGVs cGVyICpoZWxwZXIsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9zdXJmYWNlX3NpemUg KnNpemVzKQotewotCXN0cnVjdCByb2NrY2hpcF9kcm1fcHJpdmF0ZSAqcHJpdmF0ZSA9IHRvX2Ry bV9wcml2YXRlKGhlbHBlcik7Ci0Jc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgbW9kZV9jbWQgPSB7 IDAgfTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaGVscGVyLT5kZXY7Ci0Jc3RydWN0IHJv Y2tjaGlwX2dlbV9vYmplY3QgKnJrX29iajsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsK LQl1bnNpZ25lZCBpbnQgYnl0ZXNfcGVyX3BpeGVsOwotCXVuc2lnbmVkIGxvbmcgb2Zmc2V0Owot CXN0cnVjdCBmYl9pbmZvICpmYmk7Ci0Jc2l6ZV90IHNpemU7Ci0JaW50IHJldDsKLQotCWJ5dGVz X3Blcl9waXhlbCA9IERJVl9ST1VORF9VUChzaXplcy0+c3VyZmFjZV9icHAsIDgpOwotCi0JbW9k ZV9jbWQud2lkdGggPSBzaXplcy0+c3VyZmFjZV93aWR0aDsKLQltb2RlX2NtZC5oZWlnaHQgPSBz aXplcy0+c3VyZmFjZV9oZWlnaHQ7Ci0JbW9kZV9jbWQucGl0Y2hlc1swXSA9IHNpemVzLT5zdXJm YWNlX3dpZHRoICogYnl0ZXNfcGVyX3BpeGVsOwotCW1vZGVfY21kLnBpeGVsX2Zvcm1hdCA9IGRy bV9tb2RlX2xlZ2FjeV9mYl9mb3JtYXQoc2l6ZXMtPnN1cmZhY2VfYnBwLAotCQlzaXplcy0+c3Vy ZmFjZV9kZXB0aCk7Ci0KLQlzaXplID0gbW9kZV9jbWQucGl0Y2hlc1swXSAqIG1vZGVfY21kLmhl aWdodDsKLQotCXJrX29iaiA9IHJvY2tjaGlwX2dlbV9jcmVhdGVfb2JqZWN0KGRldiwgc2l6ZSwg dHJ1ZSk7Ci0JaWYgKElTX0VSUihya19vYmopKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXByaXZh dGUtPmZiZGV2X2JvID0gJnJrX29iai0+YmFzZTsKLQotCWZiaSA9IGRybV9mYl9oZWxwZXJfYWxs b2NfZmJpKGhlbHBlcik7Ci0JaWYgKElTX0VSUihmYmkpKSB7Ci0JCURSTV9ERVZfRVJST1IoZGV2 LT5kZXYsICJGYWlsZWQgdG8gY3JlYXRlIGZyYW1lYnVmZmVyIGluZm8uXG4iKTsKLQkJcmV0ID0g UFRSX0VSUihmYmkpOwotCQlnb3RvIG91dDsKLQl9Ci0KLQloZWxwZXItPmZiID0gcm9ja2NoaXBf ZHJtX2ZyYW1lYnVmZmVyX2luaXQoZGV2LCAmbW9kZV9jbWQsCi0JCQkJCQkgICBwcml2YXRlLT5m YmRldl9ibyk7Ci0JaWYgKElTX0VSUihoZWxwZXItPmZiKSkgewotCQlEUk1fREVWX0VSUk9SKGRl di0+ZGV2LAotCQkJICAgICAgIkZhaWxlZCB0byBhbGxvY2F0ZSBEUk0gZnJhbWVidWZmZXIuXG4i KTsKLQkJcmV0ID0gUFRSX0VSUihoZWxwZXItPmZiKTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JZmJp LT5wYXIgPSBoZWxwZXI7Ci0JZmJpLT5mbGFncyA9IEZCSU5GT19GTEFHX0RFRkFVTFQ7Ci0JZmJp LT5mYm9wcyA9ICZyb2NrY2hpcF9kcm1fZmJkZXZfb3BzOwotCi0JZmIgPSBoZWxwZXItPmZiOwot CWRybV9mYl9oZWxwZXJfZmlsbF9maXgoZmJpLCBmYi0+cGl0Y2hlc1swXSwgZmItPmZvcm1hdC0+ ZGVwdGgpOwotCWRybV9mYl9oZWxwZXJfZmlsbF92YXIoZmJpLCBoZWxwZXIsIHNpemVzLT5mYl93 aWR0aCwgc2l6ZXMtPmZiX2hlaWdodCk7Ci0KLQlvZmZzZXQgPSBmYmktPnZhci54b2Zmc2V0ICog Ynl0ZXNfcGVyX3BpeGVsOwotCW9mZnNldCArPSBmYmktPnZhci55b2Zmc2V0ICogZmItPnBpdGNo ZXNbMF07Ci0KLQlkZXYtPm1vZGVfY29uZmlnLmZiX2Jhc2UgPSAwOwotCWZiaS0+c2NyZWVuX2Jh c2UgPSBya19vYmotPmt2YWRkciArIG9mZnNldDsKLQlmYmktPnNjcmVlbl9zaXplID0gcmtfb2Jq LT5iYXNlLnNpemU7Ci0JZmJpLT5maXguc21lbV9sZW4gPSBya19vYmotPmJhc2Uuc2l6ZTsKLQot CURSTV9ERUJVR19LTVMoIkZCIFslZHglZF0tJWQga3ZhZGRyPSVwIG9mZnNldD0lbGQgc2l6ZT0l enVcbiIsCi0JCSAgICAgIGZiLT53aWR0aCwgZmItPmhlaWdodCwgZmItPmZvcm1hdC0+ZGVwdGgs Ci0JCSAgICAgIHJrX29iai0+a3ZhZGRyLAotCQkgICAgICBvZmZzZXQsIHNpemUpOwotCi0JZmJp LT5za2lwX3Z0X3N3aXRjaCA9IHRydWU7Ci0KLQlyZXR1cm4gMDsKLQotb3V0OgotCXJvY2tjaGlw X2dlbV9mcmVlX29iamVjdCgmcmtfb2JqLT5iYXNlKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9mYl9oZWxwZXJfZnVuY3Mgcm9ja2NoaXBfZHJtX2ZiX2hlbHBl cl9mdW5jcyA9IHsKLQkuZmJfcHJvYmUgPSByb2NrY2hpcF9kcm1fZmJkZXZfY3JlYXRlLAotfTsK LQotaW50IHJvY2tjaGlwX2RybV9mYmRldl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17 Ci0Jc3RydWN0IHJvY2tjaGlwX2RybV9wcml2YXRlICpwcml2YXRlID0gZGV2LT5kZXZfcHJpdmF0 ZTsKLQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyOwotCWludCByZXQ7Ci0KLQlpZiAoIWRl di0+bW9kZV9jb25maWcubnVtX2NydGMgfHwgIWRldi0+bW9kZV9jb25maWcubnVtX2Nvbm5lY3Rv cikKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQloZWxwZXIgPSAmcHJpdmF0ZS0+ZmJkZXZfaGVscGVy OwotCi0JZHJtX2ZiX2hlbHBlcl9wcmVwYXJlKGRldiwgaGVscGVyLCAmcm9ja2NoaXBfZHJtX2Zi X2hlbHBlcl9mdW5jcyk7Ci0KLQlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXQoZGV2LCBoZWxwZXIs IFJPQ0tDSElQX01BWF9DT05ORUNUT1IpOwotCWlmIChyZXQgPCAwKSB7Ci0JCURSTV9ERVZfRVJS T1IoZGV2LT5kZXYsCi0JCQkgICAgICAiRmFpbGVkIHRvIGluaXRpYWxpemUgZHJtIGZiIGhlbHBl ciAtICVkLlxuIiwKLQkJCSAgICAgIHJldCk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JcmV0ID0g ZHJtX2ZiX2hlbHBlcl9zaW5nbGVfYWRkX2FsbF9jb25uZWN0b3JzKGhlbHBlcik7Ci0JaWYgKHJl dCA8IDApIHsKLQkJRFJNX0RFVl9FUlJPUihkZXYtPmRldiwKLQkJCSAgICAgICJGYWlsZWQgdG8g YWRkIGNvbm5lY3RvcnMgLSAlZC5cbiIsIHJldCk7Ci0JCWdvdG8gZXJyX2RybV9mYl9oZWxwZXJf ZmluaTsKLQl9Ci0KLQlyZXQgPSBkcm1fZmJfaGVscGVyX2luaXRpYWxfY29uZmlnKGhlbHBlciwg UFJFRkVSUkVEX0JQUCk7Ci0JaWYgKHJldCA8IDApIHsKLQkJRFJNX0RFVl9FUlJPUihkZXYtPmRl diwKLQkJCSAgICAgICJGYWlsZWQgdG8gc2V0IGluaXRpYWwgaHcgY29uZmlnIC0gJWQuXG4iLAot CQkJICAgICAgcmV0KTsKLQkJZ290byBlcnJfZHJtX2ZiX2hlbHBlcl9maW5pOwotCX0KLQotCXJl dHVybiAwOwotCi1lcnJfZHJtX2ZiX2hlbHBlcl9maW5pOgotCWRybV9mYl9oZWxwZXJfZmluaSho ZWxwZXIpOwotCXJldHVybiByZXQ7Ci19Ci0KLXZvaWQgcm9ja2NoaXBfZHJtX2ZiZGV2X2Zpbmko c3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3Qgcm9ja2NoaXBfZHJtX3ByaXZhdGUg KnByaXZhdGUgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxw ZXI7Ci0KLQloZWxwZXIgPSAmcHJpdmF0ZS0+ZmJkZXZfaGVscGVyOwotCi0JZHJtX2ZiX2hlbHBl cl91bnJlZ2lzdGVyX2ZiaShoZWxwZXIpOwotCi0JaWYgKGhlbHBlci0+ZmIpCi0JCWRybV9mcmFt ZWJ1ZmZlcl9wdXQoaGVscGVyLT5mYik7Ci0KLQlkcm1fZmJfaGVscGVyX2ZpbmkoaGVscGVyKTsK LX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJk ZXYuaCBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM3MThjNWY1YmJmLi4wMDAwMDAwMDAwMDAKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9mYmRldi5oCisrKyAvZGV2 L251bGwKQEAgLTEsMzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgRnV6aG91IFJvY2tj aGlwIEVsZWN0cm9uaWNzIENvLkx0ZAotICogQXV0aG9yOk1hcmsgWWFvIDxtYXJrLnlhb0Byb2Nr LWNoaXBzLmNvbT4KLSAqCi0gKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIHZlcnNpb24gMiwgYXMg cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGFuZAotICogbWF5IGJl IGNvcGllZCwgZGlzdHJpYnV0ZWQsIGFuZCBtb2RpZmllZCB1bmRlciB0aG9zZSB0ZXJtcy4KLSAq Ci0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICovCi0KLSNpZm5kZWYgX1JPQ0tDSElQX0RSTV9GQkRF Vl9ICi0jZGVmaW5lIF9ST0NLQ0hJUF9EUk1fRkJERVZfSAotCi0jaWZkZWYgQ09ORklHX0RSTV9G QkRFVl9FTVVMQVRJT04KLWludCByb2NrY2hpcF9kcm1fZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKLXZvaWQgcm9ja2NoaXBfZHJtX2ZiZGV2X2Zpbmkoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Ci0jZWxzZQotc3RhdGljIGlubGluZSBpbnQgcm9ja2NoaXBfZHJtX2ZiZGV2X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlu bGluZSB2b2lkIHJvY2tjaGlwX2RybV9mYmRldl9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Ci17Ci19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIF9ST0NLQ0hJUF9EUk1fRkJERVZfSCAqLwotLSAK Mi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK