xref: /openbmc/linux/drivers/gpu/drm/msm/dp/dp_debug.h (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1d11a9369SAbhinav Kumar /* SPDX-License-Identifier: GPL-2.0-only */
2d11a9369SAbhinav Kumar /*
3d11a9369SAbhinav Kumar  * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
4d11a9369SAbhinav Kumar  */
5d11a9369SAbhinav Kumar 
6d11a9369SAbhinav Kumar #ifndef _DP_DEBUG_H_
7d11a9369SAbhinav Kumar #define _DP_DEBUG_H_
8d11a9369SAbhinav Kumar 
9d11a9369SAbhinav Kumar #include "dp_panel.h"
10d11a9369SAbhinav Kumar #include "dp_link.h"
11d11a9369SAbhinav Kumar 
12d11a9369SAbhinav Kumar /**
13d11a9369SAbhinav Kumar  * struct dp_debug
14d11a9369SAbhinav Kumar  * @debug_en: specifies whether debug mode enabled
15d11a9369SAbhinav Kumar  * @vdisplay: used to filter out vdisplay value
16d11a9369SAbhinav Kumar  * @hdisplay: used to filter out hdisplay value
17d11a9369SAbhinav Kumar  * @vrefresh: used to filter out vrefresh value
18d11a9369SAbhinav Kumar  * @tpg_state: specifies whether tpg feature is enabled
19d11a9369SAbhinav Kumar  */
20d11a9369SAbhinav Kumar struct dp_debug {
21d11a9369SAbhinav Kumar 	bool debug_en;
22d11a9369SAbhinav Kumar 	int aspect_ratio;
23d11a9369SAbhinav Kumar 	int vdisplay;
24d11a9369SAbhinav Kumar 	int hdisplay;
25d11a9369SAbhinav Kumar 	int vrefresh;
26d11a9369SAbhinav Kumar };
27d11a9369SAbhinav Kumar 
28d11a9369SAbhinav Kumar #if defined(CONFIG_DEBUG_FS)
29d11a9369SAbhinav Kumar 
30d11a9369SAbhinav Kumar /**
31d11a9369SAbhinav Kumar  * dp_debug_get() - configure and get the DisplayPlot debug module data
32d11a9369SAbhinav Kumar  *
33d11a9369SAbhinav Kumar  * @dev: device instance of the caller
34d11a9369SAbhinav Kumar  * @panel: instance of panel module
35d11a9369SAbhinav Kumar  * @link: instance of link module
36d11a9369SAbhinav Kumar  * @connector: double pointer to display connector
37f913454aSAbhinav Kumar  * @minor: pointer to drm minor number after device registration
38d11a9369SAbhinav Kumar  * return: pointer to allocated debug module data
39d11a9369SAbhinav Kumar  *
40d11a9369SAbhinav Kumar  * This function sets up the debug module and provides a way
41d11a9369SAbhinav Kumar  * for debugfs input to be communicated with existing modules
42d11a9369SAbhinav Kumar  */
43d11a9369SAbhinav Kumar struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel,
44*1c5f6051SDmitry Baryshkov 		struct dp_link *link,
45899b2608SBjorn Andersson 		struct drm_connector *connector,
46f913454aSAbhinav Kumar 		struct drm_minor *minor);
47f913454aSAbhinav Kumar 
48d11a9369SAbhinav Kumar /**
49d11a9369SAbhinav Kumar  * dp_debug_put()
50d11a9369SAbhinav Kumar  *
51d11a9369SAbhinav Kumar  * Cleans up dp_debug instance
52d11a9369SAbhinav Kumar  *
53d11a9369SAbhinav Kumar  * @dp_debug: instance of dp_debug
54d11a9369SAbhinav Kumar  */
55d11a9369SAbhinav Kumar void dp_debug_put(struct dp_debug *dp_debug);
56d11a9369SAbhinav Kumar 
57d11a9369SAbhinav Kumar #else
58d11a9369SAbhinav Kumar 
59d11a9369SAbhinav Kumar static inline
dp_debug_get(struct device * dev,struct dp_panel * panel,struct dp_link * link,struct drm_connector * connector,struct drm_minor * minor)60d11a9369SAbhinav Kumar struct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel,
61*1c5f6051SDmitry Baryshkov 		struct dp_link *link,
62899b2608SBjorn Andersson 		struct drm_connector *connector, struct drm_minor *minor)
63d11a9369SAbhinav Kumar {
64d11a9369SAbhinav Kumar 	return ERR_PTR(-EINVAL);
65d11a9369SAbhinav Kumar }
66d11a9369SAbhinav Kumar 
dp_debug_put(struct dp_debug * dp_debug)67d11a9369SAbhinav Kumar static inline void dp_debug_put(struct dp_debug *dp_debug)
68d11a9369SAbhinav Kumar {
69d11a9369SAbhinav Kumar }
70d11a9369SAbhinav Kumar 
71d11a9369SAbhinav Kumar #endif /* defined(CONFIG_DEBUG_FS) */
72d11a9369SAbhinav Kumar 
73d11a9369SAbhinav Kumar #endif /* _DP_DEBUG_H_ */
74