From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: Re: [PATCH v2 0/7] drm/exynos: more cleanup with super device support Date: Thu, 03 Apr 2014 09:43:46 +0200 Message-ID: <533D1132.9070004@samsung.com> References: <1396355882-17010-1-git-send-email-inki.dae@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mailout3.w1.samsung.com (mailout3.w1.samsung.com [210.118.77.13]) by gabe.freedesktop.org (Postfix) with ESMTP id 0F3FC6ECD0 for ; Thu, 3 Apr 2014 00:43:53 -0700 (PDT) Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N3G00EJD2T17140@mailout3.w1.samsung.com> for dri-devel@lists.freedesktop.org; Thu, 03 Apr 2014 08:43:49 +0100 (BST) In-reply-to: <1396355882-17010-1-git-send-email-inki.dae@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , airlied@linux.ie, dri-devel@lists.freedesktop.org Cc: kyungmin.park@samsung.com List-Id: dri-devel@lists.freedesktop.org Hi Inki, On 04/01/2014 02:37 PM, Inki Dae wrote: > This patch series cleans up exynos drm framework and kms sub drivers > using the component framework[1]. I have tested it on trats platform (fimd + dsi), it works. However it seems to be suboptimal. In case of deferred probing of any of components (due to lack of some resources, ex. clock, regulator, phy), all components which were already bound are unbound and re-bound later when another driver is added, this causes multiple unnecessary free/re-allocate cycles. Maybe I miss something, but I guess registration list(s) + DT super-node should perform better. Here is sample log from trats with mipi-phy driver delayed probe: binding 11c00000.fimd (ops fimd_component_ops) bound 11c00000.fimd (ops fimd_component_ops) binding 11c80000.dsi (ops exynos_dsi_component_ops) failed to bind 11c80000.dsi (ops exynos_dsi_component_ops): -517 unbinding 11c00000.fimd (ops fimd_component_ops) master bind failed: -517 binding 11c00000.fimd (ops fimd_component_ops) bound 11c00000.fimd (ops fimd_component_ops) binding 11c80000.dsi (ops exynos_dsi_component_ops) failed to bind 11c80000.dsi (ops exynos_dsi_component_ops): -517 unbinding 11c00000.fimd (ops fimd_component_ops) master bind failed: -517 binding 11c00000.fimd (ops fimd_component_ops) bound 11c00000.fimd (ops fimd_component_ops) binding 11c80000.dsi (ops exynos_dsi_component_ops) failed to bind 11c80000.dsi (ops exynos_dsi_component_ops): -517 unbinding 11c00000.fimd (ops fimd_component_ops) master bind failed: -517 binding 11c00000.fimd (ops fimd_component_ops) bound 11c00000.fimd (ops fimd_component_ops) binding 11c80000.dsi (ops exynos_dsi_component_ops) failed to bind 11c80000.dsi (ops exynos_dsi_component_ops): -517 unbinding 11c00000.fimd (ops fimd_component_ops) master bind failed: -517 binding 11c00000.fimd (ops fimd_component_ops) bound 11c00000.fimd (ops fimd_component_ops) binding 11c80000.dsi (ops exynos_dsi_component_ops) bound 11c80000.dsi (ops exynos_dsi_component_ops) This log will grow with number of devices probed in-between. Regards Andrzej > > And this patch series had been posted for RFC[2]. > > Thanks, > Inki Dae > > [1] http://lists.freedesktop.org/archives/dri-devel/2014-January/051249.html > [2] http://comments.gmane.org/gmane.comp.video.dri.devel/101200 > > > Inki Dae (7): > drm/exynos: add super device support > drm/exynos: dpi: fix hotplug fail issue > drm/exynos: register platform driver at each kms sub drivers > ARM: dts: exynos4210-universal: add super device node for exynos drm > ARM: dts: exynos4210-trats: add super device node for exynos drm > ARM: dts: exynos4412-trats2: add super device node for exynos drm > exynos/drm: add DT bindings > > .../bindings/drm/exynos/samsung-exynos-drm.txt | 32 +++ > arch/arm/boot/dts/exynos4210-trats.dts | 5 + > arch/arm/boot/dts/exynos4210-universal_c210.dts | 5 + > arch/arm/boot/dts/exynos4412-trats2.dts | 5 + > drivers/gpu/drm/exynos/exynos_dp_core.c | 46 ++-- > drivers/gpu/drm/exynos/exynos_drm_core.c | 216 +++-------------- > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 17 ++ > drivers/gpu/drm/exynos/exynos_drm_crtc.h | 4 + > drivers/gpu/drm/exynos/exynos_drm_dpi.c | 21 +- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 256 ++++++++------------ > drivers/gpu/drm/exynos/exynos_drm_drv.h | 79 +++--- > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 39 ++- > drivers/gpu/drm/exynos/exynos_drm_fimd.c | 77 ++++-- > drivers/gpu/drm/exynos/exynos_drm_vidi.c | 61 +++-- > drivers/gpu/drm/exynos/exynos_hdmi.c | 46 ++-- > drivers/gpu/drm/exynos/exynos_mixer.c | 55 ++++- > 16 files changed, 490 insertions(+), 474 deletions(-) > create mode 100644 Documentation/devicetree/bindings/drm/exynos/samsung-exynos-drm.txt >