From mboxrd@z Thu Jan 1 00:00:00 1970 From: shawnguo@kernel.org (Shawn Guo) Date: Mon, 7 Nov 2016 09:39:45 +0800 Subject: [PATCH v4 0/3] Add initial ZTE VOU DRM/KMS driver In-Reply-To: <1477905445-4983-1-git-send-email-shawnguo@kernel.org> References: <1477905445-4983-1-git-send-email-shawnguo@kernel.org> Message-ID: <20161107013943.GB14622@dragon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi David, Daniel, On Mon, Oct 31, 2016 at 05:17:22PM +0800, Shawn Guo wrote: > From: Shawn Guo > > The series adds the initial ZTE VOU display controller DRM/KMS driver. > There are still some features to be added, like overlay plane, scaling, > and more output devices support. But it's already useful with dual > CRTCs and HDMI display working. After a few rounds of reviewing (thanks to all reviewers), it seems that the series is ready for merging, I guess? If so, could you suggest how we proceed? I can prepare a pull request if you like. Thanks. Shawn > Changes for v4: > - Move the hardware setup done in zx_hdmi_hw_init() and clock enable > into .enable hook of drm_encoder_helper_funcs. > - Compare pipe to crtc->index instead of using our own index counter. > - Save the pipe check in zx_vou_enable[disable]_vblank by putting frame > interrupt bit into zx_crtc_bits. > - Use DRM_DEV_* for log messages instead of old dev_* functions > - Return directly in case of -ETIMEDOUT in zx_hdmi_i2c_read to simplify > the code for error condition. > - Shuffle things around to make the crtc and plane state check in > zx_gl_plane_atomic_check a bit clearer > - Move hardware register definitions into headers instead of disturbing > C file reading. > - Save the call to drm_connector_unregister(), so that > drm_connector_cleanup can directly be used as drm_connector_funcs > .destroy hook. > - Move vblank notification from .atomic_begin hook to .atomic_flush, > so that vblank event is sent to user space after planes are committed > rather than before. > > Changes for v3: > - Rebase to v4.9-rc1 > - Update bindings doc to use 'ranges' for address translation between > parent and child devices. > - Call drm_dev_register() last in bind function and drm_dev_unregister() > first in unbind, so that drm_connector_regiser() can be saved from > HDMI driver. > - Instead of using open-coded drm_do_get_edid(), add an I2C adapter for > HDMI DDC read and use drm_get_edid(). > - Improve the plane .atomic_check implementation by calling helper > function drm_plane_helper_check_state(). > - Rename zx_crtc.c to zx_vou.c to avoid the confusion that the file > implements crtc instance. > - Store vou pointer in zx_crtc, so that we do not need to embed the > pointer in zx_drm_private. > - Create zx_readl/zx_writel/zx_writel_mask for register access. > - Define a few macro helpers to ease the register bit setting, like > SYNC_WIDE, BACK_PORCH and FRONT_PORCH. > - Define main/aux channel specific register offset and bits in zx_crtc > to save the use of is_main check > - Sort include headers alphabetically > - Removing encoder pointer out of the structure and constify struct > vou_inf > - Add log message for error conditions > - Make the function calls in teardown path asymmetrical > - A few coding style improvements like defining macro for sub-module > address and changing code to save indentation level > - Add a MAINTAINERS entry for ZTE ZX DRM driver > > Changes for v2: > - Change device tree bindings to kill the virtual display-subsystem > node make VOU the parent node. > > Shawn Guo (3): > dt-bindings: add bindings doc for ZTE VOU display controller > drm: zte: add initial vou drm driver > MAINTAINERS: add an entry for ZTE ZX DRM driver > > .../devicetree/bindings/display/zte,vou.txt | 84 +++ > MAINTAINERS | 7 + > drivers/gpu/drm/Kconfig | 2 + > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/zte/Kconfig | 8 + > drivers/gpu/drm/zte/Makefile | 7 + > drivers/gpu/drm/zte/zx_drm_drv.c | 267 +++++++++ > drivers/gpu/drm/zte/zx_drm_drv.h | 36 ++ > drivers/gpu/drm/zte/zx_hdmi.c | 624 +++++++++++++++++++ > drivers/gpu/drm/zte/zx_hdmi_regs.h | 56 ++ > drivers/gpu/drm/zte/zx_plane.c | 299 ++++++++++ > drivers/gpu/drm/zte/zx_plane.h | 26 + > drivers/gpu/drm/zte/zx_plane_regs.h | 91 +++ > drivers/gpu/drm/zte/zx_vou.c | 661 +++++++++++++++++++++ > drivers/gpu/drm/zte/zx_vou.h | 46 ++ > drivers/gpu/drm/zte/zx_vou_regs.h | 157 +++++ > 16 files changed, 2372 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/zte,vou.txt > create mode 100644 drivers/gpu/drm/zte/Kconfig > create mode 100644 drivers/gpu/drm/zte/Makefile > create mode 100644 drivers/gpu/drm/zte/zx_drm_drv.c > create mode 100644 drivers/gpu/drm/zte/zx_drm_drv.h > create mode 100644 drivers/gpu/drm/zte/zx_hdmi.c > create mode 100644 drivers/gpu/drm/zte/zx_hdmi_regs.h > create mode 100644 drivers/gpu/drm/zte/zx_plane.c > create mode 100644 drivers/gpu/drm/zte/zx_plane.h > create mode 100644 drivers/gpu/drm/zte/zx_plane_regs.h > create mode 100644 drivers/gpu/drm/zte/zx_vou.c > create mode 100644 drivers/gpu/drm/zte/zx_vou.h > create mode 100644 drivers/gpu/drm/zte/zx_vou_regs.h > > -- > 1.9.1 > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shawn Guo Subject: Re: [PATCH v4 0/3] Add initial ZTE VOU DRM/KMS driver Date: Mon, 7 Nov 2016 09:39:45 +0800 Message-ID: <20161107013943.GB14622@dragon> References: <1477905445-4983-1-git-send-email-shawnguo@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 72A196E2A0 for ; Mon, 7 Nov 2016 01:40:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1477905445-4983-1-git-send-email-shawnguo@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , David Airlie Cc: Baoyou Xie , Emil Velikov , dri-devel@lists.freedesktop.org, Jun Nie , linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org SGkgRGF2aWQsIERhbmllbCwKCk9uIE1vbiwgT2N0IDMxLCAyMDE2IGF0IDA1OjE3OjIyUE0gKzA4 MDAsIFNoYXduIEd1byB3cm90ZToKPiBGcm9tOiBTaGF3biBHdW8gPHNoYXduLmd1b0BsaW5hcm8u b3JnPgo+IAo+IFRoZSBzZXJpZXMgYWRkcyB0aGUgaW5pdGlhbCBaVEUgVk9VIGRpc3BsYXkgY29u dHJvbGxlciBEUk0vS01TIGRyaXZlci4KPiBUaGVyZSBhcmUgc3RpbGwgc29tZSBmZWF0dXJlcyB0 byBiZSBhZGRlZCwgbGlrZSBvdmVybGF5IHBsYW5lLCBzY2FsaW5nLAo+IGFuZCBtb3JlIG91dHB1 dCBkZXZpY2VzIHN1cHBvcnQuICBCdXQgaXQncyBhbHJlYWR5IHVzZWZ1bCB3aXRoIGR1YWwKPiBD UlRDcyBhbmQgSERNSSBkaXNwbGF5IHdvcmtpbmcuCgpBZnRlciBhIGZldyByb3VuZHMgb2YgcmV2 aWV3aW5nICh0aGFua3MgdG8gYWxsIHJldmlld2VycyksIGl0IHNlZW1zIHRoYXQKdGhlIHNlcmll cyBpcyByZWFkeSBmb3IgbWVyZ2luZywgSSBndWVzcz8gIElmIHNvLCBjb3VsZCB5b3Ugc3VnZ2Vz dCBob3cKd2UgcHJvY2VlZD8gIEkgY2FuIHByZXBhcmUgYSBwdWxsIHJlcXVlc3QgaWYgeW91IGxp a2UuICBUaGFua3MuCgpTaGF3bgoKPiBDaGFuZ2VzIGZvciB2NDoKPiAgLSBNb3ZlIHRoZSBoYXJk d2FyZSBzZXR1cCBkb25lIGluIHp4X2hkbWlfaHdfaW5pdCgpIGFuZCBjbG9jayBlbmFibGUKPiAg ICBpbnRvIC5lbmFibGUgaG9vayBvZiBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuCj4gIC0gQ29t cGFyZSBwaXBlIHRvIGNydGMtPmluZGV4IGluc3RlYWQgb2YgdXNpbmcgb3VyIG93biBpbmRleCBj b3VudGVyLgo+ICAtIFNhdmUgdGhlIHBpcGUgY2hlY2sgaW4genhfdm91X2VuYWJsZVtkaXNhYmxl XV92YmxhbmsgYnkgcHV0dGluZyBmcmFtZQo+ICAgIGludGVycnVwdCBiaXQgaW50byB6eF9jcnRj X2JpdHMuCj4gIC0gVXNlIERSTV9ERVZfKiBmb3IgbG9nIG1lc3NhZ2VzIGluc3RlYWQgb2Ygb2xk IGRldl8qIGZ1bmN0aW9ucwo+ICAtIFJldHVybiBkaXJlY3RseSBpbiBjYXNlIG9mIC1FVElNRURP VVQgaW4genhfaGRtaV9pMmNfcmVhZCB0byBzaW1wbGlmeQo+ICAgIHRoZSBjb2RlIGZvciBlcnJv ciBjb25kaXRpb24uCj4gIC0gU2h1ZmZsZSB0aGluZ3MgYXJvdW5kIHRvIG1ha2UgdGhlIGNydGMg YW5kIHBsYW5lIHN0YXRlIGNoZWNrIGluCj4gICAgenhfZ2xfcGxhbmVfYXRvbWljX2NoZWNrIGEg Yml0IGNsZWFyZXIKPiAgLSBNb3ZlIGhhcmR3YXJlIHJlZ2lzdGVyIGRlZmluaXRpb25zIGludG8g aGVhZGVycyBpbnN0ZWFkIG9mIGRpc3R1cmJpbmcKPiAgICBDIGZpbGUgcmVhZGluZy4KPiAgLSBT YXZlIHRoZSBjYWxsIHRvIGRybV9jb25uZWN0b3JfdW5yZWdpc3RlcigpLCBzbyB0aGF0Cj4gICAg ZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwIGNhbiBkaXJlY3RseSBiZSB1c2VkIGFzIGRybV9jb25uZWN0 b3JfZnVuY3MKPiAgICAuZGVzdHJveSBob29rLgo+ICAtIE1vdmUgdmJsYW5rIG5vdGlmaWNhdGlv biBmcm9tIC5hdG9taWNfYmVnaW4gaG9vayB0byAuYXRvbWljX2ZsdXNoLAo+ICAgIHNvIHRoYXQg dmJsYW5rIGV2ZW50IGlzIHNlbnQgdG8gdXNlciBzcGFjZSBhZnRlciBwbGFuZXMgYXJlIGNvbW1p dHRlZAo+ICAgIHJhdGhlciB0aGFuIGJlZm9yZS4KPiAKPiBDaGFuZ2VzIGZvciB2MzoKPiAgLSBS ZWJhc2UgdG8gdjQuOS1yYzEKPiAgLSBVcGRhdGUgYmluZGluZ3MgZG9jIHRvIHVzZSAncmFuZ2Vz JyBmb3IgYWRkcmVzcyB0cmFuc2xhdGlvbiBiZXR3ZWVuCj4gICAgcGFyZW50IGFuZCBjaGlsZCBk ZXZpY2VzLgo+ICAtIENhbGwgZHJtX2Rldl9yZWdpc3RlcigpIGxhc3QgaW4gYmluZCBmdW5jdGlv biBhbmQgZHJtX2Rldl91bnJlZ2lzdGVyKCkKPiAgICBmaXJzdCBpbiB1bmJpbmQsIHNvIHRoYXQg ZHJtX2Nvbm5lY3Rvcl9yZWdpc2VyKCkgY2FuIGJlIHNhdmVkIGZyb20KPiAgICBIRE1JIGRyaXZl ci4KPiAgLSBJbnN0ZWFkIG9mIHVzaW5nIG9wZW4tY29kZWQgZHJtX2RvX2dldF9lZGlkKCksIGFk ZCBhbiBJMkMgYWRhcHRlciBmb3IKPiAgICBIRE1JIEREQyByZWFkIGFuZCB1c2UgZHJtX2dldF9l ZGlkKCkuCj4gIC0gSW1wcm92ZSB0aGUgcGxhbmUgLmF0b21pY19jaGVjayBpbXBsZW1lbnRhdGlv biBieSBjYWxsaW5nIGhlbHBlcgo+ICAgIGZ1bmN0aW9uIGRybV9wbGFuZV9oZWxwZXJfY2hlY2tf c3RhdGUoKS4KPiAgLSBSZW5hbWUgenhfY3J0Yy5jIHRvIHp4X3ZvdS5jIHRvIGF2b2lkIHRoZSBj b25mdXNpb24gdGhhdCB0aGUgZmlsZQo+ICAgIGltcGxlbWVudHMgY3J0YyBpbnN0YW5jZS4KPiAg LSBTdG9yZSB2b3UgcG9pbnRlciBpbiB6eF9jcnRjLCBzbyB0aGF0IHdlIGRvIG5vdCBuZWVkIHRv IGVtYmVkIHRoZQo+ICAgIHBvaW50ZXIgaW4genhfZHJtX3ByaXZhdGUuCj4gIC0gQ3JlYXRlIHp4 X3JlYWRsL3p4X3dyaXRlbC96eF93cml0ZWxfbWFzayBmb3IgcmVnaXN0ZXIgYWNjZXNzLgo+ICAt IERlZmluZSBhIGZldyBtYWNybyBoZWxwZXJzIHRvIGVhc2UgdGhlIHJlZ2lzdGVyIGJpdCBzZXR0 aW5nLCBsaWtlCj4gICAgU1lOQ19XSURFLCBCQUNLX1BPUkNIIGFuZCBGUk9OVF9QT1JDSC4KPiAg LSBEZWZpbmUgbWFpbi9hdXggY2hhbm5lbCBzcGVjaWZpYyByZWdpc3RlciBvZmZzZXQgYW5kIGJp dHMgaW4genhfY3J0Ywo+ICAgIHRvIHNhdmUgdGhlIHVzZSBvZiBpc19tYWluIGNoZWNrCj4gIC0g U29ydCBpbmNsdWRlIGhlYWRlcnMgYWxwaGFiZXRpY2FsbHkKPiAgLSBSZW1vdmluZyBlbmNvZGVy IHBvaW50ZXIgb3V0IG9mIHRoZSBzdHJ1Y3R1cmUgYW5kIGNvbnN0aWZ5IHN0cnVjdAo+ICAgIHZv dV9pbmYKPiAgLSBBZGQgbG9nIG1lc3NhZ2UgZm9yIGVycm9yIGNvbmRpdGlvbnMKPiAgLSBNYWtl IHRoZSBmdW5jdGlvbiBjYWxscyBpbiB0ZWFyZG93biBwYXRoIGFzeW1tZXRyaWNhbAo+ICAtIEEg ZmV3IGNvZGluZyBzdHlsZSBpbXByb3ZlbWVudHMgbGlrZSBkZWZpbmluZyBtYWNybyBmb3Igc3Vi LW1vZHVsZQo+ICAgIGFkZHJlc3MgYW5kIGNoYW5naW5nIGNvZGUgdG8gc2F2ZSBpbmRlbnRhdGlv biBsZXZlbAo+ICAtIEFkZCBhIE1BSU5UQUlORVJTIGVudHJ5IGZvciBaVEUgWlggRFJNIGRyaXZl cgo+IAo+IENoYW5nZXMgZm9yIHYyOgo+ICAtIENoYW5nZSBkZXZpY2UgdHJlZSBiaW5kaW5ncyB0 byBraWxsIHRoZSB2aXJ0dWFsIGRpc3BsYXktc3Vic3lzdGVtCj4gICAgbm9kZSBtYWtlIFZPVSB0 aGUgcGFyZW50IG5vZGUuCj4gCj4gU2hhd24gR3VvICgzKToKPiAgIGR0LWJpbmRpbmdzOiBhZGQg YmluZGluZ3MgZG9jIGZvciBaVEUgVk9VIGRpc3BsYXkgY29udHJvbGxlcgo+ICAgZHJtOiB6dGU6 IGFkZCBpbml0aWFsIHZvdSBkcm0gZHJpdmVyCj4gICBNQUlOVEFJTkVSUzogYWRkIGFuIGVudHJ5 IGZvciBaVEUgWlggRFJNIGRyaXZlcgo+IAo+ICAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNw bGF5L3p0ZSx2b3UudHh0ICAgICAgICB8ICA4NCArKysKPiAgTUFJTlRBSU5FUlMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKwo+ICBkcml2ZXJzL2dwdS9kcm0v S2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCj4gIGRyaXZlcnMvZ3B1 L2RybS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKPiAgZHJpdmVy cy9ncHUvZHJtL3p0ZS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKwo+ICBk cml2ZXJzL2dwdS9kcm0venRlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICB8ICAgNyAr Cj4gIGRyaXZlcnMvZ3B1L2RybS96dGUvenhfZHJtX2Rydi5jICAgICAgICAgICAgICAgICAgIHwg MjY3ICsrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0venRlL3p4X2RybV9kcnYuaCAgICAgICAg ICAgICAgICAgICB8ICAzNiArKwo+ICBkcml2ZXJzL2dwdS9kcm0venRlL3p4X2hkbWkuYyAgICAg ICAgICAgICAgICAgICAgICB8IDYyNCArKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1 L2RybS96dGUvenhfaGRtaV9yZWdzLmggICAgICAgICAgICAgICAgIHwgIDU2ICsrCj4gIGRyaXZl cnMvZ3B1L2RybS96dGUvenhfcGxhbmUuYyAgICAgICAgICAgICAgICAgICAgIHwgMjk5ICsrKysr KysrKysKPiAgZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5oICAgICAgICAgICAgICAgICAg ICAgfCAgMjYgKwo+ICBkcml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lX3JlZ3MuaCAgICAgICAg ICAgICAgICB8ICA5MSArKysKPiAgZHJpdmVycy9ncHUvZHJtL3p0ZS96eF92b3UuYyAgICAgICAg ICAgICAgICAgICAgICAgfCA2NjEgKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1 L2RybS96dGUvenhfdm91LmggICAgICAgICAgICAgICAgICAgICAgIHwgIDQ2ICsrCj4gIGRyaXZl cnMvZ3B1L2RybS96dGUvenhfdm91X3JlZ3MuaCAgICAgICAgICAgICAgICAgIHwgMTU3ICsrKysr Cj4gIDE2IGZpbGVzIGNoYW5nZWQsIDIzNzIgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAx MDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvenRlLHZvdS50 eHQKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS96dGUvS2NvbmZpZwo+ICBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3p0ZS9NYWtlZmlsZQo+ICBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9kcm1fZHJ2LmMKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS96dGUvenhfZHJtX2Rydi5oCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0venRlL3p4X2hkbWkuYwo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9oZG1pX3JlZ3MuaAo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9wbGFuZS5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL2dwdS9kcm0venRlL3p4X3BsYW5lLmgKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS96dGUvenhfcGxhbmVfcmVncy5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0venRlL3p4X3ZvdS5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0venRlL3p4X3ZvdS5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0v enRlL3p4X3ZvdV9yZWdzLmgKPiAKPiAtLSAKPiAxLjkuMQo+IApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK