From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v2 07/40] drm: Add a simple generator of random permutations Date: Fri, 16 Dec 2016 07:46:45 +0000 Message-ID: <20161216074718.32500-8-chris@chris-wilson.co.uk> References: <20161216074718.32500-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161216074718.32500-1-chris@chris-wilson.co.uk> 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 Cc: intel-gfx@lists.freedesktop.org, joonas.lahtinen@linux.intel.com List-Id: dri-devel@lists.freedesktop.org V2hlbiB0ZXN0aW5nLCB3ZSB3YW50IGEgcmFuZG9tIGJ1dCB5ZXQgcmVwcm9kdWNpYmxlIG9yZGVy IGluIHdoaWNoIHRvCnByb2Nlc3MgZWxlbWVudHMuIEhlcmUgd2UgY3JlYXRlIGFuIGFycmF5IHdo aWNoIGlzIGEgcmFuZG9tICh1c2luZyB0aGUKVGF1c3dvcnRoZSBQUk5HKSBwZXJtdXRhdGlvbiBv ZiB0aGUgb3JkZXIgaW4gd2hpY2ggdG8gZXhlY3V0ZS4KCnYyOiBUaWRpZXIgY29kZSBieSBEYXZp ZCBIZXJybWFubgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxz b24uY28udWs+CkNjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRl bC5jb20+CkNjOiBEYXZpZCBIZXJybWFubiA8ZGguaGVycm1hbm5AZ21haWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAgICAgIHwgIDYgKysrKysrCiBkcml2ZXJzL2dwdS9k cm0vTWFrZWZpbGUgICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9saWIvZHJtX3JhbmRv bS5jIHwgNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVy cy9ncHUvZHJtL2xpYi9kcm1fcmFuZG9tLmggfCAyMSArKysrKysrKysrKysrKysrKysrKwogNCBm aWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ncHUvZHJtL2xpYi9kcm1fcmFuZG9tLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vbGliL2RybV9yYW5kb20uaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9LY29u ZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKaW5kZXggZDEzNjNkMjFkM2QxLi4yZTZhZTk1 NDU5ZTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9LY29uZmlnCkBAIC01Miw2ICs1Miw3IEBAIGNvbmZpZyBEUk1fREVCVUdfTU1fU0VM RlRFU1QKIAl0cmlzdGF0ZSAia3NlbGZ0ZXN0cyBmb3IgRFJNIHJhbmdlIG1hbmFnZXIgKHN0cnVj dCBkcm1fbW0pIgogCWRlcGVuZHMgb24gRFJNCiAJZGVwZW5kcyBvbiBERUJVR19LRVJORUwKKwlz ZWxlY3QgRFJNX0xJQl9SQU5ET00KIAlkZWZhdWx0IG4KIAloZWxwCiAJICBUaGlzIG9wdGlvbiBw cm92aWRlcyBhIGtlcm5lbCBtb2R1bGUgdGhhdCBjYW4gYmUgdXNlZCB0byB0ZXN0CkBAIC0zMzQs MyArMzM1LDggQEAgY29uZmlnIERSTV9TQVZBR0UKIAkgIGNoaXBzZXQuIElmIE0gaXMgc2VsZWN0 ZWQgdGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzYXZhZ2UuCiAKIGVuZGlmICMgRFJNX0xFR0FD WQorCitjb25maWcgRFJNX0xJQl9SQU5ET00KKwlib29sCisJZGVmYXVsdCBuCisKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQpp bmRleCBjOGFlZDM2ODhiMjAuLjBmYTE2Mjc1ZmRhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQpAQCAtMTgsNiArMTgs NyBAQCBkcm0teSAgICAgICA6PQlkcm1fYXV0aC5vIGRybV9idWZzLm8gZHJtX2NhY2hlLm8gXAog CQlkcm1fcGxhbmUubyBkcm1fY29sb3JfbWdtdC5vIGRybV9wcmludC5vIFwKIAkJZHJtX2R1bWJf YnVmZmVycy5vIGRybV9tb2RlX2NvbmZpZy5vCiAKK2RybS0kKENPTkZJR19EUk1fTElCX1JBTkRP TSkgKz0gbGliL2RybV9yYW5kb20ubwogb2JqLSQoQ09ORklHX0RSTV9ERUJVR19NTV9TRUxGVEVT VCkgKz0gc2VsZnRlc3RzL3Rlc3QtZHJtX21tLm8KIAogZHJtLSQoQ09ORklHX0NPTVBBVCkgKz0g ZHJtX2lvYzMyLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9saWIvZHJtX3JhbmRvbS5j IGIvZHJpdmVycy9ncHUvZHJtL2xpYi9kcm1fcmFuZG9tLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi41MDdlNzI3MjFiNmYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vbGliL2RybV9yYW5kb20uYwpAQCAtMCwwICsxLDQxIEBACisjaW5jbHVkZSA8 bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGlu dXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+CisKKyNpbmNsdWRlICJkcm1fcmFuZG9tLmgiCisKK3N0YXRpYyBpbmxpbmUgdTMyIHBy YW5kb21fdTMyX21heF9zdGF0ZSh1MzIgZXBfcm8sIHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKQor eworCXJldHVybiB1cHBlcl8zMl9iaXRzKCh1NjQpcHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpICog ZXBfcm8pOworfQorCit2b2lkIGRybV9yYW5kb21fcmVvcmRlcih1bnNpZ25lZCBpbnQgKm9yZGVy LCB1bnNpZ25lZCBpbnQgY291bnQsCisJCQlzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSkKK3sKKwl1 bnNpZ25lZCBpbnQgaSwgajsKKworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisJCUJV SUxEX0JVR19PTihzaXplb2YodW5zaWduZWQgaW50KSA+IHNpemVvZih1MzIpKTsKKwkJaiA9IHBy YW5kb21fdTMyX21heF9zdGF0ZShjb3VudCwgc3RhdGUpOworCQlzd2FwKG9yZGVyW2ldLCBvcmRl cltqXSk7CisJfQorfQorRVhQT1JUX1NZTUJPTChkcm1fcmFuZG9tX3Jlb3JkZXIpOworCit1bnNp Z25lZCBpbnQgKmRybV9yYW5kb21fb3JkZXIodW5zaWduZWQgaW50IGNvdW50LCBzdHJ1Y3Qgcm5k X3N0YXRlICpzdGF0ZSkKK3sKKwl1bnNpZ25lZCBpbnQgKm9yZGVyLCBpOworCisJb3JkZXIgPSBr bWFsbG9jX2FycmF5KGNvdW50LCBzaXplb2YoKm9yZGVyKSwgR0ZQX1RFTVBPUkFSWSk7CisJaWYg KCFvcmRlcikKKwkJcmV0dXJuIG9yZGVyOworCisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKysp CisJCW9yZGVyW2ldID0gaTsKKworCWRybV9yYW5kb21fcmVvcmRlcihvcmRlciwgY291bnQsIHN0 YXRlKTsKKwlyZXR1cm4gb3JkZXI7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9yYW5kb21fb3JkZXIp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2xpYi9kcm1fcmFuZG9tLmggYi9kcml2ZXJz L2dwdS9kcm0vbGliL2RybV9yYW5kb20uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjkzMWM4ZjRhMjYxZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9saWIvZHJtX3JhbmRvbS5oCkBAIC0wLDAgKzEsMjEgQEAKKyNpZm5kZWYgX19EUk1fUkFORE9N X0hfXworI2RlZmluZSBfX0RSTV9SQU5ET01fSAorCisjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+ CisKKyNkZWZpbmUgUk5EX1NUQVRFX0lOSVRJQUxJWkVSKHNlZWRfXykgKHsJCQkJXAorCXN0cnVj dCBybmRfc3RhdGUgc3RhdGVfXzsJCQkJCVwKKwlwcmFuZG9tX3NlZWRfc3RhdGUoJnN0YXRlX18s IChzZWVkX18pKTsJCQkJXAorCXN0YXRlX187CQkJCQkJCVwKK30pCisKKyNkZWZpbmUgUk5EX1NU QVRFKG5hbWVfXywgc2VlZF9fKSBcCisJc3RydWN0IHJuZF9zdGF0ZSBuYW1lX18gPSBSTkRfU1RB VEVfSU5JVElBTElaRVIoc2VlZF9fKQorCit1bnNpZ25lZCBpbnQgKmRybV9yYW5kb21fb3JkZXIo dW5zaWduZWQgaW50IGNvdW50LAorCQkJICAgICAgIHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKTsK K3ZvaWQgZHJtX3JhbmRvbV9yZW9yZGVyKHVuc2lnbmVkIGludCAqb3JkZXIsCisJCQl1bnNpZ25l ZCBpbnQgY291bnQsCisJCQlzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7CisKKyNlbmRpZiAvKiBf X0RSTV9SQU5ET01fSF9fICovCi0tIAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=