From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Lechner Subject: [PATCH v4 1/5] drm/tinydrm: Generalize tinydrm_xrgb8888_to_gray8() Date: Mon, 7 Aug 2017 12:39:37 -0500 Message-ID: <1502127581-10517-2-git-send-email-david@lechnology.com> References: <1502127581-10517-1-git-send-email-david@lechnology.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502127581-10517-1-git-send-email-david@lechnology.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, devicetree@vger.kernel.org Cc: Mark Rutland , David Lechner , Kevin Hilman , Sekhar Nori , linux-kernel@vger.kernel.org, Rob Herring , Laurent Pinchart , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org VGhpcyBhZGRzIHBhcmFtZXRlcnMgZm9yIHZhZGRyIGFuZCBjbGlwIHRvIHRpbnlkcm1feHJnYjg4 ODhfdG9fZ3JheTgoKSB0bwptYWtlIGl0IG1vcmUgZ2VuZXJpYy4KCmRtYV9idWZfe2JlZ2luLGVu ZH1fY3B1X2FjY2VzcygpIGFyZSBtb3ZlZCBvdXQgdG8gdGhlIHJlcGFwZXIgZHJpdmVyLgoKUmV0 dXJuIHR5cGUgaXMgY2hhbmdlIHRvIHZvaWQgdG8gc2ltcGxpZnkgZXJyb3IgaGFuZGxpbmcgYnkg Y2FsbGVycy4KClNpZ25lZC1vZmYtYnk6IERhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3ku Y29tPgotLS0KCnY0IGNoYW5nZXM6CiogQ2hhbmdlIHJldHVybiB0eXBlIHRvIHZvaWQuCgoKIGRy aXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1oZWxwZXJzLmMgfCA0MiArKysrKysr KystLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vcmVwYXBlci5jICAg ICAgICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKy0tCiBpbmNsdWRlL2RybS90aW55ZHJtL3Rp bnlkcm0taGVscGVycy5oICAgICAgICAgIHwgIDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNDEgaW5z ZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJt L2NvcmUvdGlueWRybS1oZWxwZXJzLmMKaW5kZXggNzU4MDhiYi4uYmQ2Y2NlMCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3JlL3Rpbnlkcm0taGVscGVycy5jCkBAIC0xODUsNyAr MTg1LDkgQEAgRVhQT1JUX1NZTUJPTCh0aW55ZHJtX3hyZ2I4ODg4X3RvX3JnYjU2NSk7CiAvKioK ICAqIHRpbnlkcm1feHJnYjg4ODhfdG9fZ3JheTggLSBDb252ZXJ0IFhSR0I4ODg4IHRvIGdyYXlz Y2FsZQogICogQGRzdDogOC1iaXQgZ3JheXNjYWxlIGRlc3RpbmF0aW9uIGJ1ZmZlcgorICogQHZh ZGRyOiBYUkdCODg4OCBzb3VyY2UgYnVmZmVyCiAgKiBAZmI6IERSTSBmcmFtZWJ1ZmZlcgorICog QGNsaXA6IENsaXAgcmVjdGFuZ2xlIGFyZWEgdG8gY29weQogICoKICAqIERybSBkb2Vzbid0IGhh dmUgbmF0aXZlIG1vbm9jaHJvbWUgb3IgZ3JheXNjYWxlIHN1cHBvcnQuCiAgKiBTdWNoIGRyaXZl cnMgY2FuIGFubm91bmNlIHRoZSBjb21tb25seSBzdXBwb3J0ZWQgWFIyNCBmb3JtYXQgdG8gdXNl cnNwYWNlCkBAIC0xOTUsNDEgKzE5NywzMSBAQCBFWFBPUlRfU1lNQk9MKHRpbnlkcm1feHJnYjg4 ODhfdG9fcmdiNTY1KTsKICAqIHdoZXJlIDEgbWVhbnMgZm9yZWdyb3VuZCBjb2xvciBhbmQgMCBi YWNrZ3JvdW5kIGNvbG9yLgogICoKICAqIElUVSBCVC42MDEgaXMgdXNlZCBmb3IgdGhlIFJHQiAt PiBsdW1hIChicmlnaHRuZXNzKSBjb252ZXJzaW9uLgotICoKLSAqIFJldHVybnM6Ci0gKiBaZXJv IG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KICAqLwotaW50IHRp bnlkcm1feHJnYjg4ODhfdG9fZ3JheTgodTggKmRzdCwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIpCit2b2lkIHRpbnlkcm1feHJnYjg4ODhfdG9fZ3JheTgodTggKmRzdCwgdm9pZCAqdmFkZHIs IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAorCQkJICAgICAgIHN0cnVjdCBkcm1fY2xpcF9y ZWN0ICpjbGlwKQogewotCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmogPSBkcm1f ZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKLQlzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50ICpp bXBvcnRfYXR0YWNoID0gY21hX29iai0+YmFzZS5pbXBvcnRfYXR0YWNoOwotCXVuc2lnbmVkIGlu dCB4LCB5LCBwaXRjaCA9IGZiLT5waXRjaGVzWzBdOwotCWludCByZXQgPSAwOworCXVuc2lnbmVk IGludCBsZW4gPSAoY2xpcC0+eDIgLSBjbGlwLT54MSkgKiBzaXplb2YodTMyKTsKKwl1bnNpZ25l ZCBpbnQgeCwgeTsKIAl2b2lkICpidWY7CiAJdTMyICpzcmM7CiAKIAlpZiAoV0FSTl9PTihmYi0+ Zm9ybWF0LT5mb3JtYXQgIT0gRFJNX0ZPUk1BVF9YUkdCODg4OCkpCi0JCXJldHVybiAtRUlOVkFM OworCQlyZXR1cm47CiAJLyoKIAkgKiBUaGUgY21hIG1lbW9yeSBpcyB3cml0ZS1jb21iaW5lZCBz byByZWFkcyBhcmUgdW5jYWNoZWQuCiAJICogU3BlZWQgdXAgYnkgZmV0Y2hpbmcgb25lIGxpbmUg YXQgYSB0aW1lLgogCSAqLwotCWJ1ZiA9IGttYWxsb2MocGl0Y2gsIEdGUF9LRVJORUwpOworCWJ1 ZiA9IGttYWxsb2MobGVuLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWJ1ZikKLQkJcmV0dXJuIC1FTk9N RU07Ci0KLQlpZiAoaW1wb3J0X2F0dGFjaCkgewotCQlyZXQgPSBkbWFfYnVmX2JlZ2luX2NwdV9h Y2Nlc3MoaW1wb3J0X2F0dGFjaC0+ZG1hYnVmLAotCQkJCQkgICAgICAgRE1BX0ZST01fREVWSUNF KTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gZXJyX2ZyZWU7Ci0JfQorCQlyZXR1cm47CiAKLQlmb3Ig KHkgPSAwOyB5IDwgZmItPmhlaWdodDsgeSsrKSB7Ci0JCXNyYyA9IGNtYV9vYmotPnZhZGRyICsg KHkgKiBwaXRjaCk7Ci0JCW1lbWNweShidWYsIHNyYywgcGl0Y2gpOworCWZvciAoeSA9IGNsaXAt PnkxOyB5IDwgY2xpcC0+eTI7IHkrKykgeworCQlzcmMgPSB2YWRkciArICh5ICogZmItPnBpdGNo ZXNbMF0pOworCQlzcmMgKz0gY2xpcC0+eDE7CisJCW1lbWNweShidWYsIHNyYywgbGVuKTsKIAkJ c3JjID0gYnVmOwotCQlmb3IgKHggPSAwOyB4IDwgZmItPndpZHRoOyB4KyspIHsKKwkJZm9yICh4 ID0gY2xpcC0+eDE7IHggPCBjbGlwLT54MjsgeCsrKSB7CiAJCQl1OCByID0gKCpzcmMgJiAweDAw ZmYwMDAwKSA+PiAxNjsKIAkJCXU4IGcgPSAoKnNyYyAmIDB4MDAwMGZmMDApID4+IDg7CiAJCQl1 OCBiID0gICpzcmMgJiAweDAwMDAwMGZmOwpAQCAtMjQwLDEzICsyMzIsNyBAQCBpbnQgdGlueWRy bV94cmdiODg4OF90b19ncmF5OCh1OCAqZHN0LCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikK IAkJfQogCX0KIAotCWlmIChpbXBvcnRfYXR0YWNoKQotCQlyZXQgPSBkbWFfYnVmX2VuZF9jcHVf YWNjZXNzKGltcG9ydF9hdHRhY2gtPmRtYWJ1ZiwKLQkJCQkJICAgICBETUFfRlJPTV9ERVZJQ0Up OwotZXJyX2ZyZWU6CiAJa2ZyZWUoYnVmKTsKLQotCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lN Qk9MKHRpbnlkcm1feHJnYjg4ODhfdG9fZ3JheTgpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdGlueWRybS9yZXBhcGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9yZXBhcGVy LmMKaW5kZXggMzM0M2QzZi4uMzBkYzk3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vcmVwYXBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3JlcGFwZXIuYwpA QCAtMTgsNiArMTgsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1 ZGUgPGxpbnV4L2RtYS1idWYuaD4KICNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CiAj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CkBA IC01MjUsMTEgKzUyNiwyMCBAQCBzdGF0aWMgaW50IHJlcGFwZXJfZmJfZGlydHkoc3RydWN0IGRy bV9mcmFtZWJ1ZmZlciAqZmIsCiAJCQkgICAgc3RydWN0IGRybV9jbGlwX3JlY3QgKmNsaXBzLAog CQkJICAgIHVuc2lnbmVkIGludCBudW1fY2xpcHMpCiB7CisJc3RydWN0IGRybV9nZW1fY21hX29i amVjdCAqY21hX29iaiA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIDApOworCXN0cnVjdCBk bWFfYnVmX2F0dGFjaG1lbnQgKmltcG9ydF9hdHRhY2ggPSBjbWFfb2JqLT5iYXNlLmltcG9ydF9h dHRhY2g7CiAJc3RydWN0IHRpbnlkcm1fZGV2aWNlICp0ZGV2ID0gZmItPmRldi0+ZGV2X3ByaXZh dGU7CiAJc3RydWN0IHJlcGFwZXJfZXBkICplcGQgPSBlcGRfZnJvbV90aW55ZHJtKHRkZXYpOwor CXN0cnVjdCBkcm1fY2xpcF9yZWN0IGNsaXA7CiAJdTggKmJ1ZiA9IE5VTEw7CiAJaW50IHJldCA9 IDA7CiAKKwkvKiByZXBhcGVyIGNhbid0IGRvIHBhcnRpYWwgdXBkYXRlcyAqLworCWNsaXAueDEg PSAwOworCWNsaXAueDIgPSBmYi0+d2lkdGg7CisJY2xpcC55MSA9IDA7CisJY2xpcC55MiA9IGZi LT5oZWlnaHQ7CisKIAltdXRleF9sb2NrKCZ0ZGV2LT5kaXJ0eV9sb2NrKTsKIAogCWlmICghZXBk LT5lbmFibGVkKQpAQCAtNTUwLDkgKzU2MCwyMSBAQCBzdGF0aWMgaW50IHJlcGFwZXJfZmJfZGly dHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiAJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAK LQlyZXQgPSB0aW55ZHJtX3hyZ2I4ODg4X3RvX2dyYXk4KGJ1ZiwgZmIpOwotCWlmIChyZXQpCi0J CWdvdG8gb3V0X3VubG9jazsKKwlpZiAoaW1wb3J0X2F0dGFjaCkgeworCQlyZXQgPSBkbWFfYnVm X2JlZ2luX2NwdV9hY2Nlc3MoaW1wb3J0X2F0dGFjaC0+ZG1hYnVmLAorCQkJCQkgICAgICAgRE1B X0ZST01fREVWSUNFKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0X3VubG9jazsKKwl9CisKKwl0 aW55ZHJtX3hyZ2I4ODg4X3RvX2dyYXk4KGJ1ZiwgY21hX29iai0+dmFkZHIsIGZiLCAmY2xpcCk7 CisKKwlpZiAoaW1wb3J0X2F0dGFjaCkgeworCQlyZXQgPSBkbWFfYnVmX2VuZF9jcHVfYWNjZXNz KGltcG9ydF9hdHRhY2gtPmRtYWJ1ZiwKKwkJCQkJICAgICBETUFfRlJPTV9ERVZJQ0UpOworCQlp ZiAocmV0KQorCQkJZ290byBvdXRfdW5sb2NrOworCX0KIAogCXJlcGFwZXJfZ3JheThfdG9fbW9u b19yZXZlcnNlZChidWYsIGZiLT53aWR0aCwgZmItPmhlaWdodCk7CiAKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJzLmggYi9pbmNsdWRlL2RybS90aW55ZHJt L3Rpbnlkcm0taGVscGVycy5oCmluZGV4IGE2YzM4N2YuLmQ1NTRkZWQgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJzLmgKKysrIGIvaW5jbHVkZS9kcm0vdGlu eWRybS90aW55ZHJtLWhlbHBlcnMuaApAQCAtNDMsNyArNDMsOCBAQCB2b2lkIHRpbnlkcm1fc3dh YjE2KHUxNiAqZHN0LCB2b2lkICp2YWRkciwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCiB2 b2lkIHRpbnlkcm1feHJnYjg4ODhfdG9fcmdiNTY1KHUxNiAqZHN0LCB2b2lkICp2YWRkciwKIAkJ CQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKIAkJCQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAq Y2xpcCwgYm9vbCBzd2FwKTsKLWludCB0aW55ZHJtX3hyZ2I4ODg4X3RvX2dyYXk4KHU4ICpkc3Qs IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKK3ZvaWQgdGlueWRybV94cmdiODg4OF90b19n cmF5OCh1OCAqZHN0LCB2b2lkICp2YWRkciwgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCisJ CQkgICAgICAgc3RydWN0IGRybV9jbGlwX3JlY3QgKmNsaXApOwogCiBzdHJ1Y3QgYmFja2xpZ2h0 X2RldmljZSAqdGlueWRybV9vZl9maW5kX2JhY2tsaWdodChzdHJ1Y3QgZGV2aWNlICpkZXYpOwog aW50IHRpbnlkcm1fZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmFj a2xpZ2h0KTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK