aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3073-drm-amd-display-Change-offset_to_id-to-reflect-what-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3073-drm-amd-display-Change-offset_to_id-to-reflect-what-.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3073-drm-amd-display-Change-offset_to_id-to-reflect-what-.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3073-drm-amd-display-Change-offset_to_id-to-reflect-what-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3073-drm-amd-display-Change-offset_to_id-to-reflect-what-.patch
new file mode 100644
index 00000000..ee289099
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3073-drm-amd-display-Change-offset_to_id-to-reflect-what-.patch
@@ -0,0 +1,55 @@
+From 8f645d48793e10259b3241b106579288bb143a56 Mon Sep 17 00:00:00 2001
+From: Murton Liu <murton.liu@amd.com>
+Date: Tue, 2 Jul 2019 11:32:19 -0400
+Subject: [PATCH 3073/4256] drm/amd/display: Change offset_to_id to reflect
+ what id_to_offset returns
+
+id_to_offset does not point to the same reg offset that offset_to_id checks for,
+causing unintended asserts
+
+Signed-off-by: Murton Liu <murton.liu@amd.com>
+Reviewed-by: Aric Cyr <Aric.Cyr@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+---
+ .../drm/amd/display/dc/gpio/dcn20/hw_translate_dcn20.c | 2 +-
+ drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c | 10 +++-------
+ 2 files changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/gpio/dcn20/hw_translate_dcn20.c b/drivers/gpu/drm/amd/display/dc/gpio/dcn20/hw_translate_dcn20.c
+index b393cc13298a..915e896e0e91 100644
+--- a/drivers/gpu/drm/amd/display/dc/gpio/dcn20/hw_translate_dcn20.c
++++ b/drivers/gpu/drm/amd/display/dc/gpio/dcn20/hw_translate_dcn20.c
+@@ -71,7 +71,7 @@ static bool offset_to_id(
+ {
+ switch (offset) {
+ /* GENERIC */
+- case REG(DC_GENERICA):
++ case REG(DC_GPIO_GENERIC_A):
+ *id = GPIO_ID_GENERIC;
+ switch (mask) {
+ case DC_GPIO_GENERIC_A__DC_GPIO_GENERICA_A_MASK:
+diff --git a/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c b/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
+index 937478bac796..80f938e68285 100644
+--- a/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
++++ b/drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
+@@ -148,14 +148,10 @@ struct gpio *dal_gpio_service_create_generic_mux(
+ uint32_t en;
+ struct gpio *generic;
+
+- if (mask == 1)
+- en = GPIO_GENERIC_A;
+- else if (mask == 0x00000100L)
+- en = GPIO_GENERIC_B;
+- else
++ if (!service->translate.funcs->offset_to_id(offset, mask, &id, &en)) {
++ ASSERT_CRITICAL(false);
+ return NULL;
+-
+- id = GPIO_ID_GENERIC;
++ }
+
+ generic = dal_gpio_create(
+ service, id, en, GPIO_PIN_OUTPUT_STATE_DEFAULT);
+--
+2.17.1
+