From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC v3 11/12] drm/client: Add bootsplash client Date: Thu, 22 Feb 2018 21:06:52 +0100 Message-ID: <20180222200653.19453-12-noralf@tronnes.org> References: <20180222200653.19453-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1752C6EC14 for ; Thu, 22 Feb 2018 20:08:16 +0000 (UTC) In-Reply-To: <20180222200653.19453-1-noralf@tronnes.org> 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: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com List-Id: dri-devel@lists.freedesktop.org SnVzdCBhIGhhY2sgdG8gdGVzdCB0aGUgY2xpZW50IEFQSS4KClNpZ25lZC1vZmYtYnk6IE5vcmFs ZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25uZXMub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9jbGll bnQvS2NvbmZpZyAgICAgICAgICB8ICAgNSArCiBkcml2ZXJzL2dwdS9kcm0vY2xpZW50L01ha2Vm aWxlICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2NsaWVudC9kcm1fYm9vdHNwbGFz aC5jIHwgMjA1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDIxMSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L2NsaWVudC9kcm1fYm9vdHNwbGFzaC5jCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ns aWVudC9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2NsaWVudC9LY29uZmlnCmluZGV4IDczOTAy YWI0NGM3NS4uMTZjZjFlMTQ2MjBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vY2xpZW50 L0tjb25maWcKKysrIGIvZHJpdmVycy9ncHUvZHJtL2NsaWVudC9LY29uZmlnCkBAIC0xNyw0ICsx Nyw5IEBAIGNvbmZpZyBEUk1fQ0xJRU5UX0ZCREVWCiAJaGVscAogCSAgR2VuZXJpYyBmYmRldiBl bXVsYXRpb24KIAorY29uZmlnIERSTV9DTElFTlRfQk9PVFNQTEFTSAorCXRyaXN0YXRlICJEUk0g Qm9vdHNwbGFzaCIKKwloZWxwCisJICBEUk0gQm9vdHNwbGFzaAorCiBlbmRtZW51CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vY2xpZW50L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2Ns aWVudC9NYWtlZmlsZQppbmRleCAzZmY2OTQ0MjlkZWMuLjg2NjA1MzBlNDY0NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2NsaWVudC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0v Y2xpZW50L01ha2VmaWxlCkBAIC0xLDMgKzEsNCBAQAogIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMAogCiBvYmotJChDT05GSUdfRFJNX0NMSUVOVF9GQkRFVikgKz0gZHJtX2ZiZGV2 Lm8KK29iai0kKENPTkZJR19EUk1fQ0xJRU5UX0JPT1RTUExBU0gpICs9IGRybV9ib290c3BsYXNo Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9jbGllbnQvZHJtX2Jvb3RzcGxhc2guYyBi L2RyaXZlcnMvZ3B1L2RybS9jbGllbnQvZHJtX2Jvb3RzcGxhc2guYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQzYzcwMzYwNmU3NAotLS0gL2Rldi9udWxsCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9jbGllbnQvZHJtX2Jvb3RzcGxhc2guYwpAQCAtMCwwICsxLDIwNSBA QAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKworI2luY2x1ZGUgPGxpbnV4 L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbW9k dWxlLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1 ZS5oPgorCisjaW5jbHVkZSA8ZHJtL2RybV9jbGllbnQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Ry di5oPgorI2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tb2Rl cy5oPgorI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KKworc3RydWN0IGRybV9ib290c3BsYXNo IHsKKwlzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudDsKKwlzdHJ1Y3QgZHJtX2NsaWVudF9k aXNwbGF5ICpkaXNwbGF5OworCXN0cnVjdCBkcm1fY2xpZW50X2J1ZmZlciAqYnVmZmVyWzJdOwor CXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrZXI7CisJYm9vbCBzdG9wOworfTsKKworc3RhdGljIHUz MiBkcm1fYm9vdHNwbGFzaF9jb2xvcl90YWJsZVszXSA9IHsKKwkweDAwZmYwMDAwLCAweDAwMDBm ZjAwLCAweDAwMDAwMGZmLAorfTsKKworLyogRHJhdyBhIGJveCB3aXRoIGNoYW5naW5nIGNvbG9y cyAqLworc3RhdGljIHZvaWQKK2RybV9ib290c3BsYXNoX2RyYXcoc3RydWN0IGRybV9jbGllbnRf YnVmZmVyICpidWZmZXIsIHVuc2lnbmVkIGludCBzZXF1ZW5jZSkKK3sKKwl1bnNpZ25lZCBpbnQg eCwgeTsKKwl1MzIgKnBpeDsKKworCXBpeCA9IGJ1ZmZlci0+dmFkZHI7CisJcGl4ICs9ICgoYnVm ZmVyLT5oZWlnaHQgLyAyKSAtIDUwKSAqIGJ1ZmZlci0+d2lkdGg7CisJcGl4ICs9IChidWZmZXIt PndpZHRoIC8gMikgLSA1MDsKKworCWZvciAoeSA9IDA7IHkgPCAxMDA7IHkrKykgeworCQlmb3Ig KHggPSAwOyB4IDwgMTAwOyB4KyspCisJCQkqcGl4KysgPSBkcm1fYm9vdHNwbGFzaF9jb2xvcl90 YWJsZVtzZXF1ZW5jZV07CisJCXBpeCArPSBidWZmZXItPndpZHRoIC0gMTAwOworCX0KK30KKwor c3RhdGljIHZvaWQgZHJtX2Jvb3RzcGxhc2hfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKK3sKKwlzdHJ1Y3QgZHJtX2Jvb3RzcGxhc2ggKnNwbGFzaCA9IGNvbnRhaW5lcl9vZih3b3Jr LCBzdHJ1Y3QgZHJtX2Jvb3RzcGxhc2gsCisJCQkJCQkgICAgIHdvcmtlcik7CisJc3RydWN0IGRy bV9ldmVudCAqZXZlbnQ7CisJdW5zaWduZWQgaW50IGkgPSAwLCBzZXF1ZW5jZSA9IDAsIGZiX2lk OworCWludCByZXQ7CisKKwl3aGlsZSAoIXNwbGFzaC0+c3RvcCkgeworCQkvKiBBcmUgd2Ugc3Rp bGwgaW4gY2hhcmdlPyAqLworCQlmYl9pZCA9IGRybV9jbGllbnRfZGlzcGxheV9jdXJyZW50X2Zi KHNwbGFzaC0+ZGlzcGxheSk7CisJCWlmIChmYl9pZCAhPSBzcGxhc2gtPmJ1ZmZlcltpXS0+ZmJf aWRzWzBdKQorCQkJYnJlYWs7CisKKwkJLyoKKwkJICogV2UgY2FuIHJhY2Ugd2l0aCB1c2Vyc3Bh Y2UgaGVyZSBiZXR3ZWVuIGNoZWNraW5nIGFuZCBkb2luZworCQkgKiB0aGUgcGFnZSBmbGlwLCBz byBkb3VibGUgYnVmZmVyaW5nIGlzbid0IHN1Y2ggYSBnb29kIGlkZWEuCisJCSAqIFRlYXJpbmcg cHJvYmFibHkgaXNuJ3QgYSBwcm9ibGVtIG9uIGEgcHJlc3VtYWJseSBzbWFsbCBzcGxhc2gKKwkJ ICogYW5pbWF0aW9uLiBJJ3ZlIGtlcHQgaXQgdG8gdGVzdCB0aGUgcGFnZSBmbGlwIGNvZGUuCisJ CSAqLworCisJCWkgPSAhaTsKKwkJZHJtX2Jvb3RzcGxhc2hfZHJhdyhzcGxhc2gtPmJ1ZmZlcltp XSwgc2VxdWVuY2UrKyk7CisJCWlmIChzZXF1ZW5jZSA9PSAzKQorCQkJc2VxdWVuY2UgPSAwOwor CisJCXJldCA9IGRybV9jbGllbnRfZGlzcGxheV9wYWdlX2ZsaXAoc3BsYXNoLT5kaXNwbGF5LAor CQkJCQkJICAgc3BsYXNoLT5idWZmZXJbaV0tPmZiX2lkc1swXSwKKwkJCQkJCSAgIHRydWUpOwor CQlpZiAoIXJldCkgeworCQkJZXZlbnQgPSBkcm1fY2xpZW50X3JlYWRfZXZlbnQoc3BsYXNoLT5j bGllbnQsIHRydWUpOworCQkJaWYgKCFJU19FUlIoZXZlbnQpKQorCQkJCWtmcmVlKGV2ZW50KTsK KwkJfQorCQltc2xlZXAoNTAwKTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgMjsgaSsrKQorCQlk cm1fY2xpZW50X2ZyYW1lYnVmZmVyX2RlbGV0ZShzcGxhc2gtPmJ1ZmZlcltpXSk7CisJZHJtX2Ns aWVudF9kaXNwbGF5X2ZyZWUoc3BsYXNoLT5kaXNwbGF5KTsKK30KKworc3RhdGljIGludCBkcm1f Ym9vdHNwbGFzaF9zZXR1cChzdHJ1Y3QgZHJtX2Jvb3RzcGxhc2ggKnNwbGFzaCkKK3sKKwlzdHJ1 Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCA9IHNwbGFzaC0+Y2xpZW50OworCXN0cnVjdCBkcm1f Y2xpZW50X2J1ZmZlciAqYnVmZmVyWzJdOworCXN0cnVjdCBkcm1fY2xpZW50X2Rpc3BsYXkgKmRp c3BsYXk7CisJc3RydWN0IGRybV9tb2RlX21vZGVpbmZvICptb2RlOworCWludCByZXQsIGk7CisK KwlkaXNwbGF5ID0gZHJtX2NsaWVudF9kaXNwbGF5X2dldF9maXJzdF9lbmFibGVkKGNsaWVudCwg ZmFsc2UpOworCWlmIChJU19FUlIoZGlzcGxheSkpCisJCXJldHVybiBQVFJfRVJSKGRpc3BsYXkp OworCWlmICghZGlzcGxheSkKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwltb2RlID0gZHJtX2NsaWVu dF9kaXNwbGF5X2ZpcnN0X21vZGUoZGlzcGxheSk7CisJaWYgKCFtb2RlKSB7CisJCXJldCA9IC1F SU5WQUw7CisJCWdvdG8gZXJyX2ZyZWVfZGlzcGxheTsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwg MjsgaSsrKSB7CisJCWJ1ZmZlcltpXSA9IGRybV9jbGllbnRfZnJhbWVidWZmZXJfY3JlYXRlKGNs aWVudCwgbW9kZSwKKwkJCQkJCQkgIERSTV9GT1JNQVRfWFJHQjg4ODgpOworCQlpZiAoSVNfRVJS KGJ1ZmZlcltpXSkpIHsKKwkJCXJldCA9IFBUUl9FUlIoYnVmZmVyW2ldKTsKKwkJCWdvdG8gZXJy X2ZyZWVfYnVmZmVyOworCQl9CisJfQorCisJcmV0ID0gZHJtX2NsaWVudF9kaXNwbGF5X2NvbW1p dF9tb2RlKGRpc3BsYXksIGJ1ZmZlclswXS0+ZmJfaWRzWzBdLCBtb2RlKTsKKwlpZiAocmV0KQor CQlnb3RvIGVycl9mcmVlX2J1ZmZlcjsKKworCXNwbGFzaC0+ZGlzcGxheSA9IGRpc3BsYXk7CisJ c3BsYXNoLT5idWZmZXJbMF0gPSBidWZmZXJbMF07CisJc3BsYXNoLT5idWZmZXJbMV0gPSBidWZm ZXJbMV07CisKKwlzY2hlZHVsZV93b3JrKCZzcGxhc2gtPndvcmtlcik7CisKKwlyZXR1cm4gMDsK KworZXJyX2ZyZWVfYnVmZmVyOgorCWZvciAoaS0tOyBpID49IDA7IGktLSkKKwkJZHJtX2NsaWVu dF9mcmFtZWJ1ZmZlcl9kZWxldGUoYnVmZmVyW2ldKTsKK2Vycl9mcmVlX2Rpc3BsYXk6CisJZHJt X2NsaWVudF9kaXNwbGF5X2ZyZWUoZGlzcGxheSk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0 aWMgaW50IGRybV9ib290c3BsYXNoX2NsaWVudF9ob3RwbHVnKHN0cnVjdCBkcm1fY2xpZW50X2Rl diAqY2xpZW50KQoreworCXN0cnVjdCBkcm1fYm9vdHNwbGFzaCAqc3BsYXNoID0gY2xpZW50LT5w cml2YXRlOworCWludCByZXQgPSAwOworCisJaWYgKCFzcGxhc2gtPmRpc3BsYXkpCisJCXJldCA9 IGRybV9ib290c3BsYXNoX3NldHVwKHNwbGFzaCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0 aWMgaW50IGRybV9ib290c3BsYXNoX2NsaWVudF9uZXcoc3RydWN0IGRybV9jbGllbnRfZGV2ICpj bGllbnQpCit7CisJc3RydWN0IGRybV9ib290c3BsYXNoICpzcGxhc2g7CisKKwlzcGxhc2ggPSBr emFsbG9jKHNpemVvZigqc3BsYXNoKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFzcGxhc2gpCisJCXJl dHVybiAtRU5PTUVNOworCisJSU5JVF9XT1JLKCZzcGxhc2gtPndvcmtlciwgZHJtX2Jvb3RzcGxh c2hfd29ya2VyKTsKKworCXNwbGFzaC0+Y2xpZW50ID0gY2xpZW50OworCWNsaWVudC0+cHJpdmF0 ZSA9IHNwbGFzaDsKKworCS8qCisJICogdmM0IGlzbid0IGRvbmUgd2l0aCBpdCdzIHNldHVwIHdo ZW4gZHJtX2Rldl9yZWdpc3RlcigpIGlzIGNhbGxlZC4KKwkgKiBJdCBzaG91bGQgaGF2ZSBzaG91 bGRuJ3QgaXQ/CisJICogU28gdG8ga2VlcCBpdCBmcm9tIGNyYXNoaW5nIGRlZmVyIHNldHVwIHRv IGhvdHBsdWcuLi4KKwkgKi8KKwlpZiAoY2xpZW50LT5kZXYtPm1vZGVfY29uZmlnLm1heF93aWR0 aCkKKwkJZHJtX2Jvb3RzcGxhc2hfY2xpZW50X2hvdHBsdWcoY2xpZW50KTsKKworCXJldHVybiAw OworfQorCitzdGF0aWMgaW50IGRybV9ib290c3BsYXNoX2NsaWVudF9yZW1vdmUoc3RydWN0IGRy bV9jbGllbnRfZGV2ICpjbGllbnQpCit7CisJc3RydWN0IGRybV9ib290c3BsYXNoICpzcGxhc2gg PSBjbGllbnQtPnByaXZhdGU7CisKKwlpZiAoc3BsYXNoLT5kaXNwbGF5KSB7CisJCXNwbGFzaC0+ c3RvcCA9IHRydWU7CisJCWZsdXNoX3dvcmsoJnNwbGFzaC0+d29ya2VyKTsKKwl9CisKKwlrZnJl ZShzcGxhc2gpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Ns aWVudF9mdW5jcyBkcm1fYm9vdHNwbGFzaF9jbGllbnRfZnVuY3MgPSB7CisJLm5hbWUJCT0gImRy bV9ib290c3BsYXNoIiwKKwkubmV3CQk9IGRybV9ib290c3BsYXNoX2NsaWVudF9uZXcsCisJLnJl bW92ZQkJPSBkcm1fYm9vdHNwbGFzaF9jbGllbnRfcmVtb3ZlLAorCS5ob3RwbHVnCT0gZHJtX2Jv b3RzcGxhc2hfY2xpZW50X2hvdHBsdWcsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBkcm1fYm9v dHNwbGFzaF9pbml0KHZvaWQpCit7CisJcmV0dXJuIGRybV9jbGllbnRfcmVnaXN0ZXIoJmRybV9i b290c3BsYXNoX2NsaWVudF9mdW5jcyk7Cit9Cittb2R1bGVfaW5pdChkcm1fYm9vdHNwbGFzaF9p bml0KTsKKworc3RhdGljIHZvaWQgX19leGl0IGRybV9ib290c3BsYXNoX2V4aXQodm9pZCkKK3sK Kwlkcm1fY2xpZW50X3VucmVnaXN0ZXIoJmRybV9ib290c3BsYXNoX2NsaWVudF9mdW5jcyk7Cit9 Cittb2R1bGVfZXhpdChkcm1fYm9vdHNwbGFzaF9leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQ TCIpOwotLSAKMi4xNS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK