From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Zimmermann Subject: [PATCH 10/11] drm/fbdevdrm: Add CRTC Date: Tue, 26 Mar 2019 10:17:43 +0100 Message-ID: <20190326091744.11542-11-tzimmermann@suse.de> References: <20190326091744.11542-1-tzimmermann@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.suse.de (mx2.suse.de [195.135.220.15]) by gabe.freedesktop.org (Postfix) with ESMTPS id 204E26E7B5 for ; Tue, 26 Mar 2019 09:17:58 +0000 (UTC) In-Reply-To: <20190326091744.11542-1-tzimmermann@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: airlied@linux.ie, daniel@ffwll.ch, b.zolnierkie@samsung.com Cc: linux-fbdev@vger.kernel.org, Thomas Zimmermann , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Ci0t LQogZHJpdmVycy9ncHUvZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJtX21vZGVzZXQuYyB8IDE1MCArKysr KysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDE0OSBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2ZiZGV2ZHJtL2ZiZGV2ZHJt X21vZGVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9mYmRldmRybS9mYmRldmRybV9tb2Rlc2V0LmMK aW5kZXggMzQ3M2I4NWFjYmYxLi44N2Y1NmVjNzZlZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9mYmRldmRybS9mYmRldmRybV9tb2Rlc2V0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Zi ZGV2ZHJtL2ZiZGV2ZHJtX21vZGVzZXQuYwpAQCAtMTgsMTAgKzE4LDE4IEBACiAjaW5jbHVkZSA8 ZHJtL2RybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9tb2Rl c2V0X2hlbHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5o PgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3Byb2JlX2hl bHBlci5oPgogI2luY2x1ZGUgPGxpbnV4L2ZiLmg+CisjaW5jbHVkZSAiZmJkZXZkcm1fbW9kZXMu aCIKICNpbmNsdWRlICJmYmRldmRybV9wcmltYXJ5LmgiCiAKK3N0YXRpYyBzdHJ1Y3QgZmJkZXZk cm1fbW9kZXNldCogZmJkZXZkcm1fbW9kZXNldF9vZl9jcnRjKAorCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKGNydGMsIHN0cnVjdCBmYmRldmRybV9tb2Rl c2V0LCBjcnRjKTsKK30KKwogLyoKICAqIENSVEMKICAqLwpAQCAtMjksMTggKzM3LDEyNCBAQAog c3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzIGNydGNfaGVscGVyX21vZGVfdmFsaWQoCiAJc3Ry dWN0IGRybV9jcnRjICpjcnRjLCBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkK IHsKKwlzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBiaXRzX3Blcl9waXhlbFtdID0geworCQkz MiwgMTYsIDgsIDI0LCAxNQorCX07CisKKwlzdHJ1Y3QgZmJkZXZkcm1fbW9kZXNldCAqbW9kZXNl dDsKKwlzdHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gZmJfdmFyOworCXNpemVfdCBpOworCWludCBy ZXQ7CisKKwltb2Rlc2V0ID0gZmJkZXZkcm1fbW9kZXNldF9vZl9jcnRjKGNydGMpOworCisJaWYg KCFtb2Rlc2V0LT5mYl9pbmZvLT5mYm9wcy0+ZmJfY2hlY2tfdmFyKQorCQlyZXR1cm4gTU9ERV9P SzsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGJpdHNfcGVyX3BpeGVsKTsgKytpKSB7 CisKKwkJbWVtY3B5KCZmYl92YXIsICZtb2Rlc2V0LT5mYl9pbmZvLT52YXIsIHNpemVvZihmYl92 YXIpKTsKKwkJZmJkZXZkcm1fdXBkYXRlX2ZiX3Zhcl9zY3JlZW5pbmZvX2Zyb21fbW9kZSgmZmJf dmFyLCBtb2RlKTsKKwkJZmJfdmFyLmJpdHNfcGVyX3BpeGVsID0gYml0c19wZXJfcGl4ZWxbaV07 CisKKwkJcmV0ID0gbW9kZXNldC0+ZmJfaW5mby0+ZmJvcHMtPmZiX2NoZWNrX3ZhcigmZmJfdmFy LCBtb2Rlc2V0LT5mYl9pbmZvKTsKKwkJaWYgKHJldCkKKwkJCWNvbnRpbnVlOyAvKiBnZW5lcmFs bHkgbm90IHN1cHBvcnRlZCAqLworCQlpZiAoKG1vZGUtPmhkaXNwbGF5ICE9IGZiX3Zhci54cmVz KSB8fAorCQkgICAgKG1vZGUtPnZkaXNwbGF5ICE9IGZiX3Zhci55cmVzKSkKKwkJCWNvbnRpbnVl OyAvKiB1bnN1cHBvcnRlZCByZXNvbHV0aW9uICovCisJCWlmIChLSFoyUElDT1MobW9kZS0+Y2xv Y2spICE9IGZiX3Zhci5waXhjbG9jaykKKwkJCWNvbnRpbnVlOyAvKiB1bnN1cHBvcnRlZCBwaXhl bCBjbG9jayAqLworCisJCWJyZWFrOyAvKiBtb2RlIHN1Y2Nlc3NmdWxseSB0ZXN0ZWQgKi8KKwl9 CisJaWYgKGkgPT0gQVJSQVlfU0laRShiaXRzX3Blcl9waXhlbCkpCisJCXJldHVybiBNT0RFX0JB RDsgLyogbW9kZSBpcyBub3Qgc3VwcG9ydCAqLworCiAJcmV0dXJuIE1PREVfT0s7CiB9CiAKK3N0 YXRpYyBpbnQgZmJkZXZkcm1fdXBkYXRlX2ZiX3Zhcl9zY3JlZW5pbmZvX2Zyb21fY3J0YygKKwlz dHJ1Y3QgZmJfdmFyX3NjcmVlbmluZm8gKmZiX3Zhciwgc3RydWN0IGRybV9jcnRjKiBjcnRjKQor eworCXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnkgPSBjcnRjLT5wcmltYXJ5OworCXN0cnVjdCBm YmRldmRybV9tb2Rlc2V0ICptb2Rlc2V0ID0gZmJkZXZkcm1fbW9kZXNldF9vZl9jcnRjKGNydGMp OworCisJaWYgKHByaW1hcnkgJiYgcHJpbWFyeS0+c3RhdGUgJiYgcHJpbWFyeS0+c3RhdGUtPmZi KQorCQlyZXR1cm4gZmJkZXZkcm1fdXBkYXRlX2ZiX3Zhcl9zY3JlZW5pbmZvX2Zyb21fZnJhbWVi dWZmZXIoCisJCQlmYl92YXIsIHByaW1hcnktPnN0YXRlLT5mYiwKKwkJCW1vZGVzZXQtPmZiX2lu Zm8tPmZpeC5zbWVtX2xlbik7CisKKwlmYl92YXItPnhyZXNfdmlydHVhbCA9IGZiX3Zhci0+eHJl czsKKwlmYl92YXItPnlyZXNfdmlydHVhbCA9IGZiX3Zhci0+eXJlczsKKwlmYl92YXItPmJpdHNf cGVyX3BpeGVsID0gbW9kZXNldC0+ZGV2LT5tb2RlX2NvbmZpZy5wcmVmZXJyZWRfZGVwdGg7CisK KwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGJvb2wgY3J0Y19oZWxwZXJfbW9kZV9maXh1cChzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUsCiAJCQkJICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpCiB7 CisJc3RydWN0IGZiZGV2ZHJtX21vZGVzZXQgKm1vZGVzZXQ7CisJc3RydWN0IGZiX3Zhcl9zY3Jl ZW5pbmZvIGZiX3ZhcjsKKwlpbnQgcmV0OworCisJbW9kZXNldCA9IGZiZGV2ZHJtX21vZGVzZXRf b2ZfY3J0YyhjcnRjKTsKKworCWlmICghbW9kZXNldC0+ZmJfaW5mby0+ZmJvcHMtPmZiX2NoZWNr X3ZhcikKKwkJcmV0dXJuIHRydWU7CisKKwlmYmRldmRybV9pbml0X2ZiX3Zhcl9zY3JlZW5pbmZv X2Zyb21fbW9kZSgmZmJfdmFyLCBtb2RlKTsKKworCXJldCA9IGZiZGV2ZHJtX3VwZGF0ZV9mYl92 YXJfc2NyZWVuaW5mb19mcm9tX2NydGMoJmZiX3ZhciwgY3J0Yyk7CisJaWYgKHJldCkKKwkJcmV0 dXJuIHRydWU7CisKKwlyZXQgPSBtb2Rlc2V0LT5mYl9pbmZvLT5mYm9wcy0+ZmJfY2hlY2tfdmFy KCZmYl92YXIsIG1vZGVzZXQtPmZiX2luZm8pOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gZmFs c2U7CisKKwlkcm1fbW9kZV91cGRhdGVfZnJvbV9mYl92YXJfc2NyZWVuaW5mbyhhZGp1c3RlZF9t b2RlLCAmZmJfdmFyKTsKKwogCXJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgdm9pZCBjcnRjX2hl bHBlcl9tb2RlX3NldF9ub2ZiKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKLXsgfQoreworCXN0cnVj dCBmYmRldmRybV9tb2Rlc2V0ICptb2Rlc2V0OworCXN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyBm Yl92YXI7CisJaW50IHJldDsKKworCS8qIEFzIHRoaXMgaXMgYXRvbWljIG1vZGUgc2V0dGluZywg YW55IGZ1bmN0aW9uIGNhbGwgaXMgbm90CisJICogYWxsb3dlZCB0byBmYWlsLiBJZiBpdCBkb2Vz LCBhbiBhZGRpdGlvbmFsIHRlc3Qgc2hvdWxkIGJlCisJICogYWRkZWQgdG8gY3J0Y19oZWxwZXJf YXRvbWljX2NoZWNrKCkuCisJICovCisKKwltb2Rlc2V0ID0gZmJkZXZkcm1fbW9kZXNldF9vZl9j cnRjKGNydGMpOworCisJbWVtc2V0KCZmYl92YXIsIDAsIHNpemVvZihmYl92YXIpKTsKKwlmYmRl dmRybV91cGRhdGVfZmJfdmFyX3NjcmVlbmluZm9fZnJvbV9tb2RlKCZmYl92YXIsICZjcnRjLT5z dGF0ZS0+YWRqdXN0ZWRfbW9kZSk7CisKKwlpZiAoY3J0Yy0+cHJpbWFyeSAmJiBjcnRjLT5wcmlt YXJ5LT5zdGF0ZSAmJiBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmIpIHsKKwkJcmV0ID0gZmJkZXZk cm1fdXBkYXRlX2ZiX3Zhcl9zY3JlZW5pbmZvX2Zyb21fZnJhbWVidWZmZXIoCisJCQkmZmJfdmFy LCBjcnRjLT5wcmltYXJ5LT5zdGF0ZS0+ZmIsCisJCQltb2Rlc2V0LT5mYl9pbmZvLT5maXguc21l bV9sZW4pOworCQlpZiAocmV0KQorCQkJcmV0dXJuOworCX0gZWxzZSB7CisJCWZiX3Zhci54cmVz X3ZpcnR1YWwgPSBmYl92YXIueHJlczsKKwkJZmJfdmFyLnlyZXNfdmlydHVhbCA9IGZiX3Zhci55 cmVzOworCX0KKworCWZiX3Zhci5hY3RpdmF0ZSA9IEZCX0FDVElWQVRFX05PVzsKKworCXJldCA9 IGZiX3NldF92YXIobW9kZXNldC0+ZmJfaW5mbywgJmZiX3Zhcik7CisJaWYgKHJldCkgeworCQlE Uk1fRVJST1IoImZiZGV2ZHJtOiBmYl9zZXRfdmFyKCkgZmFpbGVkOiAlZFxuIiwgcmV0KTsKKwkJ cmV0dXJuOworCX0KK30KIAogc3RhdGljIGludCBjcnRjX2hlbHBlcl9tb2RlX3NldF9iYXNlX2F0 b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJCSAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiwKQEAgLTUzLDYgKzE2Nyw0MCBAQCBzdGF0aWMgaW50IGNydGNfaGVscGVyX21vZGVf c2V0X2Jhc2VfYXRvbWljKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIHN0YXRpYyBpbnQgY3J0Y19o ZWxwZXJfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgICAgc3RydWN0 IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKIHsKKwlzdHJ1Y3QgZmJkZXZkcm1fbW9kZXNldCAqbW9k ZXNldDsKKwlzdHJ1Y3QgZmJfdmlkZW9tb2RlIGZiX21vZGUsIGZiX3Zhcl9tb2RlOworCisJbW9k ZXNldCA9IGZiZGV2ZHJtX21vZGVzZXRfb2ZfY3J0YyhjcnRjKTsKKworCS8qIERSTSBwb3J0aW5n IG5vdGVzOiB3aGVuIGZiY29uIHRha2VzIG92ZXIgdGhlIGNvbnNvbGUsIGl0IHJlZ3VsYXJseQor CSAqIGNoYW5nZXMgdGhlIGRpc3BsYXkgbW9kZS4gV2hlcmUncyBhcHBhcmVudGx5IG5vIHdheSB0 byBkZXRlY3QgdGhpcworCSAqIGRpcmVjdGx5IGZyb20gZmJjb24gaXRzZWxmLiBEUk0ncyBtb2Rl IGluZm9ybWF0aW9uIG1pZ2h0IHRoZXJlZm9yZQorCSAqIGJlIG91dCBvZiBkYXRhLCBhZnRlciBp dCB0YWtlcyBvdmVyIHRoZSBkaXNwbGF5IGF0IGEgbGF0ZXIgdGltZS4KKwkgKiBIZXJlLCB3ZSB0 ZXN0IHRoZSBDUlRDJ3MgY3VycmVudCBtb2RlIHdpdGggdGhlIGZiZGV2IHN0YXRlLiBJZiB0aGV5 CisJICogZG8gbm90IG1hdGNoLCB3ZSByZXF1ZXN0IGEgbW9kZSBjaGFuZ2UgZnJvbSBEUk0uIElm IHlvdSBwb3J0IGFuCisJICogZmJkZXYgZHJpdmVyIHRvIERSTSwgeW91IGNhbiByZW1vdmUgdGhp cyBjb2RlIHNlY3Rpb24sIERSTSB3aWxsCisJICogYmUgaW4gZnVsbCBjb250cm9sIG9mIHRoZSBk aXNwbGF5IGRldmljZSBhbmQgZG9lc24ndCBoYXZlIHRvIHJlYWN0CisJICogdG8gY2hhbmdlcyBm cm9tIGV4dGVybmFsIHNvdXJjZXMuCisJICovCisKKwlpZiAoIXN0YXRlLT5tb2RlX2NoYW5nZWQg JiYgc3RhdGUtPmFkanVzdGVkX21vZGUuY2xvY2spIHsKKwkJZmJkZXZkcm1faW5pdF9mYl92aWRl b21vZGVfZnJvbV9tb2RlKCZmYl9tb2RlLCAmc3RhdGUtPmFkanVzdGVkX21vZGUpOworCQlmYl92 YXJfdG9fdmlkZW9tb2RlKCZmYl92YXJfbW9kZSwgJm1vZGVzZXQtPmZiX2luZm8tPnZhcik7CisJ CWlmICghZmJfbW9kZV9pc19lcXVhbCgmZmJfbW9kZSwgJmZiX3Zhcl9tb2RlKSkKKwkJCXN0YXRl LT5tb2RlX2NoYW5nZWQgPSB0cnVlOworCX0KKworCS8qIFRPRE86IFRoZSB2YmxhbmsgaW50ZXJ1 cHQgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuIFdlIHNldAorCSAqIHRoZSBjb3JyZXNwb25k aW5nIGZsYWcgYXMgYSB3b3JrYXJvdW5kLiBTb21lIGZiZGV2IGRyaXZlcnMKKwkgKiBzdXBwb3J0 IEZCSU9fV0FJVEZPUlZTWU5DLCB3aGljaCB3ZSBtaWdodCB1c2UgZm9yIHF1ZXJ5aW5nCisJICog dmJsYW5rcy4KKwkgKgorCSAqIERSTSBwb3J0aW5nIG5vdGVzOiBpZiB5b3UncmUgcG9ydGluZyBh biBmYmRldiBkcml2ZXIgdG8gRFJNLAorCSAqIHJlbW92ZSB0aGlzIGxpbmUgYW5kIGluc3RlYWQg c2lnbmFsIGEgdmJsYW5rIGV2ZW50IGZyb20gdGhlCisJICogaW50ZXJ1cHQgaGFuZGxlci4KKwkg Ki8KKwlzdGF0ZS0+bm9fdmJsYW5rID0gdHJ1ZTsKKwogCXJldHVybiAwOwogfQogCi0tIAoyLjIx LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==