From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 00/13] drm/kms/mode: using helper func drm_display_mode_to/from_videomode for calculating timing parameters Date: Mon, 7 May 2018 15:46:02 +0200 Message-ID: <20180507134602.GH12521@phenom.ffwll.local> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Satendra Singh Thakur Cc: linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, madhur.verma@samsung.com, hemanshu.s@samsung.com, linux-mediatek@lists.infradead.org, linux-tegra@vger.kernel.org, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org List-Id: linux-tegra@vger.kernel.org T24gVGh1LCBNYXkgMDMsIDIwMTggYXQgMDE6NTM6NTVQTSArMDUzMCwgU2F0ZW5kcmEgU2luZ2gg VGhha3VyIHdyb3RlOgo+IDEuVGhlcmUgaXMgYSBmdW5jdGlvbiBpbiBkcm0tY29yZSB0byBjYWxj dWxhdGUgZGlzcGxheSB0aW1pbmcgcGFyYW1ldGVyczoKPiBob3Jpem9udGFsIGZyb250IHBvcmNo LCBiYWNrIHBvcmNoLCBzeW5jIGxlbmd0aCwKPiB2ZXJ0aWNhbCBmcm9udCBwb3JjaCwgYmFjayBw b3JjaCwgc3luYyBsZW5ndGggYW5kCj4gY2xvY2sgaW4gSHouCj4gSG93ZXZlciwgc29tZSBkcml2 ZXJzIGFyZSBzdGlsbCBjYWxjdWxhdGluZyB0aGVzZSBwYXJhbWV0ZXJzIHRoZW1zZWx2ZXMuCj4g VGhlcmVmb3JlLCB0aGVyZSBpcyBhIGR1cGxpY2F0aW9uIG9mIHRoZSBjb2RlLgo+IFRoaXMgcGF0 Y2ggc2VyaWVzIHJlcGxhY2VzIHRoaXMgcmVkdW5kYW50IGNvZGUgd2l0aCB0aGUgZnVuY3Rpb24K PiBkcm1fZGlzcGxheV9tb2RlX3RvX3ZpZGVvbW9kZS4KPiBUaGlzIHJlbW92ZXMgbmVhcmx5IDEw MCByZWR1bmRhbnQgbGluZXMgZnJvbSB0aGUgcmVsYXRlZCBkcml2ZXJzLgo+IDIuRm9yIHNvbWUg ZHJpdmVycyAoc3VuNGkpIHRoZSByZXZlcnNlIGhlbHBlcgo+IGRybV9kaXNwbGF5X21vZGVfZnJv bV92aWRlb21vZGUgaXMgdXNlZC4KPiAzLkZvciBzb21lIGRyaXZlcnMgaXQgcmVwbGFjZXMgYXJp dGhtYXRpYyBvcGVyYXRvcnMgKCosIC8pIHdpdGggc2hpZnRpbmcKPiBvcGVyYXRvcnMgKD4+LCA8 PCkuCj4gNC5Gb3Igc29tZSBkcml2ZXJzIERSTV9NT0RFX0ZMQUdfKiBhcmUgcmVwbGFjZWQgd2l0 aCBESVNQTEFZX0ZMQUdTXyogZmxhZ3MuCj4gNS5UaGVzZSBjaGFuZ2VzIGFwcGx5IHRvIGZvbGxv d2luZyBjcnRjIGFuZCBlbmNvZGVyIGRyaXZlcnM6Cj4gYXRtZWwtaGxjZGMKPiBicmlkZ2UtdGMz NTg3NjcKPiBleHlub3MtZHNpCj4gZnNsLWRjdQo+IGdtYTUwMC1tZGZsZF9kc2lfZHBpCj4gaGlz aWxpY29uLWtpcmluX2RzaSwgYWRlCj4gbWVzb24tZW5jb2Rlcgo+IHBsMTExLWRpc3BsYXkKPiBz dW40aS10dgo+IHRpIGxjZGMKPiB0ZWdyYSBkYwo+IG1lZGlhdGVrIGRwaSBkc2kKPiBicmlkZ2Ut YWR2NzUzMwoKVGhlIGRybV9tb2RlX3RvX3ZpZGVvbW9kZSBoZWxwZXIgaXMgbWVhbnQgZm9yIGlu dGVyb3AgYmV0d2VlbiBkcm0gYW5kIHY0bCwKd2hpY2ggaGF2ZSBkaWZmZXJlbnQgaW50ZXJuYWwg c3RydWN0dXJlcyB0byByZXByZXNlbnQgbW9kZXMuCgpGb3IgZHJpdmVycyB0aGF0IG9ubHkgdXNl IGRybSBJIHRoaW5rIHRoZSBiZXR0ZXIgb3B0aW9uIHdvdWxkIGJlIHRvIGFkZAp0aGVzZSBmaWVs ZHMgdG8gc3RydWN0IGRybV9kaXNwbGF5X21vZGUgYXMgYW5vdGhlciBzZXQgb2YgY3J0Y18qIHZh bHVlcwoodGhlIGNvbXB1dGVkIHZhbHVlcyBhcmUgc3RvcmVkIGluIGNydGNfIHByZWZpeGVkIG1l bWJlcnMpLiBBbmQgY29tcHV0ZQpmcm9udC9iYWNrIHBvcmNoIGluIGRybV9tb2RlX3NldF9jcnRj aW5mby4KClRoZW4gd2UgY2FuIHVzZSB0aGVzZSBuZXcgZHJtX2Rpc3BsYXlfbW9kZS0+Y3J0Y19o fHZmcm9udHxiYWNrX3BvcmNoCmZpZWxkcyBpbiBhbGwgdGhlIGRyaXZlcnMgeW91J3JlIGNoYW5n aW5nLiBUaGlzIHdheSB5b3UgYXZvaWQgaGF2aW5nIHRvCmNoYW5nZSBhbGwgdGhlIGRybSBkcml2 ZXJzIHRvIHVzZSB2NGwgI2RlZmluZXMuCgpUaGFua3MsCkRhbmllbAoKPiAKPiBTYXRlbmRyYSBT aW5naCBUaGFrdXIgKDEzKToKPiAgIGRybS9rbXMvbW9kZS9hdG1lbC1obGNkYzogdXNpbmcgaGVs cGVyIGZ1bmMKPiAgICAgZHJtX2Rpc3BsYXlfbW9kZV90b192aWRlb21vZGUgZm9yIGNhbGN1bGF0 aW5nIHRpbWluZyBwYXJhbWV0ZXJzCj4gICBkcm0va21zL21vZGUvYnJpZGdlLXRjMzU4NzY3OiB1 c2luZyBoZWxwZXIgZnVuYwo+ICAgICBkcm1fZGlzcGxheV9tb2RlX3RvX3ZpZGVvbW9kZSBmb3Ig Y2FsY3VsYXRpbmcgdGltaW5nIHBhcmFtZXRlcnMKPiAgIGRybS9rbXMvbW9kZS9leHlub3MtZHNp OiB1c2luZyBoZWxwZXIgZnVuYwo+ICAgICBkcm1fZGlzcGxheV9tb2RlX3RvX3ZpZGVvbW9kZSBm b3IgY2FsY3VsYXRpbmcgdGltaW5nIHBhcmFtZXRlcnMKPiAgIGRybS9rbXMvbW9kZS9mc2wtZGN1 OiB1c2luZyBoZWxwZXIgZnVuYyBkcm1fZGlzcGxheV9tb2RlX3RvX3ZpZGVvbW9kZSAKPiAgICAg ICAgZm9yIGNhbGN1bGF0aW5nIHRpbWluZyBwYXJhbWV0ZXJzCj4gICBkcm0va21zL21vZGUvZ21h NTAwLW1kZmxkX2RzaV9kcGk6IHVzaW5nIGhlbHBlciBmdW5jdGlvbgo+ICAgICBkcm1fZGlzcGxh eV9tb2RlX3RvX3ZpZGVvbW9kZSBmb3IgY2FsY3VsYXRpbmcgdGltaW5nIHBhcmFtZXRlcnMKPiAg IGRybS9rbXMvbW9kZS9oaXNpbGljb24ta2lyaW4tZHNpLWFkZTogdXNpbmcgaGVscGVyIGZ1bmN0 aW9uICAgIAo+ICAgICBkcm1fZGlzcGxheV9tb2RlX3RvX3ZpZGVvbW9kZSBmb3IgY2FsY3VsYXRp bmcgdGltaW5nIHBhcmFtZXRlcnMKPiAgIGRybS9rbXMvbW9kZS9tZXNvbi1lbmNvZGVyOiB1c2lu ZyBoZWxwZXIgZnVuY3Rpb24KPiAgICAgZHJtX2Rpc3BsYXlfbW9kZV90b192aWRlb21vZGUgZm9y IGNhbGN1bGF0aW5nIHRpbWluZyBwYXJhbWV0ZXJzCj4gICBkcm0va21zL21vZGUvcGwxMTEtZGlz cGxheTogdXNpbmcgaGVscGVyIGZ1bmN0aW9uCj4gICAgIGRybV9kaXNwbGF5X21vZGVfdG9fdmlk ZW9tb2RlIGZvciBjYWxjdWxhdGluZyB0aW1pbmcgcGFyYW1ldGVycwo+ICAgZHJtL2ttcy9tb2Rl L3N1bjRpLXR2OiB1c2luZyBoZWxwZXIgZnVuYwo+ICAgICBkcm1fZGlzcGxheV9tb2RlX2Zyb21f dmlkZW9tb2RlIGZvciBjYWxjdWxhdGluZyB0aW1pbmcKPiAgICAgcGFyYW1ldGVycwo+ICAgZHJt L2ttcy9tb2RlL3RpLWxjZGM6IHVzaW5nIGhlbHBlciBmdW5jIGRybV9kaXNwbGF5X21vZGVfdG9f dmlkZW9tb2RlIAo+ICAgICAgICBmb3IgY2FsY3VsYXRpbmcgdGltaW5nIHBhcmFtZXRlcnMKPiAg IGRybS9rbXMvbW9kZS90ZWdyYTogdXNpbmcgaGVscGVyIGZ1bmMgZHJtX2Rpc3BsYXlfbW9kZV90 b192aWRlb21vZGUKPiAgICAgZm9yIGNhbGN1bGF0aW5nIHRpbWluZyBwYXJhbWV0ZXJzCj4gICBk cm0va21zL21vZGUvbXRrX2RwaV9kc2k6IHVzaW5nIGhlbHBlciBmdW5jCj4gICAgIGRybV9kaXNw bGF5X21vZGVfdG9fdmlkZW9tb2RlIGZvciBjYWxjdWxhdGluZyB0aW1pbmcgcGFyYW1ldGVycwo+ ICAgZHJtL2ttcy9tb2RlL2JyaWRnZS1hZHY3NTMzOiB1c2luZyBoZWxwZXIgZnVuYwo+ICAgICBk cm1fZGlzcGxheV9tb2RlX3RvX3ZpZGVvbW9kZSBmb3IgY2FsY3VsYXRpbmcgdGltaW5nIHBhcmFt ZXRlcnMKPiAKPiAgZHJpdmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2RjLmMg ICAgfCAgMjggKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hZHY3NTExL2Fkdjc1MzMu YyAgICAgICAgfCAgMzUgKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3Njcu YyAgICAgICAgICAgICAgIHwgIDQyICsrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2RzaS5jICAgICAgICAgfCAgIDkgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2ZzbC1k Y3UvZnNsX2RjdV9kcm1fY3J0Yy5jICAgICAgfCAgMjkgKystLS0KPiAgZHJpdmVycy9ncHUvZHJt L2dtYTUwMC9tZGZsZF9kc2lfZHBpLmMgICAgICAgICAgfCAgMjggKystLS0KPiAgZHJpdmVycy9n cHUvZHJtL2hpc2lsaWNvbi9raXJpbi9kd19kcm1fZHNpLmMgICAgfCAgNDIgKysrKy0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2tpcmluX2RybV9hZGUuYyB8ICA1MiArKyst LS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYyAgICAgICAgICAgICAg fCAgNjAgKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jICAg ICAgICAgICAgICB8ICAxNCArLS0KPiAgZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX3ZlbmMu YyAgICAgICAgICAgICAgfCAxNDkgKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9wbDExMS9wbDExMV9kaXNwbGF5LmMgICAgICAgICAgIHwgIDQwICsrKy0tLS0KPiAg ZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3R2LmMgICAgICAgICAgICAgICAgfCAgNjcgKysr Ky0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMgICAgICAgICAgICAgICAgICAg ICAgfCAgMTUgKystCj4gIGRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2NydGMuYyAgICAg ICAgICAgIHwgIDYwICsrKysrLS0tLS0KPiAgMTUgZmlsZXMgY2hhbmdlZCwgMjgwIGluc2VydGlv bnMoKyksIDM5MCBkZWxldGlvbnMoLSkKPiAKPiAtLSAKPiAyLjcuNAo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcg bGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRhbmllbCBWZXR0 ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xs LmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752177AbeEGNqN (ORCPT ); Mon, 7 May 2018 09:46:13 -0400 Received: from mail-wm0-f54.google.com ([74.125.82.54]:50650 "EHLO mail-wm0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751884AbeEGNqH (ORCPT ); Mon, 7 May 2018 09:46:07 -0400 X-Google-Smtp-Source: AB8JxZpTmYM6AKdizWUjNYX3v5PnzoRNOmz7pT2s64FiifiJtdI9fZ96EX82dA7FHCltmf+xT2V+og== Date: Mon, 7 May 2018 15:46:02 +0200 From: Daniel Vetter To: Satendra Singh Thakur Cc: linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-amlogic@lists.infradead.org, hemanshu.s@samsung.com, madhur.verma@samsung.com Subject: Re: [PATCH 00/13] drm/kms/mode: using helper func drm_display_mode_to/from_videomode for calculating timing parameters Message-ID: <20180507134602.GH12521@phenom.ffwll.local> Mail-Followup-To: Satendra Singh Thakur , linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-amlogic@lists.infradead.org, hemanshu.s@samsung.com, madhur.verma@samsung.com References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Operating-System: Linux phenom 4.15.0-3-amd64 User-Agent: Mutt/1.9.5 (2018-04-13) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 03, 2018 at 01:53:55PM +0530, Satendra Singh Thakur wrote: > 1.There is a function in drm-core to calculate display timing parameters: > horizontal front porch, back porch, sync length, > vertical front porch, back porch, sync length and > clock in Hz. > However, some drivers are still calculating these parameters themselves. > Therefore, there is a duplication of the code. > This patch series replaces this redundant code with the function > drm_display_mode_to_videomode. > This removes nearly 100 redundant lines from the related drivers. > 2.For some drivers (sun4i) the reverse helper > drm_display_mode_from_videomode is used. > 3.For some drivers it replaces arithmatic operators (*, /) with shifting > operators (>>, <<). > 4.For some drivers DRM_MODE_FLAG_* are replaced with DISPLAY_FLAGS_* flags. > 5.These changes apply to following crtc and encoder drivers: > atmel-hlcdc > bridge-tc358767 > exynos-dsi > fsl-dcu > gma500-mdfld_dsi_dpi > hisilicon-kirin_dsi, ade > meson-encoder > pl111-display > sun4i-tv > ti lcdc > tegra dc > mediatek dpi dsi > bridge-adv7533 The drm_mode_to_videomode helper is meant for interop between drm and v4l, which have different internal structures to represent modes. For drivers that only use drm I think the better option would be to add these fields to struct drm_display_mode as another set of crtc_* values (the computed values are stored in crtc_ prefixed members). And compute front/back porch in drm_mode_set_crtcinfo. Then we can use these new drm_display_mode->crtc_h|vfront|back_porch fields in all the drivers you're changing. This way you avoid having to change all the drm drivers to use v4l #defines. Thanks, Daniel > > Satendra Singh Thakur (13): > drm/kms/mode/atmel-hlcdc: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/bridge-tc358767: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/exynos-dsi: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/fsl-dcu: using helper func drm_display_mode_to_videomode > for calculating timing parameters > drm/kms/mode/gma500-mdfld_dsi_dpi: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/hisilicon-kirin-dsi-ade: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/meson-encoder: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/pl111-display: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/sun4i-tv: using helper func > drm_display_mode_from_videomode for calculating timing > parameters > drm/kms/mode/ti-lcdc: using helper func drm_display_mode_to_videomode > for calculating timing parameters > drm/kms/mode/tegra: using helper func drm_display_mode_to_videomode > for calculating timing parameters > drm/kms/mode/mtk_dpi_dsi: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/bridge-adv7533: using helper func > drm_display_mode_to_videomode for calculating timing parameters > > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 28 +++-- > drivers/gpu/drm/bridge/adv7511/adv7533.c | 35 +++--- > drivers/gpu/drm/bridge/tc358767.c | 42 +++---- > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 9 +- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 29 ++--- > drivers/gpu/drm/gma500/mdfld_dsi_dpi.c | 28 ++--- > drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 42 ++++--- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 52 +++------ > drivers/gpu/drm/mediatek/mtk_dpi.c | 60 +++++----- > drivers/gpu/drm/mediatek/mtk_dsi.c | 14 +-- > drivers/gpu/drm/meson/meson_venc.c | 149 +++++++++++------------- > drivers/gpu/drm/pl111/pl111_display.c | 40 +++---- > drivers/gpu/drm/sun4i/sun4i_tv.c | 67 ++++------- > drivers/gpu/drm/tegra/dc.c | 15 ++- > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 60 +++++----- > 15 files changed, 280 insertions(+), 390 deletions(-) > > -- > 2.7.4 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel@ffwll.ch (Daniel Vetter) Date: Mon, 7 May 2018 15:46:02 +0200 Subject: [PATCH 00/13] drm/kms/mode: using helper func drm_display_mode_to/from_videomode for calculating timing parameters In-Reply-To: References: Message-ID: <20180507134602.GH12521@phenom.ffwll.local> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Thu, May 03, 2018 at 01:53:55PM +0530, Satendra Singh Thakur wrote: > 1.There is a function in drm-core to calculate display timing parameters: > horizontal front porch, back porch, sync length, > vertical front porch, back porch, sync length and > clock in Hz. > However, some drivers are still calculating these parameters themselves. > Therefore, there is a duplication of the code. > This patch series replaces this redundant code with the function > drm_display_mode_to_videomode. > This removes nearly 100 redundant lines from the related drivers. > 2.For some drivers (sun4i) the reverse helper > drm_display_mode_from_videomode is used. > 3.For some drivers it replaces arithmatic operators (*, /) with shifting > operators (>>, <<). > 4.For some drivers DRM_MODE_FLAG_* are replaced with DISPLAY_FLAGS_* flags. > 5.These changes apply to following crtc and encoder drivers: > atmel-hlcdc > bridge-tc358767 > exynos-dsi > fsl-dcu > gma500-mdfld_dsi_dpi > hisilicon-kirin_dsi, ade > meson-encoder > pl111-display > sun4i-tv > ti lcdc > tegra dc > mediatek dpi dsi > bridge-adv7533 The drm_mode_to_videomode helper is meant for interop between drm and v4l, which have different internal structures to represent modes. For drivers that only use drm I think the better option would be to add these fields to struct drm_display_mode as another set of crtc_* values (the computed values are stored in crtc_ prefixed members). And compute front/back porch in drm_mode_set_crtcinfo. Then we can use these new drm_display_mode->crtc_h|vfront|back_porch fields in all the drivers you're changing. This way you avoid having to change all the drm drivers to use v4l #defines. Thanks, Daniel > > Satendra Singh Thakur (13): > drm/kms/mode/atmel-hlcdc: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/bridge-tc358767: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/exynos-dsi: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/fsl-dcu: using helper func drm_display_mode_to_videomode > for calculating timing parameters > drm/kms/mode/gma500-mdfld_dsi_dpi: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/hisilicon-kirin-dsi-ade: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/meson-encoder: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/pl111-display: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/sun4i-tv: using helper func > drm_display_mode_from_videomode for calculating timing > parameters > drm/kms/mode/ti-lcdc: using helper func drm_display_mode_to_videomode > for calculating timing parameters > drm/kms/mode/tegra: using helper func drm_display_mode_to_videomode > for calculating timing parameters > drm/kms/mode/mtk_dpi_dsi: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/bridge-adv7533: using helper func > drm_display_mode_to_videomode for calculating timing parameters > > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 28 +++-- > drivers/gpu/drm/bridge/adv7511/adv7533.c | 35 +++--- > drivers/gpu/drm/bridge/tc358767.c | 42 +++---- > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 9 +- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 29 ++--- > drivers/gpu/drm/gma500/mdfld_dsi_dpi.c | 28 ++--- > drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 42 ++++--- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 52 +++------ > drivers/gpu/drm/mediatek/mtk_dpi.c | 60 +++++----- > drivers/gpu/drm/mediatek/mtk_dsi.c | 14 +-- > drivers/gpu/drm/meson/meson_venc.c | 149 +++++++++++------------- > drivers/gpu/drm/pl111/pl111_display.c | 40 +++---- > drivers/gpu/drm/sun4i/sun4i_tv.c | 67 ++++------- > drivers/gpu/drm/tegra/dc.c | 15 ++- > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 60 +++++----- > 15 files changed, 280 insertions(+), 390 deletions(-) > > -- > 2.7.4 > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch From mboxrd@z Thu Jan 1 00:00:00 1970 From: daniel@ffwll.ch (Daniel Vetter) Date: Mon, 7 May 2018 15:46:02 +0200 Subject: [PATCH 00/13] drm/kms/mode: using helper func drm_display_mode_to/from_videomode for calculating timing parameters In-Reply-To: References: Message-ID: <20180507134602.GH12521@phenom.ffwll.local> To: linus-amlogic@lists.infradead.org List-Id: linus-amlogic.lists.infradead.org On Thu, May 03, 2018 at 01:53:55PM +0530, Satendra Singh Thakur wrote: > 1.There is a function in drm-core to calculate display timing parameters: > horizontal front porch, back porch, sync length, > vertical front porch, back porch, sync length and > clock in Hz. > However, some drivers are still calculating these parameters themselves. > Therefore, there is a duplication of the code. > This patch series replaces this redundant code with the function > drm_display_mode_to_videomode. > This removes nearly 100 redundant lines from the related drivers. > 2.For some drivers (sun4i) the reverse helper > drm_display_mode_from_videomode is used. > 3.For some drivers it replaces arithmatic operators (*, /) with shifting > operators (>>, <<). > 4.For some drivers DRM_MODE_FLAG_* are replaced with DISPLAY_FLAGS_* flags. > 5.These changes apply to following crtc and encoder drivers: > atmel-hlcdc > bridge-tc358767 > exynos-dsi > fsl-dcu > gma500-mdfld_dsi_dpi > hisilicon-kirin_dsi, ade > meson-encoder > pl111-display > sun4i-tv > ti lcdc > tegra dc > mediatek dpi dsi > bridge-adv7533 The drm_mode_to_videomode helper is meant for interop between drm and v4l, which have different internal structures to represent modes. For drivers that only use drm I think the better option would be to add these fields to struct drm_display_mode as another set of crtc_* values (the computed values are stored in crtc_ prefixed members). And compute front/back porch in drm_mode_set_crtcinfo. Then we can use these new drm_display_mode->crtc_h|vfront|back_porch fields in all the drivers you're changing. This way you avoid having to change all the drm drivers to use v4l #defines. Thanks, Daniel > > Satendra Singh Thakur (13): > drm/kms/mode/atmel-hlcdc: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/bridge-tc358767: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/exynos-dsi: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/fsl-dcu: using helper func drm_display_mode_to_videomode > for calculating timing parameters > drm/kms/mode/gma500-mdfld_dsi_dpi: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/hisilicon-kirin-dsi-ade: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/meson-encoder: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/pl111-display: using helper function > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/sun4i-tv: using helper func > drm_display_mode_from_videomode for calculating timing > parameters > drm/kms/mode/ti-lcdc: using helper func drm_display_mode_to_videomode > for calculating timing parameters > drm/kms/mode/tegra: using helper func drm_display_mode_to_videomode > for calculating timing parameters > drm/kms/mode/mtk_dpi_dsi: using helper func > drm_display_mode_to_videomode for calculating timing parameters > drm/kms/mode/bridge-adv7533: using helper func > drm_display_mode_to_videomode for calculating timing parameters > > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 28 +++-- > drivers/gpu/drm/bridge/adv7511/adv7533.c | 35 +++--- > drivers/gpu/drm/bridge/tc358767.c | 42 +++---- > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 9 +- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 29 ++--- > drivers/gpu/drm/gma500/mdfld_dsi_dpi.c | 28 ++--- > drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 42 ++++--- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 52 +++------ > drivers/gpu/drm/mediatek/mtk_dpi.c | 60 +++++----- > drivers/gpu/drm/mediatek/mtk_dsi.c | 14 +-- > drivers/gpu/drm/meson/meson_venc.c | 149 +++++++++++------------- > drivers/gpu/drm/pl111/pl111_display.c | 40 +++---- > drivers/gpu/drm/sun4i/sun4i_tv.c | 67 ++++------- > drivers/gpu/drm/tegra/dc.c | 15 ++- > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 60 +++++----- > 15 files changed, 280 insertions(+), 390 deletions(-) > > -- > 2.7.4 > > _______________________________________________ > dri-devel mailing list > dri-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch