diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0079-drm-amd-display-drop-register-logger-and-pid-tgid-ge.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/0079-drm-amd-display-drop-register-logger-and-pid-tgid-ge.patch | 349 |
1 files changed, 349 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0079-drm-amd-display-drop-register-logger-and-pid-tgid-ge.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0079-drm-amd-display-drop-register-logger-and-pid-tgid-ge.patch new file mode 100644 index 00000000..c385e4b5 --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0079-drm-amd-display-drop-register-logger-and-pid-tgid-ge.patch @@ -0,0 +1,349 @@ +From 81582a138f5882b15fa34b0739897a5cd0d0f1a2 Mon Sep 17 00:00:00 2001 +From: Dave Airlie <airlied@redhat.com> +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 <airlied@redhat.com> +Reviewed-by: Tony Cheng <Tony.Cheng@amd.com> +Acked-by: Harry Wentland <Harry.Wentland@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + .../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 + |