From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v3 06/10] drm/fb-helper: Support deferred setup Date: Tue, 21 Mar 2017 09:13:54 +0100 Message-ID: <20170321081358.27237-7-thierry.reding@gmail.com> References: <20170321081358.27237-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170321081358.27237-1-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkZCIGhlbHBlciBjb2Rl IGZhbGxzIGJhY2sgdG8gYSAxMDI0eDc2OCBtb2RlIGlmIG5vIG91dHB1dHMgYXJlIGNvbm5lY3Rl ZApvciBkb24ndCByZXBvcnQgYmFjayBhbnkgbW9kZXMgdXBvbiBpbml0aWFsaXphdGlvbi4gVGhp cyBjYW4gYmUgYW5ub3lpbmcKYmVjYXVzZSBvdXRwdXRzIHRoYXQgYXJlIGFkZGVkIHRvIEZCIGhl bHBlciBsYXRlciBvbiBjYW4ndCBiZSB1c2VkIHdpdGgKRkIgaGVscGVyIGlmIHRoZXkgZG9uJ3Qg c3VwcG9ydCBhIG1hdGNoaW5nIG1vZGUuCgpUaGUgZmFsbGJhY2sgaXMgaW4gcGxhY2UgYmVjYXVz ZSBWR0EgY29ubmVjdG9ycyBjYW4gaGFwcGVuIHRvIHJlcG9ydCBhbgp1bmtub3duIGNvbm5lY3Rp b24gc3RhdHVzIGV2ZW4gd2hlbiB0aGV5IGFyZSBpbiBmYWN0IGNvbm5lY3RlZC4KClNvbWUgZHJp dmVycyBoYXZlIGN1c3RvbSBzb2x1dGlvbnMgaW4gcGxhY2UgdG8gZGVmZXIgRkIgaGVscGVyIHNl dHVwCnVudGlsIGF0IGxlYXN0IG9uZSBvdXRwdXQgaXMgY29ubmVjdGVkLiBCdXQgdGhlIGxvZ2lj IGJlaGluZCB0aGVzZQpzb2x1dGlvbnMgaXMgYWx3YXlzIHRoZSBzYW1lIGFuZCB0aGVyZSBpcyBu b3RoaW5nIGRyaXZlci1zcGVjaWZpYyBhYm91dAppdCwgc28gYSBiZXR0ZXIgYWx0ZXJhdGl2ZSBp cyB0byBmaXggdGhlIEZCIGhlbHBlciBjb3JlIGFuZCBhZGQgc3VwcG9ydApmb3IgYWxsIGRyaXZl cnMgYXV0b21hdGljYWxseS4KClRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBkZWZlcnJlZCBG QiBoZWxwZXIgc2V0dXAuIEl0IGNoZWNrcyBhbGwgdGhlCmNvbm5lY3RvcnMgZm9yIHRoZWlyIGNv bm5lY3Rpb24gc3RhdHVzLCBhbmQgaWYgYWxsIG9mIHRoZW0gcmVwb3J0IHRvIGJlCmRpc2Nvbm5l Y3RlZCBtYXJrcyB0aGUgRkIgaGVscGVyIGFzIG5lZWRpbmcgZGVmZXJyZWQgc2V0dXAuIFdoZXQg c2V0dXAKaXMgZGVmZXJyZWQsIHRoZSBGQiBoZWxwZXIgY29yZSB3aWxsIGF1dG9tYXRpY2FsbHkg cmV0cnkgc2V0dXAgYWZ0ZXIgYQpob3RwbHVnIGV2ZW50LCBhbmQgaXQgd2lsbCBrZWVwIHRyeWlu ZyB1bnRpbCBpdCBzdWNjZWVkcy4KClRlc3RlZC1ieTogSm9obiBTdHVsdHogPGpvaG4uc3R1bHR6 QGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRp YS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IDYwICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBpbmNsdWRlL2RybS9kcm1fZmJfaGVs cGVyLmggICAgIHwgMjEgKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDc2IGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKaW5kZXggOTA2 MGFkY2Y3Y2Y4Li5kNGEyYzk3ZDhiMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZmJfaGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwpAQCAtNTEx LDYgKzUxMSw5IEBAIGludCBkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZfbW9kZV91bmxvY2tl ZChzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQogCWlmICghZHJtX2ZiZGV2X2VtdWxh dGlvbikKIAkJcmV0dXJuIC1FTk9ERVY7CiAKKwlpZiAoZmJfaGVscGVyLT5kZWZlcnJlZF9zZXR1 cCkKKwkJcmV0dXJuIDA7CisKIAltdXRleF9sb2NrKCZmYl9oZWxwZXItPmxvY2spOwogCWRybV9t b2Rlc2V0X2xvY2tfYWxsKGRldik7CiAKQEAgLTE1OTcsNiArMTYwMCwyMyBAQCBpbnQgZHJtX2Zi X2hlbHBlcl9wYW5fZGlzcGxheShzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKnZhciwKIH0KIEVY UE9SVF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9wYW5fZGlzcGxheSk7CiAKK3N0YXRpYyBib29sIGRy bV9mYl9oZWxwZXJfbWF5YmVfY29ubmVjdGVkKHN0cnVjdCBkcm1fZmJfaGVscGVyICpoZWxwZXIp Cit7CisJYm9vbCBjb25uZWN0ZWQgPSBmYWxzZTsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAo aSA9IDA7IGkgPCBoZWxwZXItPmNvbm5lY3Rvcl9jb3VudDsgaSsrKSB7CisJCXN0cnVjdCBkcm1f ZmJfaGVscGVyX2Nvbm5lY3RvciAqZmIgPSBoZWxwZXItPmNvbm5lY3Rvcl9pbmZvW2ldOworCisJ CWlmIChmYi0+Y29ubmVjdG9yLT5zdGF0dXMgIT0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0 ZWQpIHsKKwkJCWNvbm5lY3RlZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0KKworCXJldHVy biBjb25uZWN0ZWQ7Cit9CisKIC8qCiAgKiBBbGxvY2F0ZXMgdGhlIGJhY2tpbmcgc3RvcmFnZSBh bmQgc2V0cyB1cCB0aGUgZmJkZXYgaW5mbyBzdHJ1Y3R1cmUgdGhyb3VnaAogICogdGhlIC0+ZmJf cHJvYmUgY2FsbGJhY2sgYW5kIHRoZW4gcmVnaXN0ZXJzIHRoZSBmYmRldiBhbmQgc2V0cyB1cCB0 aGUgcGFuaWMKQEAgLTIyNTQsOCArMjI3NCw2IEBAIHN0YXRpYyB2b2lkIGRybV9zZXR1cF9jcnRj cyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLAogCWludCBpOwogCiAJRFJNX0RFQlVH X0tNUygiXG4iKTsKLQlpZiAoZHJtX2ZiX2hlbHBlcl9wcm9iZV9jb25uZWN0b3JfbW9kZXMoZmJf aGVscGVyLCB3aWR0aCwgaGVpZ2h0KSA9PSAwKQotCQlEUk1fREVCVUdfS01TKCJObyBjb25uZWN0 b3JzIHJlcG9ydGVkIGNvbm5lY3RlZCB3aXRoIG1vZGVzXG4iKTsKIAogCS8qIHByZXZlbnQgY29u Y3VycmVudCBtb2RpZmljYXRpb24gb2YgY29ubmVjdG9yX2NvdW50IGJ5IGhvdHBsdWcgKi8KIAls b2NrZGVwX2Fzc2VydF9oZWxkKCZmYl9oZWxwZXItPmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwpA QCAtMjM3OCw2ICsyMzk2LDcgQEAgc3RhdGljIHZvaWQgZHJtX3NldHVwX2NydGNzKHN0cnVjdCBk cm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCiBpbnQgZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZp ZyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBpbnQgYnBwX3NlbCkKIHsKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZmJfaGVscGVyLT5kZXY7CisJdW5zaWduZWQgaW50IHdpZHRo LCBoZWlnaHQ7CiAJc3RydWN0IGZiX2luZm8gKmluZm87CiAJaW50IHJldDsKIApAQCAtMjM4NSwx NCArMjQwNCwzNCBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhzdHJ1Y3QgZHJt X2ZiX2hlbHBlciAqZmJfaGVscGVyLCBpbnQgYnBwX3NlbCkKIAkJcmV0dXJuIDA7CiAKIAltdXRl eF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKLQlkcm1fc2V0dXBfY3J0Y3MoZmJfaGVs cGVyLAotCQkJZGV2LT5tb2RlX2NvbmZpZy5tYXhfd2lkdGgsCi0JCQlkZXYtPm1vZGVfY29uZmln Lm1heF9oZWlnaHQpOworCisJd2lkdGggPSBkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aDsKKwlo ZWlnaHQgPSBkZXYtPm1vZGVfY29uZmlnLm1heF9oZWlnaHQ7CisKKwlpZiAoZHJtX2ZiX2hlbHBl cl9wcm9iZV9jb25uZWN0b3JfbW9kZXMoZmJfaGVscGVyLCB3aWR0aCwgaGVpZ2h0KSA9PSAwKQor CQlEUk1fREVCVUdfS01TKCJObyBjb25uZWN0b3JzIHJlcG9ydGVkIGNvbm5lY3RlZCB3aXRoIG1v ZGVzXG4iKTsKKworCS8qCisJICogSWYgZXZlcnl0aGluZydzIGRpc2Nvbm5lY3RlZCwgdGhlcmUn cyBubyB1c2UgaW4gYXR0ZW1wdGluZyB0byBzZXQKKwkgKiB1cCBmYmRldi4KKwkgKi8KKwlpZiAo IWRybV9mYl9oZWxwZXJfbWF5YmVfY29ubmVjdGVkKGZiX2hlbHBlcikpIHsKKwkJRFJNX0lORk8o Ik5vIG91dHB1dHMgY29ubmVjdGVkLCBkZWZlcnJpbmcgc2V0dXBcbiIpOworCQlmYl9oZWxwZXIt PnByZWZlcnJlZF9icHAgPSBicHBfc2VsOworCQlmYl9oZWxwZXItPmRlZmVycmVkX3NldHVwID0g dHJ1ZTsKKwkJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKKwkJcmV0dXJu IDA7CisJfQorCisJZHJtX3NldHVwX2NydGNzKGZiX2hlbHBlciwgd2lkdGgsIGhlaWdodCk7CisK IAlyZXQgPSBkcm1fZmJfaGVscGVyX3NpbmdsZV9mYl9wcm9iZShmYl9oZWxwZXIsIGJwcF9zZWwp OwogCW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAJaWYgKHJldCkKIAkJ cmV0dXJuIHJldDsKIAorCWZiX2hlbHBlci0+ZGVmZXJyZWRfc2V0dXAgPSBmYWxzZTsKKwogCWlu Zm8gPSBmYl9oZWxwZXItPmZiZGV2OwogCWluZm8tPnZhci5waXhjbG9jayA9IDA7CiAJcmV0ID0g cmVnaXN0ZXJfZnJhbWVidWZmZXIoaW5mbyk7CkBAIC0yNDM3LDExICsyNDc2LDE2IEBAIEVYUE9S VF9TWU1CT0woZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyk7CiBpbnQgZHJtX2ZiX2hlbHBl cl9ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCiB7CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hlbHBlci0+ZGV2OworCXVuc2lnbmVkIGludCB3aWR0 aCwgaGVpZ2h0OwogCWludCBlcnIgPSAwOwogCiAJaWYgKCFkcm1fZmJkZXZfZW11bGF0aW9uKQog CQlyZXR1cm4gMDsKIAorCWlmIChmYl9oZWxwZXItPmRlZmVycmVkX3NldHVwKQorCQlyZXR1cm4g ZHJtX2ZiX2hlbHBlcl9pbml0aWFsX2NvbmZpZyhmYl9oZWxwZXIsCisJCQkJCQkgICAgZmJfaGVs cGVyLT5wcmVmZXJyZWRfYnBwKTsKKwogCW11dGV4X2xvY2soJmZiX2hlbHBlci0+bG9jayk7CiAJ bXV0ZXhfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7CiAKQEAgLTI0NTMsNiArMjQ5Nywx MiBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KHN0cnVjdCBkcm1fZmJfaGVscGVy ICpmYl9oZWxwZXIpCiAKIAlEUk1fREVCVUdfS01TKCJcbiIpOwogCisJd2lkdGggPSBkZXYtPm1v ZGVfY29uZmlnLm1heF93aWR0aDsKKwloZWlnaHQgPSBkZXYtPm1vZGVfY29uZmlnLm1heF9oZWln aHQ7CisKKwlpZiAoZHJtX2ZiX2hlbHBlcl9wcm9iZV9jb25uZWN0b3JfbW9kZXMoZmJfaGVscGVy LCB3aWR0aCwgaGVpZ2h0KSA9PSAwKQorCQlEUk1fREVCVUdfS01TKCJObyBjb25uZWN0b3JzIHJl cG9ydGVkIGNvbm5lY3RlZCB3aXRoIG1vZGVzXG4iKTsKKwogCWRybV9zZXR1cF9jcnRjcyhmYl9o ZWxwZXIsIGZiX2hlbHBlci0+ZmItPndpZHRoLCBmYl9oZWxwZXItPmZiLT5oZWlnaHQpOwogCiAJ bXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAppbmRl eCAzMzc3MWQwYzQ0ZTMuLjQxYzM1ODc3NTFmOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJt X2ZiX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaApAQCAtMjIyLDYg KzIyMiwyNyBAQCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlciB7CiAJICogbmVlZHMgdG8gYmUgcmVwcm9i ZSB3aGVuIGZiZGV2IGlzIGluIGNvbnRyb2wgYWdhaW4uCiAJICovCiAJYm9vbCBkZWxheWVkX2hv dHBsdWc7CisKKwkvKioKKwkgKiBAZGVmZXJyZWRfc2V0dXA6CisJICoKKwkgKiBJZiBubyBvdXRw dXRzIGFyZSBjb25uZWN0ZWQgKGRpc2Nvbm5lY3RlZCBvciB1bmtub3duKSB0aGUgRkIgaGVscGVy CisJICogY29kZSB3aWxsIGRlZmVyIHNldHVwIHVudGlsIGF0IGxlYXN0IG9uZSBvZiB0aGUgb3V0 cHV0cyBzaG93cyB1cC4KKwkgKiBUaGlzIGZpZWxkIGtlZXBzIHRyYWNrIG9mIHRoZSBzdGF0dXMg c28gdGhhdCBzZXR1cCBjYW4gYmUgcmV0cmllZAorCSAqIGF0IGV2ZXJ5IGhvdHBsdWcgZXZlbnQg dW50aWwgaXQgc3VjY2VlZHMgZXZlbnR1YWxseS4KKwkgKi8KKwlib29sIGRlZmVycmVkX3NldHVw OworCisJLyoqCisJICogQHByZWZlcnJlZF9icHA6CisJICoKKwkgKiBUZW1wb3Jhcnkgc3RvcmFn ZSBmb3IgdGhlIGRyaXZlcidzIHByZWZlcnJlZCBCUFAgc2V0dGluZyBwYXNzZWQgdG8KKwkgKiBG QiBoZWxwZXIgaW5pdGlhbGl6YXRpb24uIFRoaXMgbmVlZHMgdG8gYmUgdHJhY2tlZCBzbyB0aGF0 IGRlZmVycmVkCisJICogRkIgaGVscGVyIHNldHVwIGNhbiBwYXNzIHRoaXMgb24uCisJICoKKwkg KiBTZWUgYWxzbzogQGRlZmVycmVkX3NldHVwCisJICovCisJaW50IHByZWZlcnJlZF9icHA7CiB9 OwogCiAvKioKLS0gCjIuMTIuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==