Message ID | 20181112194222.193546-10-sean@poorly.run (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/msm: dpu: Clean up runtime power handling | expand |
On 2018-11-12 11:42, Sean Paul wrote: > From: Sean Paul <seanpaul@chromium.org> > > Now that we don't have any event handlers, remove dpu_power_handle! > > Signed-off-by: Sean Paul <seanpaul@chromium.org> Reviewed-by: Jeykumar Sankaran <jsanka@codeaurora.org> > --- > drivers/gpu/drm/msm/Makefile | 1 - > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 11 -- > drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 3 - > .../gpu/drm/msm/disp/dpu1/dpu_power_handle.c | 136 ------------------ > .../gpu/drm/msm/disp/dpu1/dpu_power_handle.h | 113 --------------- > 5 files changed, 264 deletions(-) > delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c > delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h > > diff --git a/drivers/gpu/drm/msm/Makefile > b/drivers/gpu/drm/msm/Makefile > index 19ab521d4c3a..7d02ef3655b5 100644 > --- a/drivers/gpu/drm/msm/Makefile > +++ b/drivers/gpu/drm/msm/Makefile > @@ -72,7 +72,6 @@ msm-y := \ > disp/dpu1/dpu_kms.o \ > disp/dpu1/dpu_mdss.o \ > disp/dpu1/dpu_plane.o \ > - disp/dpu1/dpu_power_handle.o \ > disp/dpu1/dpu_rm.o \ > disp/dpu1/dpu_vbif.o \ > msm_atomic.o \ > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > index bae7e86b2913..e42685a1d928 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c > @@ -1063,8 +1063,6 @@ static int dpu_bind(struct device *dev, struct > device *master, void *data) > return ret; > } > > - dpu_power_resource_init(pdev, &dpu_kms->phandle); > - > platform_set_drvdata(pdev, dpu_kms); > > msm_kms_init(&dpu_kms->base, &kms_funcs); > @@ -1084,7 +1082,6 @@ static void dpu_unbind(struct device *dev, struct > device *master, void *data) > struct dpu_kms *dpu_kms = platform_get_drvdata(pdev); > struct dss_module_power *mp = &dpu_kms->mp; > > - dpu_power_resource_deinit(pdev, &dpu_kms->phandle); > msm_dss_put_clk(mp->clk_config, mp->num_clk); > devm_kfree(&pdev->dev, mp->clk_config); > mp->num_clk = 0; > @@ -1123,10 +1120,6 @@ static int __maybe_unused > dpu_runtime_suspend(struct device *dev) > return rc; > } > > - rc = dpu_power_resource_enable(&dpu_kms->phandle, false); > - if (rc) > - DPU_ERROR("resource disable failed: %d\n", rc); > - > rc = msm_dss_enable_clk(mp->clk_config, mp->num_clk, false); > if (rc) > DPU_ERROR("clock disable failed rc:%d\n", rc); > @@ -1160,10 +1153,6 @@ static int __maybe_unused > dpu_runtime_resume(struct > device *dev) > drm_for_each_crtc(crtc, ddev) > dpu_crtc_runtime_resume(crtc); > > - rc = dpu_power_resource_enable(&dpu_kms->phandle, true); > - if (rc) > - DPU_ERROR("resource enable failed: %d\n", rc); > - > return rc; > } > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h > b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h > index 4e5acacb3065..59e18e2d3c59 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h > @@ -31,7 +31,6 @@ > #include "dpu_hw_top.h" > #include "dpu_io_util.h" > #include "dpu_rm.h" > -#include "dpu_power_handle.h" > #include "dpu_irq.h" > #include "dpu_core_perf.h" > > @@ -114,8 +113,6 @@ struct dpu_kms { > int core_rev; > struct dpu_mdss_cfg *catalog; > > - struct dpu_power_handle phandle; > - > /* directory entry for debugfs */ > struct dentry *debugfs_root; > struct dentry *debugfs_danger; > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c > b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c > deleted file mode 100644 > index 8e64f0a52147..000000000000 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c > +++ /dev/null > @@ -1,136 +0,0 @@ > -/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved. > - * > - * This program is free software; you can redistribute it and/or > modify > - * it under the terms of the GNU General Public License version 2 and > - * only version 2 as published by the Free Software Foundation. > - * > - * This program is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > - * GNU General Public License for more details. > - * > - */ > - > -#define pr_fmt(fmt) "[drm:%s:%d]: " fmt, __func__, __LINE__ > - > -#include <linux/kernel.h> > -#include <linux/of.h> > -#include <linux/string.h> > -#include <linux/of_address.h> > -#include <linux/slab.h> > -#include <linux/mutex.h> > -#include <linux/of_platform.h> > - > -#include "dpu_power_handle.h" > -#include "dpu_trace.h" > - > -static void dpu_power_event_trigger_locked(struct dpu_power_handle > *phandle, > - u32 event_type) > -{ > - struct dpu_power_event *event; > - > - list_for_each_entry(event, &phandle->event_list, list) { > - if (event->event_type & event_type) > - event->cb_fnc(event_type, event->usr); > - } > -} > - > -void dpu_power_resource_init(struct platform_device *pdev, > - struct dpu_power_handle *phandle) > -{ > - phandle->dev = &pdev->dev; > - > - INIT_LIST_HEAD(&phandle->event_list); > - > - mutex_init(&phandle->phandle_lock); > -} > - > -void dpu_power_resource_deinit(struct platform_device *pdev, > - struct dpu_power_handle *phandle) > -{ > - struct dpu_power_event *curr_event, *next_event; > - > - if (!phandle || !pdev) { > - pr_err("invalid input param\n"); > - return; > - } > - > - mutex_lock(&phandle->phandle_lock); > - list_for_each_entry_safe(curr_event, next_event, > - &phandle->event_list, list) { > - pr_err("event:%d, client:%s still registered\n", > - curr_event->event_type, > - curr_event->client_name); > - curr_event->active = false; > - list_del(&curr_event->list); > - } > - mutex_unlock(&phandle->phandle_lock); > -} > - > -int dpu_power_resource_enable(struct dpu_power_handle *phandle, bool > enable) > -{ > - u32 event_type; > - > - if (!phandle) { > - pr_err("invalid input argument\n"); > - return -EINVAL; > - } > - > - mutex_lock(&phandle->phandle_lock); > - > - event_type = enable ? DPU_POWER_EVENT_ENABLE : > DPU_POWER_EVENT_DISABLE; > - > - dpu_power_event_trigger_locked(phandle, event_type); > - > - mutex_unlock(&phandle->phandle_lock); > - return 0; > -} > - > -struct dpu_power_event *dpu_power_handle_register_event( > - struct dpu_power_handle *phandle, > - u32 event_type, void (*cb_fnc)(u32 event_type, void *usr), > - void *usr, char *client_name) > -{ > - struct dpu_power_event *event; > - > - if (!phandle) { > - pr_err("invalid power handle\n"); > - return ERR_PTR(-EINVAL); > - } else if (!cb_fnc || !event_type) { > - pr_err("no callback fnc or event type\n"); > - return ERR_PTR(-EINVAL); > - } > - > - event = kzalloc(sizeof(struct dpu_power_event), GFP_KERNEL); > - if (!event) > - return ERR_PTR(-ENOMEM); > - > - event->event_type = event_type; > - event->cb_fnc = cb_fnc; > - event->usr = usr; > - strlcpy(event->client_name, client_name, MAX_CLIENT_NAME_LEN); > - event->active = true; > - > - mutex_lock(&phandle->phandle_lock); > - list_add(&event->list, &phandle->event_list); > - mutex_unlock(&phandle->phandle_lock); > - > - return event; > -} > - > -void dpu_power_handle_unregister_event( > - struct dpu_power_handle *phandle, > - struct dpu_power_event *event) > -{ > - if (!phandle || !event) { > - pr_err("invalid phandle or event\n"); > - } else if (!event->active) { > - pr_err("power handle deinit already done\n"); > - kfree(event); > - } else { > - mutex_lock(&phandle->phandle_lock); > - list_del_init(&event->list); > - mutex_unlock(&phandle->phandle_lock); > - kfree(event); > - } > -} > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h > b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h > deleted file mode 100644 > index 7536624c8b20..000000000000 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h > +++ /dev/null > @@ -1,113 +0,0 @@ > -/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. > - * > - * This program is free software; you can redistribute it and/or > modify > - * it under the terms of the GNU General Public License version 2 and > - * only version 2 as published by the Free Software Foundation. > - * > - * This program is distributed in the hope that it will be useful, > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > - * GNU General Public License for more details. > - * > - */ > - > -#ifndef _DPU_POWER_HANDLE_H_ > -#define _DPU_POWER_HANDLE_H_ > - > -#define MAX_CLIENT_NAME_LEN 128 > - > -#define DPU_POWER_HANDLE_ENABLE_BUS_AB_QUOTA 0 > -#define DPU_POWER_HANDLE_DISABLE_BUS_AB_QUOTA 0 > -#define DPU_POWER_HANDLE_ENABLE_BUS_IB_QUOTA 1600000000 > -#define DPU_POWER_HANDLE_DISABLE_BUS_IB_QUOTA 0 > - > -#include "dpu_io_util.h" > - > -/* events will be triggered on power handler enable/disable */ > -#define DPU_POWER_EVENT_DISABLE BIT(0) > -#define DPU_POWER_EVENT_ENABLE BIT(1) > - > -/* > - * struct dpu_power_event - local event registration structure > - * @client_name: name of the client registering > - * @cb_fnc: pointer to desired callback function > - * @usr: user pointer to pass to callback event trigger > - * @event: refer to DPU_POWER_HANDLE_EVENT_* > - * @list: list to attach event master list > - * @active: indicates the state of dpu power handle > - */ > -struct dpu_power_event { > - char client_name[MAX_CLIENT_NAME_LEN]; > - void (*cb_fnc)(u32 event_type, void *usr); > - void *usr; > - u32 event_type; > - struct list_head list; > - bool active; > -}; > - > -/** > - * struct dpu_power_handle: power handle main struct > - * @phandle_lock: lock to synchronize the enable/disable > - * @dev: pointer to device structure > - * @usecase_ndx: current usecase index > - * @event_list: current power handle event list > - */ > -struct dpu_power_handle { > - struct mutex phandle_lock; > - struct device *dev; > - u32 current_usecase_ndx; > - struct list_head event_list; > -}; > - > -/** > - * dpu_power_resource_init() - initializes the dpu power handle > - * @pdev: platform device to search the power resources > - * @pdata: power handle to store the power resources > - */ > -void dpu_power_resource_init(struct platform_device *pdev, > - struct dpu_power_handle *pdata); > - > -/** > - * dpu_power_resource_deinit() - release the dpu power handle > - * @pdev: platform device for power resources > - * @pdata: power handle containing the resources > - * > - * Return: error code. > - */ > -void dpu_power_resource_deinit(struct platform_device *pdev, > - struct dpu_power_handle *pdata); > - > -/** > - * dpu_power_resource_enable() - enable/disable the power resources > - * @pdata: power handle containing the resources > - * @enable: boolean request for enable/disable > - * > - * Return: error code. > - */ > -int dpu_power_resource_enable(struct dpu_power_handle *pdata, bool > enable); > - > -/** > - * dpu_power_handle_register_event - register a callback function for > an > event. > - * Clients can register for multiple events with a single register. > - * Any block with access to phandle can register for the event > - * notification. > - * @phandle: power handle containing the resources > - * @event_type: event type to register; refer > DPU_POWER_HANDLE_EVENT_* > - * @cb_fnc: pointer to desired callback function > - * @usr: user pointer to pass to callback on event trigger > - * > - * Return: event pointer if success, or error code otherwise > - */ > -struct dpu_power_event *dpu_power_handle_register_event( > - struct dpu_power_handle *phandle, > - u32 event_type, void (*cb_fnc)(u32 event_type, void *usr), > - void *usr, char *client_name); > -/** > - * dpu_power_handle_unregister_event - unregister callback for > event(s) > - * @phandle: power handle containing the resources > - * @event: event pointer returned after power handle register > - */ > -void dpu_power_handle_unregister_event(struct dpu_power_handle > *phandle, > - struct dpu_power_event *event); > - > -#endif /* _DPU_POWER_HANDLE_H_ */
diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile index 19ab521d4c3a..7d02ef3655b5 100644 --- a/drivers/gpu/drm/msm/Makefile +++ b/drivers/gpu/drm/msm/Makefile @@ -72,7 +72,6 @@ msm-y := \ disp/dpu1/dpu_kms.o \ disp/dpu1/dpu_mdss.o \ disp/dpu1/dpu_plane.o \ - disp/dpu1/dpu_power_handle.o \ disp/dpu1/dpu_rm.o \ disp/dpu1/dpu_vbif.o \ msm_atomic.o \ diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c index bae7e86b2913..e42685a1d928 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -1063,8 +1063,6 @@ static int dpu_bind(struct device *dev, struct device *master, void *data) return ret; } - dpu_power_resource_init(pdev, &dpu_kms->phandle); - platform_set_drvdata(pdev, dpu_kms); msm_kms_init(&dpu_kms->base, &kms_funcs); @@ -1084,7 +1082,6 @@ static void dpu_unbind(struct device *dev, struct device *master, void *data) struct dpu_kms *dpu_kms = platform_get_drvdata(pdev); struct dss_module_power *mp = &dpu_kms->mp; - dpu_power_resource_deinit(pdev, &dpu_kms->phandle); msm_dss_put_clk(mp->clk_config, mp->num_clk); devm_kfree(&pdev->dev, mp->clk_config); mp->num_clk = 0; @@ -1123,10 +1120,6 @@ static int __maybe_unused dpu_runtime_suspend(struct device *dev) return rc; } - rc = dpu_power_resource_enable(&dpu_kms->phandle, false); - if (rc) - DPU_ERROR("resource disable failed: %d\n", rc); - rc = msm_dss_enable_clk(mp->clk_config, mp->num_clk, false); if (rc) DPU_ERROR("clock disable failed rc:%d\n", rc); @@ -1160,10 +1153,6 @@ static int __maybe_unused dpu_runtime_resume(struct device *dev) drm_for_each_crtc(crtc, ddev) dpu_crtc_runtime_resume(crtc); - rc = dpu_power_resource_enable(&dpu_kms->phandle, true); - if (rc) - DPU_ERROR("resource enable failed: %d\n", rc); - return rc; } diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h index 4e5acacb3065..59e18e2d3c59 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h @@ -31,7 +31,6 @@ #include "dpu_hw_top.h" #include "dpu_io_util.h" #include "dpu_rm.h" -#include "dpu_power_handle.h" #include "dpu_irq.h" #include "dpu_core_perf.h" @@ -114,8 +113,6 @@ struct dpu_kms { int core_rev; struct dpu_mdss_cfg *catalog; - struct dpu_power_handle phandle; - /* directory entry for debugfs */ struct dentry *debugfs_root; struct dentry *debugfs_danger; diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c deleted file mode 100644 index 8e64f0a52147..000000000000 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c +++ /dev/null @@ -1,136 +0,0 @@ -/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 and - * only version 2 as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#define pr_fmt(fmt) "[drm:%s:%d]: " fmt, __func__, __LINE__ - -#include <linux/kernel.h> -#include <linux/of.h> -#include <linux/string.h> -#include <linux/of_address.h> -#include <linux/slab.h> -#include <linux/mutex.h> -#include <linux/of_platform.h> - -#include "dpu_power_handle.h" -#include "dpu_trace.h" - -static void dpu_power_event_trigger_locked(struct dpu_power_handle *phandle, - u32 event_type) -{ - struct dpu_power_event *event; - - list_for_each_entry(event, &phandle->event_list, list) { - if (event->event_type & event_type) - event->cb_fnc(event_type, event->usr); - } -} - -void dpu_power_resource_init(struct platform_device *pdev, - struct dpu_power_handle *phandle) -{ - phandle->dev = &pdev->dev; - - INIT_LIST_HEAD(&phandle->event_list); - - mutex_init(&phandle->phandle_lock); -} - -void dpu_power_resource_deinit(struct platform_device *pdev, - struct dpu_power_handle *phandle) -{ - struct dpu_power_event *curr_event, *next_event; - - if (!phandle || !pdev) { - pr_err("invalid input param\n"); - return; - } - - mutex_lock(&phandle->phandle_lock); - list_for_each_entry_safe(curr_event, next_event, - &phandle->event_list, list) { - pr_err("event:%d, client:%s still registered\n", - curr_event->event_type, - curr_event->client_name); - curr_event->active = false; - list_del(&curr_event->list); - } - mutex_unlock(&phandle->phandle_lock); -} - -int dpu_power_resource_enable(struct dpu_power_handle *phandle, bool enable) -{ - u32 event_type; - - if (!phandle) { - pr_err("invalid input argument\n"); - return -EINVAL; - } - - mutex_lock(&phandle->phandle_lock); - - event_type = enable ? DPU_POWER_EVENT_ENABLE : DPU_POWER_EVENT_DISABLE; - - dpu_power_event_trigger_locked(phandle, event_type); - - mutex_unlock(&phandle->phandle_lock); - return 0; -} - -struct dpu_power_event *dpu_power_handle_register_event( - struct dpu_power_handle *phandle, - u32 event_type, void (*cb_fnc)(u32 event_type, void *usr), - void *usr, char *client_name) -{ - struct dpu_power_event *event; - - if (!phandle) { - pr_err("invalid power handle\n"); - return ERR_PTR(-EINVAL); - } else if (!cb_fnc || !event_type) { - pr_err("no callback fnc or event type\n"); - return ERR_PTR(-EINVAL); - } - - event = kzalloc(sizeof(struct dpu_power_event), GFP_KERNEL); - if (!event) - return ERR_PTR(-ENOMEM); - - event->event_type = event_type; - event->cb_fnc = cb_fnc; - event->usr = usr; - strlcpy(event->client_name, client_name, MAX_CLIENT_NAME_LEN); - event->active = true; - - mutex_lock(&phandle->phandle_lock); - list_add(&event->list, &phandle->event_list); - mutex_unlock(&phandle->phandle_lock); - - return event; -} - -void dpu_power_handle_unregister_event( - struct dpu_power_handle *phandle, - struct dpu_power_event *event) -{ - if (!phandle || !event) { - pr_err("invalid phandle or event\n"); - } else if (!event->active) { - pr_err("power handle deinit already done\n"); - kfree(event); - } else { - mutex_lock(&phandle->phandle_lock); - list_del_init(&event->list); - mutex_unlock(&phandle->phandle_lock); - kfree(event); - } -} diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h deleted file mode 100644 index 7536624c8b20..000000000000 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h +++ /dev/null @@ -1,113 +0,0 @@ -/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 and - * only version 2 as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#ifndef _DPU_POWER_HANDLE_H_ -#define _DPU_POWER_HANDLE_H_ - -#define MAX_CLIENT_NAME_LEN 128 - -#define DPU_POWER_HANDLE_ENABLE_BUS_AB_QUOTA 0 -#define DPU_POWER_HANDLE_DISABLE_BUS_AB_QUOTA 0 -#define DPU_POWER_HANDLE_ENABLE_BUS_IB_QUOTA 1600000000 -#define DPU_POWER_HANDLE_DISABLE_BUS_IB_QUOTA 0 - -#include "dpu_io_util.h" - -/* events will be triggered on power handler enable/disable */ -#define DPU_POWER_EVENT_DISABLE BIT(0) -#define DPU_POWER_EVENT_ENABLE BIT(1) - -/* - * struct dpu_power_event - local event registration structure - * @client_name: name of the client registering - * @cb_fnc: pointer to desired callback function - * @usr: user pointer to pass to callback event trigger - * @event: refer to DPU_POWER_HANDLE_EVENT_* - * @list: list to attach event master list - * @active: indicates the state of dpu power handle - */ -struct dpu_power_event { - char client_name[MAX_CLIENT_NAME_LEN]; - void (*cb_fnc)(u32 event_type, void *usr); - void *usr; - u32 event_type; - struct list_head list; - bool active; -}; - -/** - * struct dpu_power_handle: power handle main struct - * @phandle_lock: lock to synchronize the enable/disable - * @dev: pointer to device structure - * @usecase_ndx: current usecase index - * @event_list: current power handle event list - */ -struct dpu_power_handle { - struct mutex phandle_lock; - struct device *dev; - u32 current_usecase_ndx; - struct list_head event_list; -}; - -/** - * dpu_power_resource_init() - initializes the dpu power handle - * @pdev: platform device to search the power resources - * @pdata: power handle to store the power resources - */ -void dpu_power_resource_init(struct platform_device *pdev, - struct dpu_power_handle *pdata); - -/** - * dpu_power_resource_deinit() - release the dpu power handle - * @pdev: platform device for power resources - * @pdata: power handle containing the resources - * - * Return: error code. - */ -void dpu_power_resource_deinit(struct platform_device *pdev, - struct dpu_power_handle *pdata); - -/** - * dpu_power_resource_enable() - enable/disable the power resources - * @pdata: power handle containing the resources - * @enable: boolean request for enable/disable - * - * Return: error code. - */ -int dpu_power_resource_enable(struct dpu_power_handle *pdata, bool enable); - -/** - * dpu_power_handle_register_event - register a callback function for an event. - * Clients can register for multiple events with a single register. - * Any block with access to phandle can register for the event - * notification. - * @phandle: power handle containing the resources - * @event_type: event type to register; refer DPU_POWER_HANDLE_EVENT_* - * @cb_fnc: pointer to desired callback function - * @usr: user pointer to pass to callback on event trigger - * - * Return: event pointer if success, or error code otherwise - */ -struct dpu_power_event *dpu_power_handle_register_event( - struct dpu_power_handle *phandle, - u32 event_type, void (*cb_fnc)(u32 event_type, void *usr), - void *usr, char *client_name); -/** - * dpu_power_handle_unregister_event - unregister callback for event(s) - * @phandle: power handle containing the resources - * @event: event pointer returned after power handle register - */ -void dpu_power_handle_unregister_event(struct dpu_power_handle *phandle, - struct dpu_power_event *event); - -#endif /* _DPU_POWER_HANDLE_H_ */