From: Bartosz Golaszewski Subject: [PATCH] drm: tilcdc: implement palette loading for rev1 Date: Fri, 21 Oct 2016 19:14:09 +0200 Message-ID: <1477070049-9848-1-git-send-email-bgolaszewski@baylibre.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x231.google.com (mail-lf0-x231.google.com [IPv6:2a00:1450:4010:c07::231]) by gabe.freedesktop.org (Postfix) with ESMTPS id 69D5D6ED90 for ; Fri, 21 Oct 2016 17:14:22 +0000 (UTC) Received: by mail-lf0-x231.google.com with SMTP id b81so143227095lfe.1 for ; Fri, 21 Oct 2016 10:14:22 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jyri Sarha , Tomi Valkeinen , David Airlie , Kevin Hilman , Michael Turquette , Sekhar Nori Cc: Peter Ujfalusi , Bartosz Golaszewski , LKML , linux-drm , Laurent Pinchart List-Id: dri-devel@lists.freedesktop.org UmV2aXNpb24gMSBvZiB0aGUgSVAgZG9lc24ndCB3b3JrIGlmIHdlIGRvbid0IGxvYWQgdGhlIHBh bGV0dGUgKGV2ZW4KaWYgaXQncyBub3QgdXNlZCwgd2hpY2ggaXMgdGhlIGNhc2UgZm9yIHRoZSBS R0I1NjUgZm9ybWF0KS4KCkFkZCBhIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIHRpbGNkY19jcnRjX2Vu YWJsZSgpIHdoaWNoIHBlcmZvcm1zIGFsbApyZXF1aXJlZCBhY3Rpb25zIGlmIHdlJ3JlIGRlYWxp bmcgd2l0aCBhIHJldjEgY2hpcC4KClNpZ25lZC1vZmYtYnk6IEJhcnRvc3ogR29sYXN6ZXdza2kg PGJnb2xhc3pld3NraUBiYXlsaWJyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90 aWxjZGNfY3J0Yy5jIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAx IGZpbGUgY2hhbmdlZCwgODEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS90aWxjZGMvdGlsY2RjX2NydGMuYwppbmRleCA4N2NmZGU5Li5jYzk0Y2JiIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19jcnRjLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3RpbGNkYy90aWxjZGNfY3J0Yy5jCkBAIC0yMSwxMSArMjEsMTQgQEAKICNpbmNsdWRlIDxk cm0vZHJtX2ZsaXBfd29yay5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAj aW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CisjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5o PgogCiAjaW5jbHVkZSAidGlsY2RjX2Rydi5oIgogI2luY2x1ZGUgInRpbGNkY19yZWdzLmgiCiAK LSNkZWZpbmUgVElMQ0RDX1ZCTEFOS19TQUZFVFlfVEhSRVNIT0xEX1VTIDEwMDAKKyNkZWZpbmUg VElMQ0RDX1ZCTEFOS19TQUZFVFlfVEhSRVNIT0xEX1VTCTEwMDAKKyNkZWZpbmUgVElMQ0RDX1JF VjFfUEFMRVRURV9TSVpFCQkzMgorI2RlZmluZSBUSUxDRENfUkVWMV9QQUxFVFRFX0ZJUlNUX0VO VFJZCQkweDQwMDAKIAogc3RydWN0IHRpbGNkY19jcnRjIHsKIAlzdHJ1Y3QgZHJtX2NydGMgYmFz ZTsKQEAgLTUzLDYgKzU2LDEwIEBAIHN0cnVjdCB0aWxjZGNfY3J0YyB7CiAKIAlpbnQgc3luY19s b3N0X2NvdW50OwogCWJvb2wgZnJhbWVfaW50YWN0OworCisJZG1hX2FkZHJfdCBwYWxldHRlX2Rt YV9oYW5kbGU7CisJdm9pZCAqcGFsZXR0ZV9iYXNlOworCXN0cnVjdCBjb21wbGV0aW9uIHBhbGV0 dGVfbG9hZGVkOwogfTsKICNkZWZpbmUgdG9fdGlsY2RjX2NydGMoeCkgY29udGFpbmVyX29mKHgs IHN0cnVjdCB0aWxjZGNfY3J0YywgYmFzZSkKIApAQCAtMTAwLDYgKzEwNyw1NSBAQCBzdGF0aWMg dm9pZCBzZXRfc2Nhbm91dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiKQogCXRpbGNkY19jcnRjLT5jdXJyX2ZiID0gZmI7CiB9CiAKKy8qCisgKiBUaGUg ZHJpdmVyIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHRoZSBSR0I1NjUgZm9ybWF0IGZvciByZXZp c2lvbiAxLiBGb3IKKyAqIDE2IGJpdHMtcGVyLXBpeGVsIHRoZSBwYWxldHRlIGJsb2NrIGlzIGJ5 cGFzc2VkLCBidXQgdGhlIGZpcnN0IDMyIGJ5dGVzIG9mCisgKiB0aGUgZnJhbWVidWZmZXIgYXJl IHN0aWxsIGNvbnNpZGVyZWQgcGFsZXR0ZS4gVGhlIGZpcnN0IDE2LWJpdCBlbnRyeSBtdXN0Cisg KiBiZSAweDQwMDAgd2hpbGUgYWxsIG90aGVyIGVudHJpZXMgbXVzdCBiZSB6ZXJvZWQuCisgKi8K K3N0YXRpYyB2b2lkIHRpbGNkY19jcnRjX2xvYWRfcGFsZXR0ZShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCit7CisJdTMyIGRtYV9mYl9iYXNlLCBkbWFfZmJfY2VpbGluZywgcmFzdGVyX2N0bDsKKwlz dHJ1Y3QgdGlsY2RjX2NydGMgKnRpbGNkY19jcnRjOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7 CisJdTE2ICpmaXJzdF9lbnRyeTsKKworCWRldiA9IGNydGMtPmRldjsKKwl0aWxjZGNfY3J0YyA9 IHRvX3RpbGNkY19jcnRjKGNydGMpOworCWZpcnN0X2VudHJ5ID0gdGlsY2RjX2NydGMtPnBhbGV0 dGVfYmFzZTsKKworCSpmaXJzdF9lbnRyeSA9IFRJTENEQ19SRVYxX1BBTEVUVEVfRklSU1RfRU5U Ulk7CisKKwlkbWFfZmJfYmFzZSA9IHRpbGNkY19yZWFkKGRldiwgTENEQ19ETUFfRkJfQkFTRV9B RERSXzBfUkVHKTsKKwlkbWFfZmJfY2VpbGluZyA9IHRpbGNkY19yZWFkKGRldiwgTENEQ19ETUFf RkJfQ0VJTElOR19BRERSXzBfUkVHKTsKKwlyYXN0ZXJfY3RsID0gdGlsY2RjX3JlYWQoZGV2LCBM Q0RDX1JBU1RFUl9DVFJMX1JFRyk7CisKKwkvKiBUZWxsIHRoZSBMQ0RDIHdoZXJlIHRoZSBwYWxl dHRlIGlzIGxvY2F0ZWQuICovCisJdGlsY2RjX3dyaXRlKGRldiwgTENEQ19ETUFfRkJfQkFTRV9B RERSXzBfUkVHLAorCQkgICAgIHRpbGNkY19jcnRjLT5wYWxldHRlX2RtYV9oYW5kbGUpOworCXRp bGNkY193cml0ZShkZXYsIExDRENfRE1BX0ZCX0NFSUxJTkdfQUREUl8wX1JFRywKKwkJICAgICAo dTMyKXRpbGNkY19jcnRjLT5wYWxldHRlX2RtYV9oYW5kbGUKKwkJCQkrIFRJTENEQ19SRVYxX1BB TEVUVEVfU0laRSAtIDEpOworCisJLyogTG9hZCBpdC4gKi8KKwl0aWxjZGNfY2xlYXIoZGV2LCBM Q0RDX1JBU1RFUl9DVFJMX1JFRywKKwkJICAgICBMQ0RDX1BBTEVUVEVfTE9BRF9NT0RFKERBVEFf T05MWSkpOworCXRpbGNkY19zZXQoZGV2LCBMQ0RDX1JBU1RFUl9DVFJMX1JFRywKKwkJICAgTENE Q19QQUxFVFRFX0xPQURfTU9ERShQQUxFVFRFX09OTFkpKTsKKworCS8qIEVuYWJsZSB0aGUgTENE QyBhbmQgd2FpdCBmb3IgcGFsZXR0ZSB0byBiZSBsb2FkZWQuICovCisJdGlsY2RjX3NldChkZXYs IExDRENfUkFTVEVSX0NUUkxfUkVHLCBMQ0RDX1YxX1BMX0lOVF9FTkEpOworCXRpbGNkY19zZXQo ZGV2LCBMQ0RDX1JBU1RFUl9DVFJMX1JFRywgTENEQ19SQVNURVJfRU5BQkxFKTsKKworCXdhaXRf Zm9yX2NvbXBsZXRpb24oJnRpbGNkY19jcnRjLT5wYWxldHRlX2xvYWRlZCk7CisKKwkvKiBSZXN0 b3JlIHRoZSByZWdpc3RlcnMuICovCisJdGlsY2RjX2NsZWFyKGRldiwgTENEQ19SQVNURVJfQ1RS TF9SRUcsIExDRENfUkFTVEVSX0VOQUJMRSk7CisJdGlsY2RjX3dyaXRlKGRldiwgTENEQ19ETUFf RkJfQkFTRV9BRERSXzBfUkVHLCBkbWFfZmJfYmFzZSk7CisJdGlsY2RjX3dyaXRlKGRldiwgTENE Q19ETUFfRkJfQ0VJTElOR19BRERSXzBfUkVHLCBkbWFfZmJfY2VpbGluZyk7CisJdGlsY2RjX3dy aXRlKGRldiwgTENEQ19SQVNURVJfQ1RSTF9SRUcsIHJhc3Rlcl9jdGwpOworfQorCiBzdGF0aWMg dm9pZCB0aWxjZGNfY3J0Y19lbmFibGVfaXJxcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewog CXN0cnVjdCB0aWxjZGNfZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwpAQCAt MTU0LDYgKzIxMCw3IEBAIHN0YXRpYyB2b2lkIHRpbGNkY19jcnRjX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlz dHJ1Y3QgdGlsY2RjX2NydGMgKnRpbGNkY19jcnRjID0gdG9fdGlsY2RjX2NydGMoY3J0Yyk7CisJ c3RydWN0IHRpbGNkY19kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKIAlX QVJOX09OKCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmNydGMtPm11dGV4KSk7CiAKQEAgLTE2NCw2 ICsyMjEsOSBAQCBzdGF0aWMgdm9pZCB0aWxjZGNfY3J0Y19lbmFibGUoc3RydWN0IGRybV9jcnRj ICpjcnRjKQogCiAJcmVzZXQoY3J0Yyk7CiAKKwlpZiAocHJpdi0+cmV2ID09IDEgJiYgIWNvbXBs ZXRpb25fZG9uZSgmdGlsY2RjX2NydGMtPnBhbGV0dGVfbG9hZGVkKSkKKwkJdGlsY2RjX2NydGNf bG9hZF9wYWxldHRlKGNydGMpOworCiAJdGlsY2RjX2NydGNfZW5hYmxlX2lycXMoZGV2KTsKIAog CXRpbGNkY19jbGVhcihkZXYsIExDRENfRE1BX0NUUkxfUkVHLCBMQ0RDX0RVQUxfRlJBTUVfQlVG RkVSX0VOQUJMRSk7CkBAIC0yNDUsNiArMzA1LDEwIEBAIHN0YXRpYyB2b2lkIHRpbGNkY19jcnRj X2Rlc3Ryb3koc3RydWN0IGRybV9jcnRjICpjcnRjKQogCW9mX25vZGVfcHV0KGNydGMtPnBvcnQp OwogCWRybV9jcnRjX2NsZWFudXAoY3J0Yyk7CiAJZHJtX2ZsaXBfd29ya19jbGVhbnVwKCZ0aWxj ZGNfY3J0Yy0+dW5yZWZfd29yayk7CisKKwlkbWFfZnJlZV9jb2hlcmVudChjcnRjLT5kZXYtPmRl diwgVElMQ0RDX1JFVjFfUEFMRVRURV9TSVpFLAorCQkJICB0aWxjZGNfY3J0Yy0+cGFsZXR0ZV9i YXNlLAorCQkJICB0aWxjZGNfY3J0Yy0+cGFsZXR0ZV9kbWFfaGFuZGxlKTsKIH0KIAogaW50IHRp bGNkY19jcnRjX3VwZGF0ZV9mYihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCkBAIC04MDQsNiArODY4 LDE0IEBAIGlycXJldHVybl90IHRpbGNkY19jcnRjX2lycShzdHJ1Y3QgZHJtX2NydGMgKmNydGMp CiAJCWRldl9lcnJfcmF0ZWxpbWl0ZWQoZGV2LT5kZXYsICIlcygweCUwOHgpOiBGSUZPIHVuZGVy Zm93IiwKIAkJCQkgICAgX19mdW5jX18sIHN0YXQpOwogCisJaWYgKHByaXYtPnJldiA9PSAxKSB7 CisJCWlmIChzdGF0ICYgTENEQ19QTF9MT0FEX0RPTkUpIHsKKwkJCWNvbXBsZXRlKCZ0aWxjZGNf Y3J0Yy0+cGFsZXR0ZV9sb2FkZWQpOworCQkJdGlsY2RjX2NsZWFyKGRldiwKKwkJCQkgICAgIExD RENfUkFTVEVSX0NUUkxfUkVHLCBMQ0RDX1YxX1BMX0lOVF9FTkEpOworCQl9CisJfQorCiAJLyog Rm9yIHJldmlzaW9uIDIgb25seSAqLwogCWlmIChwcml2LT5yZXYgPT0gMikgewogCQlpZiAoc3Rh dCAmIExDRENfRlJBTUVfRE9ORSkgewpAQCAtODQ1LDYgKzkxNywxNCBAQCBzdHJ1Y3QgZHJtX2Ny dGMgKnRpbGNkY19jcnRjX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4g TlVMTDsKIAl9CiAKKwlpbml0X2NvbXBsZXRpb24oJnRpbGNkY19jcnRjLT5wYWxldHRlX2xvYWRl ZCk7CisJdGlsY2RjX2NydGMtPnBhbGV0dGVfYmFzZSA9IGRtYV96YWxsb2NfY29oZXJlbnQoZGV2 LT5kZXYsCisJCQkJCVRJTENEQ19SRVYxX1BBTEVUVEVfU0laRSwKKwkJCQkJJnRpbGNkY19jcnRj LT5wYWxldHRlX2RtYV9oYW5kbGUsCisJCQkJCUdGUF9LRVJORUwpOworCWlmICghdGlsY2RjX2Ny dGMtPnBhbGV0dGVfYmFzZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKIAljcnRjID0g JnRpbGNkY19jcnRjLT5iYXNlOwogCiAJcmV0ID0gdGlsY2RjX3BsYW5lX2luaXQoZGV2LCAmdGls Y2RjX2NydGMtPnByaW1hcnkpOwotLSAKMi45LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=