From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4 17/38] drm: kselftest for drm_mm and color adjustment Date: Thu, 22 Dec 2016 08:36:20 +0000 Message-ID: <20161222083641.2691-18-chris@chris-wilson.co.uk> References: <20161222083641.2691-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: <20161222083641.2691-1-chris@chris-wilson.co.uk> 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 Q2hlY2sgdGhhdCBhZnRlciBhcHBseWluZyB0aGUgZHJpdmVyJ3MgY29sb3IgYWRqdXN0bWVudCwg Zml0dGluZyBvZiB0aGUKbm9kZSBhbmQgaXRzIGFsaWdubWVudCBhcmUgc3RpbGwgY29ycmVjdC4K CnYyOiBzL25vX2NvbG9yX3RvdWNoaW5nL3NlcGFyYXRlX2FkamFjZW50X2NvbG9ycy8KClNpZ25l ZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpZXdl ZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21tX3NlbGZ0ZXN0cy5oIHwgICAxICsK IGRyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYyAgICAgIHwgMTgzICsrKysr KysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxODQgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21tX3NlbGZ0ZXN0 cy5oIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1fbW1fc2VsZnRlc3RzLmgKaW5kZXgg Y2Q1MDhlM2Q2NTM4Li5mZjQ0ZjM5YTE4MjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9z ZWxmdGVzdHMvZHJtX21tX3NlbGZ0ZXN0cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVz dHMvZHJtX21tX3NlbGZ0ZXN0cy5oCkBAIC0xOCwzICsxOCw0IEBAIHNlbGZ0ZXN0KGFsaWduNjQs IGlndF9hbGlnbjY0KQogc2VsZnRlc3QoZXZpY3QsIGlndF9ldmljdCkKIHNlbGZ0ZXN0KGV2aWN0 X3JhbmdlLCBpZ3RfZXZpY3RfcmFuZ2UpCiBzZWxmdGVzdCh0b3Bkb3duLCBpZ3RfdG9wZG93bikK K3NlbGZ0ZXN0KGNvbG9yLCBpZ3RfY29sb3IpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3Qt ZHJtX21tLmMKaW5kZXggZDNkNGU0ZjM5MDQyLi4yNDg0MWQzOTk0ZGMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMKQEAgLTE2NzEsNiArMTY3MSwxODkgQEAgc3RhdGlj IGludCBpZ3RfdG9wZG93bih2b2lkICppZ25vcmVkKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRp YyB2b2lkIHNlcGFyYXRlX2FkamFjZW50X2NvbG9ycyhjb25zdCBzdHJ1Y3QgZHJtX21tX25vZGUg Km5vZGUsCisJCQkJICAgICB1bnNpZ25lZCBsb25nIGNvbG9yLAorCQkJCSAgICAgdTY0ICpzdGFy dCwKKwkJCQkgICAgIHU2NCAqZW5kKQoreworCWlmIChub2RlLT5hbGxvY2F0ZWQgJiYgbm9kZS0+ Y29sb3IgIT0gY29sb3IpCisJCSsrKnN0YXJ0OworCisJbm9kZSA9IGxpc3RfbmV4dF9lbnRyeShu b2RlLCBub2RlX2xpc3QpOworCWlmIChub2RlLT5hbGxvY2F0ZWQgJiYgbm9kZS0+Y29sb3IgIT0g Y29sb3IpCisJCS0tKmVuZDsKK30KKworc3RhdGljIGJvb2wgY29sb3JzX2FidXR0KGNvbnN0IHN0 cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkKK3sKKwlpZiAoIW5vZGUtPmhvbGVfZm9sbG93cyAmJgor CSAgICBsaXN0X25leHRfZW50cnkobm9kZSwgbm9kZV9saXN0KS0+YWxsb2NhdGVkKSB7CisJCXBy X2VycigiY29sb3JzIGFidXR0OyAlbGQgWyVsbHggKyAlbGx4XSBpcyBuZXh0IHRvICVsZCBbJWxs eCArICVsbHhdIVxuIiwKKwkJICAgICAgIG5vZGUtPmNvbG9yLCBub2RlLT5zdGFydCwgbm9kZS0+ c2l6ZSwKKwkJICAgICAgIGxpc3RfbmV4dF9lbnRyeShub2RlLCBub2RlX2xpc3QpLT5jb2xvciwK KwkJICAgICAgIGxpc3RfbmV4dF9lbnRyeShub2RlLCBub2RlX2xpc3QpLT5zdGFydCwKKwkJICAg ICAgIGxpc3RfbmV4dF9lbnRyeShub2RlLCBub2RlX2xpc3QpLT5zaXplKTsKKwkJcmV0dXJuIHRy dWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgaW50IGlndF9jb2xvcih2b2lk ICppZ25vcmVkKQoreworCWNvbnN0IHVuc2lnbmVkIGludCBjb3VudCA9IG1pbig0MDk2dSwgbWF4 X2l0ZXJhdGlvbnMpOworCWNvbnN0IHN0cnVjdCBpbnNlcnRfbW9kZSAqbW9kZTsKKwlzdHJ1Y3Qg ZHJtX21tIG1tOworCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgKm5uOworCXVuc2lnbmVkIGlu dCBuOworCWludCByZXQgPSAtRUlOVkFMLCBlcnI7CisKKwkvKiBDb2xvciBhZGp1c3RtZW50IGNv bXBsaWNhdGVzIGV2ZXJ5dGhpbmcuIEZpcnN0IHdlIGp1c3QgY2hlY2sKKwkgKiB0aGF0IHdoZW4g d2UgaW5zZXJ0IGEgbm9kZSB3ZSBhcHBseSBhbnkgY29sb3JfYWRqdXN0bWVudCBjYWxsYmFjay4K KwkgKiBUaGUgY2FsbGJhY2sgd2UgdXNlIHNob3VsZCBlbnN1cmUgdGhhdCB0aGVyZSBpcyBhIGdh cCBiZXR3ZWVuCisJICogYW55IHR3byBub2RlcywgYW5kIHNvIGFmdGVyIGVhY2ggaW5zZXJ0aW9u IHdlIGNoZWNrIHRoYXQgdGhvc2UKKwkgKiBob2xlcyBhcmUgaW5zZXJ0ZWQgYW5kIHRoYXQgdGhl eSBhcmUgcHJlc2VydmVkLgorCSAqLworCisJZHJtX21tX2luaXQoJm1tLCAwLCBVNjRfTUFYKTsK KworCWZvciAobiA9IDE7IG4gPD0gY291bnQ7IG4rKykgeworCQlub2RlID0ga3phbGxvYyhzaXpl b2YoKm5vZGUpLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFub2RlKSB7CisJCQlyZXQgPSAtRU5PTUVN OworCQkJZ290byBvdXQ7CisJCX0KKworCQlpZiAoIWV4cGVjdF9pbnNlcnQoJm1tLCBub2RlLAor CQkJCSAgIG4sIDAsIG4sCisJCQkJICAgJmluc2VydF9tb2Rlc1swXSkpIHsKKwkJCXByX2Vycigi aW5zZXJ0IGZhaWxlZCwgc3RlcCAlZFxuIiwgbik7CisJCQlrZnJlZShub2RlKTsKKwkJCWdvdG8g b3V0OworCQl9CisJfQorCisJZHJtX21tX2Zvcl9lYWNoX25vZGVfc2FmZShub2RlLCBubiwgJm1t KSB7CisJCWlmIChub2RlLT5jb2xvciAhPSBub2RlLT5zaXplKSB7CisJCQlwcl9lcnIoImludmFs aWQgY29sb3Igc3RvcmVkOiBleHBlY3RlZCAlbGxkLCBmb3VuZCAlbGRcbiIsCisJCQkgICAgICAg bm9kZS0+c2l6ZSwgbm9kZS0+Y29sb3IpOworCisJCQlnb3RvIG91dDsKKwkJfQorCisJCWRybV9t bV9yZW1vdmVfbm9kZShub2RlKTsKKwkJa2ZyZWUobm9kZSk7CisJfQorCisJLyogTm93LCBsZXQn cyBzdGFydCBleHBlcmltZW50aW5nIHdpdGggYXBwbHlpbmcgYSBjb2xvciBjYWxsYmFjayAqLwor CW1tLmNvbG9yX2FkanVzdCA9IHNlcGFyYXRlX2FkamFjZW50X2NvbG9yczsKKwlmb3IgKG1vZGUg PSBpbnNlcnRfbW9kZXM7IG1vZGUtPm5hbWU7IG1vZGUrKykgeworCQl1NjQgbGFzdDsKKworCQlu b2RlID0ga3phbGxvYyhzaXplb2YoKm5vZGUpLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFub2RlKSB7 CisJCQlyZXQgPSAtRU5PTUVNOworCQkJZ290byBvdXQ7CisJCX0KKworCQlub2RlLT5zaXplID0g MSArIDIqY291bnQ7CisJCW5vZGUtPmNvbG9yID0gbm9kZS0+c2l6ZTsKKworCQllcnIgPSBkcm1f bW1fcmVzZXJ2ZV9ub2RlKCZtbSwgbm9kZSk7CisJCWlmIChlcnIpIHsKKwkJCXByX2VycigiaW5p dGlhbCByZXNlcnZlIGZhaWxlZCFcbiIpOworCQkJcmV0ID0gZXJyOworCQkJZ290byBvdXQ7CisJ CX0KKworCQlsYXN0ID0gbm9kZS0+c3RhcnQgKyBub2RlLT5zaXplOworCisJCWZvciAobiA9IDE7 IG4gPD0gY291bnQ7IG4rKykgeworCQkJaW50IHJlbTsKKworCQkJbm9kZSA9IGt6YWxsb2Moc2l6 ZW9mKCpub2RlKSwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoIW5vZGUpIHsKKwkJCQlyZXQgPSAtRU5P TUVNOworCQkJCWdvdG8gb3V0OworCQkJfQorCisJCQlub2RlLT5zdGFydCA9IGxhc3Q7CisJCQlu b2RlLT5zaXplID0gbiArIGNvdW50OworCQkJbm9kZS0+Y29sb3IgPSBub2RlLT5zaXplOworCisJ CQllcnIgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZtbSwgbm9kZSk7CisJCQlpZiAoZXJyICE9IC1F Tk9TUEMpIHsKKwkJCQlwcl9lcnIoInJlc2VydmUgJWQgZGlkIG5vdCByZXBvcnQgY29sb3Igb3Zl cmxhcCEgZXJyPSVkXG4iLAorCQkJCSAgICAgICBuLCBlcnIpOworCQkJCWdvdG8gb3V0OworCQkJ fQorCisJCQlub2RlLT5zdGFydCArPSBuICsgMTsKKwkJCXJlbSA9IG1pc2FsaWdubWVudChub2Rl LCBuICsgY291bnQpOworCQkJbm9kZS0+c3RhcnQgKz0gbiArIGNvdW50IC0gcmVtOworCisJCQll cnIgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZtbSwgbm9kZSk7CisJCQlpZiAoZXJyKSB7CisJCQkJ cHJfZXJyKCJyZXNlcnZlICVkIGZhaWxlZCwgZXJyPSVkXG4iLCBuLCBlcnIpOworCQkJCXJldCA9 IGVycjsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQkJbGFzdCA9IG5vZGUtPnN0YXJ0ICsgbm9k ZS0+c2l6ZTsKKwkJfQorCisJCWZvciAobiA9IDE7IG4gPD0gY291bnQ7IG4rKykgeworCQkJbm9k ZSA9IGt6YWxsb2Moc2l6ZW9mKCpub2RlKSwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoIW5vZGUpIHsK KwkJCQlyZXQgPSAtRU5PTUVNOworCQkJCWdvdG8gb3V0OworCQkJfQorCisJCQlpZiAoIWV4cGVj dF9pbnNlcnQoJm1tLCBub2RlLAorCQkJCQkgICBuLCBuLCBuLAorCQkJCQkgICBtb2RlKSkgewor CQkJCXByX2VycigiJXMgaW5zZXJ0IGZhaWxlZCwgc3RlcCAlZFxuIiwKKwkJCQkgICAgICAgbW9k ZS0+bmFtZSwgbik7CisJCQkJa2ZyZWUobm9kZSk7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCX0K KworCQlkcm1fbW1fZm9yX2VhY2hfbm9kZV9zYWZlKG5vZGUsIG5uLCAmbW0pIHsKKwkJCXU2NCBy ZW07CisKKwkJCWlmIChub2RlLT5jb2xvciAhPSBub2RlLT5zaXplKSB7CisJCQkJcHJfZXJyKCIl cyBpbnZhbGlkIGNvbG9yIHN0b3JlZDogZXhwZWN0ZWQgJWxsZCwgZm91bmQgJWxkXG4iLAorCQkJ CSAgICAgICBtb2RlLT5uYW1lLCBub2RlLT5zaXplLCBub2RlLT5jb2xvcik7CisKKwkJCQlnb3Rv IG91dDsKKwkJCX0KKworCQkJaWYgKGNvbG9yc19hYnV0dChub2RlKSkKKwkJCQlnb3RvIG91dDsK KworCQkJZGl2NjRfdTY0X3JlbShub2RlLT5zdGFydCwgbm9kZS0+c2l6ZSwgJnJlbSk7CisJCQlp ZiAocmVtKSB7CisJCQkJcHJfZXJyKCIlcyBjb2xvcmVkIG5vZGUgbWlzYWxpZ25lZCwgc3RhcnQ9 JWxseCBleHBlY3RlZCBhbGlnbm1lbnQ9JWxsZCBbcmVtPSVsbGRdXG4iLAorCQkJCSAgICAgICBt b2RlLT5uYW1lLCBub2RlLT5zdGFydCwgbm9kZS0+c2l6ZSwgcmVtKTsKKwkJCQlnb3RvIG91dDsK KwkJCX0KKworCQkJZHJtX21tX3JlbW92ZV9ub2RlKG5vZGUpOworCQkJa2ZyZWUobm9kZSk7CisJ CX0KKwl9CisKKwlyZXQgPSAwOworb3V0OgorCWRybV9tbV9mb3JfZWFjaF9ub2RlX3NhZmUobm9k ZSwgbm4sICZtbSkgeworCQlkcm1fbW1fcmVtb3ZlX25vZGUobm9kZSk7CisJCWtmcmVlKG5vZGUp OworCX0KKwlkcm1fbW1fdGFrZWRvd24oJm1tKTsKKwlyZXR1cm4gcmV0OworfQorCiAjaW5jbHVk ZSAiZHJtX3NlbGZ0ZXN0LmMiCiAKIHN0YXRpYyBpbnQgX19pbml0IHRlc3RfZHJtX21tX2luaXQo dm9pZCkKLS0gCjIuMTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==