From patchwork Mon Jan 15 17:16:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Escande X-Patchwork-Id: 10164951 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 1511760325 for ; Mon, 15 Jan 2018 17:18:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ECF2E20415 for ; Mon, 15 Jan 2018 17:18:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E189E204C3; Mon, 15 Jan 2018 17:18:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8240420415 for ; Mon, 15 Jan 2018 17:18:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Wpl6ne7UEXgMOD5xL3pPVAu32Cj+ipaLiJM1zdLVsBA=; b=ptCBrXNxTBMCMl 89ktj03rhSxMPx6dJGw+rWsSMxhfP0tK6VeVqLE/h8eFwd4mVGkUNei1Fj2Feo+LQDT2MKMD8UAMp GzdD0EsaCuh/ieou+W7irK7OuYslR98AClN9FCa52uSKE91AMh4om9Ktd8l1qZpO7LughHVgQ6qFQ 1uU2KlNVzUCWxCZcI6iAeW75GQNt3QAv4yY8KQUE+Exs7Cs8Lk26YxgBPlOIn+kjgTwf9vhKOuzbO yv3Hreq01z05FpY6/8o3A7C2fsFAd6F3fwAHc2cEXsPS8iD+a/DH5xJb8Eyrvre9N+1RsyMGeZc6k 59mkmv/Y3MjoN3xSJR1w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1eb8Oc-0007tC-Qm; Mon, 15 Jan 2018 17:18:06 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1eb8O7-00079l-Fb for linux-rockchip@lists.infradead.org; Mon, 15 Jan 2018 17:17:46 +0000 Received: from localhost.localdomain (unknown [IPv6:2a01:e35:8a7e:4790:5118:57f7:752d:6fb0]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: tescande) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 3D6B3270B87; Mon, 15 Jan 2018 17:17:14 +0000 (GMT) From: Thierry Escande To: Archit Taneja , Inki Dae , Thierry Reding , Sandy Huang , Sean Paul , David Airlie Subject: [PATCH 31/40] drm/bridge: analogix_dp: Allow master driver to cleanup in unbind Date: Mon, 15 Jan 2018 18:16:05 +0100 Message-Id: <20180115171614.14474-32-thierry.escande@collabora.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180115171614.14474-1-thierry.escande@collabora.com> References: <20180115171614.14474-1-thierry.escande@collabora.com> MIME-Version: 1.0 Content-Transfert-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180115_091735_928610_826DB76C X-CRM114-Status: GOOD ( 11.05 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: zain wang , Lin Huang , linux-kernel@vger.kernel.org, Douglas Anderson , dri-devel@lists.freedesktop.org, Tomasz Figa , linux-rockchip@lists.infradead.org, Yakir Yang , =?UTF-8?q?=C3=98rjan=20Eide?= , Mark Yao , Haixia Shi Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+patchwork-linux-rockchip=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP From: Tomasz Figa Since we take the ownership of drvdata, the master driver does not have any means of accessing its own data from unbind callback and all it can do is calling the analogix unbind callback. However it might be necessary to do some clean up in the master driver before we really unbind the analogix part (such as PSR unregister in Rockchip case), so this patch provides a plat_data->cleanup() callback which is called at the beginning of analogix_dp_unbind(). Cc: Kristian H. Kristensen Cc: Brian Norris Signed-off-by: Tomasz Figa Signed-off-by: Sean Paul Signed-off-by: Thierry Escande --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 3 +++ include/drm/bridge/analogix_dp.h | 1 + 2 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index bee0f7aa5c23..2d44ef2fc3d2 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -1652,6 +1652,9 @@ EXPORT_SYMBOL_GPL(analogix_dp_bind); void analogix_dp_unbind(struct analogix_dp_device *dp) { + if (dp->plat_data->cleanup) + dp->plat_data->cleanup(dp->plat_data); + analogix_dp_bridge_disable(dp->bridge); dp->connector.funcs->destroy(&dp->connector); diff --git a/include/drm/bridge/analogix_dp.h b/include/drm/bridge/analogix_dp.h index c2788483c882..96a6af0823aa 100644 --- a/include/drm/bridge/analogix_dp.h +++ b/include/drm/bridge/analogix_dp.h @@ -38,6 +38,7 @@ struct analogix_dp_plat_data { struct drm_connector *); int (*get_modes)(struct analogix_dp_plat_data *, struct drm_connector *); + void (*cleanup)(struct analogix_dp_plat_data *); }; int analogix_dp_psr_enabled(struct analogix_dp_device *dp);