Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp4572004pxv; Tue, 20 Jul 2021 06:54:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx8HEbpfic8vt8v8RNdP0C9gj2zUf+rkAT6OMepvteodMs32FvtDrzz1uDxlq53aFk38Gy1 X-Received: by 2002:a05:6638:13ca:: with SMTP id i10mr22838837jaj.90.1626789278075; Tue, 20 Jul 2021 06:54:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626789278; cv=none; d=google.com; s=arc-20160816; b=tRMRkeRpVCwbisjrmOg4iBwQXatd9CuXAfDTgt1mPQZ3dYJS3ix+DWgOUjXp7ydEX+ dTdQyTdxcMpzQZ1zD78SM5LDyBdtr7echG6DlW+jM9zxLsZN7vdN6HfgG2zwQlUqvNQn qS3Yc3qsa2OU+frLADgmc4t0UPxYVHERsopKtP6Wm3M/R0m6s864/7E7LYAIQsfM9TFR 5CzN0Q1VA9gjU55zTB89/S7OXSIzCSGfMWGucV8TYJ/mcRZ+WxqScMswPgFKr1oe2WuG Kknld/vZRzx+mLbc6wAdieJtS1uDOlhbNkGw9lPNTeyP+tn4XSdO8R35bqQFGa4GAZv4 pEBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=8yAEGsFt+FTE6Oglj0fT1zDjBqe/OTSnpQ+lXQWNmQI=; b=AR3zZWLiFY8Ejj317cKAXq6GhCA2GMEnKxujm5BbrE6FA96qPe6RuOd1rpO3T6Mirq zxQJ1HYCdayaYpxjQvsP6+Vi7mCCZKuwiGfwp79pK95/YbsOUScVV26f8oJ90Pb/DZTt bF/ItPBp6vLXsTejUdRNWD/UaCJdoiPTgFkHO/CSV0TIk3uJWoLHpMDdGPlZBwN3oW2i RKXjIHLGzRP+mrilAYyY2UZ9EvqFsbZrC15dPLi32Xf2eHc2Iw3zJMEw26Ri0pGk/fFm /tnitLwoM/qsN7hTJy1biwhW2uwz7JhjncTTpR6/kWfum8lWgXsIqIgKxpUDtodFysRO UU5w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm3 header.b=RxhxK2sJ; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=HBkKpOXd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t17si24880205jal.112.2021.07.20.06.54.27; Tue, 20 Jul 2021 06:54:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@cerno.tech header.s=fm3 header.b=RxhxK2sJ; dkim=pass header.i=@messagingengine.com header.s=fm3 header.b=HBkKpOXd; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cerno.tech Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238360AbhGTNM7 (ORCPT + 99 others); Tue, 20 Jul 2021 09:12:59 -0400 Received: from wnew3-smtp.messagingengine.com ([64.147.123.17]:43309 "EHLO wnew3-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238431AbhGTNFP (ORCPT ); Tue, 20 Jul 2021 09:05:15 -0400 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailnew.west.internal (Postfix) with ESMTP id 941872B01187; Tue, 20 Jul 2021 09:45:52 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Tue, 20 Jul 2021 09:45:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cerno.tech; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm3; bh=8yAEGsFt+FTE6 Oglj0fT1zDjBqe/OTSnpQ+lXQWNmQI=; b=RxhxK2sJ9lnaAnyxBhS5odAYTWl6K RK4JFMbjDVeiLlX6B1apYmEoB2LJS1YmMxAvnh48ksfLvBmE/mH4zDr8gfx2XU6/ lKUiMk3lKHt/VgAa2OW5g0MfaGzWPobbwr7/bYdr34ZMeQmHJRw6PdBowyE5gxhC 14WrQMNAubyjsxdnIkpfyZmKvmaxASVXGkL9SLHJaPMSdpQJuZin6W4bO4EjuTdz nmp+BK2GHACwoNHCMrr0byBiXWK9OsLO0ggmSkthSyRJI5srZ0Snc1SCaHOXSHcP xsJOu5zoxLhktZspOejNrM39aQxJGsM+0M6wNq8yQFJv9ajDFvyZhSvLw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=8yAEGsFt+FTE6Oglj0fT1zDjBqe/OTSnpQ+lXQWNmQI=; b=HBkKpOXd po1yKVaQrn7c1QFp2kX8A71zvW3Id8RF2c2nfbCZ4PNXNQYv8YWK7ZtyU0DUKTzD 1XMuc0T0nLbejPpreoW4ZMkSeUNK2+i+/tcfI45zQj9iynujyasaAws5Iz7Y2Dy0 zlXP+aTtnX1uoaORIUcUmhkd49dIfoxmbROo6KZbJNKMt3VRMKhzuB6xveEz0zwV TkHZx4qs8XTtNdFHH3MTnoLSp8Z81RoEvGFICJuO2Vf08pH8PIeBIKwx1f47c8H8 57Wmv0PS6/6XWyqhOQAWAbmy8L4wvG0JKJy5svUFfoJiJYlvBA/NSLDmNQriXBYn Ol+NumLtA9dCrg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddrfedvgdeikecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefhvffufffkofgjfhgggfestdekredtredttdenucfhrhhomhepofgrgihimhgv ucftihhprghrugcuoehmrgigihhmvgestggvrhhnohdrthgvtghhqeenucggtffrrghtth gvrhhnpedvkeelveefffekjefhffeuleetleefudeifeehuddugffghffhffehveevheeh vdenucevlhhushhtvghrufhiiigvpeefnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmrg igihhmvgestggvrhhnohdrthgvtghh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 20 Jul 2021 09:45:51 -0400 (EDT) From: Maxime Ripard To: Robert Foss , Andrzej Hajda , Daniel Vetter , David Airlie , Sam Ravnborg , Maarten Lankhorst , Thomas Zimmermann , Maxime Ripard , Neil Armstrong , Jonas Karlman , Jernej Skrabec , Thierry Reding , Laurent Pinchart Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH 05/10] drm/panel: Create attach and detach callbacks Date: Tue, 20 Jul 2021 15:45:20 +0200 Message-Id: <20210720134525.563936-6-maxime@cerno.tech> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210720134525.563936-1-maxime@cerno.tech> References: <20210720134525.563936-1-maxime@cerno.tech> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In order to make the probe order expectation more consistent between bridges, let's create attach and detach hooks for the panels as well to match what is there for bridges. Signed-off-by: Maxime Ripard --- drivers/gpu/drm/drm_panel.c | 20 ++++++++++++++++++++ include/drm/drm_panel.h | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/drivers/gpu/drm/drm_panel.c b/drivers/gpu/drm/drm_panel.c index f634371c717a..23bca798a2f3 100644 --- a/drivers/gpu/drm/drm_panel.c +++ b/drivers/gpu/drm/drm_panel.c @@ -223,6 +223,26 @@ int drm_panel_get_modes(struct drm_panel *panel, } EXPORT_SYMBOL(drm_panel_get_modes); +int drm_panel_attach(struct drm_panel *panel) +{ + if (!panel) + return -EINVAL; + + if (panel->funcs && panel->funcs->attach) + return panel->funcs->attach(panel); + + return -EOPNOTSUPP; +} + +void drm_panel_detach(struct drm_panel *panel) +{ + if (!panel) + return; + + if (panel->funcs && panel->funcs->detach) + panel->funcs->detach(panel); +} + #ifdef CONFIG_OF /** * of_drm_find_panel - look up a panel using a device tree node diff --git a/include/drm/drm_panel.h b/include/drm/drm_panel.h index 4602f833eb51..b9201d520754 100644 --- a/include/drm/drm_panel.h +++ b/include/drm/drm_panel.h @@ -68,6 +68,9 @@ enum drm_panel_orientation; * does not need to implement the functionality to enable/disable backlight. */ struct drm_panel_funcs { + int (*attach)(struct drm_panel *panel); + void (*detach)(struct drm_panel *panel); + /** * @prepare: * @@ -180,6 +183,9 @@ void drm_panel_init(struct drm_panel *panel, struct device *dev, void drm_panel_add(struct drm_panel *panel); void drm_panel_remove(struct drm_panel *panel); +int drm_panel_attach(struct drm_panel *panel); +void drm_panel_detach(struct drm_panel *panel); + int drm_panel_prepare(struct drm_panel *panel); int drm_panel_unprepare(struct drm_panel *panel); -- 2.31.1