From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: [PATCH 2/3] drm/qxl: add qxl_add_mode helper function Date: Wed, 16 Jan 2019 09:35:20 +0100 Message-ID: <20190116083521.22673-3-kraxel@redhat.com> References: <20190116083521.22673-1-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190116083521.22673-1-kraxel@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spice-devel-bounces@lists.freedesktop.org Sender: "Spice-devel" To: dri-devel@lists.freedesktop.org Cc: David Airlie , open list , "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , Gerd Hoffmann , Daniel Vetter , "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , Dave Airlie List-Id: dri-devel@lists.freedesktop.org QWRkIGEgaGVscGVyIGZ1bmN0aW9uIHRvIGFkZCBjdXN0b20gdmlkZW8gbW9kZXMgdG8gYSBjb25u ZWN0b3IuCgpTaWduZWQtb2ZmLWJ5OiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kaXNwbGF5LmMgfCA4NCArKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0OSBpbnNlcnRpb25z KCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4 bF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9kaXNwbGF5LmMKaW5kZXggMDdh MzdkNTJjNC4uYjg3ZjcyZjU5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxf ZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rpc3BsYXkuYwpAQCAtMjA2 LDE1ICsyMDYsMzYgQEAgc3RhdGljIGludCBxeGxfY2hlY2tfZnJhbWVidWZmZXIoc3RydWN0IHF4 bF9kZXZpY2UgKnFkZXYsCiAJcmV0dXJuIHF4bF9jaGVja19tb2RlKHFkZXYsIGJvLT5zdXJmLndp ZHRoLCBiby0+c3VyZi5oZWlnaHQpOwogfQogCi1zdGF0aWMgaW50IHF4bF9hZGRfbW9uaXRvcnNf Y29uZmlnX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkICpwd2lkdGgsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkICpwaGVpZ2h0KQorc3Rh dGljIGludCBxeGxfYWRkX21vZGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKKwkJ CXVuc2lnbmVkIGludCB3aWR0aCwKKwkJCXVuc2lnbmVkIGludCBoZWlnaHQsCisJCQlib29sIHBy ZWZlcnJlZCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7CisJ c3RydWN0IHF4bF9kZXZpY2UgKnFkZXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlID0gTlVMTDsKKwlpbnQgcmM7CisKKwlyYyA9IHF4bF9jaGVja19t b2RlKHFkZXYsIHdpZHRoLCBoZWlnaHQpOworCWlmIChyYyAhPSAwKQorCQlyZXR1cm4gMDsKKwor CW1vZGUgPSBkcm1fY3Z0X21vZGUoZGV2LCB3aWR0aCwgaGVpZ2h0LCA2MCwgZmFsc2UsIGZhbHNl LCBmYWxzZSk7CisJaWYgKHByZWZlcnJlZCkKKwkJbW9kZS0+dHlwZSB8PSBEUk1fTU9ERV9UWVBF X1BSRUZFUlJFRDsKKwltb2RlLT5oZGlzcGxheSA9IHdpZHRoOworCW1vZGUtPnZkaXNwbGF5ID0g aGVpZ2h0OworCWRybV9tb2RlX3NldF9uYW1lKG1vZGUpOworCWRybV9tb2RlX3Byb2JlZF9hZGQo Y29ubmVjdG9yLCBtb2RlKTsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBxeGxfYWRkX21v bml0b3JzX2NvbmZpZ19tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewog CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKIAlzdHJ1Y3QgcXhsX2Rl dmljZSAqcWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IHF4bF9vdXRwdXQgKm91dHB1 dCA9IGRybV9jb25uZWN0b3JfdG9fcXhsX291dHB1dChjb25uZWN0b3IpOwogCWludCBoID0gb3V0 cHV0LT5pbmRleDsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9IE5VTEw7CiAJc3Ry dWN0IHF4bF9oZWFkICpoZWFkOwogCiAJaWYgKCFxZGV2LT5tb25pdG9yc19jb25maWcpCkBAIC0y MjksMTkgKzI1MCw3IEBAIHN0YXRpYyBpbnQgcXhsX2FkZF9tb25pdG9yc19jb25maWdfbW9kZXMo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAloZWFkID0gJnFkZXYtPmNsaWVudF9t b25pdG9yc19jb25maWctPmhlYWRzW2hdOwogCURSTV9ERUJVR19LTVMoImhlYWQgJWQgaXMgJWR4 JWRcbiIsIGgsIGhlYWQtPndpZHRoLCBoZWFkLT5oZWlnaHQpOwogCi0JbW9kZSA9IGRybV9jdnRf bW9kZShkZXYsIGhlYWQtPndpZHRoLCBoZWFkLT5oZWlnaHQsIDYwLCBmYWxzZSwgZmFsc2UsCi0J CQkgICAgZmFsc2UpOwotCW1vZGUtPnR5cGUgfD0gRFJNX01PREVfVFlQRV9QUkVGRVJSRUQ7Ci0J bW9kZS0+aGRpc3BsYXkgPSBoZWFkLT53aWR0aDsKLQltb2RlLT52ZGlzcGxheSA9IGhlYWQtPmhl aWdodDsKLQlkcm1fbW9kZV9zZXRfbmFtZShtb2RlKTsKLQkqcHdpZHRoID0gaGVhZC0+d2lkdGg7 Ci0JKnBoZWlnaHQgPSBoZWFkLT5oZWlnaHQ7Ci0JZHJtX21vZGVfcHJvYmVkX2FkZChjb25uZWN0 b3IsIG1vZGUpOwotCS8qIHJlbWVtYmVyIHRoZSBsYXN0IGN1c3RvbSBzaXplIGZvciBtb2RlIHZh bGlkYXRpb24gKi8KLQlxZGV2LT5tb25pdG9yc19jb25maWdfd2lkdGggPSBtb2RlLT5oZGlzcGxh eTsKLQlxZGV2LT5tb25pdG9yc19jb25maWdfaGVpZ2h0ID0gbW9kZS0+dmRpc3BsYXk7Ci0JcmV0 dXJuIDE7CisJcmV0dXJuIHF4bF9hZGRfbW9kZShjb25uZWN0b3IsIGhlYWQtPndpZHRoLCBoZWFk LT5oZWlnaHQsIHRydWUpOwogfQogCiBzdGF0aWMgc3RydWN0IG1vZGVfc2l6ZSB7CkBAIC0yNjcs MjIgKzI3NiwxNiBAQCBzdGF0aWMgc3RydWN0IG1vZGVfc2l6ZSB7CiAJezE5MjAsIDEyMDB9CiB9 OwogCi1zdGF0aWMgaW50IHF4bF9hZGRfY29tbW9uX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBwd2lkdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBw aGVpZ2h0KQorc3RhdGljIGludCBxeGxfYWRkX2NvbW1vbl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3It PmRldjsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9IE5VTEw7Ci0JaW50IGk7CisJ aW50IGksIHJldCA9IDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjb21tb25fbW9k ZXMpOyBpKyspIHsKLQkJbW9kZSA9IGRybV9jdnRfbW9kZShkZXYsIGNvbW1vbl9tb2Rlc1tpXS53 LCBjb21tb25fbW9kZXNbaV0uaCwKLQkJCQkgICAgNjAsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwot CQlpZiAoY29tbW9uX21vZGVzW2ldLncgPT0gcHdpZHRoICYmIGNvbW1vbl9tb2Rlc1tpXS5oID09 IHBoZWlnaHQpCi0JCQltb2RlLT50eXBlIHw9IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwotCQlk cm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5lY3RvciwgbW9kZSk7Ci0JfQotCXJldHVybiBpIC0gMTsK Kwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjb21tb25fbW9kZXMpOyBpKyspCisJCXJldCAr PSBxeGxfYWRkX21vZGUoY29ubmVjdG9yLAorCQkJCSAgICBjb21tb25fbW9kZXNbaV0udywKKwkJ CQkgICAgY29tbW9uX21vZGVzW2ldLmgsCisJCQkJICAgIGZhbHNlKTsKKwlyZXR1cm4gcmV0Owog fQogCiBzdGF0aWMgdm9pZCBxeGxfc2VuZF9tb25pdG9yc19jb25maWcoc3RydWN0IHF4bF9kZXZp Y2UgKnFkZXYpCkBAIC05MzUsMTQgKzkzOCwyNSBAQCBzdGF0aWMgaW50IHFkZXZfY3J0Y19pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjX2lkKQogCiBzdGF0aWMgaW50IHF4bF9j b25uX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogeworCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKKwlzdHJ1Y3QgcXhsX2RldmljZSAq cWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IHF4bF9vdXRwdXQgKm91dHB1dCA9IGRy bV9jb25uZWN0b3JfdG9fcXhsX291dHB1dChjb25uZWN0b3IpOwogCXVuc2lnbmVkIGludCBwd2lk dGggPSAxMDI0OwogCXVuc2lnbmVkIGludCBwaGVpZ2h0ID0gNzY4OwogCWludCByZXQgPSAwOwog Ci0JcmV0ID0gcXhsX2FkZF9tb25pdG9yc19jb25maWdfbW9kZXMoY29ubmVjdG9yLCAmcHdpZHRo LCAmcGhlaWdodCk7Ci0JaWYgKHJldCA8IDApCi0JCXJldHVybiByZXQ7Ci0JcmV0ICs9IHF4bF9h ZGRfY29tbW9uX21vZGVzKGNvbm5lY3RvciwgcHdpZHRoLCBwaGVpZ2h0KTsKKwlpZiAocWRldi0+ Y2xpZW50X21vbml0b3JzX2NvbmZpZykgeworCQlzdHJ1Y3QgcXhsX2hlYWQgKmhlYWQ7CisJCWhl YWQgPSAmcWRldi0+Y2xpZW50X21vbml0b3JzX2NvbmZpZy0+aGVhZHNbb3V0cHV0LT5pbmRleF07 CisJCWlmIChoZWFkLT53aWR0aCkKKwkJCXB3aWR0aCA9IGhlYWQtPndpZHRoOworCQlpZiAoaGVh ZC0+aGVpZ2h0KQorCQkJcGhlaWdodCA9IGhlYWQtPmhlaWdodDsKKwl9CisKKwlyZXQgKz0gcXhs X2FkZF9jb21tb25fbW9kZXMoY29ubmVjdG9yKTsKKwlyZXQgKz0gcXhsX2FkZF9tb25pdG9yc19j b25maWdfbW9kZXMoY29ubmVjdG9yKTsKKwlkcm1fc2V0X3ByZWZlcnJlZF9tb2RlKGNvbm5lY3Rv ciwgcHdpZHRoLCBwaGVpZ2h0KTsKIAlyZXR1cm4gcmV0OwogfQogCi0tIAoyLjkuMwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KU3BpY2UtZGV2ZWwgbWFp bGluZyBsaXN0ClNwaWNlLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3NwaWNlLWRldmVsCg==