]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amd/display: Change offset_to_id to reflect what id_to_offset returns
authorMurton Liu <murton.liu@amd.com>
Tue, 2 Jul 2019 15:32:19 +0000 (11:32 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 18 Jul 2019 19:27:25 +0000 (14:27 -0500)
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>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/gpio/dcn20/hw_translate_dcn20.c
drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c

index b393cc13298a8142a1c49d145f19516b9f6dad8d..915e896e0e91bc69b6714fac0f08df179ae62454 100644 (file)
@@ -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:
index 5b02db13eb2afbe43c83049ac05b38b38ce9a0b5..a7bc3ee5dfec3b318ca9d82a0e5d0c1e7f66407f 100644 (file)
@@ -150,14 +150,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);