From patchwork Thu Dec 7 08:17:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pin-yen Lin X-Patchwork-Id: 175008 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:bcd1:0:b0:403:3b70:6f57 with SMTP id r17csp4627100vqy; Thu, 7 Dec 2023 00:18:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IHj8YiJvhlAd/pDw9MQdvRmPgCHQAuH33UAKPc6n20I+QmnDJpf+vKWVNIfhiUx+qkPHdaF X-Received: by 2002:a17:902:ab0d:b0:1d0:220b:f246 with SMTP id ik13-20020a170902ab0d00b001d0220bf246mr2035064plb.9.1701937114497; Thu, 07 Dec 2023 00:18:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1701937114; cv=none; d=google.com; s=arc-20160816; b=sT6S1V87+ZSob/h2ARWSDM+7BDrvuELktF0WxxKUkRcxpJnQbYHjsp1gg1wby5hpwC irmwKm4qx1fSrnIu8j1pmgRWz8ps2Aih3nGEhART1HquoCR2i7S7TbbPeAL9z2jcOIWC ZhPmoSwDHP1llcZ6UuraA3NYY4Q6PFrcP1eJ31fZLFVOLhdkqibH+cRYZivA0pWYfteC yU+HPi78ASEiWF7XWPljBp8OgMVkgySbOBFkzxG33n5ger9Rb0x4HMGA2bfiHxlikMxj I/eFlpfLPgEtYDDv9CWeiRtR5oz3uqWb3yfB+km5YkD4Qh6MzQVpBlfXy4bJNNe1eguY J6xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ZQJWnhNLnP6Awp7NjFB9t/P5znClGB7Yq+APmm7pGdg=; fh=UKhxFVXTmA/MSyUXE1AIYhOw+Kx1RJNNQTH/EivPAO8=; b=TxU3M3aTTiaGIAy/mPouQcm4tIdT+6XYxPXP7f5NAuQdCddvSSg8zrG+eR9Q9w6RBX qNfAIKJ+NoJQarQfD8qrIJmluz/ZQkZOw2qAUlRX3AputEYJ0pH4jVLPLnrkLgESoATH qmPOBp/NfA7RSvYvqYmJ8MXRzaCtE1I69fyRRMn+Vis84RqCkVv15CkL2V8NRGPNKIDb ubWg7R369t2SRDknnDxtwRMLASAwCw6280YGi2zUfq1Dq/KSTU8unG6fHhM9ca/Xbgue Dfa5ehx6jJ6YIxb98QnAazuvNowFIuUIRqAGQC8X5s8uzeS92x4idt+jhjV/zKIZsRo6 tJ0A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=LjBLuoAP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id f6-20020a17090274c600b001d0bcb62f98si715708plt.368.2023.12.07.00.18.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Dec 2023 00:18:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=LjBLuoAP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id DB11B83328F9; Thu, 7 Dec 2023 00:18:31 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378106AbjLGISO (ORCPT + 99 others); Thu, 7 Dec 2023 03:18:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36912 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377935AbjLGISL (ORCPT ); Thu, 7 Dec 2023 03:18:11 -0500 Received: from mail-pl1-x632.google.com (mail-pl1-x632.google.com [IPv6:2607:f8b0:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E986DD for ; Thu, 7 Dec 2023 00:18:18 -0800 (PST) Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-1d06d42a58aso5577895ad.0 for ; Thu, 07 Dec 2023 00:18:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1701937097; x=1702541897; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZQJWnhNLnP6Awp7NjFB9t/P5znClGB7Yq+APmm7pGdg=; b=LjBLuoAPssi8cIJ+gHtc/QTgghFzaPFPz/1C1dFBW5qOcwglHbr6kTRwkOitD8g9Qt cBZccDzwhfyPjGw6wkpE9/A1Y9U8L5A8+BwhrCBjime8mhmoWKrs/jjEwQWraijPmEBi QPzMSgWG4eFx3bnCXI2YRJT2fArLKrxU0wLas= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701937097; x=1702541897; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZQJWnhNLnP6Awp7NjFB9t/P5znClGB7Yq+APmm7pGdg=; b=FMP3NT8ftGHwdgYN9nN3fCxkVPwZf/MhVyWkc/f4+/dhNQuK7MUxbBKCUFsJsry82l 9G5P9U8TDDB6bR12Pb+cWwvHAiYOO6UF2SkyrqQj8Jkk0yttdiK1ZBDZ43dfGkWVsNkp t4cErjXIaPlW/krYsLP39RPIivSo+wnidfuQnEG6y63JuV+lULRIByOGBvlfrLusu44e ZLujGJbzhT0zsEjZWnn+1n8CzD9NgLNJuVAwmVvA9vJByq8MUSYCoict9XdUnieIOtPP liN+erBQ9CHrKIjiDE48jt5Ucmb0plFSmtqSHwwmXMXftuibyO1UZ8Eq/p6G+3E6ac8I xiiw== X-Gm-Message-State: AOJu0YzkgrWZsinbf8nYNbEIqSSytGwHIwvAg9mQFsQaSW55joAf09kG kQ1TcTxEbWZHA0jn8DLR53pOJw== X-Received: by 2002:a17:902:dac5:b0:1d1:d939:159 with SMTP id q5-20020a170902dac500b001d1d9390159mr1890437plx.21.1701937097547; Thu, 07 Dec 2023 00:18:17 -0800 (PST) Received: from treapking.tpe.corp.google.com ([2401:fa00:1:10:663f:6f8e:5f2d:e06c]) by smtp.gmail.com with ESMTPSA id t23-20020a1709028c9700b001d09c5424d4sm748128plo.297.2023.12.07.00.18.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Dec 2023 00:18:17 -0800 (PST) From: Pin-yen Lin To: Douglas Anderson , Neil Armstrong , Jessica Zhang , Sam Ravnborg , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter Cc: linux-kernel@vger.kernel.org, Guenter Roeck , dri-devel@lists.freedesktop.org, Pin-yen Lin Subject: [PATCH v2 2/4] drm/panel-edp: Add powered_on_to_enable delay Date: Thu, 7 Dec 2023 16:17:36 +0800 Message-ID: <20231207081801.4049075-3-treapking@chromium.org> X-Mailer: git-send-email 2.43.0.472.g3155946c3a-goog In-Reply-To: <20231207081801.4049075-1-treapking@chromium.org> References: <20231207081801.4049075-1-treapking@chromium.org> MIME-Version: 1.0 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Thu, 07 Dec 2023 00:18:32 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1784610411588616952 X-GMAIL-MSGID: 1784610411588616952 Add the support of powered_on_to_enable delay as the minimum time that needs to have passed between the panel powered on and enable may begin. This delay is seen in BOE panels as the minimum delay of T3+T4+T5+T6+T8 in the eDP timing diagrams. Signed-off-by: Pin-yen Lin Reviewed-by: Douglas Anderson --- (no changes since v1) drivers/gpu/drm/panel/panel-edp.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/panel-edp.c index a0b6f69b916f..44acf9cacaf7 100644 --- a/drivers/gpu/drm/panel/panel-edp.c +++ b/drivers/gpu/drm/panel/panel-edp.c @@ -70,6 +70,21 @@ struct panel_delay { */ unsigned int hpd_absent; + /** + * @powered_on_to_enable: Time between panel powered on and enable. + * + * The minimum time, in milliseconds, that needs to have passed + * between when panel powered on and enable may begin. + * + * This is (T3+T4+T5+T6+T8)-min on eDP timing diagrams or after the + * power supply enabled until we can turn the backlight on and see + * valid data. + * + * This doesn't normally need to be set if timings are already met by + * prepare_to_enable or enable. + */ + unsigned int powered_on_to_enable; + /** * @prepare_to_enable: Time between prepare and enable. * @@ -216,6 +231,7 @@ struct panel_edp { bool prepared; ktime_t prepared_time; + ktime_t powered_on_time; ktime_t unprepared_time; const struct panel_desc *desc; @@ -455,6 +471,8 @@ static int panel_edp_prepare_once(struct panel_edp *p) gpiod_set_value_cansleep(p->enable_gpio, 1); + p->powered_on_time = ktime_get_boottime(); + delay = p->desc->delay.hpd_reliable; if (p->no_hpd) delay = max(delay, p->desc->delay.hpd_absent); @@ -579,6 +597,8 @@ static int panel_edp_enable(struct drm_panel *panel) panel_edp_wait(p->prepared_time, p->desc->delay.prepare_to_enable); + panel_edp_wait(p->powered_on_time, p->desc->delay.powered_on_to_enable); + p->enabled = true; return 0;