From: Stephane Viau Subject: [PATCH 4/4] drm/msm/mdp4: add YUV format support Date: Mon, 8 Dec 2014 10:48:59 -0500 Message-ID: <1418053739-9386-5-git-send-email-sviau@codeaurora.org> References: <1418053739-9386-1-git-send-email-sviau@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1418053739-9386-1-git-send-email-sviau@codeaurora.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: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, gbeeresh@codeaurora.org List-Id: linux-arm-msm@vger.kernel.org RnJvbTogQmVlcmVzaCBHb3BhbCA8Z2JlZXJlc2hAY29kZWF1cm9yYS5vcmc+CgpUaGUgcGF0Y2gg YWRkIHN1cHBvcnQgZm9yIFlVViBmcmFtZSBmb3JtYXQKZm9yIE1EUDQgcGxhdGZvcm0uCgpTaWdu ZWQtb2ZmLWJ5OiBCZWVyZXNoIEdvcGFsIDxnYmVlcmVzaEBjb2RlYXVyb3JhLm9yZz4KU2lnbmVk LW9mZi1ieTogU3RlcGhhbmUgVmlhdSA8c3ZpYXVAY29kZWF1cm9yYS5vcmc+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL21zbS9tZHAvbWRwNC9tZHA0X3BsYW5lLmMgfCAxMDQgKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA0L21kcDRf cGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jCmluZGV4 IDc2ZDBhNDAuLjZlM2MxZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21k cDQvbWRwNF9wbGFuZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9w bGFuZS5jCkBAIC0xNyw2ICsxNyw4IEBACiAKICNpbmNsdWRlICJtZHA0X2ttcy5oIgogCisjZGVm aW5lIERPV05fU0NBTEVfTUFYCTgKKyNkZWZpbmUgVVBfU0NBTEVfTUFYCTgKIAogc3RydWN0IG1k cDRfcGxhbmUgewogCXN0cnVjdCBkcm1fcGxhbmUgYmFzZTsKQEAgLTEzNSwxMCArMTM3LDYgQEAg c3RhdGljIHZvaWQgbWRwNF9wbGFuZV9zZXRfc2Nhbm91dChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAlzdHJ1Y3QgbWRwNF9wbGFuZSAqbWRwNF9wbGFuZSA9IHRvX21kcDRfcGxhbmUocGxhbmUp OwogCXN0cnVjdCBtZHA0X2ttcyAqbWRwNF9rbXMgPSBnZXRfa21zKHBsYW5lKTsKIAllbnVtIG1k cDRfcGlwZSBwaXBlID0gbWRwNF9wbGFuZS0+cGlwZTsKLQl1aW50MzJfdCBpb3ZhID0gbXNtX2Zy YW1lYnVmZmVyX2lvdmEoZmIsIG1kcDRfa21zLT5pZCwgMCk7Ci0KLQlEQkcoIiVzOiBzZXRfc2Nh bm91dDogJTA4eCAoJXUpIiwgbWRwNF9wbGFuZS0+bmFtZSwKLQkJCWlvdmEsIGZiLT5waXRjaGVz WzBdKTsKIAogCW1kcDRfd3JpdGUobWRwNF9rbXMsIFJFR19NRFA0X1BJUEVfU1JDX1NUUklERV9B KHBpcGUpLAogCQkJTURQNF9QSVBFX1NSQ19TVFJJREVfQV9QMChmYi0+cGl0Y2hlc1swXSkgfApA QCAtMTQ4LDExICsxNDYsNDUgQEAgc3RhdGljIHZvaWQgbWRwNF9wbGFuZV9zZXRfc2Nhbm91dChz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCU1EUDRfUElQRV9TUkNfU1RSSURFX0JfUDIoZmIt PnBpdGNoZXNbMl0pIHwKIAkJCU1EUDRfUElQRV9TUkNfU1RSSURFX0JfUDMoZmItPnBpdGNoZXNb M10pKTsKIAotCW1kcDRfd3JpdGUobWRwNF9rbXMsIFJFR19NRFA0X1BJUEVfU1JDUDBfQkFTRShw aXBlKSwgaW92YSk7CisJbWRwNF93cml0ZShtZHA0X2ttcywgUkVHX01EUDRfUElQRV9TUkNQMF9C QVNFKHBpcGUpLAorCQkJbXNtX2ZyYW1lYnVmZmVyX2lvdmEoZmIsIG1kcDRfa21zLT5pZCwgMCkp OworCW1kcDRfd3JpdGUobWRwNF9rbXMsIFJFR19NRFA0X1BJUEVfU1JDUDFfQkFTRShwaXBlKSwK KwkJCW1zbV9mcmFtZWJ1ZmZlcl9pb3ZhKGZiLCBtZHA0X2ttcy0+aWQsIDEpKTsKKwltZHA0X3dy aXRlKG1kcDRfa21zLCBSRUdfTURQNF9QSVBFX1NSQ1AyX0JBU0UocGlwZSksCisJCQltc21fZnJh bWVidWZmZXJfaW92YShmYiwgbWRwNF9rbXMtPmlkLCAyKSk7CisJbWRwNF93cml0ZShtZHA0X2tt cywgUkVHX01EUDRfUElQRV9TUkNQM19CQVNFKHBpcGUpLAorCQkJbXNtX2ZyYW1lYnVmZmVyX2lv dmEoZmIsIG1kcDRfa21zLT5pZCwgMykpOwogCiAJcGxhbmUtPmZiID0gZmI7CiB9CiAKK3N0YXRp YyB2b2lkIG1kcDRfd3JpdGVfY3NjX2NvbmZpZyhzdHJ1Y3QgbWRwNF9rbXMgKm1kcDRfa21zLAor CQllbnVtIG1kcDRfcGlwZSBwaXBlLCBzdHJ1Y3QgY3NjX2NmZyAqY3NjKQoreworCWludCBpOwor CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3NjLT5tYXRyaXgpOyBpKyspIHsKKwkJbWRw NF93cml0ZShtZHA0X2ttcywgUkVHX01EUDRfUElQRV9DU0NfTVYocGlwZSwgaSksCisJCQkJY3Nj LT5tYXRyaXhbaV0pOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGNzYy0+cG9z dF9iaWFzKSA7IGkrKykgeworCQltZHA0X3dyaXRlKG1kcDRfa21zLCBSRUdfTURQNF9QSVBFX0NT Q19QUkVfQlYocGlwZSwgaSksCisJCQkJY3NjLT5wcmVfYmlhc1tpXSk7CisKKwkJbWRwNF93cml0 ZShtZHA0X2ttcywgUkVHX01EUDRfUElQRV9DU0NfUE9TVF9CVihwaXBlLCBpKSwKKwkJCQljc2Mt PnBvc3RfYmlhc1tpXSk7CisJfQorCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY3NjLT5w b3N0X2NsYW1wKSA7IGkrKykgeworCQltZHA0X3dyaXRlKG1kcDRfa21zLCBSRUdfTURQNF9QSVBF X0NTQ19QUkVfTFYocGlwZSwgaSksCisJCQkJY3NjLT5wcmVfY2xhbXBbaV0pOworCisJCW1kcDRf d3JpdGUobWRwNF9rbXMsIFJFR19NRFA0X1BJUEVfQ1NDX1BPU1RfTFYocGlwZSwgaSksCisJCQkJ Y3NjLT5wb3N0X2NsYW1wW2ldKTsKKwl9Cit9CisKICNkZWZpbmUgTURQNF9WR19QSEFTRV9TVEVQ X0RFRkFVTFQJMHgyMDAwMDAwMAogCiBzdGF0aWMgaW50IG1kcDRfcGxhbmVfbW9kZV9zZXQoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCkBAIC0xNjIsNiArMTk0LDcgQEAgc3RhdGljIGludCBtZHA0 X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQl1aW50MzJfdCBzcmNf eCwgdWludDMyX3Qgc3JjX3ksCiAJCXVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKIHsK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKIAlzdHJ1Y3QgbWRwNF9wbGFu ZSAqbWRwNF9wbGFuZSA9IHRvX21kcDRfcGxhbmUocGxhbmUpOwogCXN0cnVjdCBtZHA0X2ttcyAq bWRwNF9rbXMgPSBnZXRfa21zKHBsYW5lKTsKIAllbnVtIG1kcDRfcGlwZSBwaXBlID0gbWRwNF9w bGFuZS0+cGlwZTsKQEAgLTE4NSwxNCArMjE4LDU5IEBAIHN0YXRpYyBpbnQgbWRwNF9wbGFuZV9t b2RlX3NldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJCWZiLT5iYXNlLmlkLCBzcmNfeCwg c3JjX3ksIHNyY193LCBzcmNfaCwKIAkJCWNydGMtPmJhc2UuaWQsIGNydGNfeCwgY3J0Y195LCBj cnRjX3csIGNydGNfaCk7CiAKKwlmb3JtYXQgPSB0b19tZHBfZm9ybWF0KG1zbV9mcmFtZWJ1ZmZl cl9mb3JtYXQoZmIpKTsKKworCWlmIChzcmNfdyA+IChjcnRjX3cgKiBET1dOX1NDQUxFX01BWCkp IHsKKwkJZGV2X2VycihkZXYtPmRldiwgIldpZHRoIGRvd24gc2NhbGluZyBleGNlZWRzIGxpbWl0 cyFcbiIpOworCQlyZXR1cm4gLUVSQU5HRTsKKwl9CisKKwlpZiAoc3JjX2ggPiAoY3J0Y19oICog RE9XTl9TQ0FMRV9NQVgpKSB7CisJCWRldl9lcnIoZGV2LT5kZXYsICJIZWlnaHQgZG93biBzY2Fs aW5nIGV4Y2VlZHMgbGltaXRzIVxuIik7CisJCXJldHVybiAtRVJBTkdFOworCX0KKworCWlmIChj cnRjX3cgPiAoc3JjX3cgKiBVUF9TQ0FMRV9NQVgpKSB7CisJCWRldl9lcnIoZGV2LT5kZXYsICJX aWR0aCB1cCBzY2FsaW5nIGV4Y2VlZHMgbGltaXRzIVxuIik7CisJCXJldHVybiAtRVJBTkdFOwor CX0KKworCWlmIChjcnRjX2ggPiAoc3JjX2ggKiBVUF9TQ0FMRV9NQVgpKSB7CisJCWRldl9lcnIo ZGV2LT5kZXYsICJIZWlnaHQgdXAgc2NhbGluZyBleGNlZWRzIGxpbWl0cyFcbiIpOworCQlyZXR1 cm4gLUVSQU5HRTsKKwl9CisKIAlpZiAoc3JjX3cgIT0gY3J0Y193KSB7CisJCXVpbnQzMl90IHNl bF91bml0ID0gU0NBTEVfRklSOwogCQlvcF9tb2RlIHw9IE1EUDRfUElQRV9PUF9NT0RFX1NDQUxF WF9FTjsKLQkJLyogVE9ETyBjYWxjIHBoYXNleF9zdGVwICovCisKKwkJaWYgKE1EUF9GT1JNQVRf SVNfWVVWKGZvcm1hdCkpIHsKKwkJCWlmIChjcnRjX3cgPiBzcmNfdykKKwkJCQlzZWxfdW5pdCA9 IFNDQUxFX1BJWEVMX1JQVDsKKwkJCWVsc2UgaWYgKGNydGNfdyA8PSAoc3JjX3cgLyA0KSkKKwkJ CQlzZWxfdW5pdCA9IFNDQUxFX01OX1BIQVNFOworCisJCQlvcF9tb2RlIHw9IE1EUDRfUElQRV9P UF9NT0RFX1NDQUxFWF9VTklUX1NFTChzZWxfdW5pdCk7CisJCQlwaGFzZXhfc3RlcCA9IG11bHRf ZnJhYyhNRFA0X1ZHX1BIQVNFX1NURVBfREVGQVVMVCwKKwkJCQkJc3JjX3csIGNydGNfdyk7CisJ CX0KIAl9CiAKIAlpZiAoc3JjX2ggIT0gY3J0Y19oKSB7CisJCXVpbnQzMl90IHNlbF91bml0ID0g U0NBTEVfRklSOwogCQlvcF9tb2RlIHw9IE1EUDRfUElQRV9PUF9NT0RFX1NDQUxFWV9FTjsKLQkJ LyogVE9ETyBjYWxjIHBoYXNleV9zdGVwICovCisKKwkJaWYgKE1EUF9GT1JNQVRfSVNfWVVWKGZv cm1hdCkpIHsKKworCQkJaWYgKGNydGNfaCA+IHNyY19oKQorCQkJCXNlbF91bml0ID0gU0NBTEVf UElYRUxfUlBUOworCQkJZWxzZSBpZiAoY3J0Y19oIDw9IChzcmNfaCAvIDQpKQorCQkJCXNlbF91 bml0ID0gU0NBTEVfTU5fUEhBU0U7CisKKwkJCW9wX21vZGUgfD0gTURQNF9QSVBFX09QX01PREVf U0NBTEVZX1VOSVRfU0VMKHNlbF91bml0KTsKKwkJCXBoYXNleV9zdGVwID0gbXVsdF9mcmFjKE1E UDRfVkdfUEhBU0VfU1RFUF9ERUZBVUxULAorCQkJCQlzcmNfaCwgY3J0Y19oKTsKKwkJfQogCX0K IAogCW1kcDRfd3JpdGUobWRwNF9rbXMsIFJFR19NRFA0X1BJUEVfU1JDX1NJWkUocGlwZSksCkBA IC0yMTMsOCArMjkxLDYgQEAgc3RhdGljIGludCBtZHA0X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCiAJbWRwNF9wbGFuZV9zZXRfc2Nhbm91dChwbGFuZSwgZmIpOwog Ci0JZm9ybWF0ID0gdG9fbWRwX2Zvcm1hdChtc21fZnJhbWVidWZmZXJfZm9ybWF0KGZiKSk7Ci0K IAltZHA0X3dyaXRlKG1kcDRfa21zLCBSRUdfTURQNF9QSVBFX1NSQ19GT1JNQVQocGlwZSksCiAJ CQlNRFA0X1BJUEVfU1JDX0ZPUk1BVF9BX0JQQyhmb3JtYXQtPmJwY19hKSB8CiAJCQlNRFA0X1BJ UEVfU1JDX0ZPUk1BVF9SX0JQQyhmb3JtYXQtPmJwY19yKSB8CkBAIC0yMjMsNiArMjk5LDggQEAg c3RhdGljIGludCBtZHA0X3BsYW5lX21vZGVfc2V0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAog CQkJQ09ORChmb3JtYXQtPmFscGhhX2VuYWJsZSwgTURQNF9QSVBFX1NSQ19GT1JNQVRfQUxQSEFf RU5BQkxFKSB8CiAJCQlNRFA0X1BJUEVfU1JDX0ZPUk1BVF9DUFAoZm9ybWF0LT5jcHAgLSAxKSB8 CiAJCQlNRFA0X1BJUEVfU1JDX0ZPUk1BVF9VTlBBQ0tfQ09VTlQoZm9ybWF0LT51bnBhY2tfY291 bnQgLSAxKSB8CisJCQlNRFA0X1BJUEVfU1JDX0ZPUk1BVF9GRVRDSF9QTEFORVMoZm9ybWF0LT5m ZXRjaF90eXBlKSB8CisJCQlNRFA0X1BJUEVfU1JDX0ZPUk1BVF9DSFJPTUFfU0FNUChmb3JtYXQt PmNocm9tYV9zYW1wbGUpIHwKIAkJCUNPTkQoZm9ybWF0LT51bnBhY2tfdGlnaHQsIE1EUDRfUElQ RV9TUkNfRk9STUFUX1VOUEFDS19USUdIVCkpOwogCiAJbWRwNF93cml0ZShtZHA0X2ttcywgUkVH X01EUDRfUElQRV9TUkNfVU5QQUNLKHBpcGUpLApAQCAtMjMxLDYgKzMwOSwxNCBAQCBzdGF0aWMg aW50IG1kcDRfcGxhbmVfbW9kZV9zZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQlNRFA0 X1BJUEVfU1JDX1VOUEFDS19FTEVNMihmb3JtYXQtPnVucGFja1syXSkgfAogCQkJTURQNF9QSVBF X1NSQ19VTlBBQ0tfRUxFTTMoZm9ybWF0LT51bnBhY2tbM10pKTsKIAorCWlmIChNRFBfRk9STUFU X0lTX1lVVihmb3JtYXQpKSB7CisJCXN0cnVjdCBjc2NfY2ZnICpjc2MgPSBtZHBfZ2V0X2RlZmF1 bHRfY3NjX2NmZyhDU0NfWVVWMlJHQik7CisKKwkJb3BfbW9kZSB8PSBNRFA0X1BJUEVfT1BfTU9E RV9TUkNfWUNCQ1I7CisJCW9wX21vZGUgfD0gTURQNF9QSVBFX09QX01PREVfQ1NDX0VOOworCQlt ZHA0X3dyaXRlX2NzY19jb25maWcobWRwNF9rbXMsIHBpcGUsIGNzYyk7CisJfQorCiAJbWRwNF93 cml0ZShtZHA0X2ttcywgUkVHX01EUDRfUElQRV9PUF9NT0RFKHBpcGUpLCBvcF9tb2RlKTsKIAlt ZHA0X3dyaXRlKG1kcDRfa21zLCBSRUdfTURQNF9QSVBFX1BIQVNFWF9TVEVQKHBpcGUpLCBwaGFz ZXhfc3RlcCk7CiAJbWRwNF93cml0ZShtZHA0X2ttcywgUkVHX01EUDRfUElQRV9QSEFTRVlfU1RF UChwaXBlKSwgcGhhc2V5X3N0ZXApOwotLSAKUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIElu Yy4KClRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0 aGUgQ29kZSBBdXJvcmEgRm9ydW0sIGEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFBy b2plY3QKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==