From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH 36/41] drm/bridge: analogix_dp: Add analogix_dp_shutdown Date: Thu, 9 Mar 2017 23:32:51 -0500 Message-ID: <20170310043305.17216-37-seanpaul@chromium.org> References: <20170310043305.17216-1-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20170310043305.17216-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+glpar-linux-rockchip=m.gmane.org-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Archit Taneja , zain wang , Lin Huang , Tomeu Vizoso , David Airlie , Brian Norris , Douglas Anderson , Tomasz Figa , Sean Paul , Yakir Yang , "Kristian H . Kristensen" , Heiko Stuebner List-Id: dri-devel@lists.freedesktop.org From: Tomasz Figa This patch adds a function that master driver can call at shutdown time in case there is some cleanup work to do. The function will then call back to platform_data .cleanup() callback to let the master driver do the platform-specific work. Cc: Kristian H. Kristensen Cc: Brian Norris Signed-off-by: Tomasz Figa Signed-off-by: Sean Paul --- drivers/gpu/drm/bridge/analogix/analogix_dp_core.c | 9 +++++++++ include/drm/bridge/analogix_dp.h | 1 + 2 files changed, 10 insertions(+) diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c index 6391f5da7643..1454075bce9a 100644 --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -1665,6 +1665,15 @@ void analogix_dp_unbind(struct device *dev, struct device *master, } EXPORT_SYMBOL_GPL(analogix_dp_unbind); +void analogix_dp_shutdown(struct device *dev) +{ + struct analogix_dp_device *dp = dev_get_drvdata(dev); + + if (dp->plat_data->cleanup) + dp->plat_data->cleanup(dp->plat_data); +} +EXPORT_SYMBOL_GPL(analogix_dp_shutdown); + #ifdef CONFIG_PM int analogix_dp_suspend(struct device *dev) { diff --git a/include/drm/bridge/analogix_dp.h b/include/drm/bridge/analogix_dp.h index 414e9a7f362e..c079ca1ffc76 100644 --- a/include/drm/bridge/analogix_dp.h +++ b/include/drm/bridge/analogix_dp.h @@ -49,6 +49,7 @@ int analogix_dp_suspend(struct device *dev); int analogix_dp_bind(struct device *dev, struct drm_device *drm_dev, struct analogix_dp_plat_data *plat_data); void analogix_dp_unbind(struct device *dev, struct device *master, void *data); +void analogix_dp_shutdown(struct device *dev); int analogix_dp_start_crc(struct drm_connector *connector); int analogix_dp_stop_crc(struct drm_connector *connector); -- 2.12.0.246.ga2ecc84866-goog