From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Stuebner Subject: Re: [PATCH v3] drm/rockchip: support hwc layer Date: Mon, 10 Dec 2018 11:06:15 +0100 Message-ID: <1640679.nbCe1t6P6s@phil> References: <20181205135230.17677-1-ayaka@soulik.info> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181205135230.17677-1-ayaka@soulik.info> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Randy Li Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org QW0gTWl0dHdvY2gsIDUuIERlemVtYmVyIDIwMTgsIDE0OjUyOjMwIENFVCBzY2hyaWViIFJhbmR5 IExpOgo+IEZyb206IGF5YWthIDxheWFrYUBzb3VsaWsuaW5mbz4KPiAKPiBUaGUgV2luZG93cyAy LzMgb3IgYSBSR0IgVUkgbGF5ZXIgaXMgYSBoaWdoIHBlcmZvcm1hbmNlIGZsZXhpYmx5Cj4gcGxh bmUuIEl0IGlzIHRvbyB3YXN0ZSB0byB1c2UgaXQgYXMgYSBjdXJzb3IgcGxhbmUuCj4gCj4gSSBo YXZlIHZlcmlmaWVkIHRoaXMgcGF0Y2ggd2l0aCB3ZXN0b24gZ2l0IHZlcnNpb24sIEkgYW0gbm90 Cj4gc3VyZSB3aGV0aGVyIFggd291bGQgbWVldCB3aXRoIHRoaXMgcGF0Y2guIEFzIHRoZSBwcmV2 aW91cwo+IGF1dGhvciBpcyBnb25lLCBJIGNhbid0IGNvbmZpcm0gdGhpcyBwcm9ibGVtIHdpdGgg aGltLgo+IAo+IEFsc28gdGhlIHdlc3RvbiBvbmx5IHVzZSB0aGUgb25seSB0d28gYWNob3JzIHdp dGggYSBzYW1lCj4gc2l6ZSBhbmQgcGl4ZWwgZm9ybWF0LCBJIG5lZWQgbW9yZSB1c2VycyB0byB2 ZXJpZnkgdGhpcwo+IHBhdGNoLgo+IAo+IGNoYW5nZWxvZzoKPiB2MjogdGhlIHByZXZpb3VzIHZl cnNpb24gaXMgbWl4ZWQgd2l0aCB0aGUgY29kZSBmb3IgdGhlIG90aGVyCj4gcGF0Y2hlcywgSSBm b3JnZXQgdG8gcmVtb3ZlIGl0Lgo+IHYzOiBmaXggdGhlIGVycm9yIGZvciB0aGUgcmszMzk5IHZv cCBsaXR0bGUuCj4gCj4gU2lnbmVkLW9mZi1ieTogUmFuZHkgTGkgPGF5YWthQHNvdWxpay5pbmZv PgoKanVzdCBhcyBhIG5vdGUgZm9yIHBlb3BsZSBub3QgZm9sbG93aW5nIGlyYyBkaXNjdXNzaW9u cyBbYW5kIGFsc28gZm9yCm15IGJhZCBtZW1vcnkgOi0pIF0sIGl0IGdvdCByZXBvcnRlZCB0aGF0 IHdoaWxlIHRoaXMgc2VlbXMgdG8gd29yawpuaWNlIG9uIHdheWxhbmQsIFgxMSBzZWVtcyB0byBo YXZlIGFuIGlzc3VlIHdpdGggaXQsIHRvIHF1b3RlIGZyb20KdGhlIHB1YmxpYyBsb2c6CgoiaG1t Li4gYnV0IHNvbWV0aGluZyBmdW5reSBpcyBnb2luZyBvbi4gd2l0aCB5b3VyIHBhdGNoIHRoZSBj dXJzZXIgZG9lc24ndApzZWVtIHRvIGJlIHVwZGF0ZWQgaWYgaSBtb3ZlIGl0IGNsb3NlIHRvIHRo ZSBsZWZ0IG9yIHJpZ2h0IGVkZ2VzIG9mIHRoZQpzY3JlZW4gaWYgdGhlIHNsb3dlciBpIG1vdmUg dGhlIGN1cnNlciB0b3dhcmRzIGFuIGVkZ2UgdGhlIGNsb3NlciB0byB0aGUKZWRnZSBpdCB3aWxs IGRyYXcgdGhlIGN1cnNvciByZW1vdmluZyB5b3VyIHBhdGNoIGFnYWluIGZpeGVzIHRoZSBwcm9i bGVtCnRoaXMgaXMgaW4gcGxhaW4gb2xkIFhvcmcgdmVyc2lvbiAxLjIwLjMiCgoKPiAgZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYyB8IDIwICsrKysrKysrKysrKysr Cj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMgfCA0MiArKysr KysrKysrKysrKysrKysrKysrKysrKy0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfZHJtX3ZvcC5jCj4gaW5kZXggZmI3MGZiNDg2ZmJmLi4xYTNiNzIzOTFlZTggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKPiBAQCAtNzUx LDYgKzc1MSwyNiBAQCBzdGF0aWMgdm9pZCB2b3BfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiAgCj4gIAlkc3BfaW5mbyA9IChkcm1fcmVjdF9oZWlnaHQoZGVz dCkgLSAxKSA8PCAxNjsKPiAgCWRzcF9pbmZvIHw9IChkcm1fcmVjdF93aWR0aChkZXN0KSAtIDEp ICYgMHhmZmZmOwo+ICsJLyogSFdDIGxheWVyIG9ubHkgc3VwcG9ydHMgdmFyaW91cyBvZiBzcXVh cmUgaWNvbiAqLwo+ICsJaWYgKHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikg ewo+ICsJCXN3aXRjaCAoYWN0dWFsX3cpIHsKPiArCQljYXNlIDMyOgo+ICsJCQlkc3BfaW5mbyA9 IDA7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgNjQ6Cj4gKwkJCWRzcF9pbmZvID0gMHgxOwo+ICsJ CQlicmVhazsKPiArCQljYXNlIDk0Ogo+ICsJCQlkc3BfaW5mbyA9IDB4MTA7Cj4gKwkJCWJyZWFr Owo+ICsJCWNhc2UgMTI4Ogo+ICsJCQlkc3BfaW5mbyA9IDB4MTE7Cj4gKwkJCWJyZWFrOwo+ICsJ CS8qIFVuc3VwcG9ydGVkIHBpeGVsIHJlc29sdXRpb24gKi8KPiArCQlkZWZhdWx0Ogo+ICsJCQly ZXR1cm47Cj4gKwkJfQo+ICsJfQo+ICAKPiAgCWRzcF9zdHggPSBkZXN0LT54MSArIGNydGMtPm1v ZGUuaHRvdGFsIC0gY3J0Yy0+bW9kZS5oc3luY19zdGFydDsKPiAgCWRzcF9zdHkgPSBkZXN0LT55 MSArIGNydGMtPm1vZGUudnRvdGFsIC0gY3J0Yy0+bW9kZS52c3luY19zdGFydDsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYyBiL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMKPiBpbmRleCAwOGZjNDBhZjUy YzguLjY5NGY0M2ZkZWIyMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv cm9ja2NoaXBfdm9wX3JlZy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX3ZvcF9yZWcuYwo+IEBAIC02Myw2ICs2MywxNSBAQCBzdGF0aWMgY29uc3QgdWludDMyX3Qg Zm9ybWF0c193aW5fbGl0ZVtdID0gewo+ICAJRFJNX0ZPUk1BVF9CR1I1NjUsCj4gIH07Cj4gIAo+ ICtzdGF0aWMgY29uc3QgdWludDMyX3QgZm9ybWF0c193aW5faHdjW10gPSB7Cj4gKwlEUk1fRk9S TUFUX0FSR0I4ODg4LAo+ICsJRFJNX0ZPUk1BVF9BQkdSODg4OCwKPiArCURSTV9GT1JNQVRfUkdC ODg4LAo+ICsJRFJNX0ZPUk1BVF9CR1I4ODgsCj4gKwlEUk1fRk9STUFUX1JHQjU2NSwKPiArCURS TV9GT1JNQVRfQkdSNTY1LAo+ICt9Owo+ICsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bfc2Ns X3JlZ3MgcmszMDM2X3dpbl9zY2wgPSB7Cj4gIAkuc2NhbGVfeXJnYl94ID0gVk9QX1JFRyhSSzMw MzZfV0lOMF9TQ0xfRkFDVE9SX1lSR0IsIDB4ZmZmZiwgMHgwKSwKPiAgCS5zY2FsZV95cmdiX3kg PSBWT1BfUkVHKFJLMzAzNl9XSU4wX1NDTF9GQUNUT1JfWVJHQiwgMHhmZmZmLCAxNiksCj4gQEAg LTQ1Niw2ICs0NjUsMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bfd2luX3BoeSByazMyODhf d2luMjNfZGF0YSA9IHsKPiAgCS5kc3RfYWxwaGFfY3RsID0gVk9QX1JFRyhSSzMyODhfV0lOMl9E U1RfQUxQSEFfQ1RSTCwgMHhmZiwgMCksCj4gIH07Cj4gIAo+ICtzdGF0aWMgY29uc3Qgc3RydWN0 IHZvcF93aW5fcGh5IHJrMzI4OF93aW5od2NfZGF0YSA9IHsKPiArCS5kYXRhX2Zvcm1hdHMgPSBm b3JtYXRzX3dpbl9od2MsCj4gKwkubmZvcm1hdHMgPSBBUlJBWV9TSVpFKGZvcm1hdHNfd2luX2h3 YyksCj4gKwkuZW5hYmxlID0gVk9QX1JFRyhSSzMyODhfSFdDX0NUUkwwLCAweDEsIDApLAo+ICsJ LmZvcm1hdCA9IFZPUF9SRUcoUkszMjg4X0hXQ19DVFJMMCwgMHg3LCAxKSwKPiArCS5yYl9zd2Fw ID0gVk9QX1JFRyhSSzMyODhfSFdDX0NUUkwwLCAweDEsIDEyKSwKPiArCS5kc3BfaW5mbyA9IFZP UF9SRUcoUkszMjg4X0hXQ19DVFJMMCwgMHgzLCA1KSwKPiArCS5kc3Bfc3QgPSBWT1BfUkVHKFJL MzI4OF9IV0NfRFNQX1NULCAweDFmZmYxZmZmLCAwKSwKPiArCS55cmdiX21zdCA9IFZPUF9SRUco UkszMjg4X0hXQ19NU1QsIDB4ZmZmZmZmZmYsIDApLAo+ICsJLnNyY19hbHBoYV9jdGwgPSBWT1Bf UkVHKFJLMzI4OF9IV0NfU1JDX0FMUEhBX0NUUkwsIDB4ZmZmZiwgMCksCj4gKwkuZHN0X2FscGhh X2N0bCA9IFZPUF9SRUcoUkszMjg4X0hXQ19EU1RfQUxQSEFfQ1RSTCwgMHhmZmZmZmZmZiwgMCks Cj4gK307Cj4gKwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF9tb2Rlc2V0IHJrMzI4OF9tb2Rl c2V0ID0gewo+ICAJLmh0b3RhbF9wdyA9IFZPUF9SRUcoUkszMjg4X0RTUF9IVE9UQUxfSFNfRU5E LCAweDFmZmYxZmZmLCAwKSwKPiAgCS5oYWN0X3N0X2VuZCA9IFZPUF9SRUcoUkszMjg4X0RTUF9I QUNUX1NUX0VORCwgMHgxZmZmMWZmZiwgMCksCj4gQEAgLTUwMCw3ICs1MjIsMTAgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgcmszMjg4X3ZvcF93aW5fZGF0YVtdID0gewo+ICAJ eyAuYmFzZSA9IDB4MDAsIC5waHkgPSAmcmszMjg4X3dpbjIzX2RhdGEsCj4gIAkgIC50eXBlID0g RFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSB9LAo+ICAJeyAuYmFzZSA9IDB4NTAsIC5waHkgPSAmcmsz Mjg4X3dpbjIzX2RhdGEsCj4gLQkgIC50eXBlID0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SIH0sCj4g KwkgIC50eXBlID0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSB9LAo+ICsJeyAuYmFzZSA9IDB4MDAs IC5waHkgPSAmcmszMjg4X3dpbmh3Y19kYXRhLAo+ICsJICAudHlwZSA9IERSTV9QTEFORV9UWVBF X0NVUlNPUiwKPiArCX0sCj4gIH07Cj4gIAo+ICBzdGF0aWMgY29uc3QgaW50IHJrMzI4OF92b3Bf aW50cnNbXSA9IHsKPiBAQCAtNTczLDcgKzU5OCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZv cF93aW5fZGF0YSByazMzNjhfdm9wX3dpbl9kYXRhW10gPSB7Cj4gIAl7IC5iYXNlID0gMHgwMCwg LnBoeSA9ICZyazMzNjhfd2luMjNfZGF0YSwKPiAgCSAgLnR5cGUgPSBEUk1fUExBTkVfVFlQRV9P VkVSTEFZIH0sCj4gIAl7IC5iYXNlID0gMHg1MCwgLnBoeSA9ICZyazMzNjhfd2luMjNfZGF0YSwK PiAtCSAgLnR5cGUgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IgfSwKPiArCSAgLnR5cGUgPSBEUk1f UExBTkVfVFlQRV9PVkVSTEFZIH0sCj4gKwl7IC5iYXNlID0gMHgwMCwgLnBoeSA9ICZyazMyODhf d2luaHdjX2RhdGEsCj4gKwkgIC50eXBlID0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SLAo+ICsJfSwK PiAgfTsKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX291dHB1dCByazMzNjhfb3V0cHV0 ID0gewo+IEBAIC02NTMsNyArNjgxLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX3dpbl9k YXRhIHJrMzM5OV92b3BfbGl0X3dpbl9kYXRhW10gPSB7Cj4gIAl7IC5iYXNlID0gMHgwMCwgLnBo eSA9ICZyazMyODhfd2luMDFfZGF0YSwKPiAgCSAgLnR5cGUgPSBEUk1fUExBTkVfVFlQRV9QUklN QVJZIH0sCj4gIAl7IC5iYXNlID0gMHgwMCwgLnBoeSA9ICZyazMzNjhfd2luMjNfZGF0YSwKPiAt CSAgLnR5cGUgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1J9LAo+ICsJICAudHlwZSA9IERSTV9QTEFO RV9UWVBFX09WRVJMQVl9LAo+ICsJeyAuYmFzZSA9IDB4MDAsIC5waHkgPSAmcmszMjg4X3dpbmh3 Y19kYXRhLAo+ICsJICAudHlwZSA9IERSTV9QTEFORV9UWVBFX0NVUlNPUiwKPiArCX0sCj4gIH07 Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF9kYXRhIHJrMzM5OV92b3BfbGl0ID0gewo+ IEBAIC03MzUsNyArNzY2LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX3dpbl9kYXRhIHJr MzMyOF92b3Bfd2luX2RhdGFbXSA9IHsKPiAgCXsgLmJhc2UgPSAweDFkMCwgLnBoeSA9ICZyazMy ODhfd2luMDFfZGF0YSwKPiAgCSAgLnR5cGUgPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZIH0sCj4g IAl7IC5iYXNlID0gMHgyZDAsIC5waHkgPSAmcmszMjg4X3dpbjAxX2RhdGEsCj4gLQkgIC50eXBl ID0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SIH0sCj4gKwkgIC50eXBlID0gRFJNX1BMQU5FX1RZUEVf T1ZFUkxBWSB9LAo+ICsJeyAuYmFzZSA9IDB4M2QwLCAucGh5ID0gJnJrMzI4OF93aW5od2NfZGF0 YSwKPiArCSAgLnR5cGUgPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IsCj4gKwl9LAo+ICB9Owo+ICAK PiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfZGF0YSByazMzMjhfdm9wID0gewo+IAoKCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B11EC5CFFE for ; Mon, 10 Dec 2018 10:06:42 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2D5B520821 for ; Mon, 10 Dec 2018 10:06:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TBEKAlD/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2D5B520821 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sntech.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=4U+4yNno3c8XZHvd5QQD6yVwyxJTHH0vIf8rUmLy2tA=; b=TBEKAlD/KwPuxT P7WDNxwk4bs5epiiKpgL5RZIR5wsHxYjLK4CTD8qrS/fswxF/F5EwbtqTnA3QuAsCAG/kCgT+cAFC CSFSAheiDZdK2V5pMMkZ4Jb4kiTZmFaceaFcbQwzTHyOodE6wtUYEi1Dh/ZxubKUaylCd6c1aLULq OCKQZ+IOCzOplXGRkkTLff4u64dh/04FADgKq6oRFQ+vbnnsB26w8YVdoQeQBWMpEvoFLwgfmlpuK c5IkcYqMEDaLIAcG5heZT3H9OiHDMe1shmQ/BvNg61FB24r7bf2Z4Km+CZFhJ0zcpWLU1ULqUFZQr 5cWwvBRbeCefZTHejcuw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gWISX-0002FK-2f; Mon, 10 Dec 2018 10:06:41 +0000 Received: from gloria.sntech.de ([185.11.138.130]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gWISP-0002E1-C5; Mon, 10 Dec 2018 10:06:39 +0000 Received: from p5b127812.dip0.t-ipconnect.de ([91.18.120.18] helo=phil.localnet) by gloria.sntech.de with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gWIS7-0007uZ-Rx; Mon, 10 Dec 2018 11:06:15 +0100 From: Heiko Stuebner To: Randy Li Subject: Re: [PATCH v3] drm/rockchip: support hwc layer Date: Mon, 10 Dec 2018 11:06:15 +0100 Message-ID: <1640679.nbCe1t6P6s@phil> In-Reply-To: <20181205135230.17677-1-ayaka@soulik.info> References: <20181205135230.17677-1-ayaka@soulik.info> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181210_020633_560671_0E000789 X-CRM114-Status: GOOD ( 26.12 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, hjc@rock-chips.com, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Am Mittwoch, 5. Dezember 2018, 14:52:30 CET schrieb Randy Li: > From: ayaka > > The Windows 2/3 or a RGB UI layer is a high performance flexibly > plane. It is too waste to use it as a cursor plane. > > I have verified this patch with weston git version, I am not > sure whether X would meet with this patch. As the previous > author is gone, I can't confirm this problem with him. > > Also the weston only use the only two achors with a same > size and pixel format, I need more users to verify this > patch. > > changelog: > v2: the previous version is mixed with the code for the other > patches, I forget to remove it. > v3: fix the error for the rk3399 vop little. > > Signed-off-by: Randy Li just as a note for people not following irc discussions [and also for my bad memory :-) ], it got reported that while this seems to work nice on wayland, X11 seems to have an issue with it, to quote from the public log: "hmm.. but something funky is going on. with your patch the curser doesn't seem to be updated if i move it close to the left or right edges of the screen if the slower i move the curser towards an edge the closer to the edge it will draw the cursor removing your patch again fixes the problem this is in plain old Xorg version 1.20.3" > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 20 ++++++++++++++ > drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 42 ++++++++++++++++++++++++++--- > 2 files changed, 58 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index fb70fb486fbf..1a3b72391ee8 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -751,6 +751,26 @@ static void vop_plane_atomic_update(struct drm_plane *plane, > > dsp_info = (drm_rect_height(dest) - 1) << 16; > dsp_info |= (drm_rect_width(dest) - 1) & 0xffff; > + /* HWC layer only supports various of square icon */ > + if (plane->type == DRM_PLANE_TYPE_CURSOR) { > + switch (actual_w) { > + case 32: > + dsp_info = 0; > + break; > + case 64: > + dsp_info = 0x1; > + break; > + case 94: > + dsp_info = 0x10; > + break; > + case 128: > + dsp_info = 0x11; > + break; > + /* Unsupported pixel resolution */ > + default: > + return; > + } > + } > > dsp_stx = dest->x1 + crtc->mode.htotal - crtc->mode.hsync_start; > dsp_sty = dest->y1 + crtc->mode.vtotal - crtc->mode.vsync_start; > diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c > index 08fc40af52c8..694f43fdeb23 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c > +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c > @@ -63,6 +63,15 @@ static const uint32_t formats_win_lite[] = { > DRM_FORMAT_BGR565, > }; > > +static const uint32_t formats_win_hwc[] = { > + DRM_FORMAT_ARGB8888, > + DRM_FORMAT_ABGR8888, > + DRM_FORMAT_RGB888, > + DRM_FORMAT_BGR888, > + DRM_FORMAT_RGB565, > + DRM_FORMAT_BGR565, > +}; > + > static const struct vop_scl_regs rk3036_win_scl = { > .scale_yrgb_x = VOP_REG(RK3036_WIN0_SCL_FACTOR_YRGB, 0xffff, 0x0), > .scale_yrgb_y = VOP_REG(RK3036_WIN0_SCL_FACTOR_YRGB, 0xffff, 16), > @@ -456,6 +465,19 @@ static const struct vop_win_phy rk3288_win23_data = { > .dst_alpha_ctl = VOP_REG(RK3288_WIN2_DST_ALPHA_CTRL, 0xff, 0), > }; > > +static const struct vop_win_phy rk3288_winhwc_data = { > + .data_formats = formats_win_hwc, > + .nformats = ARRAY_SIZE(formats_win_hwc), > + .enable = VOP_REG(RK3288_HWC_CTRL0, 0x1, 0), > + .format = VOP_REG(RK3288_HWC_CTRL0, 0x7, 1), > + .rb_swap = VOP_REG(RK3288_HWC_CTRL0, 0x1, 12), > + .dsp_info = VOP_REG(RK3288_HWC_CTRL0, 0x3, 5), > + .dsp_st = VOP_REG(RK3288_HWC_DSP_ST, 0x1fff1fff, 0), > + .yrgb_mst = VOP_REG(RK3288_HWC_MST, 0xffffffff, 0), > + .src_alpha_ctl = VOP_REG(RK3288_HWC_SRC_ALPHA_CTRL, 0xffff, 0), > + .dst_alpha_ctl = VOP_REG(RK3288_HWC_DST_ALPHA_CTRL, 0xffffffff, 0), > +}; > + > static const struct vop_modeset rk3288_modeset = { > .htotal_pw = VOP_REG(RK3288_DSP_HTOTAL_HS_END, 0x1fff1fff, 0), > .hact_st_end = VOP_REG(RK3288_DSP_HACT_ST_END, 0x1fff1fff, 0), > @@ -500,7 +522,10 @@ static const struct vop_win_data rk3288_vop_win_data[] = { > { .base = 0x00, .phy = &rk3288_win23_data, > .type = DRM_PLANE_TYPE_OVERLAY }, > { .base = 0x50, .phy = &rk3288_win23_data, > - .type = DRM_PLANE_TYPE_CURSOR }, > + .type = DRM_PLANE_TYPE_OVERLAY }, > + { .base = 0x00, .phy = &rk3288_winhwc_data, > + .type = DRM_PLANE_TYPE_CURSOR, > + }, > }; > > static const int rk3288_vop_intrs[] = { > @@ -573,7 +598,10 @@ static const struct vop_win_data rk3368_vop_win_data[] = { > { .base = 0x00, .phy = &rk3368_win23_data, > .type = DRM_PLANE_TYPE_OVERLAY }, > { .base = 0x50, .phy = &rk3368_win23_data, > - .type = DRM_PLANE_TYPE_CURSOR }, > + .type = DRM_PLANE_TYPE_OVERLAY }, > + { .base = 0x00, .phy = &rk3288_winhwc_data, > + .type = DRM_PLANE_TYPE_CURSOR, > + }, > }; > > static const struct vop_output rk3368_output = { > @@ -653,7 +681,10 @@ static const struct vop_win_data rk3399_vop_lit_win_data[] = { > { .base = 0x00, .phy = &rk3288_win01_data, > .type = DRM_PLANE_TYPE_PRIMARY }, > { .base = 0x00, .phy = &rk3368_win23_data, > - .type = DRM_PLANE_TYPE_CURSOR}, > + .type = DRM_PLANE_TYPE_OVERLAY}, > + { .base = 0x00, .phy = &rk3288_winhwc_data, > + .type = DRM_PLANE_TYPE_CURSOR, > + }, > }; > > static const struct vop_data rk3399_vop_lit = { > @@ -735,7 +766,10 @@ static const struct vop_win_data rk3328_vop_win_data[] = { > { .base = 0x1d0, .phy = &rk3288_win01_data, > .type = DRM_PLANE_TYPE_OVERLAY }, > { .base = 0x2d0, .phy = &rk3288_win01_data, > - .type = DRM_PLANE_TYPE_CURSOR }, > + .type = DRM_PLANE_TYPE_OVERLAY }, > + { .base = 0x3d0, .phy = &rk3288_winhwc_data, > + .type = DRM_PLANE_TYPE_CURSOR, > + }, > }; > > static const struct vop_data rk3328_vop = { > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DE79EC04EB8 for ; Mon, 10 Dec 2018 10:06:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A386920821 for ; Mon, 10 Dec 2018 10:06:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A386920821 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=sntech.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726949AbeLJKGZ (ORCPT ); Mon, 10 Dec 2018 05:06:25 -0500 Received: from gloria.sntech.de ([185.11.138.130]:36584 "EHLO gloria.sntech.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726716AbeLJKGZ (ORCPT ); Mon, 10 Dec 2018 05:06:25 -0500 Received: from p5b127812.dip0.t-ipconnect.de ([91.18.120.18] helo=phil.localnet) by gloria.sntech.de with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gWIS7-0007uZ-Rx; Mon, 10 Dec 2018 11:06:15 +0100 From: Heiko Stuebner To: Randy Li Cc: dri-devel@lists.freedesktop.org, hjc@rock-chips.com, airlied@linux.ie, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3] drm/rockchip: support hwc layer Date: Mon, 10 Dec 2018 11:06:15 +0100 Message-ID: <1640679.nbCe1t6P6s@phil> In-Reply-To: <20181205135230.17677-1-ayaka@soulik.info> References: <20181205135230.17677-1-ayaka@soulik.info> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Mittwoch, 5. Dezember 2018, 14:52:30 CET schrieb Randy Li: > From: ayaka > > The Windows 2/3 or a RGB UI layer is a high performance flexibly > plane. It is too waste to use it as a cursor plane. > > I have verified this patch with weston git version, I am not > sure whether X would meet with this patch. As the previous > author is gone, I can't confirm this problem with him. > > Also the weston only use the only two achors with a same > size and pixel format, I need more users to verify this > patch. > > changelog: > v2: the previous version is mixed with the code for the other > patches, I forget to remove it. > v3: fix the error for the rk3399 vop little. > > Signed-off-by: Randy Li just as a note for people not following irc discussions [and also for my bad memory :-) ], it got reported that while this seems to work nice on wayland, X11 seems to have an issue with it, to quote from the public log: "hmm.. but something funky is going on. with your patch the curser doesn't seem to be updated if i move it close to the left or right edges of the screen if the slower i move the curser towards an edge the closer to the edge it will draw the cursor removing your patch again fixes the problem this is in plain old Xorg version 1.20.3" > drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 20 ++++++++++++++ > drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 42 ++++++++++++++++++++++++++--- > 2 files changed, 58 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > index fb70fb486fbf..1a3b72391ee8 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c > @@ -751,6 +751,26 @@ static void vop_plane_atomic_update(struct drm_plane *plane, > > dsp_info = (drm_rect_height(dest) - 1) << 16; > dsp_info |= (drm_rect_width(dest) - 1) & 0xffff; > + /* HWC layer only supports various of square icon */ > + if (plane->type == DRM_PLANE_TYPE_CURSOR) { > + switch (actual_w) { > + case 32: > + dsp_info = 0; > + break; > + case 64: > + dsp_info = 0x1; > + break; > + case 94: > + dsp_info = 0x10; > + break; > + case 128: > + dsp_info = 0x11; > + break; > + /* Unsupported pixel resolution */ > + default: > + return; > + } > + } > > dsp_stx = dest->x1 + crtc->mode.htotal - crtc->mode.hsync_start; > dsp_sty = dest->y1 + crtc->mode.vtotal - crtc->mode.vsync_start; > diff --git a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c > index 08fc40af52c8..694f43fdeb23 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_vop_reg.c > +++ b/drivers/gpu/drm/rockchip/rockchip_vop_reg.c > @@ -63,6 +63,15 @@ static const uint32_t formats_win_lite[] = { > DRM_FORMAT_BGR565, > }; > > +static const uint32_t formats_win_hwc[] = { > + DRM_FORMAT_ARGB8888, > + DRM_FORMAT_ABGR8888, > + DRM_FORMAT_RGB888, > + DRM_FORMAT_BGR888, > + DRM_FORMAT_RGB565, > + DRM_FORMAT_BGR565, > +}; > + > static const struct vop_scl_regs rk3036_win_scl = { > .scale_yrgb_x = VOP_REG(RK3036_WIN0_SCL_FACTOR_YRGB, 0xffff, 0x0), > .scale_yrgb_y = VOP_REG(RK3036_WIN0_SCL_FACTOR_YRGB, 0xffff, 16), > @@ -456,6 +465,19 @@ static const struct vop_win_phy rk3288_win23_data = { > .dst_alpha_ctl = VOP_REG(RK3288_WIN2_DST_ALPHA_CTRL, 0xff, 0), > }; > > +static const struct vop_win_phy rk3288_winhwc_data = { > + .data_formats = formats_win_hwc, > + .nformats = ARRAY_SIZE(formats_win_hwc), > + .enable = VOP_REG(RK3288_HWC_CTRL0, 0x1, 0), > + .format = VOP_REG(RK3288_HWC_CTRL0, 0x7, 1), > + .rb_swap = VOP_REG(RK3288_HWC_CTRL0, 0x1, 12), > + .dsp_info = VOP_REG(RK3288_HWC_CTRL0, 0x3, 5), > + .dsp_st = VOP_REG(RK3288_HWC_DSP_ST, 0x1fff1fff, 0), > + .yrgb_mst = VOP_REG(RK3288_HWC_MST, 0xffffffff, 0), > + .src_alpha_ctl = VOP_REG(RK3288_HWC_SRC_ALPHA_CTRL, 0xffff, 0), > + .dst_alpha_ctl = VOP_REG(RK3288_HWC_DST_ALPHA_CTRL, 0xffffffff, 0), > +}; > + > static const struct vop_modeset rk3288_modeset = { > .htotal_pw = VOP_REG(RK3288_DSP_HTOTAL_HS_END, 0x1fff1fff, 0), > .hact_st_end = VOP_REG(RK3288_DSP_HACT_ST_END, 0x1fff1fff, 0), > @@ -500,7 +522,10 @@ static const struct vop_win_data rk3288_vop_win_data[] = { > { .base = 0x00, .phy = &rk3288_win23_data, > .type = DRM_PLANE_TYPE_OVERLAY }, > { .base = 0x50, .phy = &rk3288_win23_data, > - .type = DRM_PLANE_TYPE_CURSOR }, > + .type = DRM_PLANE_TYPE_OVERLAY }, > + { .base = 0x00, .phy = &rk3288_winhwc_data, > + .type = DRM_PLANE_TYPE_CURSOR, > + }, > }; > > static const int rk3288_vop_intrs[] = { > @@ -573,7 +598,10 @@ static const struct vop_win_data rk3368_vop_win_data[] = { > { .base = 0x00, .phy = &rk3368_win23_data, > .type = DRM_PLANE_TYPE_OVERLAY }, > { .base = 0x50, .phy = &rk3368_win23_data, > - .type = DRM_PLANE_TYPE_CURSOR }, > + .type = DRM_PLANE_TYPE_OVERLAY }, > + { .base = 0x00, .phy = &rk3288_winhwc_data, > + .type = DRM_PLANE_TYPE_CURSOR, > + }, > }; > > static const struct vop_output rk3368_output = { > @@ -653,7 +681,10 @@ static const struct vop_win_data rk3399_vop_lit_win_data[] = { > { .base = 0x00, .phy = &rk3288_win01_data, > .type = DRM_PLANE_TYPE_PRIMARY }, > { .base = 0x00, .phy = &rk3368_win23_data, > - .type = DRM_PLANE_TYPE_CURSOR}, > + .type = DRM_PLANE_TYPE_OVERLAY}, > + { .base = 0x00, .phy = &rk3288_winhwc_data, > + .type = DRM_PLANE_TYPE_CURSOR, > + }, > }; > > static const struct vop_data rk3399_vop_lit = { > @@ -735,7 +766,10 @@ static const struct vop_win_data rk3328_vop_win_data[] = { > { .base = 0x1d0, .phy = &rk3288_win01_data, > .type = DRM_PLANE_TYPE_OVERLAY }, > { .base = 0x2d0, .phy = &rk3288_win01_data, > - .type = DRM_PLANE_TYPE_CURSOR }, > + .type = DRM_PLANE_TYPE_OVERLAY }, > + { .base = 0x3d0, .phy = &rk3288_winhwc_data, > + .type = DRM_PLANE_TYPE_CURSOR, > + }, > }; > > static const struct vop_data rk3328_vop = { >