From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 03/10] drm/modes: Introduce drm_mode_match() Date: Mon, 13 Nov 2017 19:04:20 +0200 Message-ID: <20171113170427.4150-4-ville.syrjala@linux.intel.com> References: <20171113170427.4150-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171113170427.4150-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCk1h a2UgbW9kZSBtYXRjaGluZyBsZXNzIGNvbmZ1c2luZyBieSBhbGxvd2luZyB0aGUgY2FsbGVyIHRv IHNwZWNpZnkKd2hpY2ggcGFydHMgb2YgdGhlIG1vZGVzIHNob3VsZCBtYXRjaCB2aWEgc29tZSBm bGFncy4KClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jIHwgMTM0ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9kcm1f bW9kZXMuaCAgICAgfCAgIDkgKysrCiAyIGZpbGVzIGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCsp LCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVz LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMKaW5kZXggNGEzZjY4YTMzODQ0Li44MTI4 ZGJiMDk4YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMKQEAgLTk0MCwxNyArOTQwLDY4IEBAIHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICpkcm1fbW9kZV9kdXBsaWNhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfZHVwbGljYXRlKTsKIAorc3RhdGljIGJvb2wg ZHJtX21vZGVfbWF0Y2hfdGltaW5ncyhjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZTEsCisJCQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUyKQoreworCXJl dHVybiBtb2RlMS0+aGRpc3BsYXkgPT0gbW9kZTItPmhkaXNwbGF5ICYmCisJCW1vZGUxLT5oc3lu Y19zdGFydCA9PSBtb2RlMi0+aHN5bmNfc3RhcnQgJiYKKwkJbW9kZTEtPmhzeW5jX2VuZCA9PSBt b2RlMi0+aHN5bmNfZW5kICYmCisJCW1vZGUxLT5odG90YWwgPT0gbW9kZTItPmh0b3RhbCAmJgor CQltb2RlMS0+aHNrZXcgPT0gbW9kZTItPmhza2V3ICYmCisJCW1vZGUxLT52ZGlzcGxheSA9PSBt b2RlMi0+dmRpc3BsYXkgJiYKKwkJbW9kZTEtPnZzeW5jX3N0YXJ0ID09IG1vZGUyLT52c3luY19z dGFydCAmJgorCQltb2RlMS0+dnN5bmNfZW5kID09IG1vZGUyLT52c3luY19lbmQgJiYKKwkJbW9k ZTEtPnZ0b3RhbCA9PSBtb2RlMi0+dnRvdGFsICYmCisJCW1vZGUxLT52c2NhbiA9PSBtb2RlMi0+ dnNjYW47Cit9CisKK3N0YXRpYyBib29sIGRybV9tb2RlX21hdGNoX2Nsb2NrKGNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlMSwKKwkJCQkgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlMikKK3sKKwkvKgorCSAqIGRvIGNsb2NrIGNoZWNrIGNvbnZlcnQgdG8gUElD T1MKKwkgKiBzbyBmYiBtb2RlcyBnZXQgbWF0Y2hlZCB0aGUgc2FtZQorCSAqLworCWlmIChtb2Rl MS0+Y2xvY2sgJiYgbW9kZTItPmNsb2NrKQorCQlyZXR1cm4gS0haMlBJQ09TKG1vZGUxLT5jbG9j aykgPT0gS0haMlBJQ09TKG1vZGUyLT5jbG9jayk7CisJZWxzZQorCQlyZXR1cm4gbW9kZTEtPmNs b2NrID09IG1vZGUyLT5jbG9jazsKK30KKworc3RhdGljIGJvb2wgZHJtX21vZGVfbWF0Y2hfZmxh Z3MoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLAorCQkJCSBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTIpCit7CisJcmV0dXJuIChtb2RlMS0+ZmxhZ3MgJiB+ RFJNX01PREVfRkxBR18zRF9NQVNLKSA9PQorCQkobW9kZTItPmZsYWdzICYgfkRSTV9NT0RFX0ZM QUdfM0RfTUFTSyk7Cit9CisKK3N0YXRpYyBib29sIGRybV9tb2RlX21hdGNoXzNkX2ZsYWdzKGNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlMSwKKwkJCQkgICAgY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUyKQoreworCXJldHVybiAobW9kZTEtPmZsYWdzICYgRFJN X01PREVfRkxBR18zRF9NQVNLKSA9PQorCQkobW9kZTItPmZsYWdzICYgRFJNX01PREVfRkxBR18z RF9NQVNLKTsKK30KKworc3RhdGljIGJvb2wgZHJtX21vZGVfbWF0Y2hfYXNwZWN0X3JhdGlvKGNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlMSwKKwkJCQkJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKm1vZGUyKQoreworCXJldHVybiBtb2RlMS0+cGljdHVyZV9hc3BlY3Rf cmF0aW8gPT0gbW9kZTItPnBpY3R1cmVfYXNwZWN0X3JhdGlvOworfQorCiAvKioKLSAqIGRybV9t b2RlX2VxdWFsIC0gdGVzdCBtb2RlcyBmb3IgZXF1YWxpdHkKKyAqIGRybV9tb2RlX21hdGNoIC0g dGVzdCBtb2RlcyBmb3IgKHBhcnRpYWwpIGVxdWFsaXR5CiAgKiBAbW9kZTE6IGZpcnN0IG1vZGUK ICAqIEBtb2RlMjogc2Vjb25kIG1vZGUKKyAqIEBtYXRjaF9mbGFnczogd2hpY2ggcGFydHMgbmVl ZCB0byBtYXRjaCAoRFJNX01PREVfTUFUQ0hfKikKICAqCiAgKiBDaGVjayB0byBzZWUgaWYgQG1v ZGUxIGFuZCBAbW9kZTIgYXJlIGVxdWl2YWxlbnQuCiAgKgogICogUmV0dXJuczoKLSAqIFRydWUg aWYgdGhlIG1vZGVzIGFyZSBlcXVhbCwgZmFsc2Ugb3RoZXJ3aXNlLgorICogVHJ1ZSBpZiB0aGUg bW9kZXMgYXJlIChwYXJ0aWFsbHkpIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCiAgKi8KLWJvb2wg ZHJtX21vZGVfZXF1YWwoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLCBjb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTIpCitib29sIGRybV9tb2RlX21hdGNoKGNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlMSwKKwkJICAgIGNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlMiwKKwkJICAgIHVuc2lnbmVkIGludCBtYXRjaF9mbGFncykK IHsKIAlpZiAoIW1vZGUxICYmICFtb2RlMikKIAkJcmV0dXJuIHRydWU7CkBAIC05NTgsMTUgKzEw MDksNDggQEAgYm9vbCBkcm1fbW9kZV9lcXVhbChjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZTEsIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGwKIAlpZiAoIW1vZGUxIHx8ICFtb2RlMikK IAkJcmV0dXJuIGZhbHNlOwogCi0JLyogZG8gY2xvY2sgY2hlY2sgY29udmVydCB0byBQSUNPUyBz byBmYiBtb2RlcyBnZXQgbWF0Y2hlZAotCSAqIHRoZSBzYW1lICovCi0JaWYgKG1vZGUxLT5jbG9j ayAmJiBtb2RlMi0+Y2xvY2spIHsKLQkJaWYgKEtIWjJQSUNPUyhtb2RlMS0+Y2xvY2spICE9IEtI WjJQSUNPUyhtb2RlMi0+Y2xvY2spKQotCQkJcmV0dXJuIGZhbHNlOwotCX0gZWxzZSBpZiAobW9k ZTEtPmNsb2NrICE9IG1vZGUyLT5jbG9jaykKKwlpZiAobWF0Y2hfZmxhZ3MgJiBEUk1fTU9ERV9N QVRDSF9USU1JTkdTICYmCisJICAgICFkcm1fbW9kZV9tYXRjaF90aW1pbmdzKG1vZGUxLCBtb2Rl MikpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChtYXRjaF9mbGFncyAmIERSTV9NT0RFX01BVENI X0NMT0NLICYmCisJICAgICFkcm1fbW9kZV9tYXRjaF9jbG9jayhtb2RlMSwgbW9kZTIpKQorCQly ZXR1cm4gZmFsc2U7CisKKwlpZiAobWF0Y2hfZmxhZ3MgJiBEUk1fTU9ERV9NQVRDSF9GTEFHUyAm JgorCSAgICAhZHJtX21vZGVfbWF0Y2hfZmxhZ3MobW9kZTEsIG1vZGUyKSkKKwkJcmV0dXJuIGZh bHNlOworCisJaWYgKG1hdGNoX2ZsYWdzICYgRFJNX01PREVfTUFUQ0hfM0RfRkxBR1MgJiYKKwkg ICAgIWRybV9tb2RlX21hdGNoXzNkX2ZsYWdzKG1vZGUxLCBtb2RlMikpCiAJCXJldHVybiBmYWxz ZTsKIAotCXJldHVybiBkcm1fbW9kZV9lcXVhbF9ub19jbG9ja3MobW9kZTEsIG1vZGUyKTsKKwlp ZiAobWF0Y2hfZmxhZ3MgJiBEUk1fTU9ERV9NQVRDSF9BU1BFQ1RfUkFUSU8gJiYKKwkgICAgIWRy bV9tb2RlX21hdGNoX2FzcGVjdF9yYXRpbyhtb2RlMSwgbW9kZTIpKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlyZXR1cm4gdHJ1ZTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX21vZGVfbWF0Y2gpOworCisv KioKKyAqIGRybV9tb2RlX2VxdWFsIC0gdGVzdCBtb2RlcyBmb3IgZXF1YWxpdHkKKyAqIEBtb2Rl MTogZmlyc3QgbW9kZQorICogQG1vZGUyOiBzZWNvbmQgbW9kZQorICoKKyAqIENoZWNrIHRvIHNl ZSBpZiBAbW9kZTEgYW5kIEBtb2RlMiBhcmUgZXF1aXZhbGVudC4KKyAqCisgKiBSZXR1cm5zOgor ICogVHJ1ZSBpZiB0aGUgbW9kZXMgYXJlIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jv b2wgZHJtX21vZGVfZXF1YWwoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLAor CQkgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUyKQoreworCXJldHVybiBk cm1fbW9kZV9tYXRjaChtb2RlMSwgbW9kZTIsCisJCQkgICAgICBEUk1fTU9ERV9NQVRDSF9USU1J TkdTIHwKKwkJCSAgICAgIERSTV9NT0RFX01BVENIX0NMT0NLIHwKKwkJCSAgICAgIERSTV9NT0RF X01BVENIX0ZMQUdTIHwKKwkJCSAgICAgIERSTV9NT0RFX01BVENIXzNEX0ZMQUdTKTsKIH0KIEVY UE9SVF9TWU1CT0woZHJtX21vZGVfZXF1YWwpOwogCkBAIC05ODEsMTMgKzEwNjUsMTMgQEAgRVhQ T1JUX1NZTUJPTChkcm1fbW9kZV9lcXVhbCk7CiAgKiBSZXR1cm5zOgogICogVHJ1ZSBpZiB0aGUg bW9kZXMgYXJlIGVxdWFsLCBmYWxzZSBvdGhlcndpc2UuCiAgKi8KLWJvb2wgZHJtX21vZGVfZXF1 YWxfbm9fY2xvY2tzKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlMSwgY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUyKQorYm9vbCBkcm1fbW9kZV9lcXVhbF9ub19j bG9ja3MoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLAorCQkJICAgICAgY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUyKQogewotCWlmICgobW9kZTEtPmZsYWdz ICYgRFJNX01PREVfRkxBR18zRF9NQVNLKSAhPQotCSAgICAobW9kZTItPmZsYWdzICYgRFJNX01P REVfRkxBR18zRF9NQVNLKSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JcmV0dXJuIGRybV9tb2RlX2Vx dWFsX25vX2Nsb2Nrc19ub19zdGVyZW8obW9kZTEsIG1vZGUyKTsKKwlyZXR1cm4gZHJtX21vZGVf bWF0Y2gobW9kZTEsIG1vZGUyLAorCQkJICAgICAgRFJNX01PREVfTUFUQ0hfVElNSU5HUyB8CisJ CQkgICAgICBEUk1fTU9ERV9NQVRDSF9GTEFHUyB8CisJCQkgICAgICBEUk1fTU9ERV9NQVRDSF8z RF9GTEFHUyk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9tb2RlX2VxdWFsX25vX2Nsb2Nrcyk7CiAK QEAgLTEwMDUsMjEgKzEwODksOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9tb2RlX2VxdWFsX25vX2Ns b2Nrcyk7CiBib29sIGRybV9tb2RlX2VxdWFsX25vX2Nsb2Nrc19ub19zdGVyZW8oY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLAogCQkJCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTIpCiB7Ci0JaWYgKG1vZGUxLT5oZGlzcGxheSA9PSBtb2RlMi0+aGRpc3Bs YXkgJiYKLQkgICAgbW9kZTEtPmhzeW5jX3N0YXJ0ID09IG1vZGUyLT5oc3luY19zdGFydCAmJgot CSAgICBtb2RlMS0+aHN5bmNfZW5kID09IG1vZGUyLT5oc3luY19lbmQgJiYKLQkgICAgbW9kZTEt Pmh0b3RhbCA9PSBtb2RlMi0+aHRvdGFsICYmCi0JICAgIG1vZGUxLT5oc2tldyA9PSBtb2RlMi0+ aHNrZXcgJiYKLQkgICAgbW9kZTEtPnZkaXNwbGF5ID09IG1vZGUyLT52ZGlzcGxheSAmJgotCSAg ICBtb2RlMS0+dnN5bmNfc3RhcnQgPT0gbW9kZTItPnZzeW5jX3N0YXJ0ICYmCi0JICAgIG1vZGUx LT52c3luY19lbmQgPT0gbW9kZTItPnZzeW5jX2VuZCAmJgotCSAgICBtb2RlMS0+dnRvdGFsID09 IG1vZGUyLT52dG90YWwgJiYKLQkgICAgbW9kZTEtPnZzY2FuID09IG1vZGUyLT52c2NhbiAmJgot CSAgICAobW9kZTEtPmZsYWdzICYgfkRSTV9NT0RFX0ZMQUdfM0RfTUFTSykgPT0KLQkgICAgICht b2RlMi0+ZmxhZ3MgJiB+RFJNX01PREVfRkxBR18zRF9NQVNLKSkKLQkJcmV0dXJuIHRydWU7Ci0K LQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIGRybV9tb2RlX21hdGNoKG1vZGUxLCBtb2RlMiwKKwkJ CSAgICAgIERSTV9NT0RFX01BVENIX1RJTUlOR1MgfAorCQkJICAgICAgRFJNX01PREVfTUFUQ0hf RkxBR1MpOwogfQogRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9lcXVhbF9ub19jbG9ja3Nfbm9fc3Rl cmVvKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmggYi9pbmNsdWRlL2Ry bS9kcm1fbW9kZXMuaAppbmRleCA5ZjM0MjFjOGVmY2QuLjgzOWViOWMzYTAyOSAxMDA2NDQKLS0t IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgK QEAgLTE1MCw2ICsxNTAsMTIgQEAgZW51bSBkcm1fbW9kZV9zdGF0dXMgewogCiAjZGVmaW5lIERS TV9NT0RFX0ZMQUdfM0RfTUFYCURSTV9NT0RFX0ZMQUdfM0RfU0lERV9CWV9TSURFX0hBTEYKIAor I2RlZmluZSBEUk1fTU9ERV9NQVRDSF9USU1JTkdTICgxIDw8IDApCisjZGVmaW5lIERSTV9NT0RF X01BVENIX0NMT0NLICgxIDw8IDEpCisjZGVmaW5lIERSTV9NT0RFX01BVENIX0ZMQUdTICgxIDw8 IDIpCisjZGVmaW5lIERSTV9NT0RFX01BVENIXzNEX0ZMQUdTICgxIDw8IDMpCisjZGVmaW5lIERS TV9NT0RFX01BVENIX0FTUEVDVF9SQVRJTyAoMSA8PCA0KQorCiAvKioKICAqIHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlIC0gRFJNIGtlcm5lbC1pbnRlcm5hbCBkaXNwbGF5IG1vZGUgc3RydWN0dXJl CiAgKiBAaGRpc3BsYXk6IGhvcml6b250YWwgZGlzcGxheSBzaXplCkBAIC00OTMsNiArNDk5LDkg QEAgdm9pZCBkcm1fbW9kZV9jb3B5KHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpkc3QsCiAJCSAg IGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpzcmMpOwogc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmRybV9tb2RlX2R1cGxpY2F0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkg ICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOworYm9vbCBkcm1fbW9kZV9t YXRjaChjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTEsCisJCSAgICBjb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTIsCisJCSAgICB1bnNpZ25lZCBpbnQgbWF0Y2hf ZmxhZ3MpOwogYm9vbCBkcm1fbW9kZV9lcXVhbChjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZTEsCiAJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTIpOwog Ym9vbCBkcm1fbW9kZV9lcXVhbF9ub19jbG9ja3MoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUxLAotLSAKMi4xMy42CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK