From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Airlie Subject: [PATCH 2/5] drm/displayid: Iterate over all DisplayID blocks Date: Wed, 4 May 2016 06:36:49 +1000 Message-ID: <1462307812-3341-3-git-send-email-airlied@gmail.com> References: <1462307812-3341-1-git-send-email-airlied@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4C9AB6E6A1 for ; Tue, 3 May 2016 20:36:57 +0000 (UTC) Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E27BE7F08F for ; Tue, 3 May 2016 20:36:56 +0000 (UTC) Received: from dreadlord-bne-redhat-com.bne.redhat.com (dhcp-40-179.bne.redhat.com [10.64.40.179]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u43KarOx024283 for ; Tue, 3 May 2016 16:36:56 -0400 In-Reply-To: <1462307812-3341-1-git-send-email-airlied@gmail.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 List-Id: dri-devel@lists.freedesktop.org RnJvbTogVG9tYXMgQnphdGVrIDx0b21hc0BiemF0ZWsubmV0PgoKVGhpcyB3aWxsIGl0ZXJhdGUg b3ZlciBhbGwgRGlzcGxheUlEIGJsb2NrcyBmb3VuZCBpbiB0aGUgYnVmZmVyLgpQcmV2aW91c2x5 IG9ubHkgdGhlIGZpcnN0IGJsb2NrIHdhcyBwYXJzZWQuCgpodHRwczovL2J1Z3MuZnJlZWRlc2t0 b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05NTIwNwoKU2lnbmVkLW9mZi1ieTogRGF2ZSBBaXJsaWUg PGFpcmxpZWRAcmVkaGF0LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyB8IDEy NCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA2NSBpbnNlcnRpb25zKCspLCA1OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCmlu ZGV4IGM4YTNhNTUuLjFhMzY0YjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRp ZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCkBAIC00MTgyLDY2ICs0MTgyLDcy IEBAIHN0YXRpYyBpbnQgZHJtX3BhcnNlX2Rpc3BsYXlfaWQoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JYmxvY2sgPSAoc3RydWN0IGRp c3BsYXlpZF9ibG9jayAqKSZkaXNwbGF5aWRbaWR4ICsgNF07Ci0JRFJNX0RFQlVHX0tNUygiYmxv Y2sgaWQgMHgleCwgcmV2ICVkLCBsZW4gJWRcbiIsCi0JCSAgICAgIGJsb2NrLT50YWcsIGJsb2Nr LT5yZXYsIGJsb2NrLT5udW1fYnl0ZXMpOwotCi0Jc3dpdGNoIChibG9jay0+dGFnKSB7Ci0JY2Fz ZSBEQVRBX0JMT0NLX1RJTEVEX0RJU1BMQVk6IHsKLQkJc3RydWN0IGRpc3BsYXlpZF90aWxlZF9i bG9jayAqdGlsZSA9IChzdHJ1Y3QgZGlzcGxheWlkX3RpbGVkX2Jsb2NrICopYmxvY2s7Ci0KLQkJ dTE2IHcsIGg7Ci0JCXU4IHRpbGVfdl9sb2MsIHRpbGVfaF9sb2M7Ci0JCXU4IG51bV92X3RpbGUs IG51bV9oX3RpbGU7Ci0JCXN0cnVjdCBkcm1fdGlsZV9ncm91cCAqdGc7Ci0KLQkJdyA9IHRpbGUt PnRpbGVfc2l6ZVswXSB8IHRpbGUtPnRpbGVfc2l6ZVsxXSA8PCA4OwotCQloID0gdGlsZS0+dGls ZV9zaXplWzJdIHwgdGlsZS0+dGlsZV9zaXplWzNdIDw8IDg7Ci0KLQkJbnVtX3ZfdGlsZSA9ICh0 aWxlLT50b3BvWzBdICYgMHhmKSB8ICh0aWxlLT50b3BvWzJdICYgMHgzMCk7Ci0JCW51bV9oX3Rp bGUgPSAodGlsZS0+dG9wb1swXSA+PiA0KSB8ICgodGlsZS0+dG9wb1syXSA+PiAyKSAmIDB4MzAp OwotCQl0aWxlX3ZfbG9jID0gKHRpbGUtPnRvcG9bMV0gJiAweGYpIHwgKCh0aWxlLT50b3BvWzJd ICYgMHgzKSA8PCA0KTsKLQkJdGlsZV9oX2xvYyA9ICh0aWxlLT50b3BvWzFdID4+IDQpIHwgKCgo dGlsZS0+dG9wb1syXSA+PiAyKSAmIDB4MykgPDwgNCk7Ci0KLQkJY29ubmVjdG9yLT5oYXNfdGls ZSA9IHRydWU7Ci0JCWlmICh0aWxlLT50aWxlX2NhcCAmIDB4ODApCi0JCQljb25uZWN0b3ItPnRp bGVfaXNfc2luZ2xlX21vbml0b3IgPSB0cnVlOwotCi0JCWNvbm5lY3Rvci0+bnVtX2hfdGlsZSA9 IG51bV9oX3RpbGUgKyAxOwotCQljb25uZWN0b3ItPm51bV92X3RpbGUgPSBudW1fdl90aWxlICsg MTsKLQkJY29ubmVjdG9yLT50aWxlX2hfbG9jID0gdGlsZV9oX2xvYzsKLQkJY29ubmVjdG9yLT50 aWxlX3ZfbG9jID0gdGlsZV92X2xvYzsKLQkJY29ubmVjdG9yLT50aWxlX2hfc2l6ZSA9IHcgKyAx OwotCQljb25uZWN0b3ItPnRpbGVfdl9zaXplID0gaCArIDE7Ci0KLQkJRFJNX0RFQlVHX0tNUygi dGlsZSBjYXAgMHgleFxuIiwgdGlsZS0+dGlsZV9jYXApOwotCQlEUk1fREVCVUdfS01TKCJ0aWxl X3NpemUgJWQgeCAlZFxuIiwgdyArIDEsIGggKyAxKTsKLQkJRFJNX0RFQlVHX0tNUygidG9wbyBu dW0gdGlsZXMgJWR4JWQsIGxvY2F0aW9uICVkeCVkXG4iLAotCQkgICAgICAgbnVtX2hfdGlsZSAr IDEsIG51bV92X3RpbGUgKyAxLCB0aWxlX2hfbG9jLCB0aWxlX3ZfbG9jKTsKLQkJRFJNX0RFQlVH X0tNUygidmVuZCAlYyVjJWNcbiIsIHRpbGUtPnRvcG9sb2d5X2lkWzBdLCB0aWxlLT50b3BvbG9n eV9pZFsxXSwgdGlsZS0+dG9wb2xvZ3lfaWRbMl0pOwotCi0JCXRnID0gZHJtX21vZGVfZ2V0X3Rp bGVfZ3JvdXAoY29ubmVjdG9yLT5kZXYsIHRpbGUtPnRvcG9sb2d5X2lkKTsKLQkJaWYgKCF0Zykg ewotCQkJdGcgPSBkcm1fbW9kZV9jcmVhdGVfdGlsZV9ncm91cChjb25uZWN0b3ItPmRldiwgdGls ZS0+dG9wb2xvZ3lfaWQpOwotCQl9Ci0JCWlmICghdGcpCi0JCQlyZXR1cm4gLUVOT01FTTsKLQot CQlpZiAoY29ubmVjdG9yLT50aWxlX2dyb3VwICE9IHRnKSB7Ci0JCQkvKiBpZiB3ZSBoYXZlbid0 IGdvdCBhIHBvaW50ZXIsCi0JCQkgICB0YWtlIHRoZSByZWZlcmVuY2UsIGRyb3AgcmVmIHRvIG9s ZCB0aWxlIGdyb3VwICovCi0JCQlpZiAoY29ubmVjdG9yLT50aWxlX2dyb3VwKSB7Ci0JCQkJZHJt X21vZGVfcHV0X3RpbGVfZ3JvdXAoY29ubmVjdG9yLT5kZXYsIGNvbm5lY3Rvci0+dGlsZV9ncm91 cCk7CisJaWR4ICs9IHNpemVvZihzdHJ1Y3QgZGlzcGxheWlkX2hkcik7CisJd2hpbGUgKGJsb2Nr ID0gKHN0cnVjdCBkaXNwbGF5aWRfYmxvY2sgKikmZGlzcGxheWlkW2lkeF0sCisJICAgICAgIGlk eCArIHNpemVvZihzdHJ1Y3QgZGlzcGxheWlkX2Jsb2NrKSA8PSBsZW5ndGggJiYKKwkgICAgICAg aWR4ICsgc2l6ZW9mKHN0cnVjdCBkaXNwbGF5aWRfYmxvY2spICsgYmxvY2stPm51bV9ieXRlcyA8 PSBsZW5ndGggJiYKKwkgICAgICAgYmxvY2stPm51bV9ieXRlcyA+IDApIHsKKwkJaWR4ICs9IGJs b2NrLT5udW1fYnl0ZXMgKyBzaXplb2Yoc3RydWN0IGRpc3BsYXlpZF9ibG9jayk7CisJCURSTV9E RUJVR19LTVMoImJsb2NrIGlkIDB4JXgsIHJldiAlZCwgbGVuICVkXG4iLAorCQkJICAgICAgYmxv Y2stPnRhZywgYmxvY2stPnJldiwgYmxvY2stPm51bV9ieXRlcyk7CisKKwkJc3dpdGNoIChibG9j ay0+dGFnKSB7CisJCWNhc2UgREFUQV9CTE9DS19USUxFRF9ESVNQTEFZOiB7CisJCQlzdHJ1Y3Qg ZGlzcGxheWlkX3RpbGVkX2Jsb2NrICp0aWxlID0gKHN0cnVjdCBkaXNwbGF5aWRfdGlsZWRfYmxv Y2sgKilibG9jazsKKworCQkJdTE2IHcsIGg7CisJCQl1OCB0aWxlX3ZfbG9jLCB0aWxlX2hfbG9j OworCQkJdTggbnVtX3ZfdGlsZSwgbnVtX2hfdGlsZTsKKwkJCXN0cnVjdCBkcm1fdGlsZV9ncm91 cCAqdGc7CisKKwkJCXcgPSB0aWxlLT50aWxlX3NpemVbMF0gfCB0aWxlLT50aWxlX3NpemVbMV0g PDwgODsKKwkJCWggPSB0aWxlLT50aWxlX3NpemVbMl0gfCB0aWxlLT50aWxlX3NpemVbM10gPDwg ODsKKworCQkJbnVtX3ZfdGlsZSA9ICh0aWxlLT50b3BvWzBdICYgMHhmKSB8ICh0aWxlLT50b3Bv WzJdICYgMHgzMCk7CisJCQludW1faF90aWxlID0gKHRpbGUtPnRvcG9bMF0gPj4gNCkgfCAoKHRp bGUtPnRvcG9bMl0gPj4gMikgJiAweDMwKTsKKwkJCXRpbGVfdl9sb2MgPSAodGlsZS0+dG9wb1sx XSAmIDB4ZikgfCAoKHRpbGUtPnRvcG9bMl0gJiAweDMpIDw8IDQpOworCQkJdGlsZV9oX2xvYyA9 ICh0aWxlLT50b3BvWzFdID4+IDQpIHwgKCgodGlsZS0+dG9wb1syXSA+PiAyKSAmIDB4MykgPDwg NCk7CisKKwkJCWNvbm5lY3Rvci0+aGFzX3RpbGUgPSB0cnVlOworCQkJaWYgKHRpbGUtPnRpbGVf Y2FwICYgMHg4MCkKKwkJCQljb25uZWN0b3ItPnRpbGVfaXNfc2luZ2xlX21vbml0b3IgPSB0cnVl OworCisJCQljb25uZWN0b3ItPm51bV9oX3RpbGUgPSBudW1faF90aWxlICsgMTsKKwkJCWNvbm5l Y3Rvci0+bnVtX3ZfdGlsZSA9IG51bV92X3RpbGUgKyAxOworCQkJY29ubmVjdG9yLT50aWxlX2hf bG9jID0gdGlsZV9oX2xvYzsKKwkJCWNvbm5lY3Rvci0+dGlsZV92X2xvYyA9IHRpbGVfdl9sb2M7 CisJCQljb25uZWN0b3ItPnRpbGVfaF9zaXplID0gdyArIDE7CisJCQljb25uZWN0b3ItPnRpbGVf dl9zaXplID0gaCArIDE7CisKKwkJCURSTV9ERUJVR19LTVMoInRpbGUgY2FwIDB4JXhcbiIsIHRp bGUtPnRpbGVfY2FwKTsKKwkJCURSTV9ERUJVR19LTVMoInRpbGVfc2l6ZSAlZCB4ICVkXG4iLCB3 ICsgMSwgaCArIDEpOworCQkJRFJNX0RFQlVHX0tNUygidG9wbyBudW0gdGlsZXMgJWR4JWQsIGxv Y2F0aW9uICVkeCVkXG4iLAorCQkJICAgICAgIG51bV9oX3RpbGUgKyAxLCBudW1fdl90aWxlICsg MSwgdGlsZV9oX2xvYywgdGlsZV92X2xvYyk7CisJCQlEUk1fREVCVUdfS01TKCJ2ZW5kICVjJWMl Y1xuIiwgdGlsZS0+dG9wb2xvZ3lfaWRbMF0sIHRpbGUtPnRvcG9sb2d5X2lkWzFdLCB0aWxlLT50 b3BvbG9neV9pZFsyXSk7CisKKwkJCXRnID0gZHJtX21vZGVfZ2V0X3RpbGVfZ3JvdXAoY29ubmVj dG9yLT5kZXYsIHRpbGUtPnRvcG9sb2d5X2lkKTsKKwkJCWlmICghdGcpIHsKKwkJCQl0ZyA9IGRy bV9tb2RlX2NyZWF0ZV90aWxlX2dyb3VwKGNvbm5lY3Rvci0+ZGV2LCB0aWxlLT50b3BvbG9neV9p ZCk7CiAJCQl9Ci0JCQljb25uZWN0b3ItPnRpbGVfZ3JvdXAgPSB0ZzsKLQkJfSBlbHNlCi0JCQkv KiBpZiBzYW1lIHRpbGUgZ3JvdXAsIHRoZW4gcmVsZWFzZSB0aGUgcmVmIHdlIGp1c3QgdG9vay4g Ki8KLQkJCWRybV9tb2RlX3B1dF90aWxlX2dyb3VwKGNvbm5lY3Rvci0+ZGV2LCB0Zyk7Ci0JfQot CQlicmVhazsKLQlkZWZhdWx0OgotCQlwcmludGsoInVua25vd24gZGlzcGxheWlkIHRhZyAlZFxu IiwgYmxvY2stPnRhZyk7Ci0JCWJyZWFrOworCQkJaWYgKCF0ZykKKwkJCQlyZXR1cm4gLUVOT01F TTsKKworCQkJaWYgKGNvbm5lY3Rvci0+dGlsZV9ncm91cCAhPSB0ZykgeworCQkJCS8qIGlmIHdl IGhhdmVuJ3QgZ290IGEgcG9pbnRlciwKKwkJCQkgICB0YWtlIHRoZSByZWZlcmVuY2UsIGRyb3Ag cmVmIHRvIG9sZCB0aWxlIGdyb3VwICovCisJCQkJaWYgKGNvbm5lY3Rvci0+dGlsZV9ncm91cCkg eworCQkJCQlkcm1fbW9kZV9wdXRfdGlsZV9ncm91cChjb25uZWN0b3ItPmRldiwgY29ubmVjdG9y LT50aWxlX2dyb3VwKTsKKwkJCQl9CisJCQkJY29ubmVjdG9yLT50aWxlX2dyb3VwID0gdGc7CisJ CQl9IGVsc2UKKwkJCQkvKiBpZiBzYW1lIHRpbGUgZ3JvdXAsIHRoZW4gcmVsZWFzZSB0aGUgcmVm IHdlIGp1c3QgdG9vay4gKi8KKwkJCQlkcm1fbW9kZV9wdXRfdGlsZV9ncm91cChjb25uZWN0b3It PmRldiwgdGcpOworCQl9CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCURSTV9ERUJVR19LTVMo ImZvdW5kIERpc3BsYXlJRCB0YWcgMHgleCwgdW5oYW5kbGVkXG4iLCBibG9jay0+dGFnKTsKKwkJ CWJyZWFrOworCQl9CiAJfQogCXJldHVybiAwOwogfQotLSAKMi41LjUKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=