aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0084-drm-amdgpu-extract-pcie-helpers-to-common-header.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0084-drm-amdgpu-extract-pcie-helpers-to-common-header.patch')
-rw-r--r--common/recipes-kernel/linux/files/0084-drm-amdgpu-extract-pcie-helpers-to-common-header.patch417
1 files changed, 0 insertions, 417 deletions
diff --git a/common/recipes-kernel/linux/files/0084-drm-amdgpu-extract-pcie-helpers-to-common-header.patch b/common/recipes-kernel/linux/files/0084-drm-amdgpu-extract-pcie-helpers-to-common-header.patch
deleted file mode 100644
index cd04d00d..00000000
--- a/common/recipes-kernel/linux/files/0084-drm-amdgpu-extract-pcie-helpers-to-common-header.patch
+++ /dev/null
@@ -1,417 +0,0 @@
-From 986a3342190c5e0526a88ec408d1b23682171fc2 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher@amd.com>
-Date: Wed, 11 Nov 2015 20:18:52 -0500
-Subject: [PATCH 0084/1110] drm/amdgpu: extract pcie helpers to common header
-
-These will be used by multiple powerplay drivers and
-other IP modules.
-
-Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/include/amd_pcie.h | 50 ++++++++
- drivers/gpu/drm/amd/include/amd_pcie_helpers.h | 141 ++++++++++++++++++++++
- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 1 +
- drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h | 2 -
- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 112 +----------------
- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 24 ----
- 6 files changed, 193 insertions(+), 137 deletions(-)
- create mode 100644 drivers/gpu/drm/amd/include/amd_pcie.h
- create mode 100644 drivers/gpu/drm/amd/include/amd_pcie_helpers.h
-
-diff --git a/drivers/gpu/drm/amd/include/amd_pcie.h b/drivers/gpu/drm/amd/include/amd_pcie.h
-new file mode 100644
-index 0000000..7c2a916
---- /dev/null
-+++ b/drivers/gpu/drm/amd/include/amd_pcie.h
-@@ -0,0 +1,50 @@
-+/*
-+ * Copyright 2015 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.
-+ */
-+
-+#ifndef __AMD_PCIE_H__
-+#define __AMD_PCIE_H__
-+
-+/* Following flags shows PCIe link speed supported in driver which are decided by chipset and ASIC */
-+#define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN1 0x00010000
-+#define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2 0x00020000
-+#define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3 0x00040000
-+#define CAIL_PCIE_LINK_SPEED_SUPPORT_MASK 0xFFFF0000
-+#define CAIL_PCIE_LINK_SPEED_SUPPORT_SHIFT 16
-+
-+/* Following flags shows PCIe link speed supported by ASIC H/W.*/
-+#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN1 0x00000001
-+#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN2 0x00000002
-+#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN3 0x00000004
-+#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_MASK 0x0000FFFF
-+#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_SHIFT 0
-+
-+/* Following flags shows PCIe lane width switch supported in driver which are decided by chipset and ASIC */
-+#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X1 0x00010000
-+#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X2 0x00020000
-+#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X4 0x00040000
-+#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X8 0x00080000
-+#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X12 0x00100000
-+#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X16 0x00200000
-+#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X32 0x00400000
-+#define CAIL_PCIE_LINK_WIDTH_SUPPORT_SHIFT 16
-+
-+#endif
-diff --git a/drivers/gpu/drm/amd/include/amd_pcie_helpers.h b/drivers/gpu/drm/amd/include/amd_pcie_helpers.h
-new file mode 100644
-index 0000000..2cfdf05
---- /dev/null
-+++ b/drivers/gpu/drm/amd/include/amd_pcie_helpers.h
-@@ -0,0 +1,141 @@
-+/*
-+ * Copyright 2015 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.
-+ */
-+
-+#ifndef __AMD_PCIE_HELPERS_H__
-+#define __AMD_PCIE_HELPERS_H__
-+
-+#include "amd_pcie.h"
-+
-+static inline bool is_pcie_gen3_supported(uint32_t pcie_link_speed_cap)
-+{
-+ if (pcie_link_speed_cap & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3)
-+ return 1;
-+
-+ return 0;
-+}
-+
-+static inline bool is_pcie_gen2_supported(uint32_t pcie_link_speed_cap)
-+{
-+ if (pcie_link_speed_cap & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2)
-+ return 1;
-+
-+ return 0;
-+}
-+
-+/* Get the new PCIE speed given the ASIC PCIE Cap and the NewState's requested PCIE speed*/
-+static inline uint16_t get_pcie_gen_support(uint32_t pcie_link_speed_cap,
-+ uint16_t ns_pcie_gen)
-+{
-+ uint32_t asic_pcie_link_speed_cap = (pcie_link_speed_cap &
-+ CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_MASK);
-+ uint32_t sys_pcie_link_speed_cap = (pcie_link_speed_cap &
-+ CAIL_PCIE_LINK_SPEED_SUPPORT_MASK);
-+
-+ switch (asic_pcie_link_speed_cap) {
-+ case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN1:
-+ return PP_PCIEGen1;
-+
-+ case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN2:
-+ return PP_PCIEGen2;
-+
-+ case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN3:
-+ return PP_PCIEGen3;
-+
-+ default:
-+ if (is_pcie_gen3_supported(sys_pcie_link_speed_cap) &&
-+ (ns_pcie_gen == PP_PCIEGen3)) {
-+ return PP_PCIEGen3;
-+ } else if (is_pcie_gen2_supported(sys_pcie_link_speed_cap) &&
-+ ((ns_pcie_gen == PP_PCIEGen3) || (ns_pcie_gen == PP_PCIEGen2))) {
-+ return PP_PCIEGen2;
-+ }
-+ }
-+
-+ return PP_PCIEGen1;
-+}
-+
-+static inline uint16_t get_pcie_lane_support(uint32_t pcie_lane_width_cap,
-+ uint16_t ns_pcie_lanes)
-+{
-+ int i, j;
-+ uint16_t new_pcie_lanes = ns_pcie_lanes;
-+ uint16_t pcie_lanes[7] = {1, 2, 4, 8, 12, 16, 32};
-+
-+ switch (pcie_lane_width_cap) {
-+ case 0:
-+ printk(KERN_ERR "No valid PCIE lane width reported");
-+ break;
-+ case CAIL_PCIE_LINK_WIDTH_SUPPORT_X1:
-+ new_pcie_lanes = 1;
-+ break;
-+ case CAIL_PCIE_LINK_WIDTH_SUPPORT_X2:
-+ new_pcie_lanes = 2;
-+ break;
-+ case CAIL_PCIE_LINK_WIDTH_SUPPORT_X4:
-+ new_pcie_lanes = 4;
-+ break;
-+ case CAIL_PCIE_LINK_WIDTH_SUPPORT_X8:
-+ new_pcie_lanes = 8;
-+ break;
-+ case CAIL_PCIE_LINK_WIDTH_SUPPORT_X12:
-+ new_pcie_lanes = 12;
-+ break;
-+ case CAIL_PCIE_LINK_WIDTH_SUPPORT_X16:
-+ new_pcie_lanes = 16;
-+ break;
-+ case CAIL_PCIE_LINK_WIDTH_SUPPORT_X32:
-+ new_pcie_lanes = 32;
-+ break;
-+ default:
-+ for (i = 0; i < 7; i++) {
-+ if (ns_pcie_lanes == pcie_lanes[i]) {
-+ if (pcie_lane_width_cap & (0x10000 << i)) {
-+ break;
-+ } else {
-+ for (j = i - 1; j >= 0; j--) {
-+ if (pcie_lane_width_cap & (0x10000 << j)) {
-+ new_pcie_lanes = pcie_lanes[j];
-+ break;
-+ }
-+ }
-+
-+ if (j < 0) {
-+ for (j = i + 1; j < 7; j++) {
-+ if (pcie_lane_width_cap & (0x10000 << j)) {
-+ new_pcie_lanes = pcie_lanes[j];
-+ break;
-+ }
-+ }
-+ if (j > 7)
-+ printk(KERN_ERR "Cannot find a valid PCIE lane width!");
-+ }
-+ }
-+ break;
-+ }
-+ }
-+ break;
-+ }
-+
-+ return new_pcie_lanes;
-+}
-+
-+#endif
-diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c
-index adcc2f0..ccbdbef 100644
---- a/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c
-+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c
-@@ -49,6 +49,7 @@
- #include "tonga_pptable.h"
- #include "pp_debug.h"
- #include "pp_acpi.h"
-+#include "amd_pcie_helpers.h"
-
- #define VOLTAGE_SCALE 4
- #define SMC_RAM_END 0x40000
-diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h
-index 38dbe49..22d985e 100644
---- a/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h
-+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h
-@@ -339,8 +339,6 @@ enum Fiji_I2CLineID {
- extern int tonga_initializa_dynamic_state_adjustment_rule_settings(struct pp_hwmgr *hwmgr);
- extern int tonga_hwmgr_backend_fini(struct pp_hwmgr *hwmgr);
- extern int tonga_get_mc_microcode_version (struct pp_hwmgr *hwmgr);
--extern uint16_t get_pcie_gen_support(uint32_t pcie_link_speed_cap, uint16_t ns_pcie_gen);
--extern uint16_t get_pcie_lane_support(uint32_t pcie_lane_width_cap, uint16_t ns_pcie_lanes);
-
- #define PP_HOST_TO_SMC_UL(X) cpu_to_be32(X)
- #define PP_SMC_TO_HOST_UL(X) be32_to_cpu(X)
-diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c
-index a9cc786..9442313 100644
---- a/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c
-+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c
-@@ -53,6 +53,7 @@
-
- #include "cgs_linux.h"
- #include "eventmgr.h"
-+#include "amd_pcie_helpers.h"
-
- #define MC_CG_ARB_FREQ_F0 0x0a
- #define MC_CG_ARB_FREQ_F1 0x0b
-@@ -2651,117 +2652,6 @@ static void tonga_setup_pcie_table_entry(
- dpm_table->dpm_levels[index].enabled = 1;
- }
-
--bool is_pcie_gen3_supported(uint32_t pcie_link_speed_cap)
--{
-- if (pcie_link_speed_cap & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3)
-- return 1;
--
-- return 0;
--}
--
--bool is_pcie_gen2_supported(uint32_t pcie_link_speed_cap)
--{
-- if (pcie_link_speed_cap & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2)
-- return 1;
--
-- return 0;
--}
--
--/* Get the new PCIE speed given the ASIC PCIE Cap and the NewState's requested PCIE speed*/
--uint16_t get_pcie_gen_support(uint32_t pcie_link_speed_cap, uint16_t ns_pcie_gen)
--{
-- uint32_t asic_pcie_link_speed_cap = (pcie_link_speed_cap &
-- CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_MASK);
-- uint32_t sys_pcie_link_speed_cap = (pcie_link_speed_cap &
-- CAIL_PCIE_LINK_SPEED_SUPPORT_MASK);
--
-- switch (asic_pcie_link_speed_cap) {
-- case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN1:
-- return PP_PCIEGen1;
--
-- case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN2:
-- return PP_PCIEGen2;
--
-- case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN3:
-- return PP_PCIEGen3;
--
-- default:
-- if (is_pcie_gen3_supported(sys_pcie_link_speed_cap) &&
-- (ns_pcie_gen == PP_PCIEGen3)) {
-- return PP_PCIEGen3;
-- } else if (is_pcie_gen2_supported(sys_pcie_link_speed_cap) &&
-- ((ns_pcie_gen == PP_PCIEGen3) || (ns_pcie_gen == PP_PCIEGen2))) {
-- return PP_PCIEGen2;
-- }
-- }
--
-- return PP_PCIEGen1;
--}
--
--uint16_t get_pcie_lane_support(uint32_t pcie_lane_width_cap, uint16_t ns_pcie_lanes)
--{
-- int i, j;
-- uint16_t new_pcie_lanes = ns_pcie_lanes;
-- uint16_t pcie_lanes[7] = {1, 2, 4, 8, 12, 16, 32};
--
-- switch (pcie_lane_width_cap) {
-- case 0:
-- printk(KERN_ERR "[ powerplay ] No valid PCIE lane width reported by CAIL!");
-- break;
-- case CAIL_PCIE_LINK_WIDTH_SUPPORT_X1:
-- new_pcie_lanes = 1;
-- break;
-- case CAIL_PCIE_LINK_WIDTH_SUPPORT_X2:
-- new_pcie_lanes = 2;
-- break;
-- case CAIL_PCIE_LINK_WIDTH_SUPPORT_X4:
-- new_pcie_lanes = 4;
-- break;
-- case CAIL_PCIE_LINK_WIDTH_SUPPORT_X8:
-- new_pcie_lanes = 8;
-- break;
-- case CAIL_PCIE_LINK_WIDTH_SUPPORT_X12:
-- new_pcie_lanes = 12;
-- break;
-- case CAIL_PCIE_LINK_WIDTH_SUPPORT_X16:
-- new_pcie_lanes = 16;
-- break;
-- case CAIL_PCIE_LINK_WIDTH_SUPPORT_X32:
-- new_pcie_lanes = 32;
-- break;
-- default:
-- for (i = 0; i < 7; i++) {
-- if (ns_pcie_lanes == pcie_lanes[i]) {
-- if (pcie_lane_width_cap & (0x10000 << i)) {
-- break;
-- } else {
-- for (j = i - 1; j >= 0; j--) {
-- if (pcie_lane_width_cap & (0x10000 << j)) {
-- new_pcie_lanes = pcie_lanes[j];
-- break;
-- }
-- }
--
-- if (j < 0) {
-- for (j = i + 1; j < 7; j++) {
-- if (pcie_lane_width_cap & (0x10000 << j)) {
-- new_pcie_lanes = pcie_lanes[j];
-- break;
-- }
-- }
-- if (j > 7)
-- printk(KERN_ERR "[ powerplay ] Cannot find a valid PCIE lane width!");
-- }
-- }
-- break;
-- }
-- }
-- break;
-- }
--
-- return new_pcie_lanes;
--}
--
- static int tonga_setup_default_pcie_tables(struct pp_hwmgr *hwmgr)
- {
- tonga_hwmgr *data = (tonga_hwmgr *)(hwmgr->backend);
-diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h
-index 44b985a..49168d2 100644
---- a/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h
-+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h
-@@ -386,30 +386,6 @@ typedef struct tonga_hwmgr tonga_hwmgr;
-
- #define TONGA_UNUSED_GPIO_PIN 0x7F
-
--/* Following flags shows PCIe link speed supported in driver which are decided by chipset and ASIC */
--#define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN1 0x00010000
--#define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2 0x00020000
--#define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3 0x00040000
--#define CAIL_PCIE_LINK_SPEED_SUPPORT_MASK 0xFFFF0000
--#define CAIL_PCIE_LINK_SPEED_SUPPORT_SHIFT 16
--
--/* Following flags shows PCIe link speed supported by ASIC H/W.*/
--#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN1 0x00000001
--#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN2 0x00000002
--#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN3 0x00000004
--#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_MASK 0x0000FFFF
--#define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_SHIFT 0
--
--/* Following flags shows PCIe lane width switch supported in driver which are decided by chipset and ASIC */
--#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X1 0x00010000
--#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X2 0x00020000
--#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X4 0x00040000
--#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X8 0x00080000
--#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X12 0x00100000
--#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X16 0x00200000
--#define CAIL_PCIE_LINK_WIDTH_SUPPORT_X32 0x00400000
--#define CAIL_PCIE_LINK_WIDTH_SUPPORT_SHIFT 16
--
- #define PP_HOST_TO_SMC_UL(X) cpu_to_be32(X)
- #define PP_SMC_TO_HOST_UL(X) be32_to_cpu(X)
-
---
-2.7.4
-