drm/msm: dpu: Remove dpu_power_handle
authorSean Paul <seanpaul@chromium.org>
Fri, 16 Nov 2018 18:42:19 +0000 (13:42 -0500)
committerRob Clark <robdclark@gmail.com>
Tue, 11 Dec 2018 18:10:10 +0000 (13:10 -0500)
Now that we don't have any event handlers, remove dpu_power_handle!

Changes in v2:
- None

Reviewed-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/Makefile
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c [deleted file]
drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h [deleted file]

index 1b26c41..f45ac4c 100644 (file)
@@ -74,7 +74,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 \
index 7ea24d9..610845b 100644 (file)
@@ -1064,8 +1064,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);
@@ -1085,7 +1083,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;
@@ -1124,10 +1121,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);
@@ -1161,10 +1154,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;
 }
 
index 4e5acac..59e18e2 100644 (file)
@@ -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 (file)
index 8e64f0a..0000000
+++ /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 (file)
index 7536624..0000000
+++ /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_ */