From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F3FECEDE for ; Wed, 5 Jun 2024 00:24:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547054; cv=none; b=XqccpcneKPc2zdHXXmDEKN52FRhTFW/WHqCmd73YSRWmmeV9zbEJguUStw4xBOX2jM4G+bqp1cSV+DT8X0jaQX1KseOu9VFq/Go77Y/QIQnWddzIQp1btXU14SGnBlDDxZjiqMJpKvolorkpyid8xVRNV0/enPW1vCElmzyIofI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547054; c=relaxed/simple; bh=cEEFAm1A0QXMTg6R/9OXTqsoNO7Rs7Qxk/5qSpAPufo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qSQeo7nfQTWY85cs5qcns5FWFspxQo+/J9k+/+Upg9sIiTeU9RtFw/P9NRv3S57n2vN+atzGHT5nrTTfBveLtAw+fbkmSk76SFnhB8y2Jd/I9eYY8Q98xDocNX247diQv7GBl5cFB8DyMjwo4dZqcbPKEsFOqdMCwD6deW+owWk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=hmm/VEwc; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="hmm/VEwc" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-1f6559668e1so27251895ad.3 for ; Tue, 04 Jun 2024 17:24:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547052; x=1718151852; 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=/ZEZey5x5luD0xWg/8KZQe7BPyHWAO218kvdlS1elh8=; b=hmm/VEwcHc1KKTUjl2oGn6VzF78dGlACD62bx+DAYVaiDCfw7j8VAXonp5X2IhbpBa yvW/H8BpWEXO3PKtAiVn2ZxIYFadc30tE9gsYstcuR7SbhFB9gyTgHpJATLw2/ksmFtB LKbkQBOihcBB+l0ih8dFqdkoT/YlgLw5Oy7ok= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547052; x=1718151852; 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=/ZEZey5x5luD0xWg/8KZQe7BPyHWAO218kvdlS1elh8=; b=cp40pN9rPOfyclnCH6Pnez2PRbKlAo8zJO9FgxupSu4BiAL1xQf37kGSSvDEkjtw20 kglvFgboQFChNJH1FgV6fIAgEGDo07So/OFl3xiNSmDcfZst7NAp0E+sLX67/JzPbBLX lXCO5xtI8ObN5WHQx/B9cHzr6WhdG+uWb5wIzn2yf1ZxjTYJ1XIy8te+Qrp7FuSeaSC0 v9n2g6rdaEEIWaHfslIGESoEMvObYXtObnYXk+bKkjzjvDvoqS/fmYHbwg53vj/m0JG3 cbgEI1xNwdoqU4yNo9szGyIsLVsE1RgYx3UwbdKxOoISFhWvtFMSlokVZ4Q2hGutphKL 8qDA== X-Forwarded-Encrypted: i=1; AJvYcCW+kONzoipTFfUIFYLpxSvBUmZG3YBttuCijUZfWs2PNBgoEVUHkHkKgbZusOHJHO1e40B9gLLSQtm6NtEOK9E96eRwmkcA3592TvaP X-Gm-Message-State: AOJu0YzzKtybwSI3Iulb+kS795q3jbvWx2EYmMDyxAyO2XAJ0Q+qfrpD Z2e6W4IKalFrvlTOzZjU1IUIVq6g4WjQjllYpI4TiOY/gjhWjlTThXt6Fbkmaw== X-Google-Smtp-Source: AGHT+IEfsqqgmgYWM0BC/bbTU6AS9BdhPGPSHuCKwVJwHIAn7JXDeAeaFpMbK/YJKuIU6Ne3nlYqaw== X-Received: by 2002:a17:902:a515:b0:1f6:4cff:6ffd with SMTP id d9443c01a7336-1f6a5a83e7emr9332115ad.57.1717547052198; Tue, 04 Jun 2024 17:24:12 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:11 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Jerry Han , Jitao Shi , Rock Wang , AngeloGioacchino Del Regno , Daniel Vetter , David Airlie , Jerry Han , Jessica Zhang , Maarten Lankhorst , Matthias Brugger , Thomas Zimmermann , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org Subject: [PATCH v3 01/24] drm/panel: boe-himax8279d: Stop tracking prepared/enabled Date: Tue, 4 Jun 2024 17:22:47 -0700 Message-ID: <20240604172305.v3.1.Ia3f254ab6e04e4f7afba6c066454498c8fb01324@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. NOTE: as part of this, transition the panel's direct calls to its disable/unprepare functions in shutdown/remove to call through DRM panel. Cc: Jerry Han Cc: Jitao Shi Cc: Rock Wang Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-boe-himax8279d.c | 31 +++----------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-boe-himax8279d.c b/drivers/gpu/drm= /panel/panel-boe-himax8279d.c index e225840b0d67..12e14615298b 100644 --- a/drivers/gpu/drm/panel/panel-boe-himax8279d.c +++ b/drivers/gpu/drm/panel/panel-boe-himax8279d.c @@ -47,9 +47,6 @@ struct panel_info { struct gpio_desc *enable_gpio; struct gpio_desc *pp33_gpio; struct gpio_desc *pp18_gpio; - - bool prepared; - bool enabled; }; =20 static inline struct panel_info *to_panel_info(struct drm_panel *panel) @@ -86,17 +83,12 @@ static int boe_panel_disable(struct drm_panel *panel) struct panel_info *pinfo =3D to_panel_info(panel); int err; =20 - if (!pinfo->enabled) - return 0; - err =3D mipi_dsi_dcs_set_display_off(pinfo->link); if (err < 0) { dev_err(panel->dev, "failed to set display off: %d\n", err); return err; } =20 - pinfo->enabled =3D false; - return 0; } =20 @@ -105,9 +97,6 @@ static int boe_panel_unprepare(struct drm_panel *panel) struct panel_info *pinfo =3D to_panel_info(panel); int err; =20 - if (!pinfo->prepared) - return 0; - err =3D mipi_dsi_dcs_set_display_off(pinfo->link); if (err < 0) dev_err(panel->dev, "failed to set display off: %d\n", err); @@ -121,8 +110,6 @@ static int boe_panel_unprepare(struct drm_panel *panel) =20 disable_gpios(pinfo); =20 - pinfo->prepared =3D false; - return 0; } =20 @@ -131,9 +118,6 @@ static int boe_panel_prepare(struct drm_panel *panel) struct panel_info *pinfo =3D to_panel_info(panel); int err; =20 - if (pinfo->prepared) - return 0; - gpiod_set_value(pinfo->pp18_gpio, 1); /* T1: 5ms - 6ms */ usleep_range(5000, 6000); @@ -180,8 +164,6 @@ static int boe_panel_prepare(struct drm_panel *panel) /* T7: 20ms - 21ms */ usleep_range(20000, 21000); =20 - pinfo->prepared =3D true; - return 0; =20 poweroff: @@ -194,9 +176,6 @@ static int boe_panel_enable(struct drm_panel *panel) struct panel_info *pinfo =3D to_panel_info(panel); int ret; =20 - if (pinfo->enabled) - return 0; - usleep_range(120000, 121000); =20 ret =3D mipi_dsi_dcs_set_display_on(pinfo->link); @@ -205,8 +184,6 @@ static int boe_panel_enable(struct drm_panel *panel) return ret; } =20 - pinfo->enabled =3D true; - return 0; } =20 @@ -917,11 +894,11 @@ static void panel_remove(struct mipi_dsi_device *dsi) struct panel_info *pinfo =3D mipi_dsi_get_drvdata(dsi); int err; =20 - err =3D boe_panel_disable(&pinfo->base); + err =3D drm_panel_disable(&pinfo->base); if (err < 0) dev_err(&dsi->dev, "failed to disable panel: %d\n", err); =20 - err =3D boe_panel_unprepare(&pinfo->base); + err =3D drm_panel_unprepare(&pinfo->base); if (err < 0) dev_err(&dsi->dev, "failed to unprepare panel: %d\n", err); =20 @@ -936,8 +913,8 @@ static void panel_shutdown(struct mipi_dsi_device *dsi) { struct panel_info *pinfo =3D mipi_dsi_get_drvdata(dsi); =20 - boe_panel_disable(&pinfo->base); - boe_panel_unprepare(&pinfo->base); + drm_panel_disable(&pinfo->base); + drm_panel_unprepare(&pinfo->base); } =20 static struct mipi_dsi_driver panel_driver =3D { --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C341E4409 for ; Wed, 5 Jun 2024 00:24:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547057; cv=none; b=Y81uy1GwQ0QSI+kr7r7kggQDVwByhC1ahG8d5vL74gM+Q6v3M7QyAy3FusBjnlNnrH8Y5tc3GxfQrM31fLGIFBvtplHNqNbJwH5D2LtI7b5xct99fg39KEQF9Q+q6DpdS6zZcHaWV4NU5lcBehHMgLRgDXC9psZkPfCLLciux6k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547057; c=relaxed/simple; bh=kwdPU1qbN1GChGRQI4ADk5uJrc5stY/TlBaj+rld0uA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oL19gIr5e7EvDGVoC1fvSHNpeayOvdzt/sP59t8rMrUwZyFLBgf+o+p429w/sNUh+8xBkgxTlZBUQUNT272kGqpAXHFVAXi8bPxXLxfYmFFF3PdugDzpaL+VLo3K97Edqx9bT3VeL6YkuZqWbtK1pbyLL25H5ZrBXHXmUuACwPw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=HPL++jCd; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="HPL++jCd" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-1f4a5344ec7so2936295ad.1 for ; Tue, 04 Jun 2024 17:24:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547055; x=1718151855; 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=XsRu3jEWU9sK1vmuNiyJjPrhOLNs5NH11TNjKSLZ2vI=; b=HPL++jCdAeWiQdvtuLhsMWjeeVQzSdwCtIZuweh/30rlgNKoecRIsxWqrJinEJbTr4 eJAjiTVl/CVK8lfpqZUNeONrovoNlobLqyILVOJs6KhCs7x7cGdOQWU80Kq8zz2op3cT acYBiJVFw/bveOJF1UVILKiw/zyMxQ12aznro= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547055; x=1718151855; 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=XsRu3jEWU9sK1vmuNiyJjPrhOLNs5NH11TNjKSLZ2vI=; b=L0zGc0YQpMtu5zWjltM7FEdCcFtVlq7IwOww6uTUjcjtxgLUsxCJa5OPw3I6dWViYD 3+OhuWdjjttBOPHsWhvTFdbBqaKAu96ZBRzXOfOD5sYOJUXrBxIIvUNzSBHbbOC/u1v6 7lApsp46+HxVUOSBn792GdLR84RBx8zVyf5edeNsK3pPUwk8lX4MmzzL4XuKp2P3Sne9 zeboBMXS9jD6EmcIM2laQtXXFkPjIwQ6+n0K1YHV42O4TQx8uohu9kI30twDNOmRIwv+ 8eQqhoXk3wlM+PYMcrROiQN2s3AL4USNTOp4Lrvj/pU31vKQHlIVxPnDGm+yZE7ub4UA H3SA== X-Forwarded-Encrypted: i=1; AJvYcCUC6dZ52VWNNyIGnQ7wQNQuCKURUtUNRCb/i8o5Q/ZhoZXJ65urpkohSyhL4SRf0s2slJuE7/9isR9DHUNyBO08QBx9EVvuuO6BDZuT X-Gm-Message-State: AOJu0Yzx41H4fwCVj5tCJTK7KsB59RYN6z2H4QBuyCLxuaxANnn8eIf5 2xD1rKl1MmlZmDnS/SwCRZJykMi6+PpWG3BoyFKFdjsD14PRbWQcXGrrkA1ApQ== X-Google-Smtp-Source: AGHT+IEuttE4Gs9JJB+IuOsNqsKWp7EyRVQUbEuRZzgK3b55KLaK0AVYQ/oG9ywbjEwvWBwh98g+5w== X-Received: by 2002:a17:903:2303:b0:1f6:a572:86ab with SMTP id d9443c01a7336-1f6a572a1d3mr22763635ad.15.1717547055143; Tue, 04 Jun 2024 17:24:15 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:14 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Jerry Han , Jitao Shi , Rock Wang , AngeloGioacchino Del Regno , Daniel Vetter , David Airlie , Jerry Han , Jessica Zhang , Maarten Lankhorst , Matthias Brugger , Thomas Zimmermann , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org Subject: [PATCH v3 02/24] drm/panel: boe-himax8279d: Don't call unprepare+disable at shutdown/remove Date: Tue, 4 Jun 2024 17:22:48 -0700 Message-ID: <20240604172305.v3.2.I19086c524d38f28f746befe85cb39ffda9d2f666@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. Unfortunately, grepping mainline for this panel's compatible string shows no hits, so we can't be 100% sure if the DRM modeset driver used with this panel has been fixed. If it is found that the DRM modeset driver hasn't been fixed then this patch could be temporarily reverted until it is. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Jerry Han Cc: Jitao Shi Cc: Rock Wang Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-boe-himax8279d.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-boe-himax8279d.c b/drivers/gpu/drm= /panel/panel-boe-himax8279d.c index 12e14615298b..df746baae301 100644 --- a/drivers/gpu/drm/panel/panel-boe-himax8279d.c +++ b/drivers/gpu/drm/panel/panel-boe-himax8279d.c @@ -894,14 +894,6 @@ static void panel_remove(struct mipi_dsi_device *dsi) struct panel_info *pinfo =3D mipi_dsi_get_drvdata(dsi); int err; =20 - err =3D drm_panel_disable(&pinfo->base); - if (err < 0) - dev_err(&dsi->dev, "failed to disable panel: %d\n", err); - - err =3D drm_panel_unprepare(&pinfo->base); - if (err < 0) - dev_err(&dsi->dev, "failed to unprepare panel: %d\n", err); - err =3D mipi_dsi_detach(dsi); if (err < 0) dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err); @@ -909,14 +901,6 @@ static void panel_remove(struct mipi_dsi_device *dsi) drm_panel_remove(&pinfo->base); } =20 -static void panel_shutdown(struct mipi_dsi_device *dsi) -{ - struct panel_info *pinfo =3D mipi_dsi_get_drvdata(dsi); - - drm_panel_disable(&pinfo->base); - drm_panel_unprepare(&pinfo->base); -} - static struct mipi_dsi_driver panel_driver =3D { .driver =3D { .name =3D "panel-boe-himax8279d", @@ -924,7 +908,6 @@ static struct mipi_dsi_driver panel_driver =3D { }, .probe =3D panel_probe, .remove =3D panel_remove, - .shutdown =3D panel_shutdown, }; module_mipi_dsi_driver(panel_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 55D27945A for ; Wed, 5 Jun 2024 00:24:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547059; cv=none; b=SnHE/DSSIjcpeX2WZ+DzVS8IXd8sOY4nzqz+us3EH6abzwMB1uBkL6KufwpojOhEK3GPyZcrvcf/O1j/RsDIma6vqxCStVd9i4qzElttJlI1hOfJ1/9MzgWQHr00MfCIDztv/YLAXN5NxML0Vra7K64WQVR3W9zmc4wBpcpIBi8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547059; c=relaxed/simple; bh=/0uYtNJ/uubrgwMaD2RowVr0RhvwtvtS77O0R3hwQQY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o0SmqYePZ8W2zCiNkSLkeU613HH81cBB75lnVtPggYfp8zNBENwlcgndQlh1M6LJPBjisRdPlmBJqgLh4ctFp5pDSEloAOyNso8UrRiSF3skBaQSBtVKJrf1bJPLwWwnNUGe8E+a7e32sjM+gRV7onqCDdNNqa3Sv+h9ge9LFls= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=VmuLzQ4S; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="VmuLzQ4S" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1f32a3b9491so45640505ad.0 for ; Tue, 04 Jun 2024 17:24:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547058; x=1718151858; 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=OWtosQoN9Pg9d9xBQ0Jlap54LBTP0iCSFOQ0mCtxtm8=; b=VmuLzQ4S+xdpTmnx7VTy+RCWWGN9p93Pi3fHeW8Wni8ocbSb+jt3s5uHDm87WgVuGk aB95kFW9JSaY+xzbAM9R7fbPMfcqHlPR+35h89EZ2VuT4mdciA6fEr7DUb4K2dNaz8FF /NeiNr0SvSLEyzrAaGKWDjp7Cg5qUN6mf1REA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547058; x=1718151858; 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=OWtosQoN9Pg9d9xBQ0Jlap54LBTP0iCSFOQ0mCtxtm8=; b=rI0KoGwkMpYchHKpw+fSFnZsKRyhzA1wtqv8G1wbpKF035s1nIMGDZ4+46XeQfDd2v 1EN2PD52Eaw3ozE48pAJsdhPuwYjiR/G7g+lFNV6zSI7PUHAyPzFH5fDXRLrICfXg437 XdbhgyKL05bR2nCGZ2BXSq5b7zzvgbVbBSQCBd0zY9K7gke4grPZAvFPvLtSjELskp41 LkkuOGeyv107Zac4tFlOoAyn5q5Eo+fRdCDgxX9kOupsfxvS3ehZearLVUvLqYJdT2ca tffx+aKY4pPRTW645uU+ZEjsyCFFAnpG+unHiqD4pW9cTdbCTQhn6AQ3/OHyMA0oTEBs Sn9Q== X-Forwarded-Encrypted: i=1; AJvYcCWQT0PoJGMAmBZ2ySlpbz4JMq3vy8yUNXmdfCYACKlAz39y88+5t0x7YplD1VnsNgl4CGrnr0R0Lhp1HrvfRkvJzzAoyrwc1N5bFsYw X-Gm-Message-State: AOJu0YzXUSIY8p6iwF2nbKn5x6wHCdVm/kkukZ+i6zSX/YcACowjkGD5 8mjgOFVhuCR2wsjvWVjHL6r1uGG896a+YzXxddG9VVysBpI5r0+Dd+BrdUoIWQ== X-Google-Smtp-Source: AGHT+IHtuzDG9J3AvSsXPl+LDhBqir5tDRLdDFJ6NPngQ8hMl8P6Nu+AEhJKyneAQQgkyOjDeML77g== X-Received: by 2002:a17:902:f20a:b0:1f6:278b:4524 with SMTP id d9443c01a7336-1f6a5a6bd0emr9313335ad.54.1717547057593; Tue, 04 Jun 2024 17:24:17 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:16 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Jacobe Zang , Nicolas Belin , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 03/24] drm/panel: khadas-ts050: Stop tracking prepared/enabled Date: Tue, 4 Jun 2024 17:22:49 -0700 Message-ID: <20240604172305.v3.3.Ibed1026f20cab08c90fa376e68c2f23a343e826b@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. Cc: Jacobe Zang Cc: Nicolas Belin Cc: Neil Armstrong Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-khadas-ts050.c | 28 ---------------------- 1 file changed, 28 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-khadas-ts050.c b/drivers/gpu/drm/p= anel/panel-khadas-ts050.c index c54be0cc3f08..e35762ebdbd1 100644 --- a/drivers/gpu/drm/panel/panel-khadas-ts050.c +++ b/drivers/gpu/drm/panel/panel-khadas-ts050.c @@ -26,9 +26,6 @@ struct khadas_ts050_panel { struct gpio_desc *reset_gpio; struct gpio_desc *enable_gpio; struct khadas_ts050_panel_data *panel_data; - - bool prepared; - bool enabled; }; =20 struct khadas_ts050_panel_cmd { @@ -642,9 +639,6 @@ static int khadas_ts050_panel_prepare(struct drm_panel = *panel) unsigned int i; int err; =20 - if (khadas_ts050->prepared) - return 0; - gpiod_set_value_cansleep(khadas_ts050->enable_gpio, 0); =20 err =3D regulator_enable(khadas_ts050->supply); @@ -708,8 +702,6 @@ static int khadas_ts050_panel_prepare(struct drm_panel = *panel) =20 usleep_range(10000, 11000); =20 - khadas_ts050->prepared =3D true; - return 0; =20 poweroff: @@ -726,11 +718,6 @@ static int khadas_ts050_panel_unprepare(struct drm_pan= el *panel) struct khadas_ts050_panel *khadas_ts050 =3D to_khadas_ts050_panel(panel); int err; =20 - if (!khadas_ts050->prepared) - return 0; - - khadas_ts050->prepared =3D false; - err =3D mipi_dsi_dcs_enter_sleep_mode(khadas_ts050->link); if (err < 0) dev_err(panel->dev, "failed to enter sleep mode: %d\n", err); @@ -747,31 +734,17 @@ static int khadas_ts050_panel_unprepare(struct drm_pa= nel *panel) return 0; } =20 -static int khadas_ts050_panel_enable(struct drm_panel *panel) -{ - struct khadas_ts050_panel *khadas_ts050 =3D to_khadas_ts050_panel(panel); - - khadas_ts050->enabled =3D true; - - return 0; -} - static int khadas_ts050_panel_disable(struct drm_panel *panel) { struct khadas_ts050_panel *khadas_ts050 =3D to_khadas_ts050_panel(panel); int err; =20 - if (!khadas_ts050->enabled) - return 0; - err =3D mipi_dsi_dcs_set_display_off(khadas_ts050->link); if (err < 0) dev_err(panel->dev, "failed to set display off: %d\n", err); =20 usleep_range(10000, 11000); =20 - khadas_ts050->enabled =3D false; - return 0; } =20 @@ -815,7 +788,6 @@ static int khadas_ts050_panel_get_modes(struct drm_pane= l *panel, static const struct drm_panel_funcs khadas_ts050_panel_funcs =3D { .prepare =3D khadas_ts050_panel_prepare, .unprepare =3D khadas_ts050_panel_unprepare, - .enable =3D khadas_ts050_panel_enable, .disable =3D khadas_ts050_panel_disable, .get_modes =3D khadas_ts050_panel_get_modes, }; --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2A841C153 for ; Wed, 5 Jun 2024 00:24:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547062; cv=none; b=eO7ls2ANb01Zph8CKQf5xkX06hH/3D6w52pHjvvZeXI+T+4G2gbXTlxdjEAG5vmtcnacHOOS2nwNSEk5O5lUQvfUK7+iSSdPjCl4cZeBlcQWrBXJfGNbQ+yik4FAHDLT2L8Jd9xXgPH3TklelI23FcUe1q4xfaPUzszT7C6cm5c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547062; c=relaxed/simple; bh=EGAd7NfTm2lm23LtYlpCf7xm+rdVxrXwzRc10j/tass=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PztB1J5RBEb82LVawZA+hutpm9SPYF2+yS5wax9MkmKufEWbrLkuyODlkheugeVlSxDuNOVNb+6B6gaxN2Wz1ct0gGFGvUJV1nnSmhCZ+gPbqtKWWQtiHfDQsaFbWHabKVxMSzCrIC9cvkq6XK9dk+a9Z+jMOsDTUEBOS0xaOjg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=VpgZGrOw; arc=none smtp.client-ip=209.85.214.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="VpgZGrOw" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-1f4a5344ec7so2936785ad.1 for ; Tue, 04 Jun 2024 17:24:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547060; x=1718151860; 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=zGL1XAJY8XhKpAWsqPFbzgWXo/pkMzXKNmiwvtJp4Hk=; b=VpgZGrOwdhoutJ66gzjzOWpEF2cCvksJB5Ri7i50ut6oP4MtRKFk6BEDe6pb2ai5yj cHxN4rUiOBl2S4rJA9M3Ks+Ij4BwaVrQe1S5VSwwD3/ex9IU8rtjjLLGh9ux9p2jDG7N EggVrVJVB8IJovjXY3LWXB/zD7dhA/3xw0bzI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547060; x=1718151860; 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=zGL1XAJY8XhKpAWsqPFbzgWXo/pkMzXKNmiwvtJp4Hk=; b=YDRGc+wyhcNGOlg8wC0bYPvHkWLO2Et7DSoTcxFlAzBsvJgZWoqXY36pBsqAWCqqpc YVE8fu/sdp8hBVRvd16y9QnMtWmkhesmSj4DfSu5htjlQEXVspx30x9TFWPiR96uyskV L3YaPFuufJc4FgQA2kYXTHWKsYvYuTOJGcwnsfu1UZFh44QQncw/N1haQP/DGyUJq5JS 0lmGISXg0Q+Z97TaQi2jWqTS07aLnt1CKPfybiPTrCkfQGj/zGFFkUkC6EV7z5VKpwr/ smEYKVibpsXwi25P5BrUS1JNE9nn+LLcfUquN5RGz9mtqaAA0u0wpIu07gGPkm57cZcp JA6A== X-Forwarded-Encrypted: i=1; AJvYcCUXxCVn0r4r7+Y/ORvcFMwKWjJBLD7vd66Ehz4078pPJ26DheB4Gi0j5uY1xZcb7I3rqWgbIya2T3ztycgxwEXKXG+isQAmMC3102Z0 X-Gm-Message-State: AOJu0Yx244O4SRm4qMWKw30cTNKMZHIOmBLzXJAyOUJvPDA2QrLRdsq3 xBVXi1zUJlUZgxN5qjlAfsdMSDkymjFBdjcl080W5NiBrZUO/wgTczngZ8IJiA== X-Google-Smtp-Source: AGHT+IHoXvg8VOvFaoaofPi1Wy0+ieuiJmAHAvk6TPPRDaDW+DtShADzHcHhWak9Q2qUznFX99fpfQ== X-Received: by 2002:a17:903:1ca:b0:1f4:8a31:5a4c with SMTP id d9443c01a7336-1f6a56ebf71mr12680595ad.24.1717547060328; Tue, 04 Jun 2024 17:24:20 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:19 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Jacobe Zang , Nicolas Belin , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 04/24] drm/panel: khadas-ts050: Don't call unprepare+disable at shutdown/remove Date: Tue, 4 Jun 2024 17:22:50 -0700 Message-ID: <20240604172305.v3.4.I1ee65e7905bf5bf46a0e6c5126ac3c7aa25cb80b@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. Unfortunately, grepping mainline for this panel's compatible string shows no hits, so we can't be 100% sure if the DRM modeset driver used with this panel has been fixed. If it is found that the DRM modeset driver hasn't been fixed then this patch could be temporarily reverted until it is. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Jacobe Zang Cc: Nicolas Belin Cc: Neil Armstrong Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-khadas-ts050.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-khadas-ts050.c b/drivers/gpu/drm/p= anel/panel-khadas-ts050.c index e35762ebdbd1..14932cb3defc 100644 --- a/drivers/gpu/drm/panel/panel-khadas-ts050.c +++ b/drivers/gpu/drm/panel/panel-khadas-ts050.c @@ -880,16 +880,6 @@ static void khadas_ts050_panel_remove(struct mipi_dsi_= device *dsi) dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err); =20 drm_panel_remove(&khadas_ts050->base); - drm_panel_disable(&khadas_ts050->base); - drm_panel_unprepare(&khadas_ts050->base); -} - -static void khadas_ts050_panel_shutdown(struct mipi_dsi_device *dsi) -{ - struct khadas_ts050_panel *khadas_ts050 =3D mipi_dsi_get_drvdata(dsi); - - drm_panel_disable(&khadas_ts050->base); - drm_panel_unprepare(&khadas_ts050->base); } =20 static struct mipi_dsi_driver khadas_ts050_panel_driver =3D { @@ -899,7 +889,6 @@ static struct mipi_dsi_driver khadas_ts050_panel_driver= =3D { }, .probe =3D khadas_ts050_panel_probe, .remove =3D khadas_ts050_panel_remove, - .shutdown =3D khadas_ts050_panel_shutdown, }; module_mipi_dsi_driver(khadas_ts050_panel_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC2C9DDCB for ; Wed, 5 Jun 2024 00:24:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547065; cv=none; b=DuC4uY01qK21BPhRxaJanlws8n17jnIaIObojjZtIusXe0nv9E9nKPgkyNScRv+bAZph5/QdrnUx/PbTiaNmNspquGYjiQ/jtAH7+FnaKj1YKWglOGl8UG1+qBs1usSRwVLmDKc3mBEX3kCn0UqjGHOA2vd3wUALak+8C6y4vQI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547065; c=relaxed/simple; bh=D0NAyK1OqDOveZZt1LmhU8rHOg6ppveTM9A/nwy9/4k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Dxfsfcg/Tq5VNNUVhZy5bN+V+ulwW3kgxZGkqVUnCTJd+yYhdyPvvD1vESFHKtyaslMEKGyA52TJKWPYZtBWdWtmcjXiEC6kHx65wiFSf8A3DxiF/2/SFtuHacSC+lPqGJyoLiyNafPboGmbDbRHRjTAuUXLU/Sf/lMw2tG1F9g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=Bon46oDt; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="Bon46oDt" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-1f692d6e990so16283105ad.3 for ; Tue, 04 Jun 2024 17:24:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547063; x=1718151863; 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=bzvwGuJ+WTCRog8EdqXF+Obfr3JYyQtoUfl83gDvzVE=; b=Bon46oDt5tLyGsoUuB98dBH6L6HlqRawDCoYbzjepULVmqZT7hFP/ZyRoUTW+5WmRl GBQTIZbZ0pJbEhR2MxHyZ6Xfqxj2rlrmJvm56qgprX/0AfiecvvDhtCzjHQyu11F+2q8 69j/9/ySh4SC4y7WYGgr0vo6tgP6Tao0vsFhQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547063; x=1718151863; 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=bzvwGuJ+WTCRog8EdqXF+Obfr3JYyQtoUfl83gDvzVE=; b=VF3SPl/5XImko7Kj9dQJSahX905DFfBlLto49RT5zrmR5ueixDbjq91vZi5m4b32H+ 3o9BVRyb94xMZB6DP5RM/20n/ZyFRlPOR86I/T0igrsdbGjUQIsskMrG9+94/5lpMGVO KBx9sdoKP5C7H+AJksvoYjsyKzxEMbtojqBc6IAZRuN5OTVfnXTxxG63cnHWusD3FqGL Trep+YFWc5nr0dx9/E+yC/GHAoGFwS6zczHlBCDikaOQ4G/CosO//qiiLIVkG/VTBnya xUt6RHWnHmVK/uXIHvXotF6hjJ9SHPQ5ZkQtEN1ID2315sNMaQTgGMUYB78wuGu5+ATV j21w== X-Forwarded-Encrypted: i=1; AJvYcCXNI7xxyKLsvP0LPsUybw7aKQQmrQrnKGVr/fhEqTVK3ObinqHrnHMoWtvzhJx57MHtNNVOX5+Z/3VX6bYU4THviPq4I19odlinowBD X-Gm-Message-State: AOJu0YzprVztCM7dqiVgI81comiS8SJGJyZLahnIFV68Sr8Tkd4UefZU HklXpzG+XN5q+uNY1Zk9nlrpWRF8g6GvNPnK6bP8Tc4+kMt0BGaetVAtawPAGw== X-Google-Smtp-Source: AGHT+IElsoNXkv7mUljM8/UDK3zzl3IwJ2DQTSHMSmNYHfMB/j0jhxzWAT3nNtc8jJhxnwRjLD3uqA== X-Received: by 2002:a17:902:cec4:b0:1f6:7f8f:65c6 with SMTP id d9443c01a7336-1f6a5a10295mr15071235ad.24.1717547062977; Tue, 04 Jun 2024 17:24:22 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:22 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Stefan Mavrodiev , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 05/24] drm/panel: olimex-lcd-olinuxino: Stop tracking prepared/enabled Date: Tue, 4 Jun 2024 17:22:51 -0700 Message-ID: <20240604172305.v3.5.I6a96d762be98321e02f56b5864359258d65d9da8@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. .../drm/panel/panel-olimex-lcd-olinuxino.c | 41 ------------------- 1 file changed, 41 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/g= pu/drm/panel/panel-olimex-lcd-olinuxino.c index 4819ada69482..8a687d3ba236 100644 --- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c +++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c @@ -64,9 +64,6 @@ struct lcd_olinuxino { struct i2c_client *client; struct mutex mutex; =20 - bool prepared; - bool enabled; - struct regulator *supply; struct gpio_desc *enable_gpio; =20 @@ -78,30 +75,13 @@ static inline struct lcd_olinuxino *to_lcd_olinuxino(st= ruct drm_panel *panel) return container_of(panel, struct lcd_olinuxino, panel); } =20 -static int lcd_olinuxino_disable(struct drm_panel *panel) -{ - struct lcd_olinuxino *lcd =3D to_lcd_olinuxino(panel); - - if (!lcd->enabled) - return 0; - - lcd->enabled =3D false; - - return 0; -} - static int lcd_olinuxino_unprepare(struct drm_panel *panel) { struct lcd_olinuxino *lcd =3D to_lcd_olinuxino(panel); =20 - if (!lcd->prepared) - return 0; - gpiod_set_value_cansleep(lcd->enable_gpio, 0); regulator_disable(lcd->supply); =20 - lcd->prepared =3D false; - return 0; } =20 @@ -110,27 +90,11 @@ static int lcd_olinuxino_prepare(struct drm_panel *pan= el) struct lcd_olinuxino *lcd =3D to_lcd_olinuxino(panel); int ret; =20 - if (lcd->prepared) - return 0; - ret =3D regulator_enable(lcd->supply); if (ret < 0) return ret; =20 gpiod_set_value_cansleep(lcd->enable_gpio, 1); - lcd->prepared =3D true; - - return 0; -} - -static int lcd_olinuxino_enable(struct drm_panel *panel) -{ - struct lcd_olinuxino *lcd =3D to_lcd_olinuxino(panel); - - if (lcd->enabled) - return 0; - - lcd->enabled =3D true; =20 return 0; } @@ -195,10 +159,8 @@ static int lcd_olinuxino_get_modes(struct drm_panel *p= anel, } =20 static const struct drm_panel_funcs lcd_olinuxino_funcs =3D { - .disable =3D lcd_olinuxino_disable, .unprepare =3D lcd_olinuxino_unprepare, .prepare =3D lcd_olinuxino_prepare, - .enable =3D lcd_olinuxino_enable, .get_modes =3D lcd_olinuxino_get_modes, }; =20 @@ -264,9 +226,6 @@ static int lcd_olinuxino_probe(struct i2c_client *clien= t) lcd->eeprom.num_modes =3D 4; } =20 - lcd->enabled =3D false; - lcd->prepared =3D false; - lcd->supply =3D devm_regulator_get(dev, "power"); if (IS_ERR(lcd->supply)) return PTR_ERR(lcd->supply); --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 900DFEAFA for ; Wed, 5 Jun 2024 00:24:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547066; cv=none; b=aEemLnrBE99jzdDp7+Cc6ZXMGUCco8PuLfyTOJclDYSb+or/5pnm/ORqj5ZmoBEZpcAubE+ViClUFftV5ScmxFwhqrna9fasvwuO5waNSORpq1U2bHVGjSm4zS4ZSidqERyUn1xro4juHnY59fTeNGnS5joXxzn97gcRTkewCLs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547066; c=relaxed/simple; bh=PuPvW9S3Ct7nj+DWpsKp/UBw0BJInGtZwK+xlTrUxiM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Vbrx/QJZHAAU8p1lxjNchPSb3edD8W3dguiKf/B1vv5cFBZV5wuX2XLv0ztsaJANJ5BOVxZ8piss9MhDfsQmf8NcLwCfzXL7hLr0Xh2WaqOAaU+t/aOxNSGE7jd68VUvBJ08Ke3/MQe2RvCVS7+KJWuKWiGVa+gzbh3dLVzsnhU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=B2FO8N5t; arc=none smtp.client-ip=209.85.215.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="B2FO8N5t" Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-6d4bf8eb8e2so771549a12.3 for ; Tue, 04 Jun 2024 17:24:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547065; x=1718151865; 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=B1A9rs7TtWcsH1JSfCCKsqVamskJmPgnyBU2yqNCV6s=; b=B2FO8N5tCcpcN3EitYUgwZUfs+5dtaK1c7t0EJM3wqkLcQbcQ25TZY9JmT2OEqFqpZ e1M1SMJPgReX5d37tlMEKG9JY8lasyKNCXsRXFZ4HqozeHJFCYFrAD/oiX9VYgWNKVt4 /e3OPRpbCM/DrGDe2AsVvRXVgXLksoBtqxXPY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547065; x=1718151865; 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=B1A9rs7TtWcsH1JSfCCKsqVamskJmPgnyBU2yqNCV6s=; b=VTFVcZCADzUt4cAMKJFpwpp1WdJ1CHQnZXqtCjk4KbsHzUXnRo+jvFaFmwNQERrkSm gPP3/ZH0DvVV5Xaa7ZRH1Lrm/vkoj7nfk5NJfMq66zl0McicF+xKEuP7vNe59vZklHfG 4/C6hxW6kobZpduorZ04lY8UzH5o8/m3KdnTHgrxrjIZ1q6MfN5XiKKgm5JqcFJeqsQR dHF/fWOOy7ujc8twq4RmavDO6w3lPoGcxB28pPQ0y4G9JN2qNth8dgbzPRY3FZNDX4be WBZ88uOS+53qhi4I5JGoYljIL9gCOK2S1glzWexc8x8pXUaHbrST0ZkoKs6uv4h5L6Q9 5rFg== X-Forwarded-Encrypted: i=1; AJvYcCUMAdWBlthIUZ8Dofdo2YYJLn+eY+F/a8PbOiKNlgi1LmBmQV99t60Z+nZyeu6OvsnEa9twEEWURYaI8e3r0Nk+CjZeaDdGhpbJFuYa X-Gm-Message-State: AOJu0YxUhxx8MFcXZhcGGw9QXRM6noN+wUSEXuxsIXyF7pMEsk3xOuld H8odB7msyb6No3EAmpkMdWee3wkChiAF3RPh5tO/23T5t570pRcXVqj+JLSQmg== X-Google-Smtp-Source: AGHT+IGG+wEJhjmnOFnR17XFhvwO5ykeAXaDODSuz04Uiik7Ku3I2gOkgMKqETtCi2Cc8JKNST2MxA== X-Received: by 2002:a17:90a:db81:b0:2b6:7e55:2aad with SMTP id 98e67ed59e1d1-2c27daf65c1mr1092784a91.7.1717547064767; Tue, 04 Jun 2024 17:24:24 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:24 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Stefan Mavrodiev , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 06/24] drm/panel: olimex-lcd-olinuxino: Don't call unprepare+disable at remove Date: Tue, 4 Jun 2024 17:22:52 -0700 Message-ID: <20240604172305.v3.6.I4c79deffb7551ecfb0378302f8dee1275fd1c060@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. Unfortunately, grepping mainline for this panel's compatible string shows no hits, so we can't be 100% sure if the DRM modeset driver used with this panel has been fixed. If it is found that the DRM modeset driver hasn't been fixed then this patch could be temporarily reverted until it is. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/g= pu/drm/panel/panel-olimex-lcd-olinuxino.c index 8a687d3ba236..94ae8c8270b8 100644 --- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c +++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c @@ -251,9 +251,6 @@ static void lcd_olinuxino_remove(struct i2c_client *cli= ent) struct lcd_olinuxino *panel =3D i2c_get_clientdata(client); =20 drm_panel_remove(&panel->panel); - - drm_panel_disable(&panel->panel); - drm_panel_unprepare(&panel->panel); } =20 static const struct of_device_id lcd_olinuxino_of_ids[] =3D { --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4D3721640B for ; Wed, 5 Jun 2024 00:24:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547069; cv=none; b=AQ2oySkfxWFBpUJvrvcF1rl0dvuaIu+Pt55kJVrkEwN4V90hrBM+GwefzhwX6VJFD2PdqyYqJZoy5TiZXFpFESURS4XQHFvrR/LykLM/TRsTfHpG+PmnO0YRmES/bZ/11wolImO0j8oS8/Zj9g7QeEQHfTwr7wMSd+VuUYosmJ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547069; c=relaxed/simple; bh=fdWEtul+7mN1YfZi2XaYQxAO+/yUXqWWEGCYQxnZA/k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QPFljWRiIebg8jmSxjmztimBSKehwEMP4uDoGe/qcFFHZRul3rdNDggnAiI6bpL6GOnyyVLbKzQxiIh4Ij4vyWdsdIKuCBfredMHJngnJoVhyQiLXMDkYhSJKBh2o54n6OkyDrbdZrz+HjgDdgN5rsd4Yxs+WY6XdsMlt2RijPI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=Qpw/eIjl; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="Qpw/eIjl" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1f480624d0fso46312565ad.1 for ; Tue, 04 Jun 2024 17:24:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547068; x=1718151868; 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=Zp09ce6jbG1VuSId6iviX6d1cVtpmqjoxS5RCsh3XVE=; b=Qpw/eIjlmBINzficHZKlhp+agMFDh9jBIc6RQsELfV47VgObQvdkcr+OLcafA99j1F LtkHaS/ZUDlmYFaLV8CkkktD0Nfpnzc5l/LGKGkY4BUkISSMrc1gAUaldv1YI92a8VUm UBekOW5afpyd3yrMDnknX8I9TpfouPDJ0SHos= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547068; x=1718151868; 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=Zp09ce6jbG1VuSId6iviX6d1cVtpmqjoxS5RCsh3XVE=; b=ISD9wew8ZsGOkyIFYq3bbC9VbqX5JEiknE79Tav82OO2tWaaf0DsKUylZt7mMliiFm /GwfibDL96Wu/iey5cVypqHgH+BSJ6VgpLmHIqya8hOugFJwRCyfzmpxo3hXlbwx/dIL mF/nLVreCmIU2kMr8SvOkA5fnEfkl+FAq7eA4+XAbprYosBeq5ePDFGSqnvR9j7epT2e FcZqTjmGqTxHUa7bp3vE5j6CX2i2tsm/Hd4E6VfH30nOtPpc4nY02znEfYgwymQsbTK5 Q4wwpnxGwh26VjkDZO6yNQjO4T2DAQlP0S7FX0jxmkcc/ER3zxIWO/Jw7E/S4VEqb39o mYWQ== X-Forwarded-Encrypted: i=1; AJvYcCVV1iofisUl1W9Z0bjJhAleGlNQeUhxkd2C29hIpENYEFUOWsaA0qtVJLmeeMNWelxxIdG5bkHVtZcGMnQmWoxLiryjrUFyNfevQetr X-Gm-Message-State: AOJu0YzDeEILFpN3wdlGAyhoXMpDOMWgUG6xudIwgSPItebyptpqgQ6s x5v9yztK+66+CF6B6yMbZKcCa6EhhJmX29RaKc6JgAqIwnnwPhM72SdX7+WUmQ== X-Google-Smtp-Source: AGHT+IHrG+KMpa5qVMm89loF3lWFCdvOQ3M12nUwP9Qgba8qphs6ItL9jDOQyxs+1t/bccCFAWHjaQ== X-Received: by 2002:a17:903:1cc:b0:1f4:5a89:39a4 with SMTP id d9443c01a7336-1f6a5a0aebbmr12879035ad.21.1717547067625; Tue, 04 Jun 2024 17:24:27 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:26 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Peter Ujfalusi , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 07/24] drm/panel: osd-osd101t2587-53ts: Stop tracking prepared/enabled Date: Tue, 4 Jun 2024 17:22:53 -0700 Message-ID: <20240604172305.v3.7.Ic7f6b4ae48027668940a756090cfc454645d3da4@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. Cc: Peter Ujfalusi Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. .../drm/panel/panel-osd-osd101t2587-53ts.c | 27 +------------------ 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/g= pu/drm/panel/panel-osd-osd101t2587-53ts.c index 493e0504f6f7..c0da7d9512e8 100644 --- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c +++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c @@ -21,9 +21,6 @@ struct osd101t2587_panel { =20 struct regulator *supply; =20 - bool prepared; - bool enabled; - const struct drm_display_mode *default_mode; }; =20 @@ -37,13 +34,8 @@ static int osd101t2587_panel_disable(struct drm_panel *p= anel) struct osd101t2587_panel *osd101t2587 =3D ti_osd_panel(panel); int ret; =20 - if (!osd101t2587->enabled) - return 0; - ret =3D mipi_dsi_shutdown_peripheral(osd101t2587->dsi); =20 - osd101t2587->enabled =3D false; - return ret; } =20 @@ -51,11 +43,7 @@ static int osd101t2587_panel_unprepare(struct drm_panel = *panel) { struct osd101t2587_panel *osd101t2587 =3D ti_osd_panel(panel); =20 - if (!osd101t2587->prepared) - return 0; - regulator_disable(osd101t2587->supply); - osd101t2587->prepared =3D false; =20 return 0; } @@ -63,16 +51,8 @@ static int osd101t2587_panel_unprepare(struct drm_panel = *panel) static int osd101t2587_panel_prepare(struct drm_panel *panel) { struct osd101t2587_panel *osd101t2587 =3D ti_osd_panel(panel); - int ret; =20 - if (osd101t2587->prepared) - return 0; - - ret =3D regulator_enable(osd101t2587->supply); - if (!ret) - osd101t2587->prepared =3D true; - - return ret; + return regulator_enable(osd101t2587->supply); } =20 static int osd101t2587_panel_enable(struct drm_panel *panel) @@ -80,15 +60,10 @@ static int osd101t2587_panel_enable(struct drm_panel *p= anel) struct osd101t2587_panel *osd101t2587 =3D ti_osd_panel(panel); int ret; =20 - if (osd101t2587->enabled) - return 0; - ret =3D mipi_dsi_turn_on_peripheral(osd101t2587->dsi); if (ret) return ret; =20 - osd101t2587->enabled =3D true; - return ret; } =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 215CC17BA9 for ; Wed, 5 Jun 2024 00:24:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547071; cv=none; b=hqXwtmlN+UHkogmGe8/bkGf5aEYqz/NLq9jqMwkqsV/9i2Pyr5f7J2e2E8cjENS3VFWKiqHPNqPRR7nL8NIAM/IdlMN9BnqoXnh61JNB7irdspMU4TYO3vG8ddfKy5TxQIQxOoe68PvcqqCj7Ar1C7OwVhyam3cBoGO9tEe0rPY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547071; c=relaxed/simple; bh=+m5D1UTv109cZhAnIeiR1AabRm2ywn8I3ErzPXOwiOs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EwR+yHNOQVMWxOqMmcCJbLzmBG/4LNU+geNpvX5LT7HIBmy4EbMm+f18/cPYCfj3pdxfx01v0gg5hwHRtsb95Zoxw8dlEgC78PE9tkTt1lw1CfV6SyymwhfPRlRvXyuvtM18+JbF5E58vW2+ZAiV7kdjXkHoH+1dmjSgGCic5t8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=eSHwlSBk; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="eSHwlSBk" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-1f4c7b022f8so55547715ad.1 for ; Tue, 04 Jun 2024 17:24:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547069; x=1718151869; 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=LI+lc0Adrp0Lkxnnuy2KCG5ns+CVmv57DIBitlySUAk=; b=eSHwlSBkpFAAfiN+W3CZdPbqQMTErl7sgxQ0N279V6ZyCTFvn44xU5kJoTYr84AaJ5 V2aSLn6EN1PZgE/80pvWOiD5meBcBy8H4P62tg/uAxlQqDR2oVzNNg3sGMPri/ZjztnC P4z3rgrWpwzwbB9zUjwNkpRRRIh8ph4ggqnP4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547069; x=1718151869; 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=LI+lc0Adrp0Lkxnnuy2KCG5ns+CVmv57DIBitlySUAk=; b=BOLZx1B/8KT9V9W8dNZpo9G5LFOOoTaFSIGwB1NjXfJ8pkL4Yn2RNfv6DeSh0xPBdw gJ0CcRBsDU9jIzAJMWLrrOaHuVpCuENU41nlpWvro9I0H6KCFYnp/JLxSAI+TEUk91hm X1n2CBE2C/VrpWHHXs3eaESmbEjZ8Asc+Z6Y7mahIIvPNorWL91LPtYA0hmX5hGpDJzY ycvAx9SeWHiLeKOHzzMamPow3mO/wkTLpa3DDrvqQdBGiFXYcthbp/t3d5/wwGfawkk5 jM3F2MPoca9TbylK2lQ5V4REXxHcLhn113lAUsakyTSrHqgTcMURxLhqUC+QVFGTdvux clFA== X-Forwarded-Encrypted: i=1; AJvYcCWLqvjoogatsxcF3WTIeoZkbTC2KBtxFPgaDjD5Ec2aMolEl/klq2BJnoGqPmmFmSfF4V8tFwVf09z0RNYLGn0yUUht6n2j5OR7MrXr X-Gm-Message-State: AOJu0YyOXthKu6dAf6vpelzQi1N1y0P0zk433eH5BfylZdIP5IgkM4Zq PJuK4I1iyn8Qm470mUNip6/VeLpbJXQ+73kOpfmxe4GQnDxKwRLHjXS5KtCcjHXlL98klh0c5jA = X-Google-Smtp-Source: AGHT+IEIcFmN1SNDSxhI7aIeArYotTMMLemxG6ifMYpzG4iBHTkZgO0UtesSzI4gZV4gQgOfODxBXA== X-Received: by 2002:a17:903:31d0:b0:1f6:a51b:87bf with SMTP id d9443c01a7336-1f6a5a6be24mr9937225ad.46.1717547069457; Tue, 04 Jun 2024 17:24:29 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:28 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Peter Ujfalusi , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 08/24] drm/panel: osd-osd101t2587-53ts: Don't call unprepare+disable at shutdown/remove Date: Tue, 4 Jun 2024 17:22:54 -0700 Message-ID: <20240604172305.v3.8.Ic533ce1323b94230d4155f9364c2b7c1bc47e798@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. A grep through mainline for compatible strings used by this driver indicates that it is used by TI OMAP boards. The OMAP driver appears to be correctly calling drm_atomic_helper_shutdown() so we can remove the calls. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Peter Ujfalusi Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/g= pu/drm/panel/panel-osd-osd101t2587-53ts.c index c0da7d9512e8..dbea84f51514 100644 --- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c +++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c @@ -186,11 +186,6 @@ static void osd101t2587_panel_remove(struct mipi_dsi_d= evice *dsi) struct osd101t2587_panel *osd101t2587 =3D mipi_dsi_get_drvdata(dsi); int ret; =20 - ret =3D drm_panel_disable(&osd101t2587->base); - if (ret < 0) - dev_warn(&dsi->dev, "failed to disable panel: %d\n", ret); - - drm_panel_unprepare(&osd101t2587->base); drm_panel_remove(&osd101t2587->base); =20 ret =3D mipi_dsi_detach(dsi); @@ -198,14 +193,6 @@ static void osd101t2587_panel_remove(struct mipi_dsi_d= evice *dsi) dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret); } =20 -static void osd101t2587_panel_shutdown(struct mipi_dsi_device *dsi) -{ - struct osd101t2587_panel *osd101t2587 =3D mipi_dsi_get_drvdata(dsi); - - drm_panel_disable(&osd101t2587->base); - drm_panel_unprepare(&osd101t2587->base); -} - static struct mipi_dsi_driver osd101t2587_panel_driver =3D { .driver =3D { .name =3D "panel-osd-osd101t2587-53ts", @@ -213,7 +200,6 @@ static struct mipi_dsi_driver osd101t2587_panel_driver = =3D { }, .probe =3D osd101t2587_panel_probe, .remove =3D osd101t2587_panel_remove, - .shutdown =3D osd101t2587_panel_shutdown, }; module_mipi_dsi_driver(osd101t2587_panel_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2E74D199A2 for ; Wed, 5 Jun 2024 00:24:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547073; cv=none; b=TOuuihjKK/W1m9pnZr13ayLq+DDPwvPmd+5yvTlCPxu0SkI+pKfRCRd5AXNjnqG7OHTkDnx3ZZfJmY4FNJfhUE5PKoPHRApXIK2uy4Lxtggtzx4dsOSuyKkm14ujBy5kexXW/+QV2SwzqfMiXZ7GrZaq88CP/B2d3RoG0d6ETO8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547073; c=relaxed/simple; bh=bu8UuiVKJJOpwyvAQ8P16JcDitoUEWsEMbHVsjKpPOY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IqfzSncSMdCIo3OFxkyjOtDhXNkeYO49n5aGHGdyMSD3qHQCIBiL4H3rIvfa6nrDo4OxOskFrBL6f7O/ItUTB1URgMc6VaMrXCQtpCEls/7Z1/VTLDe0lDWgS/ehpVC+vKHkeowunWHa1tqXNk1jJxlMk+uFUsWRVJsnq2872q0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=IQ+bGA4S; arc=none smtp.client-ip=209.85.210.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="IQ+bGA4S" Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-70244776719so1425183b3a.2 for ; Tue, 04 Jun 2024 17:24:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547071; x=1718151871; 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=XEmfWhNTcTb41jQU/gR81e0SjfT4byydDoGYn2r0lOw=; b=IQ+bGA4S2QBIJ9MuKi4r9LOFNUq8IZHj2oBcD3YPBD69ZSGLI+d6+w/baAp7kKehUE gqhXbp/MWNYdg8VSQbvOtmiuKX1wlYw3rT4WT3CpPwrHZ/KyGDWNCcc8v2KFkXid/0Bg 8rJ1VGe+nUROhSzG3+Y8AkijaArjCyU0VOFeI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547071; x=1718151871; 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=XEmfWhNTcTb41jQU/gR81e0SjfT4byydDoGYn2r0lOw=; b=lf+1I2Bq1XmvWUSEYRMAbWPo6PJwONTYd8NvNq+ebM1qar494ASy7/IKmhGm/cpE2Z DHJXkqXZXqrDPXpmzrXXyCTwF5FONXGiJOCEb3TlcuC4/YZVq0LpH9OGKegMPvt+/Vyu n2KJ6pemCnV5SGgrPPphA7LXgTfN8p7LehIaLFVSMNpbnAKV0yuQqzVtJJDU3j+Xxx5m cVCpGce9KmrztRiqs/iVkMUJIp1A7pcN2Uu/0hZQ534cGj87niNUVrGv7TEvHn95mM2n aGfy0OaxelnJdK5JqEyglioUFNqJ+9KnpHxdsmQJuddaCd7BAvT/UYdHbsw2vp37RwgH wtPg== X-Forwarded-Encrypted: i=1; AJvYcCXWW/gDgtcyyw8mkC0CWbBvFH5jIwKkj5yPdEpmBbR9R/Kz4tZRFgX7nFrGZ7IqBJMvjjMpkqzVZ/DXkL0gCiW3KXsDmHpWxlOz049x X-Gm-Message-State: AOJu0YzpzN9KLrFec+b1i6YZD4jDLzNkrSu4iUNZ4EENz3Yb7FuoADsb W8+GKRozPXMH2ui0zsW+ydJTB8tO1HLLoJ97dOs2Liz8VUWxgCfNdeco6UluyA== X-Google-Smtp-Source: AGHT+IGrcYOLi8G0eH6ZEIWKdmcS2aKK/kOX+omU7O4LuSX64QDzn3W99H3vl2K8F4dPXhpgCaMlcA== X-Received: by 2002:a05:6a20:2588:b0:1b0:2b96:5f9 with SMTP id adf61e73a8af0-1b2b7025eb1mr1451478637.36.1717547071596; Tue, 04 Jun 2024 17:24:31 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:30 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 09/24] drm/panel: tdo-tl070wsh30: Stop tracking prepared Date: Tue, 4 Jun 2024 17:22:55 -0700 Message-ID: <20240604172305.v3.9.I5025ab14adc2efeef1be1843648547fb725106be@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. Cc: Neil Armstrong Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c b/drivers/gpu/drm= /panel/panel-tdo-tl070wsh30.c index d8487bc6d611..36f27c664b69 100644 --- a/drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c +++ b/drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c @@ -24,8 +24,6 @@ struct tdo_tl070wsh30_panel { =20 struct regulator *supply; struct gpio_desc *reset_gpio; - - bool prepared; }; =20 static inline @@ -39,9 +37,6 @@ static int tdo_tl070wsh30_panel_prepare(struct drm_panel = *panel) struct tdo_tl070wsh30_panel *tdo_tl070wsh30 =3D to_tdo_tl070wsh30_panel(p= anel); int err; =20 - if (tdo_tl070wsh30->prepared) - return 0; - err =3D regulator_enable(tdo_tl070wsh30->supply); if (err < 0) return err; @@ -74,8 +69,6 @@ static int tdo_tl070wsh30_panel_prepare(struct drm_panel = *panel) =20 msleep(20); =20 - tdo_tl070wsh30->prepared =3D true; - return 0; } =20 @@ -84,9 +77,6 @@ static int tdo_tl070wsh30_panel_unprepare(struct drm_pane= l *panel) struct tdo_tl070wsh30_panel *tdo_tl070wsh30 =3D to_tdo_tl070wsh30_panel(p= anel); int err; =20 - if (!tdo_tl070wsh30->prepared) - return 0; - err =3D mipi_dsi_dcs_set_display_off(tdo_tl070wsh30->link); if (err < 0) dev_err(panel->dev, "failed to set display off: %d\n", err); @@ -103,8 +93,6 @@ static int tdo_tl070wsh30_panel_unprepare(struct drm_pan= el *panel) =20 regulator_disable(tdo_tl070wsh30->supply); =20 - tdo_tl070wsh30->prepared =3D false; - return 0; } =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E2ED31EB3E for ; Wed, 5 Jun 2024 00:24:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547076; cv=none; b=JengdPq3Ifz+ia4dNEovFpXT0E8WsS8CUjIqn49yygHEKzAPyQojQDaCbSEGgDSOqGTqyKZxm16wIU8su45MN++UQkkdBOgdrfmZM2e122lAvHB3UWi8J52KdbUyy+odcinYVCk96/LeSZ+gOGq7GuDlwISEWkQQ68hqPWDawKU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547076; c=relaxed/simple; bh=hlsN6BbCFBAzyqApzrrNKww90k8tLfAdA0DdJEqZ4jk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FtuRnqnvJovZofF8EqBuC4KyORdJWfXl2q+e/I+QZE6hPmz+b+Aj8UBM3wokW0AfEyxFYoW/GyH+1wiSEm6Q0YCbMduwOYV25nPBtC5PckFOaLWnP+wyZIRsG8AWSjfeIYPh9qcRtr8LW4iQve589Vy98xnByaLFiz6CRn29wf0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=mi/2kZmk; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="mi/2kZmk" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1f6262c0a22so2662615ad.1 for ; Tue, 04 Jun 2024 17:24:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547074; x=1718151874; 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=w/przf+caKegl5qEPPn6pOmHyiCkKABnIFCYoELVro4=; b=mi/2kZmkbJAaYZduj+N4qpGg1SOxqo9l7DqUwlrtRtNm0Arjx1HiQsuagJIsYz1SND y/2fsg3Vbz3I8Bs4yVIsIzPDLRCk0qsS71/MklVykjNQYFwO/bM3Fy+u9rTmlBey8dGE WTnT9izkyP3EljIMlpD/Q2QUVEQ0k2eyfow6E= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547074; x=1718151874; 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=w/przf+caKegl5qEPPn6pOmHyiCkKABnIFCYoELVro4=; b=mT1IQEkT7JtQ4TGh8aySwrUgrbrXkry8zTC1Rk+MLwGHLsyueO3kCzWVy0Iwv36m3L mf+QFtY6Heq/Mc/MDFq6CMq5BAaweWFB6bytMkveidksgDSAeDlSHA8aB2fByyEgWLWI nhdau3cRNmqerkMgIxJe/iBMIIL4efe3Vfg8HVY7mL/MWCIIcnBNEgV/rrVxdN7SRKxg sHmIwYdxWtq4akEJ+psBZi+YGJb52gjddsm6GMyXWpETVjpYB2lfIFqsd/VUPImWNQHA Mrz1tmj5erRBBeuXasiWhb8mYsVcJEJA9sqlrEbc+xWOIPnvMDFBk8itEq0EiZele1WD njoQ== X-Forwarded-Encrypted: i=1; AJvYcCVb6bfo73S9tZcRi++M61/zCMKCM/tHF8jpEYocMU8CbWBiUYfU2PHWEKDcdeF6+jHUkylCkYBxR8xMDFtWLylg+oiNtLHFPH3BbyP3 X-Gm-Message-State: AOJu0YwfasG/27Gsw/DAKV5zavPWQEMejD1B81TtDnXvBgO/yDJjWUVD ZhYDXY7jQ+KKNlGEP+p6OC0H1mSekW3cjnmmK+JgLu9DmMWjxDc3lLmIm8aCRw== X-Google-Smtp-Source: AGHT+IHez1cc81IZkcpKLDNVF8QX0H0g1tSdXuUZDgWnWy1002HtkjwedjR37Wwq22lEtJMm9Ht9UQ== X-Received: by 2002:a17:903:18a:b0:1f6:a582:c276 with SMTP id d9443c01a7336-1f6a5835237mr15902825ad.11.1717547074236; Tue, 04 Jun 2024 17:24:34 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:33 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 10/24] drm/panel: tdo-tl070wsh30: Don't call unprepare+disable at shutdown/remove Date: Tue, 4 Jun 2024 17:22:56 -0700 Message-ID: <20240604172305.v3.10.I46ff4e28c260bcd8e81205debd0994e76fd8aeac@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. Unfortunately, grepping mainline for this panel's compatible string shows no hits, so we can't be 100% sure if the DRM modeset driver used with this panel has been fixed. If it is found that the DRM modeset driver hasn't been fixed then this patch could be temporarily reverted until it is. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Neil Armstrong Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c b/drivers/gpu/drm= /panel/panel-tdo-tl070wsh30.c index 36f27c664b69..227f97f9b136 100644 --- a/drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c +++ b/drivers/gpu/drm/panel/panel-tdo-tl070wsh30.c @@ -208,16 +208,6 @@ static void tdo_tl070wsh30_panel_remove(struct mipi_ds= i_device *dsi) dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err); =20 drm_panel_remove(&tdo_tl070wsh30->base); - drm_panel_disable(&tdo_tl070wsh30->base); - drm_panel_unprepare(&tdo_tl070wsh30->base); -} - -static void tdo_tl070wsh30_panel_shutdown(struct mipi_dsi_device *dsi) -{ - struct tdo_tl070wsh30_panel *tdo_tl070wsh30 =3D mipi_dsi_get_drvdata(dsi); - - drm_panel_disable(&tdo_tl070wsh30->base); - drm_panel_unprepare(&tdo_tl070wsh30->base); } =20 static struct mipi_dsi_driver tdo_tl070wsh30_panel_driver =3D { @@ -227,7 +217,6 @@ static struct mipi_dsi_driver tdo_tl070wsh30_panel_driv= er =3D { }, .probe =3D tdo_tl070wsh30_panel_probe, .remove =3D tdo_tl070wsh30_panel_remove, - .shutdown =3D tdo_tl070wsh30_panel_shutdown, }; module_mipi_dsi_driver(tdo_tl070wsh30_panel_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pg1-f176.google.com (mail-pg1-f176.google.com [209.85.215.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B3DC222079 for ; Wed, 5 Jun 2024 00:24:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547078; cv=none; b=AHkJBh85U27ZeRu748sUwQX9b4HU3neJ8AzB8BUdVPfyhv8uRjOfj6Yl4EKZr/Jhprk+kunNplY17A0NYjiUBUDovww13RrDCVHhg00txRSsX0eIKI9zToz67DRg3GGkQN7rIszypZAQeOuzpYnFf4X6YVm/RnH1AxQlvvYXIvQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547078; c=relaxed/simple; bh=pbiMSRqECHUwKQnUOsdOAxThHwTVUE+CpCvDig4VJv8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J35cGUiFvFro7CtltTKY9EOiRoybmBHUbmVP3CFZKcOwn9aUH5Ohngw7nqCpg5cXN5HptrNm8ufMXoWUqWG6Epm1YkN02zpMrqe5lUFU/MP6HEtNrBKmPf9xsO5EMCB5Av8cOK2I1JpIaXRQJE+F78rl/SLvmdqcMVfMeMxCO4g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=Am2BigQ5; arc=none smtp.client-ip=209.85.215.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="Am2BigQ5" Received: by mail-pg1-f176.google.com with SMTP id 41be03b00d2f7-6c5a6151ff8so1343551a12.2 for ; Tue, 04 Jun 2024 17:24:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547076; x=1718151876; 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=Nt+Uz61a2MDORYQbLM7hqg1KrTLX44Z8XHA6HpQkDA0=; b=Am2BigQ5ai0uusi3V1fVnWi6TYpy05qU5jb/yOp41kL1nyWPJx67JFlVP4KDjWMhqo o5AyOppuCBG/mS4e9cUfdod4nbOwz2ftAQRH8bDpsgdQa2EbLybb/vVpN9A0UibqO50u 65d3hDvGcL1/ARGLS5gl3UimCoIFaZgUri7LA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547076; x=1718151876; 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=Nt+Uz61a2MDORYQbLM7hqg1KrTLX44Z8XHA6HpQkDA0=; b=YIlGI8ykEu0+gZy661EpNuEbs8ds5EaC54Z3c79h54VEfJnbNEo3k/eNKLWzT4dTOo ve2R9q5U266/94bPbM7eGwWf4VhR3S8Mp6DrxLfu6IkwsNSqJsGfin/m9dC6MUulsRtD tREmUERF1bt1UW7noqxilCEEJONHwLhEN2ajo5/i5eJi35aakTl81FGoQXg5bc3BCqzv FdEy4f3nx586E9D2ILxMjbGLMP0eD17znyDfugvXfmIoXDyFOZfORU4/OhQXywiZ1g6W FBFnmw4lukY6uy2Xk7CRRxpc+1CaWWadrC8B3NBtDrdMcPbi3nKG/lRHU1lhBOj34Zv0 P6Tw== X-Forwarded-Encrypted: i=1; AJvYcCV7nz4K7gHEB303HX+a+/FIl36rjLMan8h/DbdVkXp6fh5dFPITyHT+Gn10/NYzLDlSzlVCPfVfHaQtxENaZEn0nvbE44q6CNvdbsq1 X-Gm-Message-State: AOJu0YyWUtwLUR2jGa4brjVZn8uJeMCOOp6Pms31j6aUXNQunDQYGQ2M Zs0eAEqwDn/Gc3CI0w8X687QBa+3ClQBv5fpOMS4b/irqvv2UlBaqFpEb3wi+Q== X-Google-Smtp-Source: AGHT+IG8GVjkkeUZPe82uyMtW/A8Z+0TZ1mgkbT3D57ki2eM/keBp6CyQM3mvG3P3K8NdynAMqX0zA== X-Received: by 2002:a05:6a21:18f:b0:1b2:a780:2d08 with SMTP id adf61e73a8af0-1b2b6e4ab78mr1534566637.10.1717547076080; Tue, 04 Jun 2024 17:24:36 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:35 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Vinay Simha BN , Sumit Semwal , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 11/24] drm/panel: jdi-lt070me05000: Stop tracking prepared/enabled Date: Tue, 4 Jun 2024 17:22:57 -0700 Message-ID: <20240604172305.v3.11.I2e991044def6644c18ad8d7d686f4f3006f278de@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. NOTE: as part of this, transition the panel's direct calls to its disable function in shutdown/remove to call through DRM panel. Cc: Vinay Simha BN Cc: Sumit Semwal Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- Note: since we are able to identify that this panel only appears to be used on Qualcomm boards and we have to touch the shutdown/remove path in this patch anyway, we could possibly squash this with the next patch that removes the disable call in shutdown/remove. For now I'm keeping them separate just to keep the concepts separate. (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. .../gpu/drm/panel/panel-jdi-lt070me05000.c | 27 ++----------------- 1 file changed, 2 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/d= rm/panel/panel-jdi-lt070me05000.c index f9a69f347068..4ddddee6fa1e 100644 --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c @@ -37,9 +37,6 @@ struct jdi_panel { struct gpio_desc *dcdc_en_gpio; struct backlight_device *backlight; =20 - bool prepared; - bool enabled; - const struct drm_display_mode *mode; }; =20 @@ -176,13 +173,8 @@ static int jdi_panel_disable(struct drm_panel *panel) { struct jdi_panel *jdi =3D to_jdi_panel(panel); =20 - if (!jdi->enabled) - return 0; - backlight_disable(jdi->backlight); =20 - jdi->enabled =3D false; - return 0; } =20 @@ -192,9 +184,6 @@ static int jdi_panel_unprepare(struct drm_panel *panel) struct device *dev =3D &jdi->dsi->dev; int ret; =20 - if (!jdi->prepared) - return 0; - jdi_panel_off(jdi); =20 ret =3D regulator_bulk_disable(ARRAY_SIZE(jdi->supplies), jdi->supplies); @@ -207,8 +196,6 @@ static int jdi_panel_unprepare(struct drm_panel *panel) =20 gpiod_set_value(jdi->dcdc_en_gpio, 0); =20 - jdi->prepared =3D false; - return 0; } =20 @@ -218,9 +205,6 @@ static int jdi_panel_prepare(struct drm_panel *panel) struct device *dev =3D &jdi->dsi->dev; int ret; =20 - if (jdi->prepared) - return 0; - ret =3D regulator_bulk_enable(ARRAY_SIZE(jdi->supplies), jdi->supplies); if (ret < 0) { dev_err(dev, "regulator enable failed, %d\n", ret); @@ -250,8 +234,6 @@ static int jdi_panel_prepare(struct drm_panel *panel) goto poweroff; } =20 - jdi->prepared =3D true; - return 0; =20 poweroff: @@ -272,13 +254,8 @@ static int jdi_panel_enable(struct drm_panel *panel) { struct jdi_panel *jdi =3D to_jdi_panel(panel); =20 - if (jdi->enabled) - return 0; - backlight_enable(jdi->backlight); =20 - jdi->enabled =3D true; - return 0; } =20 @@ -475,7 +452,7 @@ static void jdi_panel_remove(struct mipi_dsi_device *ds= i) struct jdi_panel *jdi =3D mipi_dsi_get_drvdata(dsi); int ret; =20 - ret =3D jdi_panel_disable(&jdi->base); + ret =3D drm_panel_disable(&jdi->base); if (ret < 0) dev_err(&dsi->dev, "failed to disable panel: %d\n", ret); =20 @@ -491,7 +468,7 @@ static void jdi_panel_shutdown(struct mipi_dsi_device *= dsi) { struct jdi_panel *jdi =3D mipi_dsi_get_drvdata(dsi); =20 - jdi_panel_disable(&jdi->base); + drm_panel_disable(&jdi->base); } =20 static struct mipi_dsi_driver jdi_panel_driver =3D { --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E42F82837A for ; Wed, 5 Jun 2024 00:24:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547081; cv=none; b=fFpLMVBjKRbvGSi6beiV++df3cwdw5Fn0lLzt/Pmg9obHDhF4YSIfp3R0351nzclc4Kj6Egc/wrfkkYWvCxmII7fvp4T6wbrzWlofvrpSFLhQ/IJcRufgh+MDIE4RwBEenBLJJQyx0ys1Umr7yfOHxng7+v/nbeK24r5aJerwSg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547081; c=relaxed/simple; bh=y5P6GSVJaqX9fygi7NCZQL6iQCjLJjz3fWYqF7675rY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KwDDpJj8ecpOlsT4YF/vQQzhMCVhIdyG0ZwmCWGnJdTkDdfa2NFEYpkuZP6bCplVt1pPWHtzMJ37xC5pcxNBmgPJEwL8nzdNHNk2LHY8t7eU4zSbyT/pMn5O0JDhgRE2Vi8jX35IqCQDnzBq15IM5lxHnFKVGrb806zMIkD6L3E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=F6o4GX34; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="F6o4GX34" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1f44b5d0c50so46523255ad.2 for ; Tue, 04 Jun 2024 17:24:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547079; x=1718151879; 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=IfrcD8JBjZkCaL7eZQ01Qcv1YJLZOCOi3SqrruG0MFA=; b=F6o4GX34sbSECfeX7qcanzjWX+hKofI0P+WFAOnHx0IltLkTYcxR/dcy9XSULJ5K6H YOoQgyZ7f+5gE1+LtU7l0WwCDLXFFZrxZI7i1UhLh2AScKbeb4nCTwTthPuqZbSngNRY m/Xcuh5tXEWCocA1F0n7sqCgu5Z4FF7E8DuOU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547079; x=1718151879; 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=IfrcD8JBjZkCaL7eZQ01Qcv1YJLZOCOi3SqrruG0MFA=; b=YA82t052EkAc2XvFB4ezEI6RXObz0WprdrpsNeHwGQF9qHhlEOyuSN5c6qYV/UmmjV EDlOMmo1V6K8KFI9tBtlLBTcIimHBbzVdwt+EYTqCmaZdCV86s80p4Ng9FxhpB4eeCiW DKQ2VK0gpKDKJd4UsI2iI80u2o4lb/q54wfjT4yunr5MJFvru7PpLV57pm6u7FgjPgdI khrkYNjZTicxV/Yq0PukUkDGzRAxhmFSpA2COb1j9CZIzgJ0FA5YjyRo3i2znWe1dF6i 9l+UnjSI087b/att4vzKed5v+suYB08YqT+Vy8elBpg2/ZmyLu/6y6UwZDf2XRbzgnrV IvcQ== X-Forwarded-Encrypted: i=1; AJvYcCWo+SWfhtzaq7h9Hj7CjWlMYHXPjZ3zV84JljH3tJ5KHvolG8pIucRh0+e607ajzodlRPsniLqbs4tWJU7+GLTXqvkg15Y+UHpPvhjW X-Gm-Message-State: AOJu0YwAQsJS9+fTSPB/eFwf7e3WcFOc8s3RHD/tBb8KG7OltvVTEWKY p4d9BHXfP/joHPsmTCKgnRT8ZcSn39FTall8G+sfa+7M4yvPwrWI00w38/tyfA== X-Google-Smtp-Source: AGHT+IEEXeKEFU3e6/tB86kEEDxmpRztg5jwJKvGuNYwl+8Zuu/KCQ9s/CpPfv0EO0JOLP/Q6+umFg== X-Received: by 2002:a17:903:2289:b0:1f6:6c64:a7b6 with SMTP id d9443c01a7336-1f6a5a24e16mr13838715ad.37.1717547078652; Tue, 04 Jun 2024 17:24:38 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:37 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Vinay Simha BN , Sumit Semwal , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 12/24] drm/panel: jdi-lt070me05000: Don't call disable at shutdown/remove Date: Tue, 4 Jun 2024 17:22:58 -0700 Message-ID: <20240604172305.v3.12.I5f3426e511e77b93c247e0aac114bd12b2b2a933@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. A grep through mainline for compatible strings used by this driver indicates that it is used by Qualcomm boards. The Qualcomm driver appears to be correctly calling drm_atomic_helper_shutdown() so we can remove the calls. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Vinay Simha BN Cc: Sumit Semwal Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-jdi-lt070me05000.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/d= rm/panel/panel-jdi-lt070me05000.c index 4ddddee6fa1e..b1ce186de261 100644 --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c @@ -452,10 +452,6 @@ static void jdi_panel_remove(struct mipi_dsi_device *d= si) struct jdi_panel *jdi =3D mipi_dsi_get_drvdata(dsi); int ret; =20 - ret =3D drm_panel_disable(&jdi->base); - if (ret < 0) - dev_err(&dsi->dev, "failed to disable panel: %d\n", ret); - ret =3D mipi_dsi_detach(dsi); if (ret < 0) dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", @@ -464,13 +460,6 @@ static void jdi_panel_remove(struct mipi_dsi_device *d= si) jdi_panel_del(jdi); } =20 -static void jdi_panel_shutdown(struct mipi_dsi_device *dsi) -{ - struct jdi_panel *jdi =3D mipi_dsi_get_drvdata(dsi); - - drm_panel_disable(&jdi->base); -} - static struct mipi_dsi_driver jdi_panel_driver =3D { .driver =3D { .name =3D "panel-jdi-lt070me05000", @@ -478,7 +467,6 @@ static struct mipi_dsi_driver jdi_panel_driver =3D { }, .probe =3D jdi_panel_probe, .remove =3D jdi_panel_remove, - .shutdown =3D jdi_panel_shutdown, }; module_mipi_dsi_driver(jdi_panel_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 67E825C96 for ; Wed, 5 Jun 2024 00:24:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547082; cv=none; b=TofvysnUVZgB6vp52YWiDfuVjr0ObdiaCy5M9PWMIGnh0M2HNb5Mqd4CT4qByN3FzBcBF4OnLYZ2C/+bmbwC9wFhXhUyo+BsMaM2azR2UpLVBNwwivcfwRyJNdr/XRBMECV4unL2LzjhmoHB1cgVgvg33uFR8D7M5IgYfP9qrUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547082; c=relaxed/simple; bh=PVxTU2SLuK1+/8lpgmhPr8DzWOSexxu6WgUikZqB4Xg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ROCyA+OIwKTs/R0IQDsx6Qzi3YN5C34X+XzaVWlnx9ouBtRcPt1SG9BOVd84F0Zn2aKenO28XB/ctABZsyx6zbuZqqDfNfdnygsRQoPZ3Hue5p3AmrCQ+QjYQxfpCpHXONxrXhqaYXffXXiAb9eM33aA8T2feASuntFj/UsJCAo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=GlG7vbVo; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="GlG7vbVo" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-1f6a837e9a3so417675ad.1 for ; Tue, 04 Jun 2024 17:24:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547081; x=1718151881; 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=Y1AbhkHbMcMoNlGR2CNiQzfOA470DcPJEE3YgeJALa4=; b=GlG7vbVouALnYsNYKijVzLM3/LoW2GqNALEzt30Ugv7QgJMvDjy//8RkYMIwHlGEuF ogk876krQ8dmr44BN9/hD3SkwfbVD6dSLkzlGbRPntGZ1qAPtkVNF3oayQUN7yZprZGj IBLW2Q13YyRhjaayuQGde/nNWfkdkdLyWzMpQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547081; x=1718151881; 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=Y1AbhkHbMcMoNlGR2CNiQzfOA470DcPJEE3YgeJALa4=; b=n2ORTWhQsk1FQbze4ZV6ChDsqoPqEEjVSRxWWrjX8W+yvB2hi/ac+nqJIAe0NHXsP7 49dsvdrYcwX0DWr/mbvIxKrOAzPLnoJI8NVYMCfEq2fQYqRfjn7suB2P5n6Q4kpAOxG8 xyRyZuJnVLWIAOVtTqNFKLrki/WMyMHwLlHezrBu7jILiEZMlu3bOOiXDYeDKojE6FrA kTDpZhuphegm/rOqV1afXgC1yTmhTkebX3INmBedSGZfle7wB3jFn4nMCYpRclQOV+m/ IMo5OjVmS477uU2hHMl40lTJ2tcw2ciy2NSFuKVeGLJCzGnWg6i85UKUzmehC+XDcrCR Owyw== X-Forwarded-Encrypted: i=1; AJvYcCUHNzPZSCE+qESSnedMwL89AnUr61QqUHeXFutS4DZilb5Cco45faA6byg6vR1gjMjpvMFFUUGe0TmTh3GIW/B6SbRn5/D7mjy4QMmE X-Gm-Message-State: AOJu0YzdFIbgW/dxkGgDSQCjG5zVg0SLSfCeL4gYx4d1cUmL3HBtBdVD Jaueu+LOoBU8VIkQL4wpuGG3kZTxu8grpZbNENLEwdG0lFVLDX0YkG7ZLrR7qw== X-Google-Smtp-Source: AGHT+IGu8485oXCnzIRAECaBH3dhdfdAn+6q6Kuo2jjHznsxYxzsjH5Zj4/blut1i6HGmkU6SpKExQ== X-Received: by 2002:a17:902:d506:b0:1f6:3215:3d3b with SMTP id d9443c01a7336-1f6a5a22ef8mr15113505ad.31.1717547080831; Tue, 04 Jun 2024 17:24:40 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:40 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Werner Johansson , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 13/24] drm/panel: panasonic-vvx10f034n00: Stop tracking prepared/enabled Date: Tue, 4 Jun 2024 17:22:59 -0700 Message-ID: <20240604172305.v3.13.I7278e956ffd1cf686e737834578d4bb3ea527c7f@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. Cc: Werner Johansson Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. .../drm/panel/panel-panasonic-vvx10f034n00.c | 35 +------------------ 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers= /gpu/drm/panel/panel-panasonic-vvx10f034n00.c index 8ba6d8287938..822ca2f971eb 100644 --- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c +++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c @@ -32,9 +32,6 @@ struct wuxga_nt_panel { =20 struct regulator *supply; =20 - bool prepared; - bool enabled; - ktime_t earliest_wake; =20 const struct drm_display_mode *mode; @@ -53,28 +50,16 @@ static int wuxga_nt_panel_on(struct wuxga_nt_panel *wux= ga_nt) static int wuxga_nt_panel_disable(struct drm_panel *panel) { struct wuxga_nt_panel *wuxga_nt =3D to_wuxga_nt_panel(panel); - int mipi_ret, bl_ret =3D 0; - - if (!wuxga_nt->enabled) - return 0; - - mipi_ret =3D mipi_dsi_shutdown_peripheral(wuxga_nt->dsi); - - wuxga_nt->enabled =3D false; =20 - return mipi_ret ? mipi_ret : bl_ret; + return mipi_dsi_shutdown_peripheral(wuxga_nt->dsi); } =20 static int wuxga_nt_panel_unprepare(struct drm_panel *panel) { struct wuxga_nt_panel *wuxga_nt =3D to_wuxga_nt_panel(panel); =20 - if (!wuxga_nt->prepared) - return 0; - regulator_disable(wuxga_nt->supply); wuxga_nt->earliest_wake =3D ktime_add_ms(ktime_get_real(), MIN_POFF_MS); - wuxga_nt->prepared =3D false; =20 return 0; } @@ -85,9 +70,6 @@ static int wuxga_nt_panel_prepare(struct drm_panel *panel) int ret; s64 enablewait; =20 - if (wuxga_nt->prepared) - return 0; - /* * If the user re-enabled the panel before the required off-time then * we need to wait the remaining period before re-enabling regulator @@ -117,8 +99,6 @@ static int wuxga_nt_panel_prepare(struct drm_panel *pane= l) goto poweroff; } =20 - wuxga_nt->prepared =3D true; - return 0; =20 poweroff: @@ -127,18 +107,6 @@ static int wuxga_nt_panel_prepare(struct drm_panel *pa= nel) return ret; } =20 -static int wuxga_nt_panel_enable(struct drm_panel *panel) -{ - struct wuxga_nt_panel *wuxga_nt =3D to_wuxga_nt_panel(panel); - - if (wuxga_nt->enabled) - return 0; - - wuxga_nt->enabled =3D true; - - return 0; -} - static const struct drm_display_mode default_mode =3D { .clock =3D 164402, .hdisplay =3D 1920, @@ -178,7 +146,6 @@ static const struct drm_panel_funcs wuxga_nt_panel_func= s =3D { .disable =3D wuxga_nt_panel_disable, .unprepare =3D wuxga_nt_panel_unprepare, .prepare =3D wuxga_nt_panel_prepare, - .enable =3D wuxga_nt_panel_enable, .get_modes =3D wuxga_nt_panel_get_modes, }; =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pf1-f181.google.com (mail-pf1-f181.google.com [209.85.210.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 958FD2E62C for ; Wed, 5 Jun 2024 00:24:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547085; cv=none; b=RrCvKScXaTdL2YrkZy259GmnUIdTg3MzFGMrk9mZMEbk1+mdMAd8uT273LCRQg6GSl0IWBLhHxK0WDJNqsqE7vFXT3BeZdcuVfoSIOFWPiBk6mVV+2VgvXaHt+sBX5FOccLRm80oBENbi0GLBCG+E4uB9ymlXtY2+G4oXbu055Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547085; c=relaxed/simple; bh=DFjnq2opIjVPngSaFGfLurlZ3AfJMPI5t45nfJZwkyQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aZkmGIjui8gjr1UBjqp50xGlIhgwdyoiQsI4/B2ne14heAjk38uH1LL0lWa9VifLZ0P0Ci/GjL8M/qJSUKzonFdE8/ebsDTNZJUYTy1nSv+uG+8LZE5c8G96H6zpML7zSTxhFYyczM/kT/UjEWZYyj+s1Diee9x1C/ishWgkYTA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=ejlu6ywQ; arc=none smtp.client-ip=209.85.210.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="ejlu6ywQ" Received: by mail-pf1-f181.google.com with SMTP id d2e1a72fcca58-702621d8725so3556181b3a.0 for ; Tue, 04 Jun 2024 17:24:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547083; x=1718151883; 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=sysQzdwXJkfbSDELyE+0q9H4w1SnddVJlaF6DxjB+qk=; b=ejlu6ywQSEtGg1gJo/zmJ5+gEzZmWPogoPTv0fApd4DzSAJYUvuGsMhdal1TgWFw79 j0JqBjuvsuLAWIS0K0qdRbKyPeObpaJc3MH9SFkBo43R5E7gqfyjbOIHSqfd3jLJW2pX o0YT2umTYxP5byYcNhcMNgKQIY2KRVeAQ1Hjo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547083; x=1718151883; 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=sysQzdwXJkfbSDELyE+0q9H4w1SnddVJlaF6DxjB+qk=; b=eLF/cycPuwYvnH2Ys53Mrl/ytH0gm+KdGOXpIb0/iYJblgLys9lV49yQK5sQepcjBm lDTNspau6bgztwQX9GOIjTV9gCgisclyouMI1r+JoX+3LYk5qoFq6JtvszUARr/rVeLr QMlwfI6R+OxRJSltvB2rb13G9VDcGtRKpGIKUFeSFGwETyL7MOlXS9QyFrmvgP7GlQBK F/jRc10NFXGRcuicwpSds6DmnWVKW9IFwRjaLMVPYiaa4p6l1SK8O8gkWE8VVN2b067X xucKGoB7YUwDoCtgNdz/Wm/qIGJ0zed2hTikgCgyV2MQVhBY6JARk0AkGQqKegY+CJjl f9qA== X-Forwarded-Encrypted: i=1; AJvYcCUtG5XHRaGgvIjh5/QxG1bF8k51v6D02l7ptjPTKXUuFDh8rDjH1OTz8SViMGPtH+XDrDu6+2F0yjjCJe+4/0WzH+wYmz4oCunozZ8+ X-Gm-Message-State: AOJu0Ywc0Mtx6/atTiSbeGRzE/Cg2bgfPPEelteJSmJXA53tDbZTS+Ze i3mSP42hTdKjAIUHEW1epCTEvOorqqiyGkYld0QCchEbMobjvXnGcc5NSDdMow== X-Google-Smtp-Source: AGHT+IHwO5H/zzgdm51Mput5e8kDxkReWlPt+ysnTlv9tYtyUriDJs0DOGcaXJK8sR0lU669dWg0YA== X-Received: by 2002:a05:6a21:6da9:b0:1af:a37e:367e with SMTP id adf61e73a8af0-1b2b6f81145mr1642375637.15.1717547082896; Tue, 04 Jun 2024 17:24:42 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:42 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Werner Johansson , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 14/24] drm/panel: panasonic-vvx10f034n00: Don't call disable at shutdown/remove Date: Tue, 4 Jun 2024 17:23:00 -0700 Message-ID: <20240604172305.v3.14.I1562c864ee35a9c166765488c95104b7e4e562da@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. Unfortunately, grepping mainline for this panel's compatible string shows no hits, so we can't be 100% sure if the DRM modeset driver used with this panel has been fixed. If it is found that the DRM modeset driver hasn't been fixed then this patch could be temporarily reverted until it is. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Werner Johansson Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers= /gpu/drm/panel/panel-panasonic-vvx10f034n00.c index 822ca2f971eb..d1c5c9bc3c56 100644 --- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c +++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c @@ -222,10 +222,6 @@ static void wuxga_nt_panel_remove(struct mipi_dsi_devi= ce *dsi) struct wuxga_nt_panel *wuxga_nt =3D mipi_dsi_get_drvdata(dsi); int ret; =20 - ret =3D drm_panel_disable(&wuxga_nt->base); - if (ret < 0) - dev_err(&dsi->dev, "failed to disable panel: %d\n", ret); - ret =3D mipi_dsi_detach(dsi); if (ret < 0) dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret); @@ -233,13 +229,6 @@ static void wuxga_nt_panel_remove(struct mipi_dsi_devi= ce *dsi) wuxga_nt_panel_del(wuxga_nt); } =20 -static void wuxga_nt_panel_shutdown(struct mipi_dsi_device *dsi) -{ - struct wuxga_nt_panel *wuxga_nt =3D mipi_dsi_get_drvdata(dsi); - - drm_panel_disable(&wuxga_nt->base); -} - static struct mipi_dsi_driver wuxga_nt_panel_driver =3D { .driver =3D { .name =3D "panel-panasonic-vvx10f034n00", @@ -247,7 +236,6 @@ static struct mipi_dsi_driver wuxga_nt_panel_driver =3D= { }, .probe =3D wuxga_nt_panel_probe, .remove =3D wuxga_nt_panel_remove, - .shutdown =3D wuxga_nt_panel_shutdown, }; module_mipi_dsi_driver(wuxga_nt_panel_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C288F3BBE2 for ; Wed, 5 Jun 2024 00:24:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547088; cv=none; b=ewIzo9aDyKY+wq9h+fv5VYzyUNaoCmMumv7Xdt/ArqWceQInza+zcdzRCOTgCoVwmxxkAXNrjhDr4X3/44ixBylYbxT5vOYNDj6gLviX088juwn16Whsxa1CyOyiX/BR6DgE914gwW4ZAWrBZod/8VqtcfeSVduO5Tte7j4QJzg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547088; c=relaxed/simple; bh=a8C6qjcG7YKqYTIWyjBBzJzmga0Lilu8SJniiSROS1k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IDFFet8P/zLnwXphLBxYp+rk2f45BClrbrh+SYmjeGoIovplEtQlKJCgQnaWzIH8DnQDomqy3+Aclgcm0DW9fE87DpKvzTGAZ2DTnzZersyXemAo8Zw0wOtXGVf/OhupU3b2LWVBjlOkhY70P8UYcsTc8bo7qIYMZ5juEXUmQ7s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=cXm/vFRl; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="cXm/vFRl" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1f4a0050b9aso42179755ad.2 for ; Tue, 04 Jun 2024 17:24:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547086; x=1718151886; 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=xFzIDtydxqVVGN3IYfhfbW6uYn49tP8HLCeKu1mdxF0=; b=cXm/vFRltzZh9/4ozQHPn6pzoVmvy4CaIONtKYUNNNus96q6QzYc4Qi7Tmw1nqNIFU /HI/RCWBFcED4Cdp5IqJrGnjgfo01Bvavr1UdlGnQPajlgr63HYHL1lmrNYE2NJYjhYN BVqfAHzLCCfB0qAZB4tyWJbu3qPFHQLusBJr0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547086; x=1718151886; 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=xFzIDtydxqVVGN3IYfhfbW6uYn49tP8HLCeKu1mdxF0=; b=lWoeeHOuLcfjA8qvB9t/Hx7zO9Uxc03Wrr0H9axDagtv80Wbi9ThAHHvwYk3RVfzp3 o5z3EybSPEyuKKdkLtW4U8KllZMuWhmA+z86g8PIwCfHhbbLxt75NK+2S8MvKrUJ7qTt r52+g13CDOo3SjurZgAzlTpeh6bxUQHEn1HtDb7QW936PxoRBHN15124/jag/TM83m9O hlNbj/JPmg4sduzPwzU61uwirkKrRgUl0mblmhfTCZ5GpOqjHd852QGqMpzeTv9FgFJI l02UmYRFqY57ReZNyctnho9Xr7ZHxp06mnBZC2k+m066qsiNdOfwmctRv9J+OoLOrctX KLxA== X-Forwarded-Encrypted: i=1; AJvYcCWT+4VR1HVtqHwVHegNgoWawL9v6j23pBGLe35VUCi0pl832GY/fZJFm6nr1rnT7zCG7PQCLtHdVGU4i19EboRK3ThHbss6mFG7DKbY X-Gm-Message-State: AOJu0YxdVJ9ZobszQZOFvVdZx6oWlP3sLYPF+333kMnZjS7bk8hSbWUf xX/z84bJHPPUs0ITyZyFTjNPMTZPa8kPxvpRKmCOgGi9rGorfHXbtJG9VGxFQWwhcyzNLA4blo0 = X-Google-Smtp-Source: AGHT+IFm27+/fauZ3nMgvWWl74IN5ajXU9Ol2WKo4tVnIcK0hz7JGfbfsPcOkqAdhqR5nLRbBIMn9g== X-Received: by 2002:a17:902:e54f:b0:1f6:7fa4:e064 with SMTP id d9443c01a7336-1f6a5a83917mr13819875ad.61.1717547085853; Tue, 04 Jun 2024 17:24:45 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:45 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Marco Franchi , Fabio Estevam , Laurentiu Palcu , Pengutronix Kernel Team , imx@lists.linux.dev, Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 15/24] drm/panel: seiko-43wvf1g: Stop tracking prepared/enabled Date: Tue, 4 Jun 2024 17:23:01 -0700 Message-ID: <20240604172305.v3.15.Idda91d310ca2e4f5a4ab4ca6eaf1afdaf14eeb51@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. Cc: Marco Franchi Cc: Fabio Estevam Cc: Laurentiu Palcu Cc: Pengutronix Kernel Team Cc: imx@lists.linux.dev Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 40 --------------------- 1 file changed, 40 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/= panel/panel-seiko-43wvf1g.c index 658c7c040570..98480904126c 100644 --- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c +++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c @@ -44,8 +44,6 @@ struct seiko_panel_desc { =20 struct seiko_panel { struct drm_panel base; - bool prepared; - bool enabled; const struct seiko_panel_desc *desc; struct regulator *dvdd; struct regulator *avdd; @@ -122,25 +120,10 @@ static int seiko_panel_get_fixed_modes(struct seiko_p= anel *panel, return num; } =20 -static int seiko_panel_disable(struct drm_panel *panel) -{ - struct seiko_panel *p =3D to_seiko_panel(panel); - - if (!p->enabled) - return 0; - - p->enabled =3D false; - - return 0; -} - static int seiko_panel_unprepare(struct drm_panel *panel) { struct seiko_panel *p =3D to_seiko_panel(panel); =20 - if (!p->prepared) - return 0; - gpiod_set_value_cansleep(p->enable_gpio, 0); =20 regulator_disable(p->avdd); @@ -150,8 +133,6 @@ static int seiko_panel_unprepare(struct drm_panel *pane= l) =20 regulator_disable(p->dvdd); =20 - p->prepared =3D false; - return 0; } =20 @@ -160,9 +141,6 @@ static int seiko_panel_prepare(struct drm_panel *panel) struct seiko_panel *p =3D to_seiko_panel(panel); int err; =20 - if (p->prepared) - return 0; - err =3D regulator_enable(p->dvdd); if (err < 0) { dev_err(panel->dev, "failed to enable dvdd: %d\n", err); @@ -180,8 +158,6 @@ static int seiko_panel_prepare(struct drm_panel *panel) =20 gpiod_set_value_cansleep(p->enable_gpio, 1); =20 - p->prepared =3D true; - return 0; =20 disable_dvdd: @@ -189,18 +165,6 @@ static int seiko_panel_prepare(struct drm_panel *panel) return err; } =20 -static int seiko_panel_enable(struct drm_panel *panel) -{ - struct seiko_panel *p =3D to_seiko_panel(panel); - - if (p->enabled) - return 0; - - p->enabled =3D true; - - return 0; -} - static int seiko_panel_get_modes(struct drm_panel *panel, struct drm_connector *connector) { @@ -228,10 +192,8 @@ static int seiko_panel_get_timings(struct drm_panel *p= anel, } =20 static const struct drm_panel_funcs seiko_panel_funcs =3D { - .disable =3D seiko_panel_disable, .unprepare =3D seiko_panel_unprepare, .prepare =3D seiko_panel_prepare, - .enable =3D seiko_panel_enable, .get_modes =3D seiko_panel_get_modes, .get_timings =3D seiko_panel_get_timings, }; @@ -246,8 +208,6 @@ static int seiko_panel_probe(struct device *dev, if (!panel) return -ENOMEM; =20 - panel->enabled =3D false; - panel->prepared =3D false; panel->desc =3D desc; =20 panel->dvdd =3D devm_regulator_get(dev, "dvdd"); --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A76922E62C for ; Wed, 5 Jun 2024 00:24:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547090; cv=none; b=MMFx4bYdm8nqiOcuqiUSNU5BNj9BnzKNCMCQVmMoD5AEQLwyAI87zkkPkyB4juGVGIoUl2xB1ca/YwRRsbkV+my/hk5YInIHa8Y+ScWEFqwZwHEXQYbnSFM0BDGDINlAlCsN5fSsp+2++Z4xydh119JzK6/5wanSJayT8F8upkQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547090; c=relaxed/simple; bh=vhPzviMn/rgVDu1u39BrxfVEMMEmR6rzDMtKb/Q2+t0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bZ8wbix7Cky+4mOrtTXhhWFSyYFZEQ3xF4TQbyDNuSgwoanjvtg5I7q0fILeSWgFmBxWddsI3fkSZmnoMDQr2EOb59RormKF3MmHn1ymGuv7R08GTpJJ2txq6YN4Zpe5aqT+wAu2dmHgDNKMY/rbv5bkvwQFmf7tCvxPpfd2xEg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=KKTL7hdI; arc=none smtp.client-ip=209.85.215.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="KKTL7hdI" Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-6c4f3e0e3d2so1431902a12.1 for ; Tue, 04 Jun 2024 17:24:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547088; x=1718151888; 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=msnwFK/XkOnU7RbguwwCWHAg9Wx/3x8graQzx6Y6iJo=; b=KKTL7hdIGbHSJ7F3AI04zkcuF/O9mYCAWHDPHZ70FlbsqQdIOHIXn3cCIwRqHrLwr0 8UcIx2fg7xw6TPAI8XMtom2Yj7+voJDTw0QBCCAYjkY3UgR7SwZjsU28lVPPOM16f8Bx jq4zEejRKbX9Q2bjjZ+IgLCAYSXy60rsLF8qA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547088; x=1718151888; 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=msnwFK/XkOnU7RbguwwCWHAg9Wx/3x8graQzx6Y6iJo=; b=dch4EGprvdNfPrsxqrT3rcIht9P8pvbSvdB06yNyfoltfi+IIec5n9xgNa2KhIbMXW QaKAqFdITo8rc1OxSCwCEeygZp6Dalyi4eiqW9FijIQPYR1wM/pXRk+viXuLkeoXJtKh OjQHxbxY5LP2VkTHvHMjkXlyG2XyFxXNf9XlDoGXxqMM3t4/86P4qXQmZoHO2RErTey4 GL+718Yc12PaHvI4f8DbrJ2nbGTUwZpv/zoiYBafOIseYWNEpdySgyb3/C3x6cIgWfWL z0uVtfHlp5mXf9SGK6vYQtXe47dqyVYNMUd8HVATra+nU2ZCpxLT0ftF48liZfei1JCu BEqg== X-Forwarded-Encrypted: i=1; AJvYcCXrZ1TZwajQkdU31+MWqwyx9dvbLD6WfTukXwOgA3n4b5cpOFrzbiw0yblkWuwz4JfeP92D/YXQDPcRLhPY+BfhGcu6GySi0x6h4PTT X-Gm-Message-State: AOJu0YzXtWCsJ3jT+Z6VjTHHhDSdbFsaYPLxH1dczZ7hK9wLj24cFvmm aEVGQKjIG9Eifpgr0dGu3CWvWoCVcFi70BWFEHdEv1GYpeJnI7JQT/hG1ew1EVnkCjtRiHuTzlU = X-Google-Smtp-Source: AGHT+IFbuMMubq5nzPSGHbnA/7JCHbN1RIJ5658MiA6y66RGqchQoA/HmoffnqBh5Mo5cI2sbFTEzA== X-Received: by 2002:a05:6a20:1590:b0:1af:d153:b76a with SMTP id adf61e73a8af0-1b2b6f68b99mr1497594637.18.1717547088161; Tue, 04 Jun 2024 17:24:48 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:47 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Marco Franchi , Fabio Estevam , Laurentiu Palcu , Pengutronix Kernel Team , imx@lists.linux.dev, Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 16/24] drm/panel: seiko-43wvf1g: Don't call disable at shutdown/remove Date: Tue, 4 Jun 2024 17:23:02 -0700 Message-ID: <20240604172305.v3.16.Ief712fb6720cb98bdf9ec8644362d028b6554f9b@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. A grep through mainline for compatible strings used by this driver indicates that it is used by IMX boards. As far as I can tell, all IMX boards are now correctly calling drm_atomic_helper_shutdown() so we can remove the calls. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Marco Franchi Cc: Fabio Estevam Cc: Laurentiu Palcu Cc: Pengutronix Kernel Team Cc: imx@lists.linux.dev Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-seiko-43wvf1g.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/= panel/panel-seiko-43wvf1g.c index 98480904126c..8a3fe531c641 100644 --- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c +++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c @@ -243,14 +243,6 @@ static void seiko_panel_remove(struct platform_device = *pdev) struct seiko_panel *panel =3D platform_get_drvdata(pdev); =20 drm_panel_remove(&panel->base); - drm_panel_disable(&panel->base); -} - -static void seiko_panel_shutdown(struct platform_device *pdev) -{ - struct seiko_panel *panel =3D platform_get_drvdata(pdev); - - drm_panel_disable(&panel->base); } =20 static const struct display_timing seiko_43wvf1g_timing =3D { @@ -306,7 +298,6 @@ static struct platform_driver seiko_panel_platform_driv= er =3D { }, .probe =3D seiko_panel_platform_probe, .remove_new =3D seiko_panel_remove, - .shutdown =3D seiko_panel_shutdown, }; module_platform_driver(seiko_panel_platform_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D5AE33FE4A for ; Wed, 5 Jun 2024 00:24:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547092; cv=none; b=kgYBjsX7KYmVoz1I7/1aOOC58AdiTBdDxQcYKrWTnaLTuIdOjSFLQBZJL8UHG/MlCZOIjT6PlVKdgnKyHEB+8VGppPRuj+/SQJFNWZniY8HRD2Kl6bViWb6mpe7nEltTFT6xpwbzRIKrowa6SSojTYLsJakdhWEhh872lS6KFks= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547092; c=relaxed/simple; bh=FLeShtPouJuV2Qn0M4852+lvvp6t/uuZDKf+IJVMyyA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sogi2PXM9dfJ4oob/SbPrLDllLJpPHJsTSoCPDnsh6t0508oQvMGYomRX1idAVN7HHBcWyxtuiCtFHrOzVceGHKbfR6efxyNrue74gsN947RX+q7DWEhrwhcOYxVprllKcPLaFNfjK5MuprlppA2wAx+5otF5JdphxwGX6IhIv8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=PS78I+Lo; arc=none smtp.client-ip=209.85.210.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="PS78I+Lo" Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-70249faa853so1525518b3a.3 for ; Tue, 04 Jun 2024 17:24:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547090; x=1718151890; 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=WwSr2LQpLEh1dbqQjF4R2fgSgqdzndDaTOcijaWNa9w=; b=PS78I+LoM40OuleZKj5KIJdGMErJYNP5wM0ahjJwJMN2y0ZQfZBg1TNYcYodzLeiC1 JogrBOxq/bi3rOXi8fXESEviBSbdd5b219pvanN3fn6POIPvpO4IdicC8XSd5P6K/TCr 8Z6DCU7pXp75AYvrsSrDgR2iyK+rS+0KTRwr4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547090; x=1718151890; 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=WwSr2LQpLEh1dbqQjF4R2fgSgqdzndDaTOcijaWNa9w=; b=bfQWoG5go1jisALSeJUrd6bTLXHVk7n+kBIJ8dgMWl9eeqimt73xf5UBaRuo0DBVlF z+B3DOaUOY5EehLHawKEfTwGzqBuTrDrHFXqNXYzv07HfZFFAdxk0IugAAckLybFHOcQ /1y/9vdBz7XpJD0yRwPRYbcf6LvqiRzqHbXHpGPqgCCCqjsgKC4RwiUjmw/KbjiPeM0X 2nSbYOuNuC9Co88D/fJm3wHGPaI45uW3jToLdS/B6FCfBoeJa80Yt/RMyo2IzyHuynMH WWOuOeD0CDdgCexhtJrS8G4ibsSl5NIKH/GpTgiVibDZsiBwqhtXm1sEdfH5okfXx4ra OXiQ== X-Forwarded-Encrypted: i=1; AJvYcCU8TPVwKJt6r+U/fmlbHLeM7i8MhdKVKYOCZeeQmXrGxy9iSnlAQ8k/rcM5S+xaYrtBGBNgkkU9fFeHZ6iNKaKGX2PVkU0XgsSsKY3Z X-Gm-Message-State: AOJu0YzqSStcY8F0BTZyf73U6VeWVemQG9aPlHlgYKJx0vTpU/zrBdv+ TQXnPuwaVAirugyorUygyr2nXurX5FK+E1S3zWz5AFlBMNe4OAoMXN67HZih+A== X-Google-Smtp-Source: AGHT+IHTA/HmCvWBMAd8tf+YR+vrYnIMOjenFrx5elkt8kCQQG58qBMYuoMj6MIUTI76RDDnK6YNvQ== X-Received: by 2002:a05:6a21:819f:b0:1b2:7d48:7f7d with SMTP id adf61e73a8af0-1b2b71c8e82mr1254043637.61.1717547090168; Tue, 04 Jun 2024 17:24:50 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:49 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Thierry Reding , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 17/24] drm/panel: sharp-lq101r1sx01: Stop tracking prepared/enabled Date: Tue, 4 Jun 2024 17:23:03 -0700 Message-ID: <20240604172305.v3.17.Ifd6b12b8a4bca7d492e892ea7455e83f5c0ab5a8@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. Cc: Thierry Reding Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. .../gpu/drm/panel/panel-sharp-lq101r1sx01.c | 39 ------------------- 1 file changed, 39 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/= drm/panel/panel-sharp-lq101r1sx01.c index 14851408a5e1..8f6c21b99522 100644 --- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c +++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c @@ -24,9 +24,6 @@ struct sharp_panel { =20 struct regulator *supply; =20 - bool prepared; - bool enabled; - const struct drm_display_mode *mode; }; =20 @@ -85,26 +82,11 @@ static __maybe_unused int sharp_panel_read(struct sharp= _panel *sharp, return err; } =20 -static int sharp_panel_disable(struct drm_panel *panel) -{ - struct sharp_panel *sharp =3D to_sharp_panel(panel); - - if (!sharp->enabled) - return 0; - - sharp->enabled =3D false; - - return 0; -} - static int sharp_panel_unprepare(struct drm_panel *panel) { struct sharp_panel *sharp =3D to_sharp_panel(panel); int err; =20 - if (!sharp->prepared) - return 0; - sharp_wait_frames(sharp, 4); =20 err =3D mipi_dsi_dcs_set_display_off(sharp->link1); @@ -119,8 +101,6 @@ static int sharp_panel_unprepare(struct drm_panel *pane= l) =20 regulator_disable(sharp->supply); =20 - sharp->prepared =3D false; - return 0; } =20 @@ -164,9 +144,6 @@ static int sharp_panel_prepare(struct drm_panel *panel) u8 format =3D MIPI_DCS_PIXEL_FMT_24BIT; int err; =20 - if (sharp->prepared) - return 0; - err =3D regulator_enable(sharp->supply); if (err < 0) return err; @@ -235,8 +212,6 @@ static int sharp_panel_prepare(struct drm_panel *panel) goto poweroff; } =20 - sharp->prepared =3D true; - /* wait for 6 frames before continuing */ sharp_wait_frames(sharp, 6); =20 @@ -247,18 +222,6 @@ static int sharp_panel_prepare(struct drm_panel *panel) return err; } =20 -static int sharp_panel_enable(struct drm_panel *panel) -{ - struct sharp_panel *sharp =3D to_sharp_panel(panel); - - if (sharp->enabled) - return 0; - - sharp->enabled =3D true; - - return 0; -} - static const struct drm_display_mode default_mode =3D { .clock =3D 278000, .hdisplay =3D 2560, @@ -295,10 +258,8 @@ static int sharp_panel_get_modes(struct drm_panel *pan= el, } =20 static const struct drm_panel_funcs sharp_panel_funcs =3D { - .disable =3D sharp_panel_disable, .unprepare =3D sharp_panel_unprepare, .prepare =3D sharp_panel_prepare, - .enable =3D sharp_panel_enable, .get_modes =3D sharp_panel_get_modes, }; =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2744F4EB37 for ; Wed, 5 Jun 2024 00:24:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547095; cv=none; b=aD8/t1ukhCNJFfkWb74H48Fu2KFpejNBRrX1Ux4OMMxtnkcJ4r5oRJ27AXGai61R1+mMK+7AIn7khsqSPJpro/LrqNYNGMOLl3kbMAWPEqlG95tnuSd1rVtSW4zH6lv6yFjN2ds2AemuG16zGel0UIU6Z10Lo9Y5MfI8GtsDivw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547095; c=relaxed/simple; bh=JYmrKcAo8MkbRM8xm+WkfPa4qdZWXauqIRbxsbjr04s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ksPDQg7A4rm355xPIdwkBnVBj4Ui4cJFE/tZkx+/kTKpIfAAp9rNrAHsqxk+Q9qdQIHdouPnujtkyIJfwMKWHs+hp80mqz4zXHJhkclGRzwxpTcSFYehyuM5gmdhhc87WQN1bVYRaY4Do3psg6YH73d13ooGMqMAz2oNiytptlE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=CxGc8FjA; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="CxGc8FjA" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-1f44b45d6abso15504255ad.0 for ; Tue, 04 Jun 2024 17:24:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547093; x=1718151893; 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=SUlBvWo2T1mUjKsAM9UGlJV07qR//zMbx5vVmNvhsHw=; b=CxGc8FjAqnNwd8X7lgjuBfj1gs1bqt8lXm+vH3AF72wnJhErgQsyUPRumKeWd1L0k1 eDwA8cLvJIzk1geMf3cVMFokMMjcEAiM9GTWIDoY4xZrK/W6wiWTw9krIYMMqmkbeOEd dh1Yr1dOyyFNREW3MHUwsWN7v5VV4fKcjI8bw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547093; x=1718151893; 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=SUlBvWo2T1mUjKsAM9UGlJV07qR//zMbx5vVmNvhsHw=; b=MqOiEnMkuPPcvA2xY2wYL3G/oG8J2bfo+29Dx98NTN7IpNcsR7+4cST9B2i+IT9b/i 0efd+a9ZG0Ckx+mLgaVse1nDb+E1Vi+yEvaJvPuN2kHfRfTMd3lttbMKKruDqW3z0UkQ ysYOnZSykcA7CCkx9Tf9YEwQ5vAyloLslXwv+o2tbCDVwMvKuVqrPrC+mpe0Ip9b5S/4 O5eeTrdBC6XaPfsMto3dDxnheqe0vuuofXPxefcr/HPuotJrJidq+r3N5hfGiyWUuzrd 5BwYZZ3vcQF38eGrDquNO0Hk6AnY5DIG9YSZY2iDCMnb8Pl9dzHSB4CiNVYcIcKMYepm m5Jw== X-Forwarded-Encrypted: i=1; AJvYcCVn7qjngSqPhoL6bz5wHVmTWMUNRkFfSCg46ZcQ5yL6uTRBM/pcRgl0L9J3Hf1Z3nIBqpBI6SLuRScRwSMWto+vbUFiZCRXpuIEvv2x X-Gm-Message-State: AOJu0YwI3WLRFAdyXVsDp1r7hAZ2UyXq6R6CHfghW/CQ9aZgWFVSgNTC aQGR59VYnwXBqmJKdLwNi7yMHc1iR/LfkxC8cEG6sOAecfxbvwAg1gsPi/lsDA== X-Google-Smtp-Source: AGHT+IEBCjVCwzRlhQ5yGZdUyRhLI5wJLXlZzSHlXxP5GByBVUh3AdvfEeSHGA0EtYaytavcaHqdcQ== X-Received: by 2002:a17:903:40c1:b0:1f6:8235:dba7 with SMTP id d9443c01a7336-1f6a5a900a0mr14151585ad.69.1717547093361; Tue, 04 Jun 2024 17:24:53 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:51 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Thierry Reding , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 18/24] drm/panel: sharp-lq101r1sx01: Don't call disable at shutdown/remove Date: Tue, 4 Jun 2024 17:23:04 -0700 Message-ID: <20240604172305.v3.18.I6a87fce1ee027c96f71c7adf74248b865f50b336@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. A grep through mainline for compatible strings used by this driver indicates that it is used by Tegra boards. The Tegra driver appears to be correctly calling drm_atomic_helper_shutdown() so we can remove the calls. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Thierry Reding Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. .../gpu/drm/panel/panel-sharp-lq101r1sx01.c | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/= drm/panel/panel-sharp-lq101r1sx01.c index 8f6c21b99522..edc9425bb143 100644 --- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c +++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c @@ -357,32 +357,13 @@ static void sharp_panel_remove(struct mipi_dsi_device= *dsi) struct sharp_panel *sharp =3D mipi_dsi_get_drvdata(dsi); int err; =20 - /* only detach from host for the DSI-LINK2 interface */ - if (!sharp) { - mipi_dsi_detach(dsi); - return; - } - - err =3D drm_panel_disable(&sharp->base); - if (err < 0) - dev_err(&dsi->dev, "failed to disable panel: %d\n", err); - err =3D mipi_dsi_detach(dsi); if (err < 0) dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", err); =20 - sharp_panel_del(sharp); -} - -static void sharp_panel_shutdown(struct mipi_dsi_device *dsi) -{ - struct sharp_panel *sharp =3D mipi_dsi_get_drvdata(dsi); - - /* nothing to do for DSI-LINK2 */ + /* only detach from host for the DSI-LINK2 interface */ if (!sharp) - return; - - drm_panel_disable(&sharp->base); + sharp_panel_del(sharp); } =20 static struct mipi_dsi_driver sharp_panel_driver =3D { @@ -392,7 +373,6 @@ static struct mipi_dsi_driver sharp_panel_driver =3D { }, .probe =3D sharp_panel_probe, .remove =3D sharp_panel_remove, - .shutdown =3D sharp_panel_shutdown, }; module_mipi_dsi_driver(sharp_panel_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F2F2AB67A for ; Wed, 5 Jun 2024 00:24:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547098; cv=none; b=C73X/ev8lOKXkZEXK02eaiKZb6C3tQ/vANzD/XscAXWSHDnAQZ3/JL3/0ZWC4J4H7/1KME4tHJ79/JocGn5hLFPJE/dDShA0/xv8AgrBtSEaZ8kywGZ1BpL960T8uBDJW04Z0dWIGXFtKJn0xtx0zeeE7BWZT4KUPFQLWgHEeJQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547098; c=relaxed/simple; bh=h2Jz/w6quEVWEyDc6TfJnLPX5jBK0VklYYlDpNWdFz0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eBeslDPN0uKMEYbmDOAstMEQjvb2gJHod/b7Bo/4vR8z9hXEXEcAMHmELoIN/URwQx9+j9DlLVGLQoQnkFUbsdVkfR/47PmW4b2H/Ts0+Zt1cLZcw0qgfZVLS7rLzvkFQOetQZIdAw9rxq8Mxyaj8ZibIPN7vanhUQUvpP5OW+8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=b/MJQ75S; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="b/MJQ75S" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-1f6342c5faaso14000975ad.2 for ; Tue, 04 Jun 2024 17:24:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547096; x=1718151896; 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=S5c4MKTgrGl4hq+d6zD/HFZfQGneGwPo9D4JV91mhW4=; b=b/MJQ75S1ZKibzvqOUbgOHUOt8IfTmhqHg2hSn+EYok3g5msGokpLl3noA0Zc9Up9q XQdvT6GE8wchwEt824z1QX7NsTnmlc7MNesrlr7sYAl39PCspVlrZKpMjGo9sFMmP3Ui qhlGFteyZhkSru3qx7luGHNcltUo1p0kKgALk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547096; x=1718151896; 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=S5c4MKTgrGl4hq+d6zD/HFZfQGneGwPo9D4JV91mhW4=; b=ezyd6eOKoIqb03Pdciw/OBRwSPn5Mzg8KlzR37wPX4GV1LfzyGi6sCezq5DxiRDy+q YKi1k8V1TqEDR+cN1Nzt6edhax/oxmEUDs0BjjW+/2lx/GxKox82aEONOUjwKcs21Z9m q1wnJvsyEP1qvPmoEqrCR/+yqAvr9KntpHeLTkYZuViJVHsrJuQzoeURhHplit/YPXXX KS8VZnZvLxf2XiTx1lZ+lFX96YT5wBqUnzZH/LaKMmGzPMN3qko4JnQua8bpEQewAng1 qrW63W/4O/gfNZ952clPutSrz2Xomr7/4W+sEJZ3H/wT9dOiKrPsovEf+msB/1i+s8lM 794A== X-Forwarded-Encrypted: i=1; AJvYcCUqBf5sl/x9+SlL7/WwxACID49y7KqFo9pk0P1Ch4e/Wc9YpeOEmpHoI6itUTHAcBmOMyUHRM3kXOxIPo/Crv8pRnbgJNRh9/WT7e7D X-Gm-Message-State: AOJu0Yy+Mk/et/FstcEw0ruvUD9L5nlr5IoX2rSlNS2hF9Ot2i29WPCq KfRixLFLezczvz0h27UfYTH6973rnegwE+PfQZiGil17VuQl5fMeRNcOzTsrkg== X-Google-Smtp-Source: AGHT+IFBh/0CPO5W8OJJIzJ5oQC9KPttYAyT+WTPZMKapzK/LwmKYkDq0q16vzIBdd7d6vPSCvFMWw== X-Received: by 2002:a17:902:b18c:b0:1f4:867e:1486 with SMTP id d9443c01a7336-1f6a5a26f5amr10618805ad.40.1717547096147; Tue, 04 Jun 2024 17:24:56 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:55 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Werner Johansson , Dmitry Baryshkov , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 19/24] drm/panel: sharp-ls043t1le01: Stop tracking prepared Date: Tue, 4 Jun 2024 17:23:05 -0700 Message-ID: <20240604172305.v3.19.I56849dbe7c906f0cff076dc5286fd05c7e3e9c18@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. Cc: Werner Johansson Cc: Dmitry Baryshkov Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/= drm/panel/panel-sharp-ls043t1le01.c index 855e64444daa..c86337954ad7 100644 --- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c +++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c @@ -26,8 +26,6 @@ struct sharp_nt_panel { =20 struct regulator *supply; struct gpio_desc *reset_gpio; - - bool prepared; }; =20 static inline struct sharp_nt_panel *to_sharp_nt_panel(struct drm_panel *p= anel) @@ -99,9 +97,6 @@ static int sharp_nt_panel_unprepare(struct drm_panel *pan= el) struct sharp_nt_panel *sharp_nt =3D to_sharp_nt_panel(panel); int ret; =20 - if (!sharp_nt->prepared) - return 0; - ret =3D sharp_nt_panel_off(sharp_nt); if (ret < 0) { dev_err(panel->dev, "failed to set panel off: %d\n", ret); @@ -112,8 +107,6 @@ static int sharp_nt_panel_unprepare(struct drm_panel *p= anel) if (sharp_nt->reset_gpio) gpiod_set_value(sharp_nt->reset_gpio, 0); =20 - sharp_nt->prepared =3D false; - return 0; } =20 @@ -122,9 +115,6 @@ static int sharp_nt_panel_prepare(struct drm_panel *pan= el) struct sharp_nt_panel *sharp_nt =3D to_sharp_nt_panel(panel); int ret; =20 - if (sharp_nt->prepared) - return 0; - ret =3D regulator_enable(sharp_nt->supply); if (ret < 0) return ret; @@ -152,8 +142,6 @@ static int sharp_nt_panel_prepare(struct drm_panel *pan= el) goto poweroff; } =20 - sharp_nt->prepared =3D true; - return 0; =20 poweroff: --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B1AEE5FDA5 for ; Wed, 5 Jun 2024 00:24:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547100; cv=none; b=MpkejaCdOV4/gi2+83OQXgYicR1zSKimHtcF6xK5t2RhMgmqPXIeIYcLHK2mDZ/wL8ejhzdWsom+4RcpZpGuKFyi+zxqEPq/voP+3SsPdl/qAI8e0rfAQo6ZU+PYy/UO/PecNBEYuKrqKz5rsEeoCIVgDLRM5fzIh96ShN/QP9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547100; c=relaxed/simple; bh=FQKiizhZ8vcg7Ag7A25RUwqNF6hI3SccADd32dafVj4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C8BQZuKY3suvkHQPd7I3dDj1aOsmOVQn0te1XHu2ad8iTZcPX8ISh4q4cooYZYe9fGwc5rxNxfSsep1NiLMy93vZSH1Iy5P5e428LlYH8SwyX8BIZqj32FUWwEsEKOEYj7/rrbDaVZlCeqCNRrjMwN2titEjfMYQVV1ENWpGAUY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=QDKnoDBU; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="QDKnoDBU" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-1f61f775738so44200585ad.2 for ; Tue, 04 Jun 2024 17:24:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547098; x=1718151898; 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=HPVmtOP7OzClmuYgtUVqnYcO82gUWMj5hZYUvdlHA1M=; b=QDKnoDBU8NADr6hEiLxSZ8qkIMcv47tQmZ3HITQVgqH4MKenI25RwM+EUoVyN7PPVv Nt0J5qqCS4TweJLsdNk5/YnX1/oOvmRLsjnpesvD8JQyXUOCuDSjj59hgERcbm+A8kAD KEOht7KGdEBv/X4T9NPCqiYkyDLBPlD1c2Ekg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547098; x=1718151898; 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=HPVmtOP7OzClmuYgtUVqnYcO82gUWMj5hZYUvdlHA1M=; b=GsUNUuwAskjMn5q7YoRgLlReIV3fVVDWhVB/+YT5sdZQSsLHe8I1WmzcPWCd818jYY Ns74lQFgYi8iK+YePrG7Zzb5L/ZUKHUDo/Efc+/tI7Klt0p0zrp2dADjFchu+nMqBpqw IP6KqBVSGuwsONwBn16ihgYbwWJHRnZYm7O+4FO/PwLRC/MkThVpgs3/zki+IMZKJ6Y/ jpCPBuBipicffvz1OI2C/f9dO1EHwzECoxhaMdKHqmlHh6BDDR3EJqghU7DPqEjOZ6Ol O7N1mEgVEQlnlCLxw7aP4Ei5vgnLTIGgbhrqQUtV892++/BEOGbYU8LOcdTgZlSRRgey wYbQ== X-Forwarded-Encrypted: i=1; AJvYcCWUN32dAbQEYHZL8OCtmsBS2ItVoBFIg6rVj3Z/yGAH2Tr52Y3gNJ3crymYi+TAqvVhXIozuI96c+psMbcXn2jU6wivgwIy7lCEeBLK X-Gm-Message-State: AOJu0YyAgmzk7xN//sRlB6ObHFVRfIS5/6t1bJ2SZVtaMOK8hV/5sLxp ukcQHzBcDPVDPVM0VtRsz+pxZuilF9BDG9iL90ZtNpFiT0uSNKaZnSzFMzlF5g== X-Google-Smtp-Source: AGHT+IH67K070V0V8KqyhBHJzGDM8yQfGPIOd6KDxeebE42qN9cRh+u2DvVgSXDxiouyJBsaN27tUw== X-Received: by 2002:a17:902:d2ce:b0:1f6:6939:ad23 with SMTP id d9443c01a7336-1f6a5a1976emr12033745ad.37.1717547097993; Tue, 04 Jun 2024 17:24:57 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:57 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Werner Johansson , Dmitry Baryshkov , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 20/24] drm/panel: sharp-ls043t1le01: Don't call disable at shutdown/remove Date: Tue, 4 Jun 2024 17:23:06 -0700 Message-ID: <20240604172305.v3.20.I89ee53f7fc2f0806cab318128e5fa927990d830f@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. A grep through mainline for compatible strings used by this driver indicates that it is used by Qualcomm boards. The Qualcomm driver appears to be correctly calling drm_atomic_helper_shutdown() so we can remove the calls. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Werner Johansson Cc: Dmitry Baryshkov Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Only handle 1 panel per patch. - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/= drm/panel/panel-sharp-ls043t1le01.c index c86337954ad7..729cbb0d8403 100644 --- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c +++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c @@ -267,10 +267,6 @@ static void sharp_nt_panel_remove(struct mipi_dsi_devi= ce *dsi) struct sharp_nt_panel *sharp_nt =3D mipi_dsi_get_drvdata(dsi); int ret; =20 - ret =3D drm_panel_disable(&sharp_nt->base); - if (ret < 0) - dev_err(&dsi->dev, "failed to disable panel: %d\n", ret); - ret =3D mipi_dsi_detach(dsi); if (ret < 0) dev_err(&dsi->dev, "failed to detach from DSI host: %d\n", ret); @@ -278,13 +274,6 @@ static void sharp_nt_panel_remove(struct mipi_dsi_devi= ce *dsi) sharp_nt_panel_del(sharp_nt); } =20 -static void sharp_nt_panel_shutdown(struct mipi_dsi_device *dsi) -{ - struct sharp_nt_panel *sharp_nt =3D mipi_dsi_get_drvdata(dsi); - - drm_panel_disable(&sharp_nt->base); -} - static const struct of_device_id sharp_nt_of_match[] =3D { { .compatible =3D "sharp,ls043t1le01-qhd", }, { } @@ -298,7 +287,6 @@ static struct mipi_dsi_driver sharp_nt_panel_driver =3D= { }, .probe =3D sharp_nt_panel_probe, .remove =3D sharp_nt_panel_remove, - .shutdown =3D sharp_nt_panel_shutdown, }; module_mipi_dsi_driver(sharp_nt_panel_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5FC4360DEA for ; Wed, 5 Jun 2024 00:25:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547102; cv=none; b=TU05kaqoInlqUrh0IG6lmGQvvWxOC5/IibCXANMiZtqDFEGlekYzu67EOHIto8W2jAcheQTeeqCAHpV/SfKm6ijMelj6kEy7yjeKjwhTNPEQ/lwn39zTuIet6iC+PCDdfWsL/Ae63LHwN8bTs+lGGfN1SF6AMlEGmIjxKGsAC3s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547102; c=relaxed/simple; bh=dFCPdrxang2IE3UA8MelYZxgyedNpercmPCgOQLHYMU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DnLABqq1gK1aKdWAl7dNuK8EYnsk/oPzvw5oQ8MCsJ3gGz1q2nr2v4PyyXx8oBxAE6jG1JffT8FHdZPe7nmw8A/MJJBWtlOs34boaOIiGv2Tn9mjRNwFqtY5VfjPmsZYf5h93JHAuG070STxcWnBpTQ2bohNPttUbYVBc5JFT3w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=JttC+yGW; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="JttC+yGW" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1f62fae8c3cso46592105ad.3 for ; Tue, 04 Jun 2024 17:25:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547101; x=1718151901; 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=9KycAHbM1YaBsC19utL2dTXUooV8ldiwTH4nNPolNGA=; b=JttC+yGW/U9dTQmEfgZV0aThV2xyezhYTMKR/UcI+OEkI/JCpFAoW4IQVPwqGDJnR1 KV1SohoQE/NJIdO7n//xpigLy5VyHHNhg0OyyIQnFgs0RVrw/CXesn/ZGC6smHnwGhtl MHYnas/ff2Kdad0MQtr73f2u2sZJnuDkc8uUs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547101; x=1718151901; 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=9KycAHbM1YaBsC19utL2dTXUooV8ldiwTH4nNPolNGA=; b=DGI+xBRr+7j60w1DUOEHy0xURMGk6xZUEs+4BtKC/FQGx3NbismKCks7Eq0AbblRW3 uSxHOk/CwvHZScAe45BSkoOWPWqKC5YcCTHdBPQYmngTuwFZvxXQaX7XbfdTLYMWRXce J2/MxpwCPoMfy8cRi9yQ3dC0o0nHLnG+/E32UQnDJbkGelbFxVvlMUm5rIs7N3om8lFH 4FWDpWMp5cmFKy3F6tmo/v40QD3R11hzOvmNhodatxZF1YpCVpJv78xdvCwo+JSddwz4 Iz581U2LmX5ZOn0o084M07Zwc0uRo5owc1qds27MhIDd16pCew+13OhKlnQhFE1e1yId e5TQ== X-Forwarded-Encrypted: i=1; AJvYcCXjsUGUK42037Tme7ABv3l4xyM0kJo70Y+4iDqBBB9D3JhfnPK4wzXGxBok4ci2gYxS8U6qvubK1Xi4rTrNiaBX/bDnji6q0tTa5NMA X-Gm-Message-State: AOJu0Yxdhhcr1dMiGGLAEi9vVax3oIxKAPEJGkmZNKArlyVIcY9CxlFI 6EwM0JSvbjB3Ln/yb3vwvFBYWSbJRSJrP342nW/m2u991WOgatF3KD4aG76Q8A== X-Google-Smtp-Source: AGHT+IGS08PCmE1Z7uwVEhya3rKGJf5usM/7rzf00Dp5D3r9ukR+JKiJgZjVJN3F4E95srjcIWbunA== X-Received: by 2002:a17:902:ccd2:b0:1f6:6a94:76be with SMTP id d9443c01a7336-1f6a5a6be45mr14458485ad.46.1717547100710; Tue, 04 Jun 2024 17:25:00 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.24.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:24:59 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Robert Chiras , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 21/24] drm/panel: raydium-rm67191: Stop tracking enabled Date: Tue, 4 Jun 2024 17:23:07 -0700 Message-ID: <20240604172305.v3.21.I20f82e9dd1597a14ae37a64c6b8275add60fbdb1@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As talked about in commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled in drm_panel"), we want to remove needless code from panel drivers that was storing and double-checking the prepared/enabled state. Even if someone was relying on the double-check before, that double-check is now in the core and not needed in individual drivers. The conversion of the rm67191 panel driver follows many of the other panel drivers but has a few differences that need to be called out. Like in commit 1e0465eb16a4 ("drm/panel: otm8009a: Don't double check prepared/enabled"), this panel also uses the "prepared" flag to prevent the backlight functions from running when the panel is powered off. This is probably not the safest thing to do but the old behavior was preserved. See the discussion in the otm8009a patch. Because of this, I've left the driver tracking "prepared" but removed its tracking of "enabled". NOTE: as part of this, transition the panel's direct calls to its disable/unprepare functions in shutdown to call through DRM panel. Cc: Robert Chiras Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-raydium-rm67191.c | 21 ++----------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/dr= m/panel/panel-raydium-rm67191.c index dbb1ed4efbed..fa9bf89d3bb5 100644 --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c @@ -205,7 +205,6 @@ struct rad_panel { unsigned int num_supplies; =20 bool prepared; - bool enabled; }; =20 static const struct drm_display_mode default_mode =3D { @@ -267,9 +266,6 @@ static int rad_panel_prepare(struct drm_panel *panel) struct rad_panel *rad =3D to_rad_panel(panel); int ret; =20 - if (rad->prepared) - return 0; - ret =3D regulator_bulk_enable(rad->num_supplies, rad->supplies); if (ret) return ret; @@ -291,9 +287,6 @@ static int rad_panel_unprepare(struct drm_panel *panel) struct rad_panel *rad =3D to_rad_panel(panel); int ret; =20 - if (!rad->prepared) - return 0; - /* * Right after asserting the reset, we need to release it, so that the * touch driver can have an active connection with the touch controller @@ -322,9 +315,6 @@ static int rad_panel_enable(struct drm_panel *panel) int color_format =3D color_format_from_dsi_format(dsi->format); int ret; =20 - if (rad->enabled) - return 0; - dsi->mode_flags |=3D MIPI_DSI_MODE_LPM; =20 ret =3D rad_panel_push_cmd_list(dsi); @@ -389,8 +379,6 @@ static int rad_panel_enable(struct drm_panel *panel) =20 backlight_enable(rad->backlight); =20 - rad->enabled =3D true; - return 0; =20 fail: @@ -406,9 +394,6 @@ static int rad_panel_disable(struct drm_panel *panel) struct device *dev =3D &dsi->dev; int ret; =20 - if (!rad->enabled) - return 0; - dsi->mode_flags |=3D MIPI_DSI_MODE_LPM; =20 backlight_disable(rad->backlight); @@ -429,8 +414,6 @@ static int rad_panel_disable(struct drm_panel *panel) return ret; } =20 - rad->enabled =3D false; - return 0; } =20 @@ -633,8 +616,8 @@ static void rad_panel_shutdown(struct mipi_dsi_device *= dsi) { struct rad_panel *rad =3D mipi_dsi_get_drvdata(dsi); =20 - rad_panel_disable(&rad->panel); - rad_panel_unprepare(&rad->panel); + drm_panel_disable(&rad->panel); + drm_panel_unprepare(&rad->panel); } =20 static const struct of_device_id rad_of_match[] =3D { --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E875F6A340 for ; Wed, 5 Jun 2024 00:25:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547105; cv=none; b=CbqQsN4Gd9WY1L4hLB/aYlLMitPlyCm40hfnkv0CxU/7w4+UpdHyok9W4FeF/RXg+CuVly34v6T8/NQcFpO+KRRPFJUbUzxjkVbNJLdbVSbfSkbxz97NPASBSQufcuO9Ht+ag9uJmjaciTvy2WMhk4SStJK4b+TU50XSnsQrAeQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547105; c=relaxed/simple; bh=k8l7AEga1GtNZl4aI36tgvWb4+r7pet0wCh09mUWrH0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Q/M27yzTi8wXdY+v2DDWdcGNO2U2T/yUmZED8Le/aAJOZuUNm0nJG5OCw+Wj0fGZmehcscvL78OFnEa7df6ZvitjmgAh+D38TE43Z3wYH6vhpmKCknu7kTNZuvZSFEoz94A3OygOyZlErbCWrqHiCznEWahjvTn7DUAd7mQtlPs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=CRkcT26u; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="CRkcT26u" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1f61f775738so44201015ad.2 for ; Tue, 04 Jun 2024 17:25:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547103; x=1718151903; 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=WueavCuqsC++tgdW3b4kChJiO3Z5diw3u/WttA4fZGU=; b=CRkcT26ugTveGWAUaA0lhv0RQS/RRMK7d54mUSzpbbDs3ybD695XFkxiciJWQnu0A/ cZz6UBXltDZa2eSQouptNVQnKwWgG/h1WPOZDvk/FKWlj7QiNkRC10pQTStWpcfE7T+h AGfw8HtwpBsgp1E3zhVvQ41axEIReIzB1lGvs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547103; x=1718151903; 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=WueavCuqsC++tgdW3b4kChJiO3Z5diw3u/WttA4fZGU=; b=aMH/APcHTp8MuFA6j16dXMgiEKoRCTAVHjaJnBlVE536/mkVsJpOGTymKB0VQ6VGZk KUKbEWyZAa5USzkciSduNgazxZeHqdG+TGS52QEz6UR0WxRyAV568W1aPWi/Px0GPwg3 Aph/HBjucGdonF1ieieLEjAKmBlhvo16zGqUOgRgUPrqoMgF2XZtfIQBnT0iiihp1feY UFWN2tFewREFpteVZ7NTXUwdbiXLtH5wLxN76ZELGNqDzC4v/e8RuZsUsgWlRviAAhM0 sObuRFKbhd2JFo791OM+DX9uSGAqszE3x0l/CeCNR7ViR8iJCTX4j7N6mOTbO0GWtQLa WZZg== X-Forwarded-Encrypted: i=1; AJvYcCXVIv+9yeT29JO2NASPHCqtJZ+V89t9dgbuOxGUgJ7GDeEx7dDQX/RAxARHH3maxf9cfyUqjAeFlmNQj8Q5iCjf2/Tkjafx15NSr/Jw X-Gm-Message-State: AOJu0YxYHnU7SLf7R8RSSEKsAcU4HLRP6xMF4TPQvxiLmiHCncBmINOH +ObRC2MphXICuQvMkLiAZ1Dtx2NP6rE5NZCrz84zNmTLPbOT5o9tjmR5bxedNw== X-Google-Smtp-Source: AGHT+IHZV8rnTIG07xU0wk0unrHRbIjagmzYiGL/t8yAbJMj8hc5iEhhmcsmlBP97t06k9Tu/aYGNQ== X-Received: by 2002:a17:902:b7ca:b0:1f4:b702:f143 with SMTP id d9443c01a7336-1f6a5a094d5mr10864515ad.15.1717547103166; Tue, 04 Jun 2024 17:25:03 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.25.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:25:01 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Robert Chiras , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 22/24] drm/panel: raydium-rm67191: Don't call unprepare+disable at shutdown Date: Tue, 4 Jun 2024 17:23:08 -0700 Message-ID: <20240604172305.v3.22.Id14188f1a8af7d524751c27c343a5b583ff5361f@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" It's the responsibility of a correctly written DRM modeset driver to call drm_atomic_helper_shutdown() at shutdown time and that should be disabling / unpreparing the panel if needed. Panel drivers shouldn't be calling these functions themselves. A recent effort was made to fix as many DRM modeset drivers as possible [1] [2] [3] and most drivers are fixed now. A grep through mainline for compatible strings used by this driver indicates that it is used by IMX boards. The IMX driver appears to be correctly calling drm_atomic_helper_shutdown() so we can remove the calls. [1] https://lore.kernel.org/r/20230901234015.566018-1-dianders@chromium.org [2] https://lore.kernel.org/r/20230901234202.566951-1-dianders@chromium.org [3] https://lore.kernel.org/r/20230921192749.1542462-1-dianders@chromium.org Cc: Robert Chiras Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v2) Changes in v2: - Split removal of prepared/enabled from handling of remove/shutdown. drivers/gpu/drm/panel/panel-raydium-rm67191.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/dr= m/panel/panel-raydium-rm67191.c index fa9bf89d3bb5..b2029e035635 100644 --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c @@ -612,14 +612,6 @@ static void rad_panel_remove(struct mipi_dsi_device *d= si) drm_panel_remove(&rad->panel); } =20 -static void rad_panel_shutdown(struct mipi_dsi_device *dsi) -{ - struct rad_panel *rad =3D mipi_dsi_get_drvdata(dsi); - - drm_panel_disable(&rad->panel); - drm_panel_unprepare(&rad->panel); -} - static const struct of_device_id rad_of_match[] =3D { { .compatible =3D "raydium,rm67191", }, { /* sentinel */ } @@ -633,7 +625,6 @@ static struct mipi_dsi_driver rad_panel_driver =3D { }, .probe =3D rad_panel_probe, .remove =3D rad_panel_remove, - .shutdown =3D rad_panel_shutdown, }; module_mipi_dsi_driver(rad_panel_driver); =20 --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C045D73446 for ; Wed, 5 Jun 2024 00:25:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547107; cv=none; b=YamzOy3UYagg+z+Mru2c3VcqonuggNlZVmS6NqWndHx4I8kiKoKOJcThn2Ixx8vwSKKC8lrLEVghnQ+/qYN+OYfIh4C5uU+knRLVGPcJ4j7ynmDpL4dJvhaR83uWQAX73KsTz3L16tXYEPfsAajXCFnNofLSLRZhp5ErQ6jFbCM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547107; c=relaxed/simple; bh=UvReAyJuyfxw0/X0unkA1v/ZdN1GANsk3RihvlLT4xs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pTe37/ZZbT/rGxMpUmOr4zsMZRrJokHvZQqNMUM6LhQae0xipR4TmINo9cm8PeNFxCssw2qBcVSsUvaFAVl1ViImhmL4tZe+CYYrwv+yXE+symnmjugOBh3wUf31mF4x/IP6Z7ywuDT1ZWJ4lvSqtXabcc7lbF/Cmv04qWKHGOE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=OXTvFuYk; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="OXTvFuYk" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-1f44b42d1caso47922435ad.0 for ; Tue, 04 Jun 2024 17:25:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547105; x=1718151905; 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=vlZTq3P9ASgfMnpyKeb65Qgki+yiSpyIBUooUCR0W14=; b=OXTvFuYkuaEqXzsocKQVdjrwFloFQiCrfZ/paAVhYM7ixn9bGsUvnYE7EKjpJkLgzp qM9LG6gYmuXxTMxc2lBAN3Rc8qriRjiadMuAdXPj307/Ut8y6+tu7dzfcdmWDgFi+uqE myuhl+7cDEeB2psVgLml8+AvBWXHIdUPJ3NxU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547105; x=1718151905; 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=vlZTq3P9ASgfMnpyKeb65Qgki+yiSpyIBUooUCR0W14=; b=cq+PRFY0OXN5bnO2eOFljYZ5rs5uY7J2Ak8WN8yzqch8sb/QFC1u+UB+Njt3WfCZgO 8SYvSz0607zU1dJTSO9txiRodlL4IJ9aGInHBdDUwliiJlRrwr7ZQHqzsLNoVCcFgM3D mJL2VVEZOaUJtIm9nI0AmyQuVm8qC+6x+RbsJ/R/N8pkRBz5p/Bic1gBSomwMfuivR9l artNl/HBOw4qxt/Pu4jdhMKihFacttgVGgjZAYUyMhZZYNDlM93oFVCnMaJcoft8EF5j me1ZDr+UaQ+FgLuX8L40a63c5Y8nkJJxWwpIZfsKmXLwddlb9sa5sTmwYK4iXTPOIt5W 8AbA== X-Forwarded-Encrypted: i=1; AJvYcCU/s47tpP2FR/taIXV3QNXvMLGOIbcDn96rve+SdDpYIaTgtresC/l26tNoYgmJynBmtoDePlXJWZj/Q5PNOTghm3QSvxFjZ5rRlxFO X-Gm-Message-State: AOJu0YxWFRM2//WGOtMUBdmJecbjOq+fL3rkUF9fG1MFS34BjdMMfB9h YdnxBFmNJiTLi4VowYA3FaZQDh/5e3eiImkFH/G1xCQGzYH+gy1Y97b4YMBztw== X-Google-Smtp-Source: AGHT+IHCl9HTHlC9W7JWoyZsGp761gmkTX3Uui28lis3mNrYBsiyHkfuCERpgY42hnsZKMYFoOJAWQ== X-Received: by 2002:a17:902:ecc3:b0:1f4:8e97:de25 with SMTP id d9443c01a7336-1f6a5a6aba7mr12326755ad.44.1717547104998; Tue, 04 Jun 2024 17:25:04 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.25.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:25:04 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Daniel Vetter , David Airlie , Jonathan Corbet , Maarten Lankhorst , Thomas Zimmermann , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 23/24] drm/panel: Update TODO list item for cleaning up prepared/enabled tracking Date: Tue, 4 Jun 2024 17:23:09 -0700 Message-ID: <20240604172305.v3.23.I104cdece7324b0c365e552a17f9883414ffaea01@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Now that most panels have been updated not to track/double-check their prepared/enabled state update the TODO with next steps. Acked-by: Linus Walleij Acked-by: Maxime Ripard Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- (no changes since v1) Documentation/gpu/todo.rst | 47 +++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst index 2734b8a34541..2ea6ffc9b22b 100644 --- a/Documentation/gpu/todo.rst +++ b/Documentation/gpu/todo.rst @@ -469,30 +469,35 @@ Contact: Thomas Zimmermann =20 Level: Starter =20 -Clean up checks for already prepared/enabled in panels ------------------------------------------------------- - -In a whole pile of panel drivers, we have code to make the -prepare/unprepare/enable/disable callbacks behave as no-ops if they've alr= eady -been called. To get some idea of the duplicated code, try:: - - git grep 'if.*>prepared' -- drivers/gpu/drm/panel - git grep 'if.*>enabled' -- drivers/gpu/drm/panel - -In the patch ("drm/panel: Check for already prepared/enabled in drm_panel") -we've moved this check to the core. Now we can most definitely remove the -check from the individual panels and save a pile of code. - -In adition to removing the check from the individual panels, it is believed -that even the core shouldn't need this check and that should be considered -an error if other code ever relies on this check. The check in the core -currently prints a warning whenever something is relying on this check with -dev_warn(). After a little while, we likely want to promote this to a -WARN(1) to help encourage folks not to rely on this behavior. +Remove disable/unprepare in remove/shutdown in panel-simple and panel-edp +------------------------------------------------------------------------- + +As of commit d2aacaf07395 ("drm/panel: Check for already prepared/enabled = in +drm_panel"), we have a check in the drm_panel core to make sure nobody +double-calls prepare/enable/disable/unprepare. Eventually that should prob= ably +be turned into a WARN_ON() or somehow made louder, but right now we actual= ly +expect it to trigger and so we don't want it to be too loud. + +Specifically, that warning will trigger for panel-edp and panel-simple at +shutdown time because those panels hardcode a call to drm_panel_disable() +and drm_panel_unprepare() at shutdown and remove time that they call regar= dless +of panel state. On systems with a properly coded DRM modeset driver that +calls drm_atomic_helper_shutdown() this is pretty much guaranteed to cause +the warning to fire. + +Unfortunately we can't safely remove the calls in panel-edp and panel-simp= le +until we're sure that all DRM modeset drivers that are used with those pan= els +properly call drm_atomic_helper_shutdown(). This TODO item is to validate +that all DRM modeset drivers used with panel-edp and panel-simple properly +call drm_atomic_helper_shutdown() and then remove the calls to +disable/unprepare from those panels. Alternatively, this TODO item could be +removed by convincing stakeholders that those calls are fine and downgradi= ng +the error message in drm_panel_disable() / drm_panel_unprepare() to a +debug-level message. =20 Contact: Douglas Anderson =20 -Level: Starter/Intermediate +Level: Intermediate =20 Transition away from using mipi_dsi_*_write_seq() ------------------------------------------------- --=20 2.45.1.288.g0e0cd299f1-goog From nobody Thu Sep 19 19:24:44 2024 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D741AC13C for ; Wed, 5 Jun 2024 00:25:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547109; cv=none; b=OI/cJwk1Mg0IJyl/SxkD0oC/peKOHltPZFtrFOSkgZWYZZ4H4igwcRlkbVLrgDbTALi/ZgqKbEjGrimmvxmIUy81t9X7u0tSe0G3AihsZoDSIbgVlEhvNjlqG2TAqahm0qqvUOKQOMR49z1Ywq0fDnKpN/r6N+gXRLaPaYpVR9s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717547109; c=relaxed/simple; bh=/RMBzSZtj61wt4OWeJ0Nc4xLkwjLvsJRfWAp6SPUGa0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MDtBbNUxDLL+DczdPOesOYUzHWqFPztN+5lYKq9F3sVf9B0Sns4lQjblI6Jhf9wzjY0eWpDip2nru9qhysy5enVSxuBBClFj9GyXwl8y3SbrT/VoAN/m7mFfeVrbEg4n0PmTRXPFjN+kjaw6nvzX7cO2qa/HfsaW7KAf2N28n0I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=oY5z7SDt; arc=none smtp.client-ip=209.85.214.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="oY5z7SDt" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-1f68834bfdfso13729455ad.3 for ; Tue, 04 Jun 2024 17:25:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1717547107; x=1718151907; 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=IZBRQsttCKCLjpTeZrNK42mMoCUa7cypBMp/KQbfaQA=; b=oY5z7SDtMPIyLJteJm28RDddrYtvJG4Mowx+RLVzNKWYOyhuRLXNx1qjCthKBOXICt TKuyyIq8LC4/lLPap4ErGEakEsdtkldLs5a1CqJtIWwoLms0iQNDiVDvuNqKJLqHcVZ2 dr2oiZBAcmsPGRVedE+fcPBDX5+T3d0cHY3Qc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717547107; x=1718151907; 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=IZBRQsttCKCLjpTeZrNK42mMoCUa7cypBMp/KQbfaQA=; b=dV59NRX1MyDBenq1kphVL3akWgc7TO0zdHzzShvFigxn9k3qgnMgQ0BoXug+q1mz4w Jkfa5Pf8PC8APkpzAHeJl2H6xZN/hzZ9q9ecijUWH7IPhttAswhPf4XQG5ABVJifiUY1 EeSTErMVhhhzPLwX6fB3XM3sw9SfR3/VmxG3nGMRETPuNL8LTFONI3qqZbHnh6GNNM+G wNIJAE+sbBgSUt4A4cvvxdq9OVzhlNUZXbzBUKXF4ISUVkwcDdIOt1kaQB6G/Slth7Rz mMi6cHqaYrAP+UEqGmI2YAkcVbLu63KlhIsz17W1bK0lbllKFAhl4a4NHl1lYxb13j6d BkMA== X-Forwarded-Encrypted: i=1; AJvYcCVsp2NzXIlSNfztcLPDtZF2Ec2y1+kng1UEfZBhVouY1Y+WAX7pv/p9WUNxMqNQa3T5/zyU292b8RCNIogN/w3asSs8J9cY73PkStHM X-Gm-Message-State: AOJu0Yyf8lbwf99k/2vmNlhHcqXaXasxOSrWclAjck/+EJG7dQIDUXmF nwh8AvUf3yf8kjDl3ABAl7OEuJbRu+Qxv/szkqRB3PlmlRwEl/HOUbaDQDaYHA== X-Google-Smtp-Source: AGHT+IGPT5jqK1So8Ncp9au55d6X+JvBkBHZauHagFfd+Gxgs+myCs/mgqsDK8GTDiHTLn6pbzRcqQ== X-Received: by 2002:a17:902:ce12:b0:1f6:a85c:9c97 with SMTP id d9443c01a7336-1f6a85c9f4dmr2854865ad.17.1717547107179; Tue, 04 Jun 2024 17:25:07 -0700 (PDT) Received: from dianders.sjc.corp.google.com ([2620:15c:9d:2:3609:ff79:4625:8a71]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f6323dd862sm89032025ad.147.2024.06.04.17.25.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 17:25:06 -0700 (PDT) From: Douglas Anderson To: dri-devel@lists.freedesktop.org, Maxime Ripard Cc: Linus Walleij , Chris Morgan , Neil Armstrong , Yuran Pereira , Douglas Anderson , Daniel Vetter , David Airlie , Jessica Zhang , Maarten Lankhorst , Thomas Zimmermann , linux-kernel@vger.kernel.org Subject: [PATCH v3 24/24] drm/panel: Avoid warnings w/ panel-simple/panel-edp at shutdown Date: Tue, 4 Jun 2024 17:23:10 -0700 Message-ID: <20240604172305.v3.24.Ieb287c2c3ee3f6d3b0d5f49b29f746b93621749c@changeid> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog In-Reply-To: <20240605002401.2848541-1-dianders@chromium.org> References: <20240605002401.2848541-1-dianders@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" At shutdown if you've got a _properly_ coded DRM modeset driver then you'll get these two warnings at shutdown time: Skipping disable of already disabled panel Skipping unprepare of already unprepared panel These warnings are ugly and sound concerning, but they're actually a sign of a properly working system. That's not great. It's not easy to get rid of these warnings. Until we know that all DRM modeset drivers used with panel-simple and panel-edp are properly calling drm_atomic_helper_shutdown() or drm_helper_force_disable_all() then the panel drivers _need_ to disable/unprepare themselves in order to power off the panel cleanly. However, there are lots of DRM modeset drivers used with panel-edp and panel-simple and it's hard to know when we've got them all. Since the warning happens only on the drivers that _are_ updated there's nothing to encourage broken DRM modeset drivers to get fixed. In order to flip the warning to the proper place, we need to know which modeset drivers are going to shutdown properly. Though ugly, do this by creating a list of everyone that shuts down properly. This allows us to generate a warning for the correct case and also lets us get rid of the warning for drivers that are shutting down properly. Maintaining this list is ugly, but the idea is that it's only short term. Once everyone is converted we can delete the list and call it done. The list is ugly enough and adding to it is annoying enough that people should push to make this happen. Implement this all in a shared "header" file included by the two panel drivers that need it. This avoids us adding an new exports while still allowing the panel drivers to be modules. The code waste should be small and, as per above, the whole solution is temporary. Signed-off-by: Douglas Anderson Reviewed-by: Neil Armstrong --- I came up with this idea to help us move forward since otherwise I couldn't see how we were ever going to fix panel-simple and panel-edp since they're used by so many DRM Modeset drivers. It's a bit ugly but I don't hate it. What do others think? This is at the end of the series so even if folks hate it we could still land the rest of the series. Changes in v3: - New drivers/gpu/drm/drm_panel.c | 12 ++ .../gpu/drm/panel/panel-drm-shutdown-check.h | 151 ++++++++++++++++++ drivers/gpu/drm/panel/panel-edp.c | 19 +-- drivers/gpu/drm/panel/panel-simple.c | 19 +-- 4 files changed, 169 insertions(+), 32 deletions(-) create mode 100644 drivers/gpu/drm/panel/panel-drm-shutdown-check.h diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index cfbe020de54e..df3f15f4625e 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -161,6 +161,12 @@ int drm_panel_unprepare(struct drm_panel *panel) if (!panel) return -EINVAL; =20 + /* + * If you're seeing this warning, you either need to add your driver + * to "drm_drivers_that_shutdown" (if you're seeing it with panel-edp + * or panel-simple) or you need to remove the manual call to + * drm_panel_unprepare() in your panel driver. + */ if (!panel->prepared) { dev_warn(panel->dev, "Skipping unprepare of already unprepared panel\n"); return 0; @@ -245,6 +251,12 @@ int drm_panel_disable(struct drm_panel *panel) if (!panel) return -EINVAL; =20 + /* + * If you're seeing this warning, you either need to add your driver + * to "drm_drivers_that_shutdown" (if you're seeing it with panel-edp + * or panel-simple) or you need to remove the manual call to + * drm_panel_disable() in your panel driver. + */ if (!panel->enabled) { dev_warn(panel->dev, "Skipping disable of already disabled panel\n"); return 0; diff --git a/drivers/gpu/drm/panel/panel-drm-shutdown-check.h b/drivers/gpu= /drm/panel/panel-drm-shutdown-check.h new file mode 100644 index 000000000000..b5164490d6e7 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-drm-shutdown-check.h @@ -0,0 +1,151 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright 2024 Google Inc. + * + * This header is a temporary solution and is intended to be included + * directly by panel-edp.c and panel-simple.c. + * + * This header is needed because panel-edp and panel-simple are used by a + * wide variety of DRM drivers and it's hard to know for sure if all of the + * DRM drivers used by those panel drivers are properly calling + * drm_atomic_helper_shutdown() or drm_helper_force_disable_all() at + * shutdown/remove time. + * + * The plan for this header file: + * - Land it and hope that the warning print will encourage DRM drivers to + * get fixed. + * - Eventually move to a WARN() splat for extra encouragement. + * - Assume that everyone has been fixed and remove this header file. + */ + +#ifndef __PANEL_DRM_SHUTDOWN_CHECK_H__ +#define __PANEL_DRM_SHUTDOWN_CHECK_H__ + +#include +#include + +/* + * This is a list of all DRM drivers that appear to properly call + * drm_atomic_helper_shutdown() or drm_helper_force_disable_all() at + * shutdown and remove time. + * + * We can't detect this dynamically and are stuck with a list because the = panel + * driver's shutdown() call might be called _before_ the DRM driver's + * shutdown() call. + * + * NOTE: no verification has been done to confirm that the below drivers + * are actually _used_ with panel-simple or panel-edp, only that these dri= vers + * appear to be shutting down properly. It doesn't hurt to have extra driv= ers + * listed here as long as the list doesn't contain any drivers that are + * missing the shutdown calls. + */ +static const char * const drm_drivers_that_shutdown[] =3D { + "armada-drm", + "aspeed-gfx-drm", + "ast", + "atmel-hlcdc", + "bochs-drm", + "cirrus", + "exynos", + "fsl-dcu-drm", + "gm12u320", + "gud", + "hdlcd", + "hibmc", + "hx8357d", + "hyperv_drm", + "ili9163", + "ili9225", + "ili9341", + "ili9486", + "imx-dcss", + "imx-drm", + "imx-lcdc", + "imx-lcdif", + "ingenic-drm", + "kirin", + "komeda", + "logicvc-drm", + "loongson", + "mali-dp", + "mcde", + "meson", + "mgag200", + "mi0283qt", + "msm", + "mxsfb-drm", + "omapdrm", + "panel-mipi-dbi", + "pl111", + "qxl", + "rcar-du", + "repaper", + "rockchip", + "rzg2l-du", + "ssd130x", + "st7586", + "st7735r", + "sti", + "stm", + "sun4i-drm", + "tidss", + "tilcdc", + "tve200", + "vboxvideo", + "zynqmp-dpsub", + "" +}; + +static void panel_shutdown_if_drm_driver_needs_fixing(struct drm_panel *pa= nel) +{ + struct drm_bridge *bridge; + const struct drm_driver *driver; + const char * const *driver_name; + + /* + * Look for a bridge that shares the DT node of this panel. That only + * works if we've been linked up with a panel_bridge. + */ + bridge =3D of_drm_find_bridge(panel->dev->of_node); + if (bridge && bridge->dev && bridge->dev->driver) { + /* + * If the DRM driver for the bridge is known to be fine then + * we're done. + */ + driver =3D bridge->dev->driver; + for (driver_name =3D drm_drivers_that_shutdown; *driver_name; driver_nam= e++) { + if (strcmp(*driver_name, driver->name) =3D=3D 0) + return; + } + + /* + * If you see the message below then: + * 1. Make sure your DRM driver is properly calling + * drm_atomic_helper_shutdown() or drm_helper_force_disable_all() + * at shutdown time. + * 2. Add your driver to the list. + */ + dev_warn(panel->dev, + "DRM driver appears buggy; manually disable/unprepare\n"); + } else { + /* + * If you see the message below then your setup needs to + * be moved to using a panel_bridge. This often happens + * by calling devm_drm_of_get_bridge(). Having a panel without + * an associated panel_bridge is deprecated. + */ + dev_warn(panel->dev, + "Can't't find DRM driver; manually disable/unprepare\n"); + } + + /* + * If we don't know if a DRM driver is properly shutting things down + * then we'll manually call the disable/unprepare. This is always a + * safe thing to do (in that it won't cause you to crash), but it + * does generate a warning. + */ + drm_panel_disable(panel); + drm_panel_unprepare(panel); +} + +#endif diff --git a/drivers/gpu/drm/panel/panel-edp.c b/drivers/gpu/drm/panel/pane= l-edp.c index 67ab6915d6e4..26f89858df9d 100644 --- a/drivers/gpu/drm/panel/panel-edp.c +++ b/drivers/gpu/drm/panel/panel-edp.c @@ -42,6 +42,8 @@ #include #include =20 +#include "panel-drm-shutdown-check.h" + /** * struct panel_delay - Describes delays for a simple panel. */ @@ -948,22 +950,7 @@ static void panel_edp_shutdown(struct device *dev) { struct panel_edp *panel =3D dev_get_drvdata(dev); =20 - /* - * NOTE: the following two calls don't really belong here. It is the - * responsibility of a correctly written DRM modeset driver to call - * drm_atomic_helper_shutdown() at shutdown time and that should - * cause the panel to be disabled / unprepared if needed. For now, - * however, we'll keep these calls due to the sheer number of - * different DRM modeset drivers used with panel-edp. The fact that - * we're calling these and _also_ the drm_atomic_helper_shutdown() - * will try to disable/unprepare means that we can get a warning about - * trying to disable/unprepare an already disabled/unprepared panel, - * but that's something we'll have to live with until we've confirmed - * that all DRM modeset drivers are properly calling - * drm_atomic_helper_shutdown(). - */ - drm_panel_disable(&panel->base); - drm_panel_unprepare(&panel->base); + panel_shutdown_if_drm_driver_needs_fixing(&panel->base); } =20 static void panel_edp_remove(struct device *dev) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/p= anel-simple.c index 9b9e078ec8aa..36b29c473609 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -42,6 +42,8 @@ #include #include =20 +#include "panel-drm-shutdown-check.h" + /** * struct panel_desc - Describes a simple panel. */ @@ -720,22 +722,7 @@ static void panel_simple_shutdown(struct device *dev) { struct panel_simple *panel =3D dev_get_drvdata(dev); =20 - /* - * NOTE: the following two calls don't really belong here. It is the - * responsibility of a correctly written DRM modeset driver to call - * drm_atomic_helper_shutdown() at shutdown time and that should - * cause the panel to be disabled / unprepared if needed. For now, - * however, we'll keep these calls due to the sheer number of - * different DRM modeset drivers used with panel-simple. The fact that - * we're calling these and _also_ the drm_atomic_helper_shutdown() - * will try to disable/unprepare means that we can get a warning about - * trying to disable/unprepare an already disabled/unprepared panel, - * but that's something we'll have to live with until we've confirmed - * that all DRM modeset drivers are properly calling - * drm_atomic_helper_shutdown(). - */ - drm_panel_disable(&panel->base); - drm_panel_unprepare(&panel->base); + panel_shutdown_if_drm_driver_needs_fixing(&panel->base); } =20 static void panel_simple_remove(struct device *dev) --=20 2.45.1.288.g0e0cd299f1-goog