From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH v4 2/6] drm/dsi: Refactor device creation Date: Tue, 26 Jan 2016 22:35:02 +0530 Message-ID: <56A7A73E.9040700@codeaurora.org> References: <1448884892-7731-1-git-send-email-architt@codeaurora.org> <1449751300-2841-1-git-send-email-architt@codeaurora.org> <1449751300-2841-3-git-send-email-architt@codeaurora.org> <20160121154605.GB647@ulmo.nvidia.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160121154605.GB647@ulmo.nvidia.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, a.hajda@samsung.com, dri-devel@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org CgpPbiAxLzIxLzIwMTYgOToxNiBQTSwgVGhpZXJyeSBSZWRpbmcgd3JvdGU6Cj4gT24gVGh1LCBE ZWMgMTAsIDIwMTUgYXQgMDY6MTE6MzZQTSArMDUzMCwgQXJjaGl0IFRhbmVqYSB3cm90ZToKPj4g U2ltcGxpZnkgdGhlIG1pcGkgZHNpIGRldmljZSBjcmVhdGlvbiBwcm9jZXNzLiBkZXZpY2VfaW5p dGlhbGl6ZSBhbmQKPgo+ICJNSVBJIiBhbmQgIkRTSSIsIHBsZWFzZS4KClN1cmUsIEknbGwgcmVw bGFjZSB3aXRoIHRoZXNlIGFuZCBpbiB0aGUgb3RoZXIgcGF0Y2hlcy4KCj4KPj4gZGV2aWNlX2Fk ZCBkb24ndCBuZWVkIHRvIGJlIGNhbGxlZCBzZXBhcmF0ZWx5IHdoZW4gY3JlYXRpbmcKPj4gbWlw aV9kc2lfZGV2aWNlJ3MuIFVzZSBkZXZpY2VfcmVnaXN0ZXIgaW5zdGVhZCB0byBzaW1wbGlmeSB0 aGluZ3MuCj4+Cj4+IENyZWF0ZSBhIGhlbHBlciBmdW5jdGlvbiBtaXBpX2RzaV9kZXZpY2VfbmV3 IHdoaWNoIHRha2VzIGluIHN0cnVjdAo+PiBtaXBpX2RzaV9kZXZpY2VfaW5mbyBhbmQgbWlwaV9k c2lfaG9zdC4gSXQgY2x1YnMgdGhlIGZ1bmN0aW9ucwo+PiBtaXBpX2RzaV9kZXZpY2VfYWxsb2Mg YW5kIG1pcGlfZHNpX2RldmljZV9hZGQgaW50byBvbmUuCj4+Cj4+IG1pcGlfZHNpX2RldmljZV9p bmZvIGFjdHMgYXMgYSB0ZW1wbGF0ZSB0byBwb3B1bGF0ZSB0aGUgZHNpIGRldmljZQo+PiBpbmZv cm1hdGlvbi4gVGhpcyBpcyBwb3B1bGF0ZWQgYnkgb2ZfbWlwaV9kc2lfZGV2aWNlX2FkZCBhbmQg cGFzc2VkIHRvCj4+IG1pcGlfZHNpX2RldmljZV9uZXcuCj4+Cj4+IExhdGVyIG9uLCB3ZSdsbCBw cm92aWRlIG1pcGlfZHNpX2RldmljZV9uZXcgYXMgYSBzdGFuZGFsb25lIHdheSB0byBjcmVhdGUK Pj4gYSBkc2kgZGV2aWNlIG5vdCBhdmFpbGFibGUgdmlhIERULgo+Pgo+PiBUaGUgbmV3IGRldmlj ZSBjcmVhdGlvbiBwcm9jZXNzIHRyaWVzIHRvIGNsb3NlbHkgZm9sbG93IHdoYXQncyBiZWVuIGRv bmUKPj4gaW4gaTJjX25ld19kZXZpY2UgaW4gaTJjLWNvcmUuCj4+Cj4+IFJldmlld2VkLWJ5OiBB bmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+PiBTaWduZWQtb2ZmLWJ5OiBBcmNo aXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dw dS9kcm0vZHJtX21pcGlfZHNpLmMgfCA2MSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPj4gICBpbmNsdWRlL2RybS9kcm1fbWlwaV9kc2kuaCAgICAgfCAxNSArKysr KysrKysrKwo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRp b25zKC0pCj4KPiBUbyBiZSBob25lc3QsIEknbSBub3Qgc3VyZSBJIGxpa2UgdGhpcy4gSWYgeW91 IHdhbnQgdG8gaGF2ZSBhIHNpbXBsZXIKPiBoZWxwZXIsIHdoeSBub3QgaW1wbGVtZW50IGl0IHVz aW5nIHRoZSBsb3dlci1sZXZlbCBoZWxwZXJzLiBSZWFsbHkgdGhlCj4gb25seSB0aGluZyB5b3Un cmUgZG9pbmcgaGVyZSBpcyBhZGQgYSBoaWdoLWxldmVsIGhlbHBlciB0aGF0IHRha2VzIGFuCj4g aW5mbyBzdHJ1Y3QsIHdoZXJlYXMgcHJldmlvdXNseSB0aGUgc2FtZSB3b3VsZCBiZSBkb25lIGJ5 IHN0b3JpbmcgdGhlCj4gaW5mbyBkaXJlY3RseSBpbiB0aGUgc3RydWN0dXJlIGJldHdlZW4gYWxs b2NhdGlvbiBhbmQgYWRkaXRpb24gb2YgdGhlCj4gZGV2aWNlLgo+Cj4gSW5pdGlhbGx5IHRoZSBp bXBsZW1lbnRhdGlvbiB3YXMgZm9sbG93aW5nIHRoYXQgb2YgcGxhdGZvcm0gZGV2aWNlcywgSQo+ IHNlZSBubyByZWFzb24gdG8gZGV2aWF0ZSBmcm9tIHRoYXQuIFdoYXQgeW91IHdhbnQgaGVyZSBj YW4gZWFzaWx5IGJlCgpJIGRvbid0IHNlZSB3aHkgd2UgbmVlZCB0byBjYWxsIGRldmljZV9pbml0 aWFsaXplIGFuZCBkZXZpY2VfYWRkCnNlcGFyYXRlbHkgZm9yIERTSSBkZXZpY2VzLiBGcm9tIG15 IChsaW1pdGVkKSB1bmRlcnN0YW5kaW5nLCB3ZSBzaG91bGQKY2FsbCB0aGVzZSBzZXBhcmF0ZWx5 IGlmIHdlIHdhbnQgdG8gdGFrZSBhIHJlZmVyZW5jZSAodXNpbmcgCmdldF9kZXZpY2UoKSksIG9y IHNldCB1cCBzb21lIHByaXZhdGUgZGF0YSBiZWZvcmUgdGhlIGJ1cydzCm5vdGlmaWVyIGtpY2tz IGluLgoKU2luY2UgdGhlIG1haW4gcHVycG9zZSBvZiB0aGUgc2VyaWVzIGlzIG5vdCB0byBzaW1w bGlmeSB0aGUgZGV2aWNlCmNyZWF0aW9uIGNvZGUsIEkgY2FuIGRyb3AgdGhpcy4KCj4gZG9uZSBi eSBzb21ldGhpbmcgbGlrZToKPgo+IAlzdHJ1Y3QgbWlwaV9kc2lfZGV2aWNlICoKPiAJbWlwaV9k c2lfZGV2aWNlX3JlZ2lzdGVyX2Z1bGwoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCj4gCQkJ CSAgICAgIGNvbnN0IHN0cnVjdCBtaXBpX2RzaV9kZXZpY2VfaW5mbyAqaW5mbykKPiAJewo+IAkJ c3RydWN0IG1pcGlfZHNpX2RldmljZSAqZHNpOwo+Cj4gCQlkc2kgPSBtaXBpX2RzaV9kZXZpY2Vf YWxsb2MoaG9zdCk7Cj4gCQlpZiAoSVNfRVJSKGRzaSkpCj4gCQkJcmV0dXJuIGRzaTsKPgo+IAkJ ZHNpLT5kZXYub2Zfbm9kZSA9IGluZm8tPm5vZGU7Cj4gCQlkc2ktPmNoYW5uZWwgPSBpbmZvLT5j aGFubmVsOwo+Cj4gCQllcnIgPSBtaXBpX2RzaV9kZXZpY2VfYWRkKGRzaSk7Cj4gCQlpZiAoZXJy IDwgMCkgewo+IAkJCS4uLgo+IAkJfQo+Cj4gCQlyZXR1cm4gZHNpOwo+IAl9Cj4KPiBUaGllcnJ5 Cj4KClRoaXMgZG9lcyBsb29rIGxlc3MgaW50cnVzaXZlLiBJJ2xsIGNvbnNpZGVyIHN3aXRjaGlu ZyB0byB0aGlzLgoKVGhhbmtzLApBcmNoaXQKCi0tIApRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRl ciwgSW5jLiBpcyBhIG1lbWJlciBvZiBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0 aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934749AbcAZRFQ (ORCPT ); Tue, 26 Jan 2016 12:05:16 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:54740 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934100AbcAZRFM (ORCPT ); Tue, 26 Jan 2016 12:05:12 -0500 Subject: Re: [PATCH v4 2/6] drm/dsi: Refactor device creation To: Thierry Reding References: <1448884892-7731-1-git-send-email-architt@codeaurora.org> <1449751300-2841-1-git-send-email-architt@codeaurora.org> <1449751300-2841-3-git-send-email-architt@codeaurora.org> <20160121154605.GB647@ulmo.nvidia.com> Cc: dri-devel@lists.freedesktop.org, a.hajda@samsung.com, jani.nikula@linux.intel.com, linux-kernel@vger.kernel.org, airlied@linux.ie, daniel@ffwll.ch, l.stach@pengutronix.de, robh@kernel.org, linux-arm-msm@vger.kernel.org From: Archit Taneja Message-ID: <56A7A73E.9040700@codeaurora.org> Date: Tue, 26 Jan 2016 22:35:02 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160121154605.GB647@ulmo.nvidia.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1/21/2016 9:16 PM, Thierry Reding wrote: > On Thu, Dec 10, 2015 at 06:11:36PM +0530, Archit Taneja wrote: >> Simplify the mipi dsi device creation process. device_initialize and > > "MIPI" and "DSI", please. Sure, I'll replace with these and in the other patches. > >> device_add don't need to be called separately when creating >> mipi_dsi_device's. Use device_register instead to simplify things. >> >> Create a helper function mipi_dsi_device_new which takes in struct >> mipi_dsi_device_info and mipi_dsi_host. It clubs the functions >> mipi_dsi_device_alloc and mipi_dsi_device_add into one. >> >> mipi_dsi_device_info acts as a template to populate the dsi device >> information. This is populated by of_mipi_dsi_device_add and passed to >> mipi_dsi_device_new. >> >> Later on, we'll provide mipi_dsi_device_new as a standalone way to create >> a dsi device not available via DT. >> >> The new device creation process tries to closely follow what's been done >> in i2c_new_device in i2c-core. >> >> Reviewed-by: Andrzej Hajda >> Signed-off-by: Archit Taneja >> --- >> drivers/gpu/drm/drm_mipi_dsi.c | 61 +++++++++++++++++------------------------- >> include/drm/drm_mipi_dsi.h | 15 +++++++++++ >> 2 files changed, 40 insertions(+), 36 deletions(-) > > To be honest, I'm not sure I like this. If you want to have a simpler > helper, why not implement it using the lower-level helpers. Really the > only thing you're doing here is add a high-level helper that takes an > info struct, whereas previously the same would be done by storing the > info directly in the structure between allocation and addition of the > device. > > Initially the implementation was following that of platform devices, I > see no reason to deviate from that. What you want here can easily be I don't see why we need to call device_initialize and device_add separately for DSI devices. From my (limited) understanding, we should call these separately if we want to take a reference (using get_device()), or set up some private data before the bus's notifier kicks in. Since the main purpose of the series is not to simplify the device creation code, I can drop this. > done by something like: > > struct mipi_dsi_device * > mipi_dsi_device_register_full(struct mipi_dsi_host *host, > const struct mipi_dsi_device_info *info) > { > struct mipi_dsi_device *dsi; > > dsi = mipi_dsi_device_alloc(host); > if (IS_ERR(dsi)) > return dsi; > > dsi->dev.of_node = info->node; > dsi->channel = info->channel; > > err = mipi_dsi_device_add(dsi); > if (err < 0) { > ... > } > > return dsi; > } > > Thierry > This does look less intrusive. I'll consider switching to this. Thanks, Archit -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project