From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hyun Kwon Subject: [PATCH v5 5/5] drm: xlnx: ZynqMP DP subsystem DRM KMS driver Date: Tue, 6 Feb 2018 17:36:40 -0800 Message-ID: <1517967400-16993-5-git-send-email-hyun.kwon@xilinx.com> References: <1517967400-16993-1-git-send-email-hyun.kwon@xilinx.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1517967400-16993-1-git-send-email-hyun.kwon@xilinx.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org Cc: Daniel Vetter , Rob Herring , Michal Simek , Hyun Kwon , Laurent Pinchart List-Id: devicetree@vger.kernel.org VGhpcyBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBaeW5xTVAgRGlzcGxheSBhbmQgRGlzcGxheVBv cnQgZHJpdmVycy4KClNpZ25lZC1vZmYtYnk6IEh5dW4gS3dvbiA8aHl1bi5rd29uQHhpbGlueC5j b20+CkFja2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgotLS0K djQKLSBVc2UgdGhlIG5ld2x5IGFkZGVkIHhsbnggcGlwZWxpbmUgY2FsbHMgdG8gaW5pdGlhbGl6 ZSBkcm0gZGV2aWNlCnYyCi0gQ2hhbmdlIHRoZSBTUERYIGlkZW50aWZpZXIgZm9ybWF0Ci0tLQot LS0KIGRyaXZlcnMvZ3B1L2RybS94bG54L0tjb25maWcgICAgICAgIHwgIDExICsrKwogZHJpdmVy cy9ncHUvZHJtL3hsbngvTWFrZWZpbGUgICAgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL3hs bngvenlucW1wX2Rwc3ViLmMgfCAxNTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBkcml2ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZHBzdWIuaCB8ICAyOCArKysrKysrCiA0 IGZpbGVzIGNoYW5nZWQsIDE5NyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rwc3ViLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZHBzdWIuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS94bG54L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0veGxueC9LY29uZmlnCmluZGV4IDE5 ZmQ3Y2QuLjdjNTUyOWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS94bG54L0tjb25maWcK KysrIGIvZHJpdmVycy9ncHUvZHJtL3hsbngvS2NvbmZpZwpAQCAtMTAsMyArMTAsMTQgQEAgY29u ZmlnIERSTV9YTE5YCiAJICBkaXNwbGF5IHBpcGVsaW5lIHVzaW5nIFhpbGlueCBJUHMgaW4gRlBH QS4gVGhpcyBtb2R1bGUKIAkgIHByb3ZpZGVzIHRoZSBrZXJuZWwgbW9kZSBzZXR0aW5nIGZ1bmN0 aW9uYWxpdGllcwogCSAgZm9yIFhpbGlueCBkaXNwbGF5IGRyaXZlcnMuCisKK2NvbmZpZyBEUk1f WllOUU1QX0RQU1VCCisJdHJpc3RhdGUgIlp5bnFNUCBEUCBTdWJzeXN0ZW0gRHJpdmVyIgorCWRl cGVuZHMgb24gQVJDSF9aWU5RTVAgJiYgT0YgJiYgRFJNX1hMTlggJiYgQ09NTU9OX0NMSworCXNl bGVjdCBETUFfRU5HSU5FCisJc2VsZWN0IEdFTkVSSUNfUEhZCisJaGVscAorCSAgRFJNIEtNUyBk cml2ZXIgZm9yIFp5bnFNUCBEUCBTdWJzeXN0ZW0gY29udHJvbGxlci4gQ2hvb3NlCisJICB0aGlz IG9wdGlvbiBpZiB5b3UgaGF2ZSBhIFhpbGlueCBaeW5xTVAgU29DIHdpdGggRGlzcGxheVBvcnQK KwkgIHN1YnN5c3RlbS4gVGhlIGRyaXZlciBwcm92aWRlcyB0aGUga2VybmVsIG1vZGUgc2V0dGlu ZworCSAgZnVuY3Rpb25sYWl0aWVzIGZvciBaeW5xTVAgRFAgc3Vic3lzdGVtLgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3hsbngvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0veGxueC9N YWtlZmlsZQppbmRleCBjNjBhMjgxLi4wNjRhMDVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0veGxueC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0veGxueC9NYWtlZmlsZQpAQCAt MSwyICsxLDUgQEAKIHhsbnhfZHJtLW9ianMgKz0geGxueF9jcnRjLm8geGxueF9kcnYubyB4bG54 X2ZiLm8geGxueF9nZW0ubwogb2JqLSQoQ09ORklHX0RSTV9YTE5YKSArPSB4bG54X2RybS5vCisK K3p5bnFtcC1kcHN1Yi1vYmpzICs9IHp5bnFtcF9kaXNwLm8genlucW1wX2Rwc3ViLm8genlucW1w X2RwLm8KK29iai0kKENPTkZJR19EUk1fWllOUU1QX0RQU1VCKSArPSB6eW5xbXAtZHBzdWIubwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hsbngvenlucW1wX2Rwc3ViLmMgYi9kcml2ZXJz L2dwdS9kcm0veGxueC96eW5xbXBfZHBzdWIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41YWFmOWZiCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3hsbngv enlucW1wX2Rwc3ViLmMKQEAgLTAsMCArMSwxNTUgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBHUEwtMi4wCisvKgorICogWnlucU1QIERQIFN1YnN5c3RlbSBEcml2ZXIKKyAqCisgKiAg Q29weXJpZ2h0IChDKSAyMDE3IC0gMjAxOCBYaWxpbngsIEluYy4KKyAqCisgKiAgQXV0aG9yOiBI eXVuIFdvbyBLd29uIDxoeXVuLmt3b25AeGlsaW54LmNvbT4KKyAqCisgKiBUaGlzIHNvZnR3YXJl IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisg KiBMaWNlbnNlIHZlcnNpb24gMiwgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIGFuZAorICogbWF5IGJlIGNvcGllZCwgZGlzdHJpYnV0ZWQsIGFuZCBtb2RpZmll ZCB1bmRlciB0aG9zZSB0ZXJtcy4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisg KiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICovCisKKyNp bmNsdWRlIDxsaW51eC9jb21wb25lbnQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNp bmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rl dmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BtX3J1bnRpbWUuaD4KKworI2luY2x1ZGUgInhsbnhf ZHJ2LmgiCisKKyNpbmNsdWRlICJ6eW5xbXBfZGlzcC5oIgorI2luY2x1ZGUgInp5bnFtcF9kcC5o IgorI2luY2x1ZGUgInp5bnFtcF9kcHN1Yi5oIgorCitzdGF0aWMgaW50Cit6eW5xbXBfZHBzdWJf YmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0 YSkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0genlucW1wX2Rpc3BfYmluZChkZXYsIG1hc3Rlciwg ZGF0YSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCS8qIHp5bnFtcF9kaXNwIHNob3Vs ZCBiaW5kIGZpcnN0LCBzbyB6eW5xbXBfZHAgZW5jb2RlciBjYW4gZmluZCBjcnRjICovCisJcmV0 ID0genlucW1wX2RwX2JpbmQoZGV2LCBtYXN0ZXIsIGRhdGEpOworCWlmIChyZXQpCisJCXJldHVy biByZXQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK3p5bnFtcF9kcHN1Yl91bmJp bmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEp Cit7CisJenlucW1wX2RwX3VuYmluZChkZXYsIG1hc3RlciwgZGF0YSk7CisJenlucW1wX2Rpc3Bf dW5iaW5kKGRldiwgbWFzdGVyLCBkYXRhKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBjb21w b25lbnRfb3BzIHp5bnFtcF9kcHN1Yl9jb21wb25lbnRfb3BzID0geworCS5iaW5kCT0genlucW1w X2Rwc3ViX2JpbmQsCisJLnVuYmluZAk9IHp5bnFtcF9kcHN1Yl91bmJpbmQsCit9OworCitzdGF0 aWMgaW50IHp5bnFtcF9kcHN1Yl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQor eworCXN0cnVjdCB6eW5xbXBfZHBzdWIgKmRwc3ViOworCWludCByZXQ7CisKKwlkcHN1YiA9IGRl dm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2YoKmRwc3ViKSwgR0ZQX0tFUk5FTCk7CisJaWYg KCFkcHN1YikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwkvKiBTdWItZHJpdmVyIHdpbGwgYWNjZXNz IGRwc3ViIGZyb20gZHJ2ZGF0YSAqLworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRwc3Vi KTsKKwlwbV9ydW50aW1lX2VuYWJsZSgmcGRldi0+ZGV2KTsKKworCS8qCisJICogRFAgc2hvdWxk IGJlIHByb2JlZCBmaXJzdCBzbyB0aGF0IHRoZSB6eW5xbXBfZGlzcCBjYW4gc2V0IHRoZSBvdXRw dXQKKwkgKiBmb3JtYXQgYWNjb3JkaW5nbHkuCisJICovCisJcmV0ID0genlucW1wX2RwX3Byb2Jl KHBkZXYpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3BtOworCisJcmV0ID0genlucW1wX2Rpc3Bf cHJvYmUocGRldik7CisJaWYgKHJldCkKKwkJZ290byBlcnJfZHA7CisKKwlyZXQgPSBjb21wb25l bnRfYWRkKCZwZGV2LT5kZXYsICZ6eW5xbXBfZHBzdWJfY29tcG9uZW50X29wcyk7CisJaWYgKHJl dCkKKwkJZ290byBlcnJfZGlzcDsKKworCS8qIFBvcHVsYXRlIHRoZSBzb3VuZCBjaGlsZCBub2Rl cyAqLworCXJldCA9IG9mX3BsYXRmb3JtX3BvcHVsYXRlKHBkZXYtPmRldi5vZl9ub2RlLCBOVUxM LCBOVUxMLCAmcGRldi0+ZGV2KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwg ImZhaWxlZCB0byBwb3B1bGF0ZSBjaGlsZCBub2Rlc1xuIik7CisJCWdvdG8gZXJyX2NvbXBvbmVu dDsKKwl9CisKKwlkZXZfaW5mbygmcGRldi0+ZGV2LCAiWnlucU1QIERpc3BsYXlQb3J0IFN1YnN5 c3RlbSBkcml2ZXIgcHJvYmVkIik7CisKKwlkcHN1Yi0+bWFzdGVyID0geGxueF9kcm1fcGlwZWxp bmVfaW5pdChwZGV2KTsKKworCXJldHVybiAwOworCitlcnJfY29tcG9uZW50OgorCWNvbXBvbmVu dF9kZWwoJnBkZXYtPmRldiwgJnp5bnFtcF9kcHN1Yl9jb21wb25lbnRfb3BzKTsKK2Vycl9kaXNw OgorCXp5bnFtcF9kaXNwX3JlbW92ZShwZGV2KTsKK2Vycl9kcDoKKwl6eW5xbXBfZHBfcmVtb3Zl KHBkZXYpOworZXJyX3BtOgorCXBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsKKwlyZXR1 cm4gcmV0OworfQorCitzdGF0aWMgaW50IHp5bnFtcF9kcHN1Yl9yZW1vdmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgenlucW1wX2Rwc3ViICpkcHN1YiA9IHBsYXRm b3JtX2dldF9kcnZkYXRhKHBkZXYpOworCWludCBlcnIsIHJldCA9IDA7CisKKwl4bG54X2RybV9w aXBlbGluZV9leGl0KGRwc3ViLT5tYXN0ZXIpOworCW9mX3BsYXRmb3JtX2RlcG9wdWxhdGUoJnBk ZXYtPmRldik7CisJY29tcG9uZW50X2RlbCgmcGRldi0+ZGV2LCAmenlucW1wX2Rwc3ViX2NvbXBv bmVudF9vcHMpOworCisJZXJyID0genlucW1wX2Rpc3BfcmVtb3ZlKHBkZXYpOworCWlmIChlcnIp CisJCXJldCA9IC1FSU87CisKKwllcnIgPSB6eW5xbXBfZHBfcmVtb3ZlKHBkZXYpOworCWlmIChl cnIpCisJCXJldCA9IC1FSU87CisKKwlwbV9ydW50aW1lX2Rpc2FibGUoJnBkZXYtPmRldik7CisK KwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB6eW5x bXBfZHBzdWJfb2ZfbWF0Y2hbXSA9IHsKKwl7IC5jb21wYXRpYmxlID0gInhsbngsenlucW1wLWRw c3ViLTEuNyIsIH0sCisJeyAvKiBlbmQgb2YgdGFibGUgKi8gfSwKK307CitNT0RVTEVfREVWSUNF X1RBQkxFKG9mLCB6eW5xbXBfZHBzdWJfb2ZfbWF0Y2gpOworCitzdGF0aWMgc3RydWN0IHBsYXRm b3JtX2RyaXZlciB6eW5xbXBfZHBzdWJfZHJpdmVyID0geworCS5wcm9iZQkJCT0genlucW1wX2Rw c3ViX3Byb2JlLAorCS5yZW1vdmUJCQk9IHp5bnFtcF9kcHN1Yl9yZW1vdmUsCisJLmRyaXZlcgkJ CT0geworCQkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJCS5uYW1lCQk9ICJ6eW5xbXAtZGlzcGxh eSIsCisJCS5vZl9tYXRjaF90YWJsZQk9IHp5bnFtcF9kcHN1Yl9vZl9tYXRjaCwKKwl9LAorfTsK KworbW9kdWxlX3BsYXRmb3JtX2RyaXZlcih6eW5xbXBfZHBzdWJfZHJpdmVyKTsKKworTU9EVUxF X0FVVEhPUigiWGlsaW54LCBJbmMuIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlp5bnFNUCBEUCBT dWJzeXN0ZW0gRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZHBzdWIuaCBiL2RyaXZlcnMvZ3B1L2RybS94 bG54L3p5bnFtcF9kcHN1Yi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2 MDZiZWYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0veGxueC96eW5xbXBfZHBz dWIuaApAQCAtMCwwICsxLDI4IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIu MAorLyoKKyAqIFp5bnFNUCBEUFNVQiBTdWJzeXN0ZW0gRHJpdmVyCisgKgorICogIENvcHlyaWdo dCAoQykgMjAxNyAtIDIwMTggWGlsaW54LCBJbmMuCisgKgorICogIEF1dGhvcjogSHl1biBXb28g S3dvbiA8aHl1bi5rd29uQHhpbGlueC5jb20+CisgKgorICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNl bnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z ZSB2ZXJzaW9uIDIsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBhbmQKKyAqIG1heSBiZSBjb3BpZWQsIGRpc3RyaWJ1dGVkLCBhbmQgbW9kaWZpZWQgdW5kZXIg dGhvc2UgdGVybXMuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworCisjaWZuZGVmIF9a WU5RTVBfRFBTVUJfSF8KKyNkZWZpbmUgX1pZTlFNUF9EUFNVQl9IXworCitzdHJ1Y3QgenlucW1w X2Rwc3ViIHsKKwlzdHJ1Y3QgenlucW1wX2RwICpkcDsKKwlzdHJ1Y3QgenlucW1wX2Rpc3AgKmRp c3A7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqbWFzdGVyOworfTsKKworI2VuZGlmIC8qIF9a WU5RTVBfRFBTVUJfSF8gKi8KLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK