From patchwork Mon Feb 13 12:32:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Oltmanns X-Patchwork-Id: 56268 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2319297wrn; Mon, 13 Feb 2023 04:39:38 -0800 (PST) X-Google-Smtp-Source: AK7set94kRyrgpoE8TPpRE8uui9ZDCMyKbzhmJZ/1IUpLceW9xg0479eUmSJT44MJmil9rzhX3Xg X-Received: by 2002:a62:1a88:0:b0:5a2:d1d9:a2ee with SMTP id a130-20020a621a88000000b005a2d1d9a2eemr17297839pfa.12.1676291978074; Mon, 13 Feb 2023 04:39:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676291978; cv=none; d=google.com; s=arc-20160816; b=MLaot3OZxzCZXq+WI1EM8WKyzOsdCqKa1UL28GSW48gHw+UZkCmIrVf9diyo8wVb/6 I2MA6zCM53gG0pG4dqYd27jTyRec5yZUJERSdDDk8w7brpUXuXdLTDjy3EtlRea6P13U ac/0ycmPaoLU0DwsSnGATDiuY68YTVLUiTEYd+f3bAmoKpvmFsZOIh7fHr1pNuIzjOQp jRFsvwVVvJeRqOa/Cqwaagg+m/hPF2t5gRE3QsajvPbPas/h7aBYh9kQtEo9nTb2ARYx HHngJWk/FvGBZPlZsiJFxoC9x4r7/0oc5OFGTcNV1Vb5wmHVaj8qrx1bq6Ll7kDKYUjH umFQ== 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=NmcPQbXPr0WHWnVrlJ8mwjTopUrw6rswtOKlLypnddk=; b=R3SnXaEj6drAlxJpJ4M7P0wF7LR2rZp9EbkSoUvzXue+se0zyZJyZdtnUWfBeDU99f v/uww1/ML+yEXjZxrzNEMB88qVZgGkhdHOtRaF9DfY+HBPOfzogmxDVkqku6sO3jsntt cX7YQuPivd9zuyW3OhKDb3xDp9rhrk6nmwmKE5QBFwbC1o3opwb0rvb3e2Ibttk1fO8a PFGW8DvBecDDO+0HzzKuDRmrcP4mfP+kFLEsJy6KVN2GcULLTx3wo22YNOc5yO325RyY ko/+c6qkZpauM01snzLt43QNmWqstU2IQKNfznH/Kb+Fh2/kArzY/4B70b3WRWIY9oAQ B9Yw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oltmanns.dev header.s=MBO0001 header.b=NZFX2mxP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oltmanns.dev Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r9-20020aa79889000000b005a8cbf04adbsi702649pfl.27.2023.02.13.04.39.25; Mon, 13 Feb 2023 04:39:38 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oltmanns.dev header.s=MBO0001 header.b=NZFX2mxP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oltmanns.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231150AbjBMMdG (ORCPT + 99 others); Mon, 13 Feb 2023 07:33:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230131AbjBMMdC (ORCPT ); Mon, 13 Feb 2023 07:33:02 -0500 Received: from mout-p-201.mailbox.org (mout-p-201.mailbox.org [80.241.56.171]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD16830F9 for ; Mon, 13 Feb 2023 04:33:00 -0800 (PST) Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4PFkJT1QT4z9sZg; Mon, 13 Feb 2023 13:32:57 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oltmanns.dev; s=MBO0001; t=1676291577; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=NmcPQbXPr0WHWnVrlJ8mwjTopUrw6rswtOKlLypnddk=; b=NZFX2mxPuZC0QMxzyKG64b39/NlwoN9BX8rR8f/L0XFa9ncEonhvJm6YbHwIT0ZNS3asmm E6hI8XoHMs6pcRjQ0vo57FMwigzPILDMOpF8/xG1oMzBH44aD+SiUvEcCtXTAYKO9oY1O3 bAoSPU3AjUVPBiDELt2skKKOKsOWLR/BlthJvwzWkXXd0SuJ7pwEBl8SmKhrlEvGgCvKVL VuuhpjRm3kBfUOi7vNZAhf2hgaJJ0FWw+MNLbHYegQxb2J1Kl5ESS5GZMg0OaDUzOYBsnv VRNfeB8LrGFiXlj3R1MOgJ8foO42DGR0nVKkyADFPmnPkB6XmGF++QOx3ICQZQ== From: Frank Oltmanns To: Ondrej Jirman , =?utf-8?q?Guido_G=C3=BCnther?= , Purism Kernel Team , Ondrej Jirman , Thierry Reding , Sam Ravnborg , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org (open list:DRM PANEL DRIVERS), linux-kernel@vger.kernel.org (open list) Cc: Frank Oltmanns , Samuel Holland Subject: [PATCH v2 1/1] drm/panel: st7703: Fix timings when entering/exiting sleep Date: Mon, 13 Feb 2023 13:32:38 +0100 Message-Id: <20230213123238.76889-2-frank@oltmanns.dev> In-Reply-To: <20230213123238.76889-1-frank@oltmanns.dev> References: <20230213123238.76889-1-frank@oltmanns.dev> MIME-Version: 1.0 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1757719537231595412?= X-GMAIL-MSGID: =?utf-8?q?1757719537231595412?= Fix flickering of the pinephone's XDB599 panel that happens after resume. Extend the delay after issuing the command to exit sleep mode from 60 to 120 msec as per the controller's specification. Introduce a 120 msec delay after issuing the command to enter sleep mode. This is needed in order for the controller to reliably finalize the sleep in sequence before switching of power supply. In contrast to the JH057N panel, the XBD599 panel does not require a 20 msec delay after initialization and exiting sleep mode. Therefore, move the delay into the already existing device specific initialization function. The XDB599 does not require a 20 msec delay between the SETBGP and SETVCOM commands. Therefore, remove the delay from the device specific initialization function. Signed-off-by: Frank Oltmanns Cc: Ondrej Jirman Reported-by: Samuel Holland --- drivers/gpu/drm/panel/panel-sitronix-st7703.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7703.c b/drivers/gpu/drm/panel/panel-sitronix-st7703.c index 6747ca237ced..c49f4ef883fc 100644 --- a/drivers/gpu/drm/panel/panel-sitronix-st7703.c +++ b/drivers/gpu/drm/panel/panel-sitronix-st7703.c @@ -126,6 +126,7 @@ static int jh057n_init_sequence(struct st7703 *ctx) 0x18, 0x00, 0x09, 0x0E, 0x29, 0x2D, 0x3C, 0x41, 0x37, 0x07, 0x0B, 0x0D, 0x10, 0x11, 0x0F, 0x10, 0x11, 0x18); + msleep(20); return 0; } @@ -273,7 +274,6 @@ static int xbd599_init_sequence(struct st7703 *ctx) mipi_dsi_dcs_write_seq(dsi, ST7703_CMD_SETBGP, 0x07, /* VREF_SEL = 4.2V */ 0x07 /* NVREF_SEL = 4.2V */); - msleep(20); mipi_dsi_dcs_write_seq(dsi, ST7703_CMD_SETVCOM, 0x2C, /* VCOMDC_F = -0.67V */ @@ -350,16 +350,14 @@ static int st7703_enable(struct drm_panel *panel) return ret; } - msleep(20); - ret = mipi_dsi_dcs_exit_sleep_mode(dsi); if (ret < 0) { dev_err(ctx->dev, "Failed to exit sleep mode: %d\n", ret); return ret; } - /* Panel is operational 120 msec after reset */ - msleep(60); + /* It takes the controller 120 msec to wake up after sleep. */ + msleep(120); ret = mipi_dsi_dcs_set_display_on(dsi); if (ret) @@ -384,6 +382,9 @@ static int st7703_disable(struct drm_panel *panel) if (ret < 0) dev_err(ctx->dev, "Failed to enter sleep mode: %d\n", ret); + /* It takes the controller 120 msec to enter sleep mode. */ + msleep(120); + return 0; }