162 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/*3 * Copyright (C) 2013-2014 Red Hat4 * Author: Rob Clark <robdclark@gmail.com>5 *6 * Copyright (c) 2014,2017 The Linux Foundation. All rights reserved.7 */8 9#include "adreno_gpu.h"10 11static const struct adreno_info a5xx_gpus[] = {12 {13 .chip_ids = ADRENO_CHIP_IDS(0x05000500),14 .family = ADRENO_5XX,15 .revn = 505,16 .fw = {17 [ADRENO_FW_PM4] = "a530_pm4.fw",18 [ADRENO_FW_PFP] = "a530_pfp.fw",19 },20 .gmem = (SZ_128K + SZ_8K),21 .inactive_period = DRM_MSM_INACTIVE_PERIOD,22 .quirks = ADRENO_QUIRK_TWO_PASS_USE_WFI |23 ADRENO_QUIRK_LMLOADKILL_DISABLE,24 .init = a5xx_gpu_init,25 }, {26 .chip_ids = ADRENO_CHIP_IDS(0x05000600),27 .family = ADRENO_5XX,28 .revn = 506,29 .fw = {30 [ADRENO_FW_PM4] = "a530_pm4.fw",31 [ADRENO_FW_PFP] = "a530_pfp.fw",32 },33 .gmem = (SZ_128K + SZ_8K),34 /*35 * Increase inactive period to 250 to avoid bouncing36 * the GDSC which appears to make it grumpy37 */38 .inactive_period = 250,39 .quirks = ADRENO_QUIRK_TWO_PASS_USE_WFI |40 ADRENO_QUIRK_LMLOADKILL_DISABLE,41 .init = a5xx_gpu_init,42 .zapfw = "a506_zap.mdt",43 }, {44 .chip_ids = ADRENO_CHIP_IDS(0x05000800),45 .family = ADRENO_5XX,46 .revn = 508,47 .fw = {48 [ADRENO_FW_PM4] = "a530_pm4.fw",49 [ADRENO_FW_PFP] = "a530_pfp.fw",50 },51 .gmem = (SZ_128K + SZ_8K),52 /*53 * Increase inactive period to 250 to avoid bouncing54 * the GDSC which appears to make it grumpy55 */56 .inactive_period = 250,57 .quirks = ADRENO_QUIRK_LMLOADKILL_DISABLE,58 .init = a5xx_gpu_init,59 .zapfw = "a508_zap.mdt",60 }, {61 .chip_ids = ADRENO_CHIP_IDS(0x05000900),62 .family = ADRENO_5XX,63 .revn = 509,64 .fw = {65 [ADRENO_FW_PM4] = "a530_pm4.fw",66 [ADRENO_FW_PFP] = "a530_pfp.fw",67 },68 .gmem = (SZ_256K + SZ_16K),69 /*70 * Increase inactive period to 250 to avoid bouncing71 * the GDSC which appears to make it grumpy72 */73 .inactive_period = 250,74 .quirks = ADRENO_QUIRK_LMLOADKILL_DISABLE,75 .init = a5xx_gpu_init,76 /* Adreno 509 uses the same ZAP as 512 */77 .zapfw = "a512_zap.mdt",78 }, {79 .chip_ids = ADRENO_CHIP_IDS(0x05010000),80 .family = ADRENO_5XX,81 .revn = 510,82 .fw = {83 [ADRENO_FW_PM4] = "a530_pm4.fw",84 [ADRENO_FW_PFP] = "a530_pfp.fw",85 },86 .gmem = SZ_256K,87 /*88 * Increase inactive period to 250 to avoid bouncing89 * the GDSC which appears to make it grumpy90 */91 .inactive_period = 250,92 .init = a5xx_gpu_init,93 }, {94 .chip_ids = ADRENO_CHIP_IDS(0x05010200),95 .family = ADRENO_5XX,96 .revn = 512,97 .fw = {98 [ADRENO_FW_PM4] = "a530_pm4.fw",99 [ADRENO_FW_PFP] = "a530_pfp.fw",100 },101 .gmem = (SZ_256K + SZ_16K),102 /*103 * Increase inactive period to 250 to avoid bouncing104 * the GDSC which appears to make it grumpy105 */106 .inactive_period = 250,107 .quirks = ADRENO_QUIRK_LMLOADKILL_DISABLE,108 .init = a5xx_gpu_init,109 .zapfw = "a512_zap.mdt",110 }, {111 .chip_ids = ADRENO_CHIP_IDS(112 0x05030002,113 0x05030004114 ),115 .family = ADRENO_5XX,116 .revn = 530,117 .fw = {118 [ADRENO_FW_PM4] = "a530_pm4.fw",119 [ADRENO_FW_PFP] = "a530_pfp.fw",120 [ADRENO_FW_GPMU] = "a530v3_gpmu.fw2",121 },122 .gmem = SZ_1M,123 /*124 * Increase inactive period to 250 to avoid bouncing125 * the GDSC which appears to make it grumpy126 */127 .inactive_period = 250,128 .quirks = ADRENO_QUIRK_TWO_PASS_USE_WFI |129 ADRENO_QUIRK_FAULT_DETECT_MASK,130 .init = a5xx_gpu_init,131 .zapfw = "a530_zap.mdt",132 }, {133 .chip_ids = ADRENO_CHIP_IDS(0x05040001),134 .family = ADRENO_5XX,135 .revn = 540,136 .fw = {137 [ADRENO_FW_PM4] = "a530_pm4.fw",138 [ADRENO_FW_PFP] = "a530_pfp.fw",139 [ADRENO_FW_GPMU] = "a540_gpmu.fw2",140 },141 .gmem = SZ_1M,142 /*143 * Increase inactive period to 250 to avoid bouncing144 * the GDSC which appears to make it grumpy145 */146 .inactive_period = 250,147 .quirks = ADRENO_QUIRK_LMLOADKILL_DISABLE,148 .init = a5xx_gpu_init,149 .zapfw = "a540_zap.mdt",150 }151};152DECLARE_ADRENO_GPULIST(a5xx);153 154MODULE_FIRMWARE("qcom/a530_pm4.fw");155MODULE_FIRMWARE("qcom/a530_pfp.fw");156MODULE_FIRMWARE("qcom/a530v3_gpmu.fw2");157MODULE_FIRMWARE("qcom/a530_zap.mdt");158MODULE_FIRMWARE("qcom/a530_zap.b00");159MODULE_FIRMWARE("qcom/a530_zap.b01");160MODULE_FIRMWARE("qcom/a530_zap.b02");161MODULE_FIRMWARE("qcom/a540_gpmu.fw2");162