162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef _DP_DEBUG_H_ 762306a36Sopenharmony_ci#define _DP_DEBUG_H_ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include "dp_panel.h" 1062306a36Sopenharmony_ci#include "dp_link.h" 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/** 1362306a36Sopenharmony_ci * struct dp_debug 1462306a36Sopenharmony_ci * @debug_en: specifies whether debug mode enabled 1562306a36Sopenharmony_ci * @vdisplay: used to filter out vdisplay value 1662306a36Sopenharmony_ci * @hdisplay: used to filter out hdisplay value 1762306a36Sopenharmony_ci * @vrefresh: used to filter out vrefresh value 1862306a36Sopenharmony_ci * @tpg_state: specifies whether tpg feature is enabled 1962306a36Sopenharmony_ci */ 2062306a36Sopenharmony_cistruct dp_debug { 2162306a36Sopenharmony_ci bool debug_en; 2262306a36Sopenharmony_ci int aspect_ratio; 2362306a36Sopenharmony_ci int vdisplay; 2462306a36Sopenharmony_ci int hdisplay; 2562306a36Sopenharmony_ci int vrefresh; 2662306a36Sopenharmony_ci}; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#if defined(CONFIG_DEBUG_FS) 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci/** 3162306a36Sopenharmony_ci * dp_debug_get() - configure and get the DisplayPlot debug module data 3262306a36Sopenharmony_ci * 3362306a36Sopenharmony_ci * @dev: device instance of the caller 3462306a36Sopenharmony_ci * @panel: instance of panel module 3562306a36Sopenharmony_ci * @link: instance of link module 3662306a36Sopenharmony_ci * @connector: double pointer to display connector 3762306a36Sopenharmony_ci * @minor: pointer to drm minor number after device registration 3862306a36Sopenharmony_ci * return: pointer to allocated debug module data 3962306a36Sopenharmony_ci * 4062306a36Sopenharmony_ci * This function sets up the debug module and provides a way 4162306a36Sopenharmony_ci * for debugfs input to be communicated with existing modules 4262306a36Sopenharmony_ci */ 4362306a36Sopenharmony_cistruct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, 4462306a36Sopenharmony_ci struct dp_link *link, 4562306a36Sopenharmony_ci struct drm_connector *connector, 4662306a36Sopenharmony_ci struct drm_minor *minor); 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci/** 4962306a36Sopenharmony_ci * dp_debug_put() 5062306a36Sopenharmony_ci * 5162306a36Sopenharmony_ci * Cleans up dp_debug instance 5262306a36Sopenharmony_ci * 5362306a36Sopenharmony_ci * @dp_debug: instance of dp_debug 5462306a36Sopenharmony_ci */ 5562306a36Sopenharmony_civoid dp_debug_put(struct dp_debug *dp_debug); 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci#else 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_cistatic inline 6062306a36Sopenharmony_cistruct dp_debug *dp_debug_get(struct device *dev, struct dp_panel *panel, 6162306a36Sopenharmony_ci struct dp_link *link, 6262306a36Sopenharmony_ci struct drm_connector *connector, struct drm_minor *minor) 6362306a36Sopenharmony_ci{ 6462306a36Sopenharmony_ci return ERR_PTR(-EINVAL); 6562306a36Sopenharmony_ci} 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_cistatic inline void dp_debug_put(struct dp_debug *dp_debug) 6862306a36Sopenharmony_ci{ 6962306a36Sopenharmony_ci} 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci#endif /* defined(CONFIG_DEBUG_FS) */ 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ci#endif /* _DP_DEBUG_H_ */ 74