From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel@ffwll.ch (Daniel Vetter) Date: Mon, 21 Aug 2017 18:30:16 +0200 Subject: [PATCH 2/4 v2] drm/tve200: Add new driver for TVE200 In-Reply-To: <20170820100557.24991-2-linus.walleij@linaro.org> References: <20170820100557.24991-1-linus.walleij@linaro.org> <20170820100557.24991-2-linus.walleij@linaro.org> Message-ID: <20170821163016.l2lw3xmsxxvh45xs@phenom.ffwll.local> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sun, Aug 20, 2017 at 12:05:55PM +0200, Linus Walleij wrote: > This adds a new DRM driver for the Faraday Technology TVE200 > block. This "TV Encoder" encodes a ITU-T BT.656 stream and can > be found in the StorLink SL3516 (later Cortina Systems CS3516) > as well as the Grain Media GM8180. > > I do not have definitive word from anyone at Faraday that this > IP block is theirs, but it bears the hallmark of their 3-digit > version code (200) and is used in two SoCs from completely > different companies. (Grain Media was fully owned by Faraday > until it was transferred to NovoTek this january, and > Faraday did lots of work on the StorLink SoCs.) > > The D-Link DIR-685 uses this in connection with the Ilitek > ILI9322 panel driver that supports BT.656 input, while the > GM8180 apparently has been used with the Cirrus Logic CS4954 > digital video encoder. The oldest user seems to be > something called Techwall 2835. > > This driver is heavily inspired by Eric Anholt's PL111 > driver and therefore I have mentioned all the ancestor authors > in the header file. > > Acked-by: Daniel Vetter > Reviewed-by: Eric Anholt > Signed-off-by: Linus Walleij Just 2 comments for the discussion: On wiring up the panel-bridge: The rough idea would be to be to wrap the panel into drm_bridge using devm_drm_panel_bridge_add(). That should remove pretty much all your connector code. Then attach that bridge to your simple kms pipe using drm_simple_display_pipe_attach_bridge(). If you use that one you can pass NULL for the connector when calling drm_simple_display_pipe_init(), the kernel-doc explains that. I don't think anything else would be needed really, it should all just work. Well, you'd need to remove all the explicit calls to enable/disable the panel, since the bridge takes care of that. But imo that can be done as a follow up, if you're bored. > +static int tve200_display_prepare_fb(struct drm_simple_display_pipe *pipe, > + struct drm_plane_state *plane_state) > +{ > + return drm_fb_cma_prepare_fb(&pipe->plane, plane_state); > +} I think a wrapper in the simple_kms_helper for the above would be good. Probably best done after Noralf's cleanup has landed (since that removes the cma-specific prepare_fb function and replaces it by a generic one which works for all gem based drivers). btw for merging your driver I think you only need the DT ack from Rob Herring, then you can push the entire pile to drm-misc. Cheers, Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/4 v2] drm/tve200: Add new driver for TVE200 Date: Mon, 21 Aug 2017 18:30:16 +0200 Message-ID: <20170821163016.l2lw3xmsxxvh45xs@phenom.ffwll.local> References: <20170820100557.24991-1-linus.walleij@linaro.org> <20170820100557.24991-2-linus.walleij@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 78B926E29E for ; Mon, 21 Aug 2017 16:30:24 +0000 (UTC) Received: by mail-wr0-x242.google.com with SMTP id p14so13237454wrg.1 for ; Mon, 21 Aug 2017 09:30:24 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20170820100557.24991-2-linus.walleij@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Linus Walleij Cc: dri-devel@lists.freedesktop.org, Daniel Vetter , linux-arm-kernel@lists.infradead.org List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBBdWcgMjAsIDIwMTcgYXQgMTI6MDU6NTVQTSArMDIwMCwgTGludXMgV2FsbGVpaiB3 cm90ZToKPiBUaGlzIGFkZHMgYSBuZXcgRFJNIGRyaXZlciBmb3IgdGhlIEZhcmFkYXkgVGVjaG5v bG9neSBUVkUyMDAKPiBibG9jay4gVGhpcyAiVFYgRW5jb2RlciIgZW5jb2RlcyBhIElUVS1UIEJU LjY1NiBzdHJlYW0gYW5kIGNhbgo+IGJlIGZvdW5kIGluIHRoZSBTdG9yTGluayBTTDM1MTYgKGxh dGVyIENvcnRpbmEgU3lzdGVtcyBDUzM1MTYpCj4gYXMgd2VsbCBhcyB0aGUgR3JhaW4gTWVkaWEg R004MTgwLgo+IAo+IEkgZG8gbm90IGhhdmUgZGVmaW5pdGl2ZSB3b3JkIGZyb20gYW55b25lIGF0 IEZhcmFkYXkgdGhhdCB0aGlzCj4gSVAgYmxvY2sgaXMgdGhlaXJzLCBidXQgaXQgYmVhcnMgdGhl IGhhbGxtYXJrIG9mIHRoZWlyIDMtZGlnaXQKPiB2ZXJzaW9uIGNvZGUgKDIwMCkgYW5kIGlzIHVz ZWQgaW4gdHdvIFNvQ3MgZnJvbSBjb21wbGV0ZWx5Cj4gZGlmZmVyZW50IGNvbXBhbmllcy4gKEdy YWluIE1lZGlhIHdhcyBmdWxseSBvd25lZCBieSBGYXJhZGF5Cj4gdW50aWwgaXQgd2FzIHRyYW5z ZmVycmVkIHRvIE5vdm9UZWsgdGhpcyBqYW51YXJ5LCBhbmQKPiBGYXJhZGF5IGRpZCBsb3RzIG9m IHdvcmsgb24gdGhlIFN0b3JMaW5rIFNvQ3MuKQo+IAo+IFRoZSBELUxpbmsgRElSLTY4NSB1c2Vz IHRoaXMgaW4gY29ubmVjdGlvbiB3aXRoIHRoZSBJbGl0ZWsKPiBJTEk5MzIyIHBhbmVsIGRyaXZl ciB0aGF0IHN1cHBvcnRzIEJULjY1NiBpbnB1dCwgd2hpbGUgdGhlCj4gR004MTgwIGFwcGFyZW50 bHkgaGFzIGJlZW4gdXNlZCB3aXRoIHRoZSBDaXJydXMgTG9naWMgQ1M0OTU0Cj4gZGlnaXRhbCB2 aWRlbyBlbmNvZGVyLiBUaGUgb2xkZXN0IHVzZXIgc2VlbXMgdG8gYmUKPiBzb21ldGhpbmcgY2Fs bGVkIFRlY2h3YWxsIDI4MzUuCj4gCj4gVGhpcyBkcml2ZXIgaXMgaGVhdmlseSBpbnNwaXJlZCBi eSBFcmljIEFuaG9sdCdzIFBMMTExCj4gZHJpdmVyIGFuZCB0aGVyZWZvcmUgSSBoYXZlIG1lbnRp b25lZCBhbGwgdGhlIGFuY2VzdG9yIGF1dGhvcnMKPiBpbiB0aGUgaGVhZGVyIGZpbGUuCj4gCj4g QWNrZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gUmV2aWV3 ZWQtYnk6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Cj4gU2lnbmVkLW9mZi1ieTogTGlu dXMgV2FsbGVpaiA8bGludXMud2FsbGVpakBsaW5hcm8ub3JnPgoKSnVzdCAyIGNvbW1lbnRzIGZv ciB0aGUgZGlzY3Vzc2lvbjoKCk9uIHdpcmluZyB1cCB0aGUgcGFuZWwtYnJpZGdlOiBUaGUgcm91 Z2ggaWRlYSB3b3VsZCBiZSB0byBiZSB0byB3cmFwIHRoZQpwYW5lbCBpbnRvIGRybV9icmlkZ2Ug dXNpbmcgZGV2bV9kcm1fcGFuZWxfYnJpZGdlX2FkZCgpLiBUaGF0IHNob3VsZApyZW1vdmUgcHJl dHR5IG11Y2ggYWxsIHlvdXIgY29ubmVjdG9yIGNvZGUuCgpUaGVuIGF0dGFjaCB0aGF0IGJyaWRn ZSB0byB5b3VyIHNpbXBsZSBrbXMgcGlwZSB1c2luZwpkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9h dHRhY2hfYnJpZGdlKCkuIElmIHlvdSB1c2UgdGhhdCBvbmUgeW91IGNhbiBwYXNzCk5VTEwgZm9y IHRoZSBjb25uZWN0b3Igd2hlbiBjYWxsaW5nIGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2luaXQo KSwgdGhlCmtlcm5lbC1kb2MgZXhwbGFpbnMgdGhhdC4KCkkgZG9uJ3QgdGhpbmsgYW55dGhpbmcg ZWxzZSB3b3VsZCBiZSBuZWVkZWQgcmVhbGx5LCBpdCBzaG91bGQgYWxsIGp1c3QKd29yay4gV2Vs bCwgeW91J2QgbmVlZCB0byByZW1vdmUgYWxsIHRoZSBleHBsaWNpdCBjYWxscyB0byBlbmFibGUv ZGlzYWJsZQp0aGUgcGFuZWwsIHNpbmNlIHRoZSBicmlkZ2UgdGFrZXMgY2FyZSBvZiB0aGF0LgoK QnV0IGltbyB0aGF0IGNhbiBiZSBkb25lIGFzIGEgZm9sbG93IHVwLCBpZiB5b3UncmUgYm9yZWQu Cgo+ICtzdGF0aWMgaW50IHR2ZTIwMF9kaXNwbGF5X3ByZXBhcmVfZmIoc3RydWN0IGRybV9zaW1w bGVfZGlzcGxheV9waXBlICpwaXBlLAo+ICsJCQkJICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQo+ICt7Cj4gKwlyZXR1cm4gZHJtX2ZiX2NtYV9wcmVwYXJlX2ZiKCZwaXBl LT5wbGFuZSwgcGxhbmVfc3RhdGUpOwo+ICt9CgpJIHRoaW5rIGEgd3JhcHBlciBpbiB0aGUgc2lt cGxlX2ttc19oZWxwZXIgZm9yIHRoZSBhYm92ZSB3b3VsZCBiZSBnb29kLgpQcm9iYWJseSBiZXN0 IGRvbmUgYWZ0ZXIgTm9yYWxmJ3MgY2xlYW51cCBoYXMgbGFuZGVkIChzaW5jZSB0aGF0IHJlbW92 ZXMKdGhlIGNtYS1zcGVjaWZpYyBwcmVwYXJlX2ZiIGZ1bmN0aW9uIGFuZCByZXBsYWNlcyBpdCBi eSBhIGdlbmVyaWMgb25lCndoaWNoIHdvcmtzIGZvciBhbGwgZ2VtIGJhc2VkIGRyaXZlcnMpLgoK YnR3IGZvciBtZXJnaW5nIHlvdXIgZHJpdmVyIEkgdGhpbmsgeW91IG9ubHkgbmVlZCB0aGUgRFQg YWNrIGZyb20gUm9iCkhlcnJpbmcsIHRoZW4geW91IGNhbiBwdXNoIHRoZSBlbnRpcmUgcGlsZSB0 byBkcm0tbWlzYy4KCkNoZWVycywgRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK