On Tuesday, November 26, 2019, wrote: > From: Aaron Dominick > > --- Your commit message is poor. You should have clearly explained what do you do in this cleanup, and why. Aleksandar > hw/display/atom-bits.h | 48 - > hw/display/atom-names.h | 100 - > hw/display/atom-types.h | 42 - > hw/display/atom.h | 160 - > hw/display/atombios.h | 7981 ------------------------------ > hw/display/avivod.h | 62 - > hw/display/cayman_blit_shaders.h | 35 - > hw/display/ci_dpm.h | 341 -- > hw/display/cik_blit_shaders.h | 32 - > hw/display/cikd.h | 2172 -------- > hw/display/r300d.h | 343 -- > hw/display/r420d.h | 249 - > hw/display/r520d.h | 187 - > hw/display/r600_blit_shaders.h | 38 - > hw/display/r600_dpm.h | 238 - > hw/display/r600d.h | 2370 --------- > hw/display/radeon.h | 2967 ----------- > hw/display/radeon_acpi.h | 456 -- > hw/display/radeon_asic.h | 986 ---- > hw/display/radeon_drv.h | 121 - > hw/display/radeon_family.h | 122 - > hw/display/radeon_mode.h | 1002 ---- > hw/display/radeon_object.h | 197 - > hw/display/radeon_trace.h | 209 - > hw/display/radeon_ucode.h | 227 - > hw/display/rs100d.h | 40 - > hw/display/rs400d.h | 160 - > hw/display/rs600d.h | 685 --- > hw/display/rs690d.h | 313 -- > hw/display/rs780_dpm.h | 109 - > hw/display/rs780d.h | 171 - > hw/display/rv200d.h | 36 - > hw/display/rv250d.h | 123 - > hw/display/rv350d.h | 52 - > hw/display/rv515d.h | 638 --- > hw/display/rv6xx_dpm.h | 95 - > hw/display/rv6xxd.h | 246 - > hw/display/rv730d.h | 165 - > hw/display/rv740d.h | 117 - > hw/display/rv770_dpm.h | 285 -- > hw/display/rv770_smc.h | 207 - > hw/display/rv770d.h | 1015 ---- > hw/display/si_blit_shaders.h | 32 - > hw/display/si_dpm.h | 238 - > hw/display/sid.h | 1956 -------- > hw/display/sislands_smc.h | 424 -- > hw/display/smu7.h | 170 - > hw/display/smu7_discrete.h | 514 -- > hw/display/smu7_fusion.h | 300 -- > hw/display/sumo_dpm.h | 221 - > hw/display/sumod.h | 372 -- > hw/display/trinity_dpm.h | 134 - > hw/display/trinityd.h | 228 - > 53 files changed, 29731 deletions(-) > delete mode 100644 hw/display/atom-bits.h > delete mode 100644 hw/display/atom-names.h > delete mode 100644 hw/display/atom-types.h > delete mode 100644 hw/display/atom.h > delete mode 100644 hw/display/atombios.h > delete mode 100644 hw/display/avivod.h > delete mode 100644 hw/display/cayman_blit_shaders.h > delete mode 100644 hw/display/ci_dpm.h > delete mode 100644 hw/display/cik_blit_shaders.h > delete mode 100644 hw/display/cikd.h > delete mode 100644 hw/display/r300d.h > delete mode 100644 hw/display/r420d.h > delete mode 100644 hw/display/r520d.h > delete mode 100644 hw/display/r600_blit_shaders.h > delete mode 100644 hw/display/r600_dpm.h > delete mode 100644 hw/display/r600d.h > delete mode 100644 hw/display/radeon.h > delete mode 100644 hw/display/radeon_acpi.h > delete mode 100644 hw/display/radeon_asic.h > delete mode 100644 hw/display/radeon_drv.h > delete mode 100644 hw/display/radeon_family.h > delete mode 100644 hw/display/radeon_mode.h > delete mode 100644 hw/display/radeon_object.h > delete mode 100644 hw/display/radeon_trace.h > delete mode 100644 hw/display/radeon_ucode.h > delete mode 100644 hw/display/rs100d.h > delete mode 100644 hw/display/rs400d.h > delete mode 100644 hw/display/rs600d.h > delete mode 100644 hw/display/rs690d.h > delete mode 100644 hw/display/rs780_dpm.h > delete mode 100644 hw/display/rs780d.h > delete mode 100644 hw/display/rv200d.h > delete mode 100644 hw/display/rv250d.h > delete mode 100644 hw/display/rv350d.h > delete mode 100644 hw/display/rv515d.h > delete mode 100644 hw/display/rv6xx_dpm.h > delete mode 100644 hw/display/rv6xxd.h > delete mode 100644 hw/display/rv730d.h > delete mode 100644 hw/display/rv740d.h > delete mode 100644 hw/display/rv770_dpm.h > delete mode 100644 hw/display/rv770_smc.h > delete mode 100644 hw/display/rv770d.h > delete mode 100644 hw/display/si_blit_shaders.h > delete mode 100644 hw/display/si_dpm.h > delete mode 100644 hw/display/sid.h > delete mode 100644 hw/display/sislands_smc.h > delete mode 100644 hw/display/smu7.h > delete mode 100644 hw/display/smu7_discrete.h > delete mode 100644 hw/display/smu7_fusion.h > delete mode 100644 hw/display/sumo_dpm.h > delete mode 100644 hw/display/sumod.h > delete mode 100644 hw/display/trinity_dpm.h > delete mode 100644 hw/display/trinityd.h > > diff --git a/hw/display/atom-bits.h b/hw/display/atom-bits.h > deleted file mode 100644 > index e8fae5c775..0000000000 > --- a/hw/display/atom-bits.h > +++ /dev/null > @@ -1,48 +0,0 @@ > -/* > - * Copyright 2008 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. > - * > - * Author: Stanislaw Skowronek > - */ > - > -#ifndef ATOM_BITS_H > -#define ATOM_BITS_H > - > -static inline uint8_t get_u8(void *bios, int ptr) > -{ > - return ((unsigned char *)bios)[ptr]; > -} > -#define U8(ptr) get_u8(ctx->ctx->bios, (ptr)) > -#define CU8(ptr) get_u8(ctx->bios, (ptr)) > -static inline uint16_t get_u16(void *bios, int ptr) > -{ > - return get_u8(bios ,ptr)|(((uint16_t)get_u8(bios, ptr+1))<<8); > -} > -#define U16(ptr) get_u16(ctx->ctx->bios, (ptr)) > -#define CU16(ptr) get_u16(ctx->bios, (ptr)) > -static inline uint32_t get_u32(void *bios, int ptr) > -{ > - return get_u16(bios, ptr)|(((uint32_t)get_u16(bios, ptr+2))<<16); > -} > -#define U32(ptr) get_u32(ctx->ctx->bios, (ptr)) > -#define CU32(ptr) get_u32(ctx->bios, (ptr)) > -#define CSTR(ptr) (((char *)(ctx->bios))+(ptr)) > - > -#endif > diff --git a/hw/display/atom-names.h b/hw/display/atom-names.h > deleted file mode 100644 > index 6f907a5ffa..0000000000 > --- a/hw/display/atom-names.h > +++ /dev/null > @@ -1,100 +0,0 @@ > -/* > - * Copyright 2008 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. > - * > - * Author: Stanislaw Skowronek > - */ > - > -#ifndef ATOM_NAMES_H > -#define ATOM_NAMES_H > - > -#include "atom.h" > - > -#ifdef ATOM_DEBUG > - > -#define ATOM_OP_NAMES_CNT 123 > -static char *atom_op_names[ATOM_OP_NAMES_CNT] = { > -"RESERVED", "MOVE_REG", "MOVE_PS", "MOVE_WS", "MOVE_FB", "MOVE_PLL", > -"MOVE_MC", "AND_REG", "AND_PS", "AND_WS", "AND_FB", "AND_PLL", "AND_MC", > -"OR_REG", "OR_PS", "OR_WS", "OR_FB", "OR_PLL", "OR_MC", "SHIFT_LEFT_REG", > -"SHIFT_LEFT_PS", "SHIFT_LEFT_WS", "SHIFT_LEFT_FB", "SHIFT_LEFT_PLL", > -"SHIFT_LEFT_MC", "SHIFT_RIGHT_REG", "SHIFT_RIGHT_PS", "SHIFT_RIGHT_WS", > -"SHIFT_RIGHT_FB", "SHIFT_RIGHT_PLL", "SHIFT_RIGHT_MC", "MUL_REG", > -"MUL_PS", "MUL_WS", "MUL_FB", "MUL_PLL", "MUL_MC", "DIV_REG", "DIV_PS", > -"DIV_WS", "DIV_FB", "DIV_PLL", "DIV_MC", "ADD_REG", "ADD_PS", "ADD_WS", > -"ADD_FB", "ADD_PLL", "ADD_MC", "SUB_REG", "SUB_PS", "SUB_WS", "SUB_FB", > -"SUB_PLL", "SUB_MC", "SET_ATI_PORT", "SET_PCI_PORT", "SET_SYS_IO_PORT", > -"SET_REG_BLOCK", "SET_FB_BASE", "COMPARE_REG", "COMPARE_PS", > -"COMPARE_WS", "COMPARE_FB", "COMPARE_PLL", "COMPARE_MC", "SWITCH", > -"JUMP", "JUMP_EQUAL", "JUMP_BELOW", "JUMP_ABOVE", "JUMP_BELOW_OR_EQUAL", > -"JUMP_ABOVE_OR_EQUAL", "JUMP_NOT_EQUAL", "TEST_REG", "TEST_PS", "TEST_WS", > -"TEST_FB", "TEST_PLL", "TEST_MC", "DELAY_MILLISEC", "DELAY_MICROSEC", > -"CALL_TABLE", "REPEAT", "CLEAR_REG", "CLEAR_PS", "CLEAR_WS", "CLEAR_FB", > -"CLEAR_PLL", "CLEAR_MC", "NOP", "EOT", "MASK_REG", "MASK_PS", "MASK_WS", > -"MASK_FB", "MASK_PLL", "MASK_MC", "POST_CARD", "BEEP", "SAVE_REG", > -"RESTORE_REG", "SET_DATA_BLOCK", "XOR_REG", "XOR_PS", "XOR_WS", "XOR_FB", > -"XOR_PLL", "XOR_MC", "SHL_REG", "SHL_PS", "SHL_WS", "SHL_FB", "SHL_PLL", > -"SHL_MC", "SHR_REG", "SHR_PS", "SHR_WS", "SHR_FB", "SHR_PLL", "SHR_MC", > -"DEBUG", "CTB_DS", > -}; > - > -#define ATOM_TABLE_NAMES_CNT 74 > -static char *atom_table_names[ATOM_TABLE_NAMES_CNT] = { > -"ASIC_Init", "GetDisplaySurfaceSize", "ASIC_RegistersInit", > -"VRAM_BlockVenderDetection", "SetClocksRatio", "MemoryControllerInit", > -"GPIO_PinInit", "MemoryParamAdjust", "DVOEncoderControl", > -"GPIOPinControl", "SetEngineClock", "SetMemoryClock", "SetPixelClock", > -"DynamicClockGating", "ResetMemoryDLL", "ResetMemoryDevice", > -"MemoryPLLInit", "EnableMemorySelfRefresh", "AdjustMemoryController", > -"EnableASIC_StaticPwrMgt", "ASIC_StaticPwrMgtStatusChange", > -"DAC_LoadDetection", "TMDS2EncoderControl", "LCD1OutputControl", > -"DAC1EncoderControl", "DAC2EncoderControl", "DVOOutputControl", > -"CV1OutputControl", "SetCRTC_DPM_State", "TVEncoderControl", > -"TMDS1EncoderControl", "LVDSEncoderControl", "TV1OutputControl", > -"EnableScaler", "BlankCRTC", "EnableCRTC", "GetPixelClock", > -"EnableVGA_Render", "EnableVGA_Access", "SetCRTC_Timing", > -"SetCRTC_OverScan", "SetCRTC_Replication", "SelectCRTC_Source", > -"EnableGraphSurfaces", "UpdateCRTC_DoubleBufferRegisters", > -"LUT_AutoFill", "EnableHW_IconCursor", "GetMemoryClock", > -"GetEngineClock", "SetCRTC_UsingDTDTiming", "TVBootUpStdPinDetection", > -"DFP2OutputControl", "VRAM_BlockDetectionByStrap", "MemoryCleanUp", > -"ReadEDIDFromHWAssistedI2C", "WriteOneByteToHWAssistedI2C", > -"ReadHWAssistedI2CStatus", "SpeedFanControl", "PowerConnectorDetection", > -"MC_Synchronization", "ComputeMemoryEnginePLL", "MemoryRefreshConversion", > -"VRAM_GetCurrentInfoBlock", "DynamicMemorySettings", "MemoryTraining", > -"EnableLVDS_SS", "DFP1OutputControl", "SetVoltage", "CRT1OutputControl", > -"CRT2OutputControl", "SetupHWAssistedI2CStatus", "ClockSource", > -"MemoryDeviceInit", "EnableYUV", > -}; > - > -#define ATOM_IO_NAMES_CNT 5 > -static char *atom_io_names[ATOM_IO_NAMES_CNT] = { > -"MM", "PLL", "MC", "PCIE", "PCIE PORT", > -}; > - > -#else > - > -#define ATOM_OP_NAMES_CNT 0 > -#define ATOM_TABLE_NAMES_CNT 0 > -#define ATOM_IO_NAMES_CNT 0 > - > -#endif > - > -#endif > diff --git a/hw/display/atom-types.h b/hw/display/atom-types.h > deleted file mode 100644 > index 1125b866cd..0000000000 > --- a/hw/display/atom-types.h > +++ /dev/null > @@ -1,42 +0,0 @@ > -/* > - * Copyright 2008 Red Hat 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. > - * > - * Author: Dave Airlie > - */ > - > -#ifndef ATOM_TYPES_H > -#define ATOM_TYPES_H > - > -/* sync atom types to kernel types */ > - > -typedef uint16_t USHORT; > -typedef uint32_t ULONG; > -typedef uint8_t UCHAR; > - > - > -#ifndef ATOM_BIG_ENDIAN > -#if defined(__BIG_ENDIAN) > -#define ATOM_BIG_ENDIAN 1 > -#else > -#define ATOM_BIG_ENDIAN 0 > -#endif > -#endif > -#endif > diff --git a/hw/display/atom.h b/hw/display/atom.h > deleted file mode 100644 > index 364b895e7e..0000000000 > --- a/hw/display/atom.h > +++ /dev/null > @@ -1,160 +0,0 @@ > -/* > - * Copyright 2008 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. > - * > - * Author: Stanislaw Skowronek > - */ > - > -#ifndef ATOM_H > -#define ATOM_H > - > -#include > - > -#define ATOM_BIOS_MAGIC 0xAA55 > -#define ATOM_ATI_MAGIC_PTR 0x30 > -#define ATOM_ATI_MAGIC " 761295520" > -#define ATOM_ROM_TABLE_PTR 0x48 > - > -#define ATOM_ROM_MAGIC "ATOM" > -#define ATOM_ROM_MAGIC_PTR 4 > - > -#define ATOM_ROM_MSG_PTR 0x10 > -#define ATOM_ROM_CMD_PTR 0x1E > -#define ATOM_ROM_DATA_PTR 0x20 > - > -#define ATOM_CMD_INIT 0 > -#define ATOM_CMD_SETSCLK 0x0A > -#define ATOM_CMD_SETMCLK 0x0B > -#define ATOM_CMD_SETPCLK 0x0C > -#define ATOM_CMD_SPDFANCNTL 0x39 > - > -#define ATOM_DATA_FWI_PTR 0xC > -#define ATOM_DATA_IIO_PTR 0x32 > - > -#define ATOM_FWI_DEFSCLK_PTR 8 > -#define ATOM_FWI_DEFMCLK_PTR 0xC > -#define ATOM_FWI_MAXSCLK_PTR 0x24 > -#define ATOM_FWI_MAXMCLK_PTR 0x28 > - > -#define ATOM_CT_SIZE_PTR 0 > -#define ATOM_CT_WS_PTR 4 > -#define ATOM_CT_PS_PTR 5 > -#define ATOM_CT_PS_MASK 0x7F > -#define ATOM_CT_CODE_PTR 6 > - > -#define ATOM_OP_CNT 123 > -#define ATOM_OP_EOT 91 > - > -#define ATOM_CASE_MAGIC 0x63 > -#define ATOM_CASE_END 0x5A5A > - > -#define ATOM_ARG_REG 0 > -#define ATOM_ARG_PS 1 > -#define ATOM_ARG_WS 2 > -#define ATOM_ARG_FB 3 > -#define ATOM_ARG_ID 4 > -#define ATOM_ARG_IMM 5 > -#define ATOM_ARG_PLL 6 > -#define ATOM_ARG_MC 7 > - > -#define ATOM_SRC_DWORD 0 > -#define ATOM_SRC_WORD0 1 > -#define ATOM_SRC_WORD8 2 > -#define ATOM_SRC_WORD16 3 > -#define ATOM_SRC_BYTE0 4 > -#define ATOM_SRC_BYTE8 5 > -#define ATOM_SRC_BYTE16 6 > -#define ATOM_SRC_BYTE24 7 > - > -#define ATOM_WS_QUOTIENT 0x40 > -#define ATOM_WS_REMAINDER 0x41 > -#define ATOM_WS_DATAPTR 0x42 > -#define ATOM_WS_SHIFT 0x43 > -#define ATOM_WS_OR_MASK 0x44 > -#define ATOM_WS_AND_MASK 0x45 > -#define ATOM_WS_FB_WINDOW 0x46 > -#define ATOM_WS_ATTRIBUTES 0x47 > -#define ATOM_WS_REGPTR 0x48 > - > -#define ATOM_IIO_NOP 0 > -#define ATOM_IIO_START 1 > -#define ATOM_IIO_READ 2 > -#define ATOM_IIO_WRITE 3 > -#define ATOM_IIO_CLEAR 4 > -#define ATOM_IIO_SET 5 > -#define ATOM_IIO_MOVE_INDEX 6 > -#define ATOM_IIO_MOVE_ATTR 7 > -#define ATOM_IIO_MOVE_DATA 8 > -#define ATOM_IIO_END 9 > - > -#define ATOM_IO_MM 0 > -#define ATOM_IO_PCI 1 > -#define ATOM_IO_SYSIO 2 > -#define ATOM_IO_IIO 0x80 > - > -struct card_info { > - struct drm_device *dev; > - void (* reg_write)(struct card_info *, uint32_t, uint32_t); /* > filled by driver */ > - uint32_t (* reg_read)(struct card_info *, uint32_t); /* > filled by driver */ > - void (* ioreg_write)(struct card_info *, uint32_t, uint32_t); > /* filled by driver */ > - uint32_t (* ioreg_read)(struct card_info *, uint32_t); > /* filled by driver */ > - void (* mc_write)(struct card_info *, uint32_t, uint32_t); /* > filled by driver */ > - uint32_t (* mc_read)(struct card_info *, uint32_t); /* > filled by driver */ > - void (* pll_write)(struct card_info *, uint32_t, uint32_t); /* > filled by driver */ > - uint32_t (* pll_read)(struct card_info *, uint32_t); /* > filled by driver */ > -}; > - > -struct atom_context { > - struct card_info *card; > - struct mutex mutex; > - struct mutex scratch_mutex; > - void *bios; > - uint32_t cmd_table, data_table; > - uint16_t *iio; > - > - uint16_t data_block; > - uint32_t fb_base; > - uint32_t divmul[2]; > - uint16_t io_attr; > - uint16_t reg_block; > - uint8_t shift; > - int cs_equal, cs_above; > - int io_mode; > - uint32_t *scratch; > - int scratch_size_bytes; > -}; > - > -extern int atom_debug; > - > -struct atom_context *atom_parse(struct card_info *, void *); > -int atom_execute_table(struct atom_context *, int, uint32_t *); > -int atom_execute_table_scratch_unlocked(struct atom_context *, int, > uint32_t *); > -int atom_asic_init(struct atom_context *); > -void atom_destroy(struct atom_context *); > -bool atom_parse_data_header(struct atom_context *ctx, int index, uint16_t > *size, > - uint8_t *frev, uint8_t *crev, uint16_t > *data_start); > -bool atom_parse_cmd_header(struct atom_context *ctx, int index, > - uint8_t *frev, uint8_t *crev); > -int atom_allocate_fb_scratch(struct atom_context *ctx); > -#include "atom-types.h" > -#include "atombios.h" > -#include "ObjectID.h" > - > -#endif > diff --git a/hw/display/atombios.h b/hw/display/atombios.h > deleted file mode 100644 > index 4b86e8b450..0000000000 > --- a/hw/display/atombios.h > +++ /dev/null > @@ -1,7981 +0,0 @@ > -/* > - * Copyright 2006-2007 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. > - */ > - > - > -/****************************************************************************/ > > -/*Portion I: Definitions shared between VBIOS and Driver > */ > -/********************************************************** > ******************/ > - > - > -#ifndef _ATOMBIOS_H > -#define _ATOMBIOS_H > - > -#define ATOM_VERSION_MAJOR 0x00020000 > -#define ATOM_VERSION_MINOR 0x00000002 > - > -#define ATOM_HEADER_VERSION (ATOM_VERSION_MAJOR | ATOM_VERSION_MINOR) > - > -/* Endianness should be specified before inclusion, > - * default to little endian > - */ > -#ifndef ATOM_BIG_ENDIAN > -#error Endian not specified > -#endif > - > -#ifdef _H2INC > - #ifndef ULONG > - typedef unsigned long ULONG; > - #endif > - > - #ifndef UCHAR > - typedef unsigned char UCHAR; > - #endif > - > - #ifndef USHORT > - typedef unsigned short USHORT; > - #endif > -#endif > - > -#define ATOM_DAC_A 0 > -#define ATOM_DAC_B 1 > -#define ATOM_EXT_DAC 2 > - > -#define ATOM_CRTC1 0 > -#define ATOM_CRTC2 1 > -#define ATOM_CRTC3 2 > -#define ATOM_CRTC4 3 > -#define ATOM_CRTC5 4 > -#define ATOM_CRTC6 5 > -#define ATOM_CRTC_INVALID 0xFF > - > -#define ATOM_DIGA 0 > -#define ATOM_DIGB 1 > - > -#define ATOM_PPLL1 0 > -#define ATOM_PPLL2 1 > -#define ATOM_DCPLL 2 > -#define ATOM_PPLL0 2 > -#define ATOM_PPLL3 3 > - > -#define ATOM_EXT_PLL1 8 > -#define ATOM_EXT_PLL2 9 > -#define ATOM_EXT_CLOCK 10 > -#define ATOM_PPLL_INVALID 0xFF > - > -#define ENCODER_REFCLK_SRC_P1PLL 0 > -#define ENCODER_REFCLK_SRC_P2PLL 1 > -#define ENCODER_REFCLK_SRC_DCPLL 2 > -#define ENCODER_REFCLK_SRC_EXTCLK 3 > -#define ENCODER_REFCLK_SRC_INVALID 0xFF > - > -#define ATOM_SCALER1 0 > -#define ATOM_SCALER2 1 > - > -#define ATOM_SCALER_DISABLE 0 > -#define ATOM_SCALER_CENTER 1 > -#define ATOM_SCALER_EXPANSION 2 > -#define ATOM_SCALER_MULTI_EX 3 > - > -#define ATOM_DISABLE 0 > -#define ATOM_ENABLE 1 > -#define ATOM_LCD_BLOFF (ATOM_DISABLE+2) > -#define ATOM_LCD_BLON (ATOM_ENABLE+2) > -#define ATOM_LCD_BL_BRIGHTNESS_CONTROL (ATOM_ENABLE+3) > -#define ATOM_LCD_SELFTEST_START > (ATOM_DISABLE+5) > -#define ATOM_LCD_SELFTEST_STOP > (ATOM_ENABLE+5) > -#define ATOM_ENCODER_INIT > (ATOM_DISABLE+7) > -#define ATOM_INIT > (ATOM_DISABLE+7) > -#define ATOM_GET_STATUS (ATOM_DISABLE+8) > - > -#define ATOM_BLANKING 1 > -#define ATOM_BLANKING_OFF 0 > - > -#define ATOM_CURSOR1 0 > -#define ATOM_CURSOR2 1 > - > -#define ATOM_ICON1 0 > -#define ATOM_ICON2 1 > - > -#define ATOM_CRT1 0 > -#define ATOM_CRT2 1 > - > -#define ATOM_TV_NTSC 1 > -#define ATOM_TV_NTSCJ 2 > -#define ATOM_TV_PAL 3 > -#define ATOM_TV_PALM 4 > -#define ATOM_TV_PALCN 5 > -#define ATOM_TV_PALN 6 > -#define ATOM_TV_PAL60 7 > -#define ATOM_TV_SECAM 8 > -#define ATOM_TV_CV 16 > - > -#define ATOM_DAC1_PS2 1 > -#define ATOM_DAC1_CV 2 > -#define ATOM_DAC1_NTSC 3 > -#define ATOM_DAC1_PAL 4 > - > -#define ATOM_DAC2_PS2 ATOM_DAC1_PS2 > -#define ATOM_DAC2_CV ATOM_DAC1_CV > -#define ATOM_DAC2_NTSC ATOM_DAC1_NTSC > -#define ATOM_DAC2_PAL ATOM_DAC1_PAL > - > -#define ATOM_PM_ON 0 > -#define ATOM_PM_STANDBY 1 > -#define ATOM_PM_SUSPEND 2 > -#define ATOM_PM_OFF 3 > - > -/* Bit0:{=0:single, =1:dual}, > - Bit1 {=0:666RGB, =1:888RGB}, > - Bit2:3:{Grey level} > - Bit4:{=0:LDI format for RGB888, =1 FPDI format for RGB888}*/ > - > -#define ATOM_PANEL_MISC_DUAL 0x00000001 > -#define ATOM_PANEL_MISC_888RGB 0x00000002 > -#define ATOM_PANEL_MISC_GREY_LEVEL 0x0000000C > -#define ATOM_PANEL_MISC_FPDI 0x00000010 > -#define ATOM_PANEL_MISC_GREY_LEVEL_SHIFT 2 > -#define ATOM_PANEL_MISC_SPATIAL 0x00000020 > -#define ATOM_PANEL_MISC_TEMPORAL 0x00000040 > -#define ATOM_PANEL_MISC_API_ENABLED 0x00000080 > - > - > -#define MEMTYPE_DDR1 "DDR1" > -#define MEMTYPE_DDR2 "DDR2" > -#define MEMTYPE_DDR3 "DDR3" > -#define MEMTYPE_DDR4 "DDR4" > - > -#define ASIC_BUS_TYPE_PCI "PCI" > -#define ASIC_BUS_TYPE_AGP "AGP" > -#define ASIC_BUS_TYPE_PCIE "PCI_EXPRESS" > - > -/* Maximum size of that FireGL flag string */ > - > -#define ATOM_FIREGL_FLAG_STRING "FGL" //Flag used to > enable FireGL Support > -#define ATOM_MAX_SIZE_OF_FIREGL_FLAG_STRING 3 //sizeof( > ATOM_FIREGL_FLAG_STRING ) > - > -#define ATOM_FAKE_DESKTOP_STRING "DSK" //Flag used to > enable mobile ASIC on Desktop > -#define ATOM_MAX_SIZE_OF_FAKE_DESKTOP_STRING > ATOM_MAX_SIZE_OF_FIREGL_FLAG_STRING > - > -#define ATOM_M54T_FLAG_STRING "M54T" //Flag used to > enable M54T Support > -#define ATOM_MAX_SIZE_OF_M54T_FLAG_STRING 4 //sizeof( > ATOM_M54T_FLAG_STRING ) > - > -#define HW_ASSISTED_I2C_STATUS_FAILURE 2 > -#define HW_ASSISTED_I2C_STATUS_SUCCESS 1 > - > -#pragma pack(1) /* BIOS data must > use byte alignment */ > - > -/* Define offset to location of ROM header. */ > - > -#define OFFSET_TO_POINTER_TO_ATOM_ROM_HEADER 0x00000048L > -#define OFFSET_TO_ATOM_ROM_IMAGE_SIZE > 0x00000002L > - > -#define OFFSET_TO_ATOMBIOS_ASIC_BUS_MEM_TYPE 0x94 > -#define MAXSIZE_OF_ATOMBIOS_ASIC_BUS_MEM_TYPE 20 /* including the > terminator 0x0! */ > -#define OFFSET_TO_GET_ATOMBIOS_STRINGS_NUMBER 0x002f > -#define OFFSET_TO_GET_ATOMBIOS_STRINGS_START 0x006e > - > -/* Common header for all ROM Data tables. > - Every table pointed _ATOM_MASTER_DATA_TABLE has this common header. > - And the pointer actually points to this header. */ > - > -typedef struct _ATOM_COMMON_TABLE_HEADER > -{ > - USHORT usStructureSize; > - UCHAR ucTableFormatRevision; /*Change it when the Parser is not > backward compatible */ > - UCHAR ucTableContentRevision; /*Change it only when the table needs > to change but the firmware */ > - /*Image can't be updated, while Driver > needs to carry the new table! */ > -}ATOM_COMMON_TABLE_HEADER; > - > -/****************************************************************************/ > > -// Structure stores the ROM header. > -/****************************************************************************/ > > -typedef struct _ATOM_ROM_HEADER > -{ > - ATOM_COMMON_TABLE_HEADER sHeader; > - UCHAR uaFirmWareSignature[4]; /*Signature to distinguish > between Atombios and non-atombios, > - atombios should init it as "ATOM", > don't change the position */ > - USHORT usBiosRuntimeSegmentAddress; > - USHORT usProtectedModeInfoOffset; > - USHORT usConfigFilenameOffset; > - USHORT usCRC_BlockOffset; > - USHORT usBIOS_BootupMessageOffset; > - USHORT usInt10Offset; > - USHORT usPciBusDevInitCode; > - USHORT usIoBaseAddress; > - USHORT usSubsystemVendorID; > - USHORT usSubsystemID; > - USHORT usPCI_InfoOffset; > - USHORT usMasterCommandTableOffset; /*Offset for SW to get all command > table offsets, Don't change the position */ > - USHORT usMasterDataTableOffset; /*Offset for SW to get all data table > offsets, Don't change the position */ > - UCHAR ucExtendedFunctionCode; > - UCHAR ucReserved; > -}ATOM_ROM_HEADER; > - > -/*==============================Command Table > Portion==================================== */ > - > -#ifdef UEFI_BUILD > - #define UTEMP USHORT > - #define USHORT void* > -#endif > - > -/****************************************************************************/ > > -// Structures used in Command.mtb > -/****************************************************************************/ > > -typedef struct _ATOM_MASTER_LIST_OF_COMMAND_TABLES{ > - USHORT ASIC_Init; //Function Table, used > by various SW components,latest version 1.1 > - USHORT GetDisplaySurfaceSize; //Atomic Table, Used by > Bios when enabling HW ICON > - USHORT ASIC_RegistersInit; //Atomic Table, > indirectly used by various SW components,called from ASIC_Init > - USHORT VRAM_BlockVenderDetection; //Atomic Table, used > only by Bios > - USHORT DIGxEncoderControl; > //Only used by Bios > - USHORT MemoryControllerInit; //Atomic Table, > indirectly used by various SW components,called from ASIC_Init > - USHORT EnableCRTCMemReq; //Function > Table,directly used by various SW components,latest version 2.1 > - USHORT MemoryParamAdjust; > //Atomic Table, indirectly used by various > SW components,called from SetMemoryClock if needed > - USHORT DVOEncoderControl; //Function > Table,directly used by various SW components,latest version 1.2 > - USHORT GPIOPinControl; > //Atomic Table, only used by > Bios > - USHORT SetEngineClock; //Function > Table,directly used by various SW components,latest version 1.1 > - USHORT SetMemoryClock; //Function > Table,directly used by various SW components,latest version 1.1 > - USHORT SetPixelClock; //Function > Table,directly used by various SW components,latest version 1.2 > - USHORT EnableDispPowerGating; //Atomic Table, > indirectly used by various SW components,called from ASIC_Init > - USHORT ResetMemoryDLL; //Atomic Table, > indirectly used by various SW components,called from SetMemoryClock > - USHORT ResetMemoryDevice; //Atomic Table, > indirectly used by various SW components,called from SetMemoryClock > - USHORT MemoryPLLInit; //Atomic Table, used > only by Bios > - USHORT AdjustDisplayPll; > //Atomic Table, used by various SW > componentes. > - USHORT AdjustMemoryController; //Atomic Table, > indirectly used by various SW components,called from SetMemoryClock > > - USHORT EnableASIC_StaticPwrMgt; //Atomic Table, only > used by Bios > - USHORT SetUniphyInstance; //Atomic Table, only > used by Bios > - USHORT DAC_LoadDetection; //Atomic Table, > directly used by various SW components,latest version 1.2 > - USHORT LVTMAEncoderControl; //Atomic Table,directly > used by various SW components,latest version 1.3 > - USHORT HW_Misc_Operation; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT DAC1EncoderControl; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT DAC2EncoderControl; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT DVOOutputControl; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT CV1OutputControl; //Atomic Table, Atomic > Table, Obsolete from Ry6xx, use DAC2 Output instead > - USHORT GetConditionalGoldenSetting; //Only used by Bios > - USHORT TVEncoderControl; //Function > Table,directly used by various SW components,latest version 1.1 > - USHORT PatchMCSetting; //only used by BIOS > - USHORT MC_SEQ_Control; //only used by BIOS > - USHORT Gfx_Harvesting; //Atomic Table, > Obsolete from Ry6xx, Now only used by BIOS for GFX harvesting > - USHORT EnableScaler; //Atomic Table, used > only by Bios > - USHORT BlankCRTC; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT EnableCRTC; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT GetPixelClock; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT EnableVGA_Render; //Function > Table,directly used by various SW components,latest version 1.1 > - USHORT GetSCLKOverMCLKRatio; //Atomic Table, only > used by Bios > - USHORT SetCRTC_Timing; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT SetCRTC_OverScan; //Atomic Table, used by > various SW components,latest version 1.1 > - USHORT SetCRTC_Replication; //Atomic Table, used > only by Bios > - USHORT SelectCRTC_Source; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT EnableGraphSurfaces; //Atomic Table, used > only by Bios > - USHORT UpdateCRTC_DoubleBufferRegisters; //Atomic > Table, used only by Bios > - USHORT LUT_AutoFill; //Atomic Table, only > used by Bios > - USHORT EnableHW_IconCursor; //Atomic Table, only > used by Bios > - USHORT GetMemoryClock; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT GetEngineClock; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT SetCRTC_UsingDTDTiming; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT ExternalEncoderControl; //Atomic Table, > directly used by various SW components,latest version 2.1 > - USHORT LVTMAOutputControl; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT VRAM_BlockDetectionByStrap; //Atomic Table, used > only by Bios > - USHORT MemoryCleanUp; //Atomic Table, only > used by Bios > - USHORT ProcessI2cChannelTransaction; //Function Table,only > used by Bios > - USHORT WriteOneByteToHWAssistedI2C; //Function > Table,indirectly used by various SW components > - USHORT ReadHWAssistedI2CStatus; //Atomic Table, > indirectly used by various SW components > - USHORT SpeedFanControl; //Function > Table,indirectly used by various SW components,called from ASIC_Init > - USHORT PowerConnectorDetection; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT MC_Synchronization; //Atomic Table, > indirectly used by various SW components,called from SetMemoryClock > - USHORT ComputeMemoryEnginePLL; //Atomic Table, > indirectly used by various SW components,called from SetMemory/EngineClock > - USHORT MemoryRefreshConversion; //Atomic Table, > indirectly used by various SW components,called from SetMemory or > SetEngineClock > - USHORT VRAM_GetCurrentInfoBlock; //Atomic Table, used > only by Bios > - USHORT DynamicMemorySettings; //Atomic Table, > indirectly used by various SW components,called from SetMemoryClock > - USHORT MemoryTraining; //Atomic Table, used > only by Bios > - USHORT EnableSpreadSpectrumOnPPLL; //Atomic Table, > directly used by various SW components,latest version 1.2 > - USHORT TMDSAOutputControl; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT SetVoltage; //Function > Table,directly and/or indirectly used by various SW components,latest > version 1.1 > - USHORT DAC1OutputControl; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT DAC2OutputControl; //Atomic Table, > directly used by various SW components,latest version 1.1 > - USHORT ComputeMemoryClockParam; //Function Table,only > used by Bios, obsolete soon.Switch to use "ReadEDIDFromHWAssistedI2C" > - USHORT ClockSource; //Atomic Table, > indirectly used by various SW components,called from ASIC_Init > - USHORT MemoryDeviceInit; //Atomic Table, > indirectly used by various SW components,called from SetMemoryClock > - USHORT GetDispObjectInfo; //Atomic Table, > indirectly used by various SW components,called from EnableVGARender > - USHORT DIG1EncoderControl; //Atomic Table,directly > used by various SW components,latest version 1.1 > - USHORT DIG2EncoderControl; //Atomic Table,directly > used by various SW components,latest version 1.1 > - USHORT DIG1TransmitterControl; //Atomic Table,directly > used by various SW components,latest version 1.1 > - USHORT DIG2TransmitterControl; //Atomic > Table,directly used by various SW components,latest version 1.1 > - USHORT ProcessAuxChannelTransaction; > //Function Table,only used by Bios > - USHORT DPEncoderService; > //Function Table,only used by Bios > - USHORT GetVoltageInfo; //Function Table,only > used by Bios since SI > -}ATOM_MASTER_LIST_OF_COMMAND_TABLES; > - > -// For backward compatible > -#define ReadEDIDFromHWAssistedI2C > ProcessI2cChannelTransaction > -#define DPTranslatorControl DIG2EncoderControl > -#define UNIPHYTransmitterControl > DIG1TransmitterControl > -#define LVTMATransmitterControl > DIG2TransmitterControl > -#define SetCRTC_DPM_State > GetConditionalGoldenSetting > -#define ASIC_StaticPwrMgtStatusChange SetUniphyInstance > -#define HPDInterruptService ReadHWAssistedI2CStatus > -#define EnableVGA_Access GetSCLKOverMCLKRatio > -#define EnableYUV GetDispObjectInfo > > -#define DynamicClockGating EnableDispPowerGating > -#define SetupHWAssistedI2CStatus ComputeMemoryClockParam > - > -#define TMDSAEncoderControl PatchMCSetting > -#define LVDSEncoderControl MC_SEQ_Control > -#define LCD1OutputControl HW_Misc_Operation > -#define TV1OutputControl Gfx_Harvesting > - > -typedef struct _ATOM_MASTER_COMMAND_TABLE > -{ > - ATOM_COMMON_TABLE_HEADER sHeader; > - ATOM_MASTER_LIST_OF_COMMAND_TABLES ListOfCommandTables; > -}ATOM_MASTER_COMMAND_TABLE; > - > -/****************************************************************************/ > > -// Structures used in every command table > -/****************************************************************************/ > > -typedef struct _ATOM_TABLE_ATTRIBUTE > -{ > -#if ATOM_BIG_ENDIAN > - USHORT UpdatedByUtility:1; //[15]=Table updated by utility flag > - USHORT PS_SizeInBytes:7; //[14:8]=Size of parameter space in > Bytes (multiple of a dword), > - USHORT WS_SizeInBytes:8; //[7:0]=Size of workspace in Bytes > (in multiple of a dword), > -#else > - USHORT WS_SizeInBytes:8; //[7:0]=Size of workspace in Bytes > (in multiple of a dword), > - USHORT PS_SizeInBytes:7; //[14:8]=Size of parameter space in > Bytes (multiple of a dword), > - USHORT UpdatedByUtility:1; //[15]=Table updated by utility flag > -#endif > -}ATOM_TABLE_ATTRIBUTE; > - > -typedef union _ATOM_TABLE_ATTRIBUTE_ACCESS > -{ > - ATOM_TABLE_ATTRIBUTE sbfAccess; > - USHORT susAccess; > -}ATOM_TABLE_ATTRIBUTE_ACCESS; > - > -/****************************************************************************/ > > -// Common header for all command tables. > -// Every table pointed by _ATOM_MASTER_COMMAND_TABLE has this common > header. > -// And the pointer actually points to this header. > -/****************************************************************************/ > > -typedef struct _ATOM_COMMON_ROM_COMMAND_TABLE_HEADER > -{ > - ATOM_COMMON_TABLE_HEADER CommonHeader; > - ATOM_TABLE_ATTRIBUTE TableAttribute; > -}ATOM_COMMON_ROM_COMMAND_TABLE_HEADER; > - > -/****************************************************************************/ > > -// Structures used by ComputeMemoryEnginePLLTable > -/****************************************************************************/ > > -#define COMPUTE_MEMORY_PLL_PARAM 1 > -#define COMPUTE_ENGINE_PLL_PARAM 2 > -#define ADJUST_MC_SETTING_PARAM 3 > - > -/****************************************************************************/ > > -// Structures used by AdjustMemoryControllerTable > -/****************************************************************************/ > > -typedef struct _ATOM_ADJUST_MEMORY_CLOCK_FREQ > -{ > -#if ATOM_BIG_ENDIAN > - ULONG ulPointerReturnFlag:1; // BYTE_3[7]=1 - Return the pointer > to the right Data Block; BYTE_3[7]=0 - Program the right Data Block > - ULONG ulMemoryModuleNumber:7; // BYTE_3[6:0] > - ULONG ulClockFreq:24; > -#else > - ULONG ulClockFreq:24; > - ULONG ulMemoryModuleNumber:7; // BYTE_3[6:0] > - ULONG ulPointerReturnFlag:1; // BYTE_3[7]=1 - Return the pointer > to the right Data Block; BYTE_3[7]=0 - Program the right Data Block > -#endif > -}ATOM_ADJUST_MEMORY_CLOCK_FREQ; > -#define POINTER_RETURN_FLAG 0x80 > - > -typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS > -{ > - ULONG ulClock; //When returen, it's the re-calculated clock > based on given Fb_div Post_Div and ref_div > - UCHAR ucAction; //0:reserved //1:Memory //2:Engine > - UCHAR ucReserved; //may expand to return larger Fbdiv later > - UCHAR ucFbDiv; //return value > - UCHAR ucPostDiv; //return value > -}COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS; > - > -typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V2 > -{ > - ULONG ulClock; //When return, [23:0] return real clock > - UCHAR ucAction; //0:reserved;COMPUTE_MEMORY_P > LL_PARAM:Memory;COMPUTE_ENGINE_PLL_PARAM:Engine. it return ref_div to be > written to register > - USHORT usFbDiv; //return Feedback value to be written > to register > - UCHAR ucPostDiv; //return post div to be written to register > -}COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V2; > -#define COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_PS_ALLOCATION > COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS > - > - > -#define SET_CLOCK_FREQ_MASK 0x00FFFFFF //Clock > change tables only take bit [23:0] as the requested clock value > -#define USE_NON_BUS_CLOCK_MASK 0x01000000 //Applicable > to both memory and engine clock change, when set, it uses another clock as > the temporary clock (engine uses memory and vice versa) > -#define USE_MEMORY_SELF_REFRESH_MASK 0x02000000 //Only > applicable to memory clock change, when set, using memory self refresh > during clock transition > -#define SKIP_INTERNAL_MEMORY_PARAMETER_CHANGE 0x04000000 //Only > applicable to memory clock change, when set, the table will skip predefined > internal memory parameter change > -#define FIRST_TIME_CHANGE_CLOCK > 0x08000000 //Applicable to both memory > and engine clock change,when set, it means this is 1st time to change clock > after ASIC bootup > -#define SKIP_SW_PROGRAM_PLL > 0x10000000 //Applicable to both > memory and engine clock change, when set, it means the table will not > program SPLL/MPLL > -#define USE_SS_ENABLED_PIXEL_CLOCK USE_NON_BUS_CLOCK_MASK > - > -#define b3USE_NON_BUS_CLOCK_MASK 0x01 //Applicable > to both memory and engine clock change, when set, it uses another clock as > the temporary clock (engine uses memory and vice versa) > -#define b3USE_MEMORY_SELF_REFRESH 0x02 //Only > applicable to memory clock change, when set, using memory self refresh > during clock transition > -#define b3SKIP_INTERNAL_MEMORY_PARAMETER_CHANGE 0x04 //Only > applicable to memory clock change, when set, the table will skip predefined > internal memory parameter change > -#define b3FIRST_TIME_CHANGE_CLOCK > 0x08 //Applicable to both memory and > engine clock change,when set, it means this is 1st time to change clock > after ASIC bootup > -#define b3SKIP_SW_PROGRAM_PLL > 0x10 //Applicable > to both memory and engine clock change, when set, it means the table will > not program SPLL/MPLL > - > -typedef struct _ATOM_COMPUTE_CLOCK_FREQ > -{ > -#if ATOM_BIG_ENDIAN > - ULONG ulComputeClockFlag:8; // =1: > COMPUTE_MEMORY_PLL_PARAM, =2: COMPUTE_ENGINE_PLL_PARAM > - ULONG ulClockFreq:24; // in unit of 10kHz > -#else > - ULONG ulClockFreq:24; // in unit of 10kHz > - ULONG ulComputeClockFlag:8; // =1: > COMPUTE_MEMORY_PLL_PARAM, =2: COMPUTE_ENGINE_PLL_PARAM > -#endif > -}ATOM_COMPUTE_CLOCK_FREQ; > - > -typedef struct _ATOM_S_MPLL_FB_DIVIDER > -{ > - USHORT usFbDivFrac; > - USHORT usFbDiv; > -}ATOM_S_MPLL_FB_DIVIDER; > - > -typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V3 > -{ > - union > - { > - ATOM_COMPUTE_CLOCK_FREQ ulClock; //Input Parameter > - ULONG ulClockParams; //ULONG access for BE > - ATOM_S_MPLL_FB_DIVIDER ulFbDiv; //Output Parameter > - }; > - UCHAR ucRefDiv; //Output Parameter > - UCHAR ucPostDiv; //Output Parameter > - UCHAR ucCntlFlag; //Output Parameter > - UCHAR ucReserved; > -}COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V3; > - > -// ucCntlFlag > -#define ATOM_PLL_CNTL_FLAG_PLL_POST_DIV_EN 1 > -#define ATOM_PLL_CNTL_FLAG_MPLL_VCO_MODE 2 > -#define ATOM_PLL_CNTL_FLAG_FRACTION_DISABLE 4 > -#define ATOM_PLL_CNTL_FLAG_SPLL_ISPARE_9 > 8 > - > - > -// V4 are only used for APU which PLL outside GPU > -typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V4 > -{ > -#if ATOM_BIG_ENDIAN > - ULONG ucPostDiv:8; //return parameter: post divider which is > used to program to register directly > - ULONG ulClock:24; //Input= target clock, output = actual clock > -#else > - ULONG ulClock:24; //Input= target clock, output = actual clock > - ULONG ucPostDiv:8; //return parameter: post divider which is > used to program to register directly > -#endif > -}COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V4; > - > -typedef struct _COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V5 > -{ > - union > - { > - ATOM_COMPUTE_CLOCK_FREQ ulClock; //Input Parameter > - ULONG ulClockParams; //ULONG access for BE > - ATOM_S_MPLL_FB_DIVIDER ulFbDiv; //Output Parameter > - }; > - UCHAR ucRefDiv; //Output Parameter > - UCHAR ucPostDiv; //Output Parameter > - union > - { > - UCHAR ucCntlFlag; //Output Flags > - UCHAR ucInputFlag; //Input Flags. > ucInputFlag[0] - Strobe(1)/Performance(0) mode > - }; > - UCHAR ucReserved; > -}COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V5; > - > - > -typedef struct _COMPUTE_GPU_CLOCK_INPUT_PARAMETERS_V1_6 > -{ > - ATOM_COMPUTE_CLOCK_FREQ ulClock; //Input Parameter > - ULONG ulReserved[2]; > -}COMPUTE_GPU_CLOCK_INPUT_PARAMETERS_V1_6; > - > -//ATOM_COMPUTE_CLOCK_FREQ.ulComputeClockFlag > -#define COMPUTE_GPUCLK_INPUT_FLAG_CLK_TYPE_MASK 0x0f > -#define COMPUTE_GPUCLK_INPUT_FLAG_DEFAULT_GPUCLK 0x00 > -#define COMPUTE_GPUCLK_INPUT_FLAG_SCLK 0x01 > - > -typedef struct _COMPUTE_GPU_CLOCK_OUTPUT_PARAMETERS_V1_6 > -{ > - COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V4 ulClock; //Output > Parameter: ucPostDiv=DFS divider > - ATOM_S_MPLL_FB_DIVIDER ulFbDiv; //Output Parameter: PLL FB > divider > - UCHAR ucPllRefDiv; //Output Parameter: PLL ref > divider > - UCHAR ucPllPostDiv; //Output Parameter: PLL post > divider > - UCHAR ucPllCntlFlag; //Output Flags: control flag > - UCHAR ucReserved; > -}COMPUTE_GPU_CLOCK_OUTPUT_PARAMETERS_V1_6; > - > -//ucPllCntlFlag > -#define SPLL_CNTL_FLAG_VCO_MODE_MASK 0x03 > - > - > -// ucInputFlag > -#define ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN 1 // 1-StrobeMode, > 0-PerformanceMode > - > -// use for ComputeMemoryClockParamTable > -typedef struct _COMPUTE_MEMORY_CLOCK_PARAM_PARAMETERS_V2_1 > -{ > - union > - { > - ULONG ulClock; > - ATOM_S_MPLL_FB_DIVIDER ulFbDiv; > //Output:UPPER_WORD=FB_DIV_INTEGER, LOWER_WORD=FB_DIV_FRAC shl > (16-FB_FRACTION_BITS) > - }; > - UCHAR ucDllSpeed; //Output > - UCHAR ucPostDiv; //Output > - union{ > - UCHAR ucInputFlag; //Input : > ATOM_PLL_INPUT_FLAG_PLL_STROBE_MODE_EN: 1-StrobeMode, 0-PerformanceMode > - UCHAR ucPllCntlFlag; //Output: > - }; > - UCHAR ucBWCntl; > -}COMPUTE_MEMORY_CLOCK_PARAM_PARAMETERS_V2_1; > - > -// definition of ucInputFlag > -#define MPLL_INPUT_FLAG_STROBE_MODE_EN 0x01 > -// definition of ucPllCntlFlag > -#define MPLL_CNTL_FLAG_VCO_MODE_MASK 0x03 > -#define MPLL_CNTL_FLAG_BYPASS_DQ_PLL 0x04 > -#define MPLL_CNTL_FLAG_QDR_ENABLE 0x08 > -#define MPLL_CNTL_FLAG_AD_HALF_RATE 0x10 > - > -//MPLL_CNTL_FLAG_BYPASS_AD_PLL has a wrong name, should be BYPASS_DQ_PLL > -#define MPLL_CNTL_FLAG_BYPASS_AD_PLL 0x04 > - > -typedef struct _DYNAMICE_MEMORY_SETTINGS_PARAMETER > -{ > - ATOM_COMPUTE_CLOCK_FREQ ulClock; > - ULONG ulReserved[2]; > -}DYNAMICE_MEMORY_SETTINGS_PARAMETER; > - > -typedef struct _DYNAMICE_ENGINE_SETTINGS_PARAMETER > -{ > - ATOM_COMPUTE_CLOCK_FREQ ulClock; > - ULONG ulMemoryClock; > - ULONG ulReserved; > -}DYNAMICE_ENGINE_SETTINGS_PARAMETER; > - > -/****************************************************************************/ > <