From: Aleksandar Markovic <aleksandar.m.mail@gmail.com>
To: "aaron.zakhrov@gmail.com" <aaron.zakhrov@gmail.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
"kraxel@redhat.com" <kraxel@redhat.com>
Subject: [RFC 09/10] Clean up Radeon Header files
Date: Wed, 27 Nov 2019 10:55:29 +0100 [thread overview]
Message-ID: <CAL1e-=hY5b73ocsG9xiUFVuJYL36ch4=AyqjPvmtaXRUi730pQ@mail.gmail.com> (raw)
In-Reply-To: <20191126124433.860-6-aaron.zakhrov@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 52981 bytes --]
On Tuesday, November 26, 2019, <aaron.zakhrov@gmail.com> wrote:
> From: Aaron Dominick <aaron.zakhrov@gmail.com>
>
> ---
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 <linux/types.h>
> -
> -#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;
> -
> -/****************************************************************************/
> <
[-- Attachment #2: Type: text/html, Size: 64378 bytes --]
next prev parent reply other threads:[~2019-11-27 9:56 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-26 12:44 [RFC 00/10] R300 QEMU device V2 aaron.zakhrov
2019-11-26 12:44 ` [RFC 05/10] Add Radeon kernel headers. Will clean up later aaron.zakhrov
2019-11-26 12:44 ` [RFC 06/10] Fix MC STATUS resgister aaron.zakhrov
2019-11-26 12:44 ` [RFC 07/10] R300 fixes aaron.zakhrov
2019-11-26 12:44 ` [RFC 08/10] Got GPU init working. Stops at probing display aaron.zakhrov
2019-11-26 12:44 ` [RFC 09/10] Clean up Radeon Header files aaron.zakhrov
2019-11-27 9:55 ` Aleksandar Markovic [this message]
2019-11-27 14:42 ` BALATON Zoltan
2019-11-26 14:19 ` [RFC 00/10] R300 QEMU device V2 Daniel P. Berrangé
2019-11-27 15:00 ` Philippe Mathieu-Daudé
2019-11-27 15:05 ` Daniel P. Berrangé
2019-11-27 15:13 ` Philippe Mathieu-Daudé
2019-11-27 15:54 ` Daniel P. Berrangé
2019-11-27 16:12 ` Gerd Hoffmann
2019-11-27 16:32 ` Daniel P. Berrangé
2019-11-28 6:51 ` Aaron Zakhrov
2019-11-29 18:03 ` BALATON Zoltan
2019-11-27 16:17 ` BALATON Zoltan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAL1e-=hY5b73ocsG9xiUFVuJYL36ch4=AyqjPvmtaXRUi730pQ@mail.gmail.com' \
--to=aleksandar.m.mail@gmail.com \
--cc=aaron.zakhrov@gmail.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).