From 81582a138f5882b15fa34b0739897a5cd0d0f1a2 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 13 Dec 2016 16:41:07 +1000 Subject: [PATCH 0079/4131] drm/amd/display: drop register logger and pid/tgid getters While I'm sure this is useful I think we should bring it back later. It's usage of pid/tgid is incorrect, you have to get/put pid/tgids not store them away. Signed-off-by: Dave Airlie Reviewed-by: Tony Cheng Acked-by: Harry Wentland Signed-off-by: Alex Deucher --- .../drm/amd/display/amdgpu_dm/amdgpu_dm_services.c | 10 -- drivers/gpu/drm/amd/display/dc/basics/Makefile | 2 +- .../drm/amd/display/dc/basics/register_logger.c | 197 --------------------- drivers/gpu/drm/amd/display/dc/dm_services.h | 16 -- .../drm/amd/display/include/dal_register_logger.h | 42 ----- 5 files changed, 1 insertion(+), 266 deletions(-) delete mode 100644 drivers/gpu/drm/amd/display/dc/basics/register_logger.c delete mode 100644 drivers/gpu/drm/amd/display/include/dal_register_logger.h diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c index 9c852a3..565be05 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_services.c @@ -447,13 +447,3 @@ void dal_notify_setmode_complete(struct dc_context *ctx, /*TODO*/ } /* End of calls to notification */ - -long dm_get_pid(void) -{ - return current->pid; -} - -long dm_get_tgid(void) -{ - return current->tgid; -} diff --git a/drivers/gpu/drm/amd/display/dc/basics/Makefile b/drivers/gpu/drm/amd/display/dc/basics/Makefile index a263cad..0658162 100644 --- a/drivers/gpu/drm/amd/display/dc/basics/Makefile +++ b/drivers/gpu/drm/amd/display/dc/basics/Makefile @@ -4,7 +4,7 @@ # subcomponents. BASICS = conversion.o fixpt31_32.o fixpt32_32.o grph_object_id.o \ - logger.o log_helpers.o register_logger.o signal_types.o vector.o + logger.o log_helpers.o signal_types.o vector.o AMD_DAL_BASICS = $(addprefix $(AMDDALPATH)/dc/basics/,$(BASICS)) diff --git a/drivers/gpu/drm/amd/display/dc/basics/register_logger.c b/drivers/gpu/drm/amd/display/dc/basics/register_logger.c deleted file mode 100644 index b8d57d9..0000000 --- a/drivers/gpu/drm/amd/display/dc/basics/register_logger.c +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright 2012-15 Advanced Micro Devices, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: AMD - * - */ - -#include "dm_services.h" -#include "include/dal_types.h" -#include "include/logger_interface.h" -#include "logger.h" - -/****************************************************************************** - * Register Logger. - * A facility to create register R/W logs. - * Currently used for DAL Test. - *****************************************************************************/ - -/****************************************************************************** - * Private structures - *****************************************************************************/ -struct dal_reg_dump_stack_location { - const char *current_caller_func; - long current_pid; - long current_tgid; - uint32_t rw_count;/* register access counter for current function. */ -}; - -/* This the maximum number of nested calls to the 'reg_dump' facility. */ -#define DAL_REG_DUMP_STACK_MAX_SIZE 32 - -struct dal_reg_dump_stack { - int32_t stack_pointer; - struct dal_reg_dump_stack_location - stack_locations[DAL_REG_DUMP_STACK_MAX_SIZE]; - uint32_t total_rw_count; /* Total count for *all* functions. */ -}; - -static struct dal_reg_dump_stack reg_dump_stack = {0}; - -/****************************************************************************** - * Private functions - *****************************************************************************/ - -/* Check if current process is the one which requested register dump. - * The reason for the check: - * mmCRTC_STATUS_FRAME_COUNT is accessed by dal_controller_get_vblank_counter(). - * Which runs all the time when at least one display is connected. - * (Triggered by drm_mode_page_flip_ioctl()). */ -static bool is_reg_dump_process(void) -{ - uint32_t i; - - /* walk the list of our processes */ - for (i = 0; i < reg_dump_stack.stack_pointer; i++) { - struct dal_reg_dump_stack_location *stack_location - = ®_dump_stack.stack_locations[i]; - - if (stack_location->current_pid == dm_get_pid() - && stack_location->current_tgid == dm_get_tgid()) - return true; - } - - return false; -} - -static bool dal_reg_dump_stack_is_empty(void) -{ - if (reg_dump_stack.stack_pointer <= 0) - return true; - else - return false; -} - -static struct dal_reg_dump_stack_location *dal_reg_dump_stack_push(void) -{ - struct dal_reg_dump_stack_location *current_location = NULL; - - if (reg_dump_stack.stack_pointer >= DAL_REG_DUMP_STACK_MAX_SIZE) { - /* stack is full */ - dm_output_to_console("[REG_DUMP]: %s: stack is full!\n", - __func__); - } else { - current_location = - ®_dump_stack.stack_locations[reg_dump_stack.stack_pointer]; - ++reg_dump_stack.stack_pointer; - } - - return current_location; -} - -static struct dal_reg_dump_stack_location *dal_reg_dump_stack_pop(void) -{ - struct dal_reg_dump_stack_location *current_location = NULL; - - if (dal_reg_dump_stack_is_empty()) { - /* stack is empty */ - dm_output_to_console("[REG_DUMP]: %s: stack is empty!\n", - __func__); - } else { - --reg_dump_stack.stack_pointer; - current_location = - ®_dump_stack.stack_locations[reg_dump_stack.stack_pointer]; - } - - return current_location; -} - -/****************************************************************************** - * Public functions - *****************************************************************************/ - -void dal_reg_logger_push(const char *caller_func) -{ - struct dal_reg_dump_stack_location *free_stack_location; - - free_stack_location = dal_reg_dump_stack_push(); - - if (NULL == free_stack_location) - return; - - memset(free_stack_location, 0, sizeof(*free_stack_location)); - - free_stack_location->current_caller_func = caller_func; - free_stack_location->current_pid = dm_get_pid(); - free_stack_location->current_tgid = dm_get_tgid(); - - dm_output_to_console("[REG_DUMP]:%s - start (pid:%ld, tgid:%ld)\n", - caller_func, - free_stack_location->current_pid, - free_stack_location->current_tgid); -} - -void dal_reg_logger_pop(void) -{ - struct dal_reg_dump_stack_location *top_stack_location; - - top_stack_location = dal_reg_dump_stack_pop(); - - if (NULL == top_stack_location) { - dm_output_to_console("[REG_DUMP]:%s - Stack is Empty!\n", - __func__); - return; - } - - dm_output_to_console( - "[REG_DUMP]:%s - end."\ - " Reg R/W Count: Total=%d Function=%d. (pid:%ld, tgid:%ld)\n", - top_stack_location->current_caller_func, - reg_dump_stack.total_rw_count, - top_stack_location->rw_count, - dm_get_pid(), - dm_get_tgid()); - - memset(top_stack_location, 0, sizeof(*top_stack_location)); -} - -void dal_reg_logger_rw_count_increment(void) -{ - ++reg_dump_stack.total_rw_count; - - ++reg_dump_stack.stack_locations - [reg_dump_stack.stack_pointer - 1].rw_count; -} - -bool dal_reg_logger_should_dump_register(void) -{ - if (true == dal_reg_dump_stack_is_empty()) - return false; - - if (false == is_reg_dump_process()) - return false; - - return true; -} - -/****************************************************************************** - * End of File. - *****************************************************************************/ diff --git a/drivers/gpu/drm/amd/display/dc/dm_services.h b/drivers/gpu/drm/amd/display/dc/dm_services.h index 7a3f103..f3f9a401 100644 --- a/drivers/gpu/drm/amd/display/dc/dm_services.h +++ b/drivers/gpu/drm/amd/display/dc/dm_services.h @@ -109,12 +109,6 @@ static inline uint32_t dm_read_reg_func( value = cgs_read_register(ctx->cgs_device, address); -#if defined(__DAL_REGISTER_LOGGER__) - if (true == dal_reg_logger_should_dump_register()) { - dal_reg_logger_rw_count_increment(); - DRM_INFO("%s DC_READ_REG: 0x%x 0x%x\n", func_name, address, value); - } -#endif return value; } @@ -127,13 +121,6 @@ static inline void dm_write_reg_func( uint32_t value, const char *func_name) { -#if defined(__DAL_REGISTER_LOGGER__) - if (true == dal_reg_logger_should_dump_register()) { - dal_reg_logger_rw_count_increment(); - DRM_INFO("%s DC_WRITE_REG: 0x%x 0x%x\n", func_name, address, value); - } -#endif - if (address == 0) { DC_ERR("invalid register write. address = 0"); return; @@ -418,7 +405,4 @@ bool dm_dmcu_set_pipe(struct dc_context *ctx, unsigned int controller_id); #define dm_log_to_buffer(buffer, size, fmt, args)\ vsnprintf(buffer, size, fmt, args) -long dm_get_pid(void); -long dm_get_tgid(void); - #endif /* __DM_SERVICES_H__ */ diff --git a/drivers/gpu/drm/amd/display/include/dal_register_logger.h b/drivers/gpu/drm/amd/display/include/dal_register_logger.h deleted file mode 100644 index 00dfcd7..0000000 --- a/drivers/gpu/drm/amd/display/include/dal_register_logger.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2012-15 Advanced Micro Devices, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR - * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - * OTHER DEALINGS IN THE SOFTWARE. - * - * Authors: AMD - * - */ - -#ifndef __DAL_REGISTER_LOGGER__ -#define __DAL_REGISTER_LOGGER__ - -/**************** - * API functions - ***************/ - -/* dal_reg_logger_push - begin Register Logging */ -void dal_reg_logger_push(const char *caller_func); -/* dal_reg_logger_pop - stop Register Logging */ -void dal_reg_logger_pop(void); - -/* for internal use of the Logger only */ -void dal_reg_logger_rw_count_increment(void); -bool dal_reg_logger_should_dump_register(void); - -#endif /* __DAL_REGISTER_LOGGER__ */ -- 2.7.4