From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 240FBC432C0 for ; Tue, 3 Dec 2019 08:39:48 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E9E8420640 for ; Tue, 3 Dec 2019 08:39:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Qleykw1k" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E9E8420640 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ravnborg.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=RrS6fNjIOjmYRjsxkbJaNx3AiqryG7v1iApCZFZzDsk=; b=Qleykw1k2+au0j nAs2i0AiNFkhDsFg/4Fkq3j837b/Tz6F9PoypQ695lnrtWTTEji/S4MzbQ2DrL3xX70gN9Q89Z6ok qKNWLNDAQN1VEAJNZWF6xqvnIlxVr769m4i+CFrjVnzgf2F2EBAyFkk6XVZ/aZ7wUot1O6RjBTeQF VKx5El/MX9u3AUBis7LZj8EQpkvQPUOKx2saetob/pJSXoz5DVz+1CKkoe4xk44OP9L1LcQ47BOiF o20JzlgH10bK+b+Gr5XcRUCzfSpO0uthVCUBB9HYUvAhKPkwj10/9KtRE4q39ozN100iUrakcorlJ eu8422Y3DamOvq/6TIRg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1ic3il-0003St-Hk; Tue, 03 Dec 2019 08:39:47 +0000 Received: from asavdk4.altibox.net ([109.247.116.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1ic3ie-0003SH-QM; Tue, 03 Dec 2019 08:39:45 +0000 Received: from ravnborg.org (unknown [158.248.194.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by asavdk4.altibox.net (Postfix) with ESMTPS id 5E20E80477; Tue, 3 Dec 2019 09:39:37 +0100 (CET) Date: Tue, 3 Dec 2019 09:39:36 +0100 From: Sam Ravnborg To: Maxime Ripard Subject: Re: [PATCH v1 07/26] drm/panel: remove get_timings Message-ID: <20191203083935.GB30687@ravnborg.org> References: <20191202193230.21310-1-sam@ravnborg.org> <20191202193230.21310-8-sam@ravnborg.org> <20191203074659.ilsyv4yx7pzw5vax@gilmour.lan> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191203074659.ilsyv4yx7pzw5vax@gilmour.lan> User-Agent: Mutt/1.10.1 (2018-07-13) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.3 cv=VcLZwmh9 c=1 sm=1 tr=0 a=UWs3HLbX/2nnQ3s7vZ42gw==:117 a=UWs3HLbX/2nnQ3s7vZ42gw==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=7gkXJVJtAAAA:8 a=pGLkceISAAAA:8 a=P1BnusSwAAAA:8 a=QyXUC8HyAAAA:8 a=VwQbUJbxAAAA:8 a=-nbbn2pJxVWvY7Vi8LwA:9 a=Vfx8YJUf9hFrv8O-:21 a=HM9-6MrTAUSx7c7w:21 a=CjuIK1q_8ugA:10 a=E9Po1WZjFZOl8hwRPBS3:22 a=D0XLA9XvdZm18NrgonBM:22 a=AjGcO6oz07-iQ99wixmX:22 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191203_003941_216206_895D252C X-CRM114-Status: GOOD ( 29.73 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Neil Armstrong , David Airlie , Linus Walleij , dri-devel@lists.freedesktop.org, Andrzej Hajda , Thierry Reding , Laurent Pinchart , Benjamin Gaignard , linux-samsung-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, Tomi Valkeinen , NXP Linux Team , Jagan Teki , Jitao Shi , Daniel Vetter , Maarten Lankhorst , Abhinav Kumar , linux-mediatek@lists.infradead.org, Stefan Agner , linux-tegra@vger.kernel.org, Sean Paul , linux-arm-kernel@lists.infradead.org, Purism Kernel Team , linux-renesas-soc@vger.kernel.org, Boris Brezillon , Pengutronix Kernel Team Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Maxime. On Tue, Dec 03, 2019 at 08:46:59AM +0100, Maxime Ripard wrote: > Hi, > > On Mon, Dec 02, 2019 at 08:32:11PM +0100, Sam Ravnborg wrote: > > There was no users - so remove it. > > The callback was implemented in two drivers - deleted. > > > > Signed-off-by: Sam Ravnborg > > Cc: Thierry Reding > > Cc: Laurent Pinchart > > Cc: Sam Ravnborg > > Cc: Maarten Lankhorst > > Cc: Maxime Ripard > > Cc: David Airlie > > Cc: Daniel Vetter > > --- > > drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 18 ------------------ > > drivers/gpu/drm/panel/panel-simple.c | 18 ------------------ > > include/drm/drm_panel.h | 9 --------- > > 3 files changed, 45 deletions(-) > > > > diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c > > index b878930b17e4..3bcba64235c4 100644 > > --- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c > > +++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c > > @@ -217,30 +217,12 @@ static int seiko_panel_get_modes(struct drm_panel *panel, > > return seiko_panel_get_fixed_modes(p, connector); > > } > > > > -static int seiko_panel_get_timings(struct drm_panel *panel, > > - unsigned int num_timings, > > - struct display_timing *timings) > > -{ > > - struct seiko_panel *p = to_seiko_panel(panel); > > - unsigned int i; > > - > > - if (p->desc->num_timings < num_timings) > > - num_timings = p->desc->num_timings; > > - > > - if (timings) > > - for (i = 0; i < num_timings; i++) > > - timings[i] = p->desc->timings[i]; > > - > > - return p->desc->num_timings; > > -} > > - > > static const struct drm_panel_funcs seiko_panel_funcs = { > > .disable = seiko_panel_disable, > > .unprepare = seiko_panel_unprepare, > > .prepare = seiko_panel_prepare, > > .enable = seiko_panel_enable, > > .get_modes = seiko_panel_get_modes, > > - .get_timings = seiko_panel_get_timings, > > }; > > If anything, I think we should grow the usage of timings and / or make > it usable by everyone. > > Using only the mode as we do currently has a bunch of shortcomings as > almost no encoder will be able to provide the typical pixel clock, and > that situation leads to multiple things: > > - If someone working on one encoder wants to upstream a panel they > have tested, chances are this will not be the typical pixel clock > / timings being used but rather the one that will match what that > SoC is capable of. Trouble comes when a second user comes in with > a different encoder and different capabilities, and then we have a > maintainance fight over which timing is the true timing (with a > significant chance that none of them are). > > - If we can't match the pixel clock, we currently have no easy way > to make the usual measures of reducing / growing the porches and > blankings areas to match the pixel clock we can provide, since we > don't have an easy way to get the tolerance on those timings for a > given panel. There's some ad hoc solutions on some drivers (I > think vc4 has that?) to ignore the panel and just play around with > the timings, but I think this should be generalised. > > Timings solves the first case since we have the operating range now > and not a single set of timings, and it solves the second since we can > use that range to take those measures instead of taking a shot in the > dark. > > I appreciate that it's pretty far from where we are today, but > removing the get_timings means that all the timings already defined in > the panel drivers are becoming useless too, and that eventually it > will get removed. Thanks for this nice explanation. I will drop the patch, and add an entry to my TODO list to look closer at this later. There are things to improve in this area. So the conclusion is more work rather than removing code :-) Sam _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel