From mboxrd@z Thu Jan 1 00:00:00 1970 From: moinejf@free.fr (Jean-Francois Moine) Date: Fri, 17 May 2013 13:33:45 +0200 Subject: [RFC 0/8] rmk's Dove DRM/TDA19988 Cubox driver In-Reply-To: <20130516192510.GV18614@n2100.arm.linux.org.uk> References: <20130516192510.GV18614@n2100.arm.linux.org.uk> Message-ID: <20130517133345.7c1368f5@armhf> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thu, 16 May 2013 20:25:10 +0100 Russell King - ARM Linux wrote: > What follows is my DRM driver for Dove, which I've been working on with > the Solid-run Cubox, which only offers HDMI output via the TDA19988 > chip. > > Not everything is finished off perfectly in this driver; there's quite > a number of ragged edges (particularly with page flipping, which is > completely untested.) > > I have most of the Xorg driver complete - none of the DRI interfaces > checked yet (partly because that involves quite an amount of work with > Mesa). > > However, graphics, video overlay, interlacing, accelerated GPU via the > original vivante support all works through this driver, with this driver > providing the X pixmaps. Hi Russell, I quickly compared your dove drm driver and ours (Sebastian and me): - CMA helper You don't use DRM_KMS_CMA_HELPER and DRM_GEM_CMA_HELPER which would simplify some code. - device tree Our driver depends on the DT and, by this way, it may be used for various boards (Cubox, DB-MV88AP510 Development Board, CompuLab CM-A510 Board..). Especially, in the Cubox, only a HDMI screen may be connected, while the display controller permits connection of a smart panel (port A) and a VGA screen (port B). Also, the driver could be used for different chips as the Armada 160 which has quite the same LCD controller (but one LCD only and no display controller - Sebastian's idea). - module loading (si5351, tda998x) As our driver is loaded by the Cubox DT, and as the auxilliary drivers (external clock, HDMI transmitter) may also be modules, a synchronization mechanism (inspired by the tegra drm driver) permits the driver to start when all the other drivers are also started. - display controller I implemented output port cloning (LCD 0 to port B) but it is not tested (I just have a Cubox and I think that Sebastian did not have time enough yet to do it). - LCD handling With our driver, the description of a smart panel (port A) may be done by the DT. - hardware cursor Our driver always proposes the HWC 32 (RGBA 64x64). - LCD clocks Each LCD may use one clock amongst 4 (AXI, LCD PLL and 2 external clocks). In our driver, the choice of the clock is done on each video mode change (Sebastian's idea). - interlaced modes While the code is there, I did not test the interlaced modes. Your code may be better. - video overlay Same as above: the code is in our driver (overlay plane), but it is not tested. - private ioctls It should be easy to add them in our driver and have an API compatible with your X server module. - screen rotation (IRE) This feature is needed when the Dove SoC is used in a tablet and does not exist in both drivers. - VGA DAC This feature is needed to get the VGA screen parameters (mode, dimensions) and does not exist in both drivers too. Otherwise, there are some small differences in, for example, programming the LCD modes, or treating the vblank events. What do you think about merging? -- Ken ar c'henta? | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/ From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Francois Moine Subject: Re: [RFC 0/8] rmk's Dove DRM/TDA19988 Cubox driver Date: Fri, 17 May 2013 13:33:45 +0200 Message-ID: <20130517133345.7c1368f5@armhf> References: <20130516192510.GV18614@n2100.arm.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20130516192510.GV18614@n2100.arm.linux.org.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Russell King - ARM Linux Cc: Jason Cooper , David Airlie , dri-devel@lists.freedesktop.org, Rob Clark , Darren Etheridge , linux-arm-kernel@lists.infradead.org, Sebastian Hesselbarth List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCAxNiBNYXkgMjAxMyAyMDoyNToxMCArMDEwMApSdXNzZWxsIEtpbmcgLSBBUk0gTGlu dXggPGxpbnV4QGFybS5saW51eC5vcmcudWs+IHdyb3RlOgoKPiBXaGF0IGZvbGxvd3MgaXMgbXkg RFJNIGRyaXZlciBmb3IgRG92ZSwgd2hpY2ggSSd2ZSBiZWVuIHdvcmtpbmcgb24gd2l0aAo+IHRo ZSBTb2xpZC1ydW4gQ3Vib3gsIHdoaWNoIG9ubHkgb2ZmZXJzIEhETUkgb3V0cHV0IHZpYSB0aGUg VERBMTk5ODgKPiBjaGlwLgo+IAo+IE5vdCBldmVyeXRoaW5nIGlzIGZpbmlzaGVkIG9mZiBwZXJm ZWN0bHkgaW4gdGhpcyBkcml2ZXI7IHRoZXJlJ3MgcXVpdGUKPiBhIG51bWJlciBvZiByYWdnZWQg ZWRnZXMgKHBhcnRpY3VsYXJseSB3aXRoIHBhZ2UgZmxpcHBpbmcsIHdoaWNoIGlzCj4gY29tcGxl dGVseSB1bnRlc3RlZC4pCj4gCj4gSSBoYXZlIG1vc3Qgb2YgdGhlIFhvcmcgZHJpdmVyIGNvbXBs ZXRlIC0gbm9uZSBvZiB0aGUgRFJJIGludGVyZmFjZXMKPiBjaGVja2VkIHlldCAocGFydGx5IGJl Y2F1c2UgdGhhdCBpbnZvbHZlcyBxdWl0ZSBhbiBhbW91bnQgb2Ygd29yayB3aXRoCj4gTWVzYSku Cj4gCj4gSG93ZXZlciwgZ3JhcGhpY3MsIHZpZGVvIG92ZXJsYXksIGludGVybGFjaW5nLCBhY2Nl bGVyYXRlZCBHUFUgdmlhIHRoZQo+IG9yaWdpbmFsIHZpdmFudGUgc3VwcG9ydCBhbGwgd29ya3Mg dGhyb3VnaCB0aGlzIGRyaXZlciwgd2l0aCB0aGlzIGRyaXZlcgo+IHByb3ZpZGluZyB0aGUgWCBw aXhtYXBzLgoKSGkgUnVzc2VsbCwKCkkgcXVpY2tseSBjb21wYXJlZCB5b3VyIGRvdmUgZHJtIGRy aXZlciBhbmQgb3VycyAoU2ViYXN0aWFuIGFuZCBtZSk6CgotIENNQSBoZWxwZXIKCiAgWW91IGRv bid0IHVzZSBEUk1fS01TX0NNQV9IRUxQRVIgYW5kIERSTV9HRU1fQ01BX0hFTFBFUiB3aGljaCB3 b3VsZAogIHNpbXBsaWZ5IHNvbWUgY29kZS4KCi0gZGV2aWNlIHRyZWUKCiAgT3VyIGRyaXZlciBk ZXBlbmRzIG9uIHRoZSBEVCBhbmQsIGJ5IHRoaXMgd2F5LCBpdCBtYXkgYmUgdXNlZCBmb3IKICB2 YXJpb3VzIGJvYXJkcyAoQ3Vib3gsIERCLU1WODhBUDUxMCBEZXZlbG9wbWVudCBCb2FyZCwgQ29t cHVMYWIKICBDTS1BNTEwIEJvYXJkLi4pLiBFc3BlY2lhbGx5LCBpbiB0aGUgQ3Vib3gsIG9ubHkg YSBIRE1JIHNjcmVlbiBtYXkgYmUKICBjb25uZWN0ZWQsIHdoaWxlIHRoZSBkaXNwbGF5IGNvbnRy b2xsZXIgcGVybWl0cyBjb25uZWN0aW9uIG9mIGEgc21hcnQKICBwYW5lbCAocG9ydCBBKSBhbmQg YSBWR0Egc2NyZWVuIChwb3J0IEIpLiAKICBBbHNvLCB0aGUgZHJpdmVyIGNvdWxkIGJlIHVzZWQg Zm9yIGRpZmZlcmVudCBjaGlwcyBhcyB0aGUgQXJtYWRhIDE2MAogIHdoaWNoIGhhcyBxdWl0ZSB0 aGUgc2FtZSBMQ0QgY29udHJvbGxlciAoYnV0IG9uZSBMQ0Qgb25seSBhbmQgbm8KICBkaXNwbGF5 IGNvbnRyb2xsZXIgLSBTZWJhc3RpYW4ncyBpZGVhKS4KCi0gbW9kdWxlIGxvYWRpbmcgKHNpNTM1 MSwgdGRhOTk4eCkKCiAgQXMgb3VyIGRyaXZlciBpcyBsb2FkZWQgYnkgdGhlIEN1Ym94IERULCBh bmQgYXMgdGhlIGF1eGlsbGlhcnkgZHJpdmVycwogIChleHRlcm5hbCBjbG9jaywgSERNSSB0cmFu c21pdHRlcikgbWF5IGFsc28gYmUgbW9kdWxlcywgYQogIHN5bmNocm9uaXphdGlvbiBtZWNoYW5p c20gKGluc3BpcmVkIGJ5IHRoZSB0ZWdyYSBkcm0gZHJpdmVyKSBwZXJtaXRzCiAgdGhlIGRyaXZl ciB0byBzdGFydCB3aGVuIGFsbCB0aGUgb3RoZXIgZHJpdmVycyBhcmUgYWxzbyBzdGFydGVkLgoK LSBkaXNwbGF5IGNvbnRyb2xsZXIKCiAgSSBpbXBsZW1lbnRlZCBvdXRwdXQgcG9ydCBjbG9uaW5n IChMQ0QgMCB0byBwb3J0IEIpIGJ1dCBpdCBpcyBub3QKICB0ZXN0ZWQgKEkganVzdCBoYXZlIGEg Q3Vib3ggYW5kIEkgdGhpbmsgdGhhdCBTZWJhc3RpYW4gZGlkIG5vdCBoYXZlCiAgdGltZSBlbm91 Z2ggeWV0IHRvIGRvIGl0KS4gICAgIAoKLSBMQ0QgaGFuZGxpbmcKCiAgV2l0aCBvdXIgZHJpdmVy LCB0aGUgZGVzY3JpcHRpb24gb2YgYSBzbWFydCBwYW5lbCAocG9ydCBBKSBtYXkgYmUKICBkb25l IGJ5IHRoZSBEVC4KCi0gaGFyZHdhcmUgY3Vyc29yCgogIE91ciBkcml2ZXIgYWx3YXlzIHByb3Bv c2VzIHRoZSBIV0MgMzIgKFJHQkEgNjR4NjQpLgoKLSBMQ0QgY2xvY2tzCgogIEVhY2ggTENEIG1h eSB1c2Ugb25lIGNsb2NrIGFtb25nc3QgNCAoQVhJLCBMQ0QgUExMIGFuZCAyIGV4dGVybmFsCiAg Y2xvY2tzKS4gSW4gb3VyIGRyaXZlciwgdGhlIGNob2ljZSBvZiB0aGUgY2xvY2sgaXMgZG9uZSBv biBlYWNoIHZpZGVvCiAgbW9kZSBjaGFuZ2UgKFNlYmFzdGlhbidzIGlkZWEpLgoKLSBpbnRlcmxh Y2VkIG1vZGVzCgogIFdoaWxlIHRoZSBjb2RlIGlzIHRoZXJlLCBJIGRpZCBub3QgdGVzdCB0aGUg aW50ZXJsYWNlZCBtb2Rlcy4KICBZb3VyIGNvZGUgbWF5IGJlIGJldHRlci4KCi0gdmlkZW8gb3Zl cmxheQoKICBTYW1lIGFzIGFib3ZlOiB0aGUgY29kZSBpcyBpbiBvdXIgZHJpdmVyIChvdmVybGF5 IHBsYW5lKSwgYnV0IGl0IGlzCiAgbm90IHRlc3RlZC4KCi0gcHJpdmF0ZSBpb2N0bHMKCiAgSXQg c2hvdWxkIGJlIGVhc3kgdG8gYWRkIHRoZW0gaW4gb3VyIGRyaXZlciBhbmQgaGF2ZSBhbiBBUEkK ICBjb21wYXRpYmxlIHdpdGggeW91ciBYIHNlcnZlciBtb2R1bGUuIAoKLSBzY3JlZW4gcm90YXRp b24gKElSRSkKCiAgVGhpcyBmZWF0dXJlIGlzIG5lZWRlZCB3aGVuIHRoZSBEb3ZlIFNvQyBpcyB1 c2VkIGluIGEgdGFibGV0IGFuZCBkb2VzCiAgbm90IGV4aXN0IGluIGJvdGggZHJpdmVycy4KCi0g VkdBIERBQwoKICBUaGlzIGZlYXR1cmUgaXMgbmVlZGVkIHRvIGdldCB0aGUgVkdBIHNjcmVlbiBw YXJhbWV0ZXJzIChtb2RlLAogIGRpbWVuc2lvbnMpIGFuZCBkb2VzIG5vdCBleGlzdCBpbiBib3Ro IGRyaXZlcnMgdG9vLgoKT3RoZXJ3aXNlLCB0aGVyZSBhcmUgc29tZSBzbWFsbCBkaWZmZXJlbmNl cyBpbiwgZm9yIGV4YW1wbGUsCnByb2dyYW1taW5nIHRoZSBMQ0QgbW9kZXMsIG9yIHRyZWF0aW5n IHRoZSB2YmxhbmsgZXZlbnRzLgoKV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgbWVyZ2luZz8KCi0t IApLZW4gYXIgYydoZW50YcOxCXwJICAgICAgKiogQnJlaXpoIGhhIExpbnV4IGF0YXYhICoqCkpl ZgkJfAkJaHR0cDovL21vaW5lamYuZnJlZS5mci8KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK