[PATCH 1/2] drm/amdgpu: switch firmware path for CIK parts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yes, agree, radeon driver uses radeon path, amdgpu uses amdgpu path, which makes sense to me.

The series is Reviewed-by: Chunming Zhou <david1.zhou at amd.com>

Regards,
David Zhou

-----Original Message-----
From: amd-gfx [mailto:amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx] On Behalf Of Alex Deucher
Sent: Tuesday, July 03, 2018 4:32 AM
To: Dave Airlie <airlied at gmail.com>
Cc: Deucher, Alexander <Alexander.Deucher at amd.com>; amd-gfx mailing list <amd-gfx at lists.freedesktop.org>
Subject: Re: [PATCH 1/2] drm/amdgpu: switch firmware path for CIK parts

On Mon, Jul 2, 2018 at 4:12 PM, Dave Airlie <airlied at gmail.com> wrote:
> On 3 July 2018 at 05:36, Alex Deucher <alexdeucher at gmail.com> wrote:
>> Use separate firmware path for amdgpu to avoid conflicts with radeon 
>> on CIK parts.
>>
>
> Won't that cause a chicken and egg problem, new kernel with old 
> firmware package will suddenly start failing, or do we not really care 
> since in theory we don't suppose amdgpu on those parts yet?
>
> Seems like we'd want to fallback to the old paths if possible.

I guess we could fall back, but in most cases the firmware loader will have to timeout first and then most users will assume it's broken anyway.  radeon is still the default with most distros, so I don't think it's super critical.

Alex

>
> Dave.
>
>> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
>> ---
>>  drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c |  8 ++--  
>> drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c | 10 ++---  
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c | 10 ++---
>>  drivers/gpu/drm/amd/amdgpu/ci_dpm.c     | 10 ++---
>>  drivers/gpu/drm/amd/amdgpu/cik_sdma.c   | 24 +++++------
>>  drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c   | 72 ++++++++++++++++-----------------
>>  drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c   |  6 +--
>>  7 files changed, 70 insertions(+), 70 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
>> index e950730f1933..693ec5ea4950 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
>> @@ -314,17 +314,17 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
>>                                         (adev->pdev->revision == 0x81) ||
>>                                         (adev->pdev->device == 0x665f)) {
>>                                         info->is_kicker = true;
>> -                                       strcpy(fw_name, "radeon/bonaire_k_smc.bin");
>> +                                       strcpy(fw_name, 
>> + "amdgpu/bonaire_k_smc.bin");
>>                                 } else {
>> -                                       strcpy(fw_name, "radeon/bonaire_smc.bin");
>> +                                       strcpy(fw_name, 
>> + "amdgpu/bonaire_smc.bin");
>>                                 }
>>                                 break;
>>                         case CHIP_HAWAII:
>>                                 if (adev->pdev->revision == 0x80) {
>>                                         info->is_kicker = true;
>> -                                       strcpy(fw_name, "radeon/hawaii_k_smc.bin");
>> +                                       strcpy(fw_name, 
>> + "amdgpu/hawaii_k_smc.bin");
>>                                 } else {
>> -                                       strcpy(fw_name, "radeon/hawaii_smc.bin");
>> +                                       strcpy(fw_name, 
>> + "amdgpu/hawaii_smc.bin");
>>                                 }
>>                                 break;
>>                         case CHIP_TOPAZ:
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
>> index 0b46ea1c6290..3e70eb61a960 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
>> @@ -53,11 +53,11 @@
>>
>>  /* Firmware Names */
>>  #ifdef CONFIG_DRM_AMDGPU_CIK
>> -#define FIRMWARE_BONAIRE       "radeon/bonaire_uvd.bin"
>> -#define FIRMWARE_KABINI        "radeon/kabini_uvd.bin"
>> -#define FIRMWARE_KAVERI        "radeon/kaveri_uvd.bin"
>> -#define FIRMWARE_HAWAII        "radeon/hawaii_uvd.bin"
>> -#define FIRMWARE_MULLINS       "radeon/mullins_uvd.bin"
>> +#define FIRMWARE_BONAIRE       "amdgpu/bonaire_uvd.bin"
>> +#define FIRMWARE_KABINI        "amdgpu/kabini_uvd.bin"
>> +#define FIRMWARE_KAVERI        "amdgpu/kaveri_uvd.bin"
>> +#define FIRMWARE_HAWAII        "amdgpu/hawaii_uvd.bin"
>> +#define FIRMWARE_MULLINS       "amdgpu/mullins_uvd.bin"
>>  #endif
>>  #define FIRMWARE_TONGA         "amdgpu/tonga_uvd.bin"
>>  #define FIRMWARE_CARRIZO       "amdgpu/carrizo_uvd.bin"
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
>> index b0dcdfd85f5b..6ae1ad7e83b3 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
>> @@ -40,11 +40,11 @@
>>
>>  /* Firmware Names */
>>  #ifdef CONFIG_DRM_AMDGPU_CIK
>> -#define FIRMWARE_BONAIRE       "radeon/bonaire_vce.bin"
>> -#define FIRMWARE_KABINI        "radeon/kabini_vce.bin"
>> -#define FIRMWARE_KAVERI        "radeon/kaveri_vce.bin"
>> -#define FIRMWARE_HAWAII        "radeon/hawaii_vce.bin"
>> -#define FIRMWARE_MULLINS       "radeon/mullins_vce.bin"
>> +#define FIRMWARE_BONAIRE       "amdgpu/bonaire_vce.bin"
>> +#define FIRMWARE_KABINI        "amdgpu/kabini_vce.bin"
>> +#define FIRMWARE_KAVERI        "amdgpu/kaveri_vce.bin"
>> +#define FIRMWARE_HAWAII        "amdgpu/hawaii_vce.bin"
>> +#define FIRMWARE_MULLINS       "amdgpu/mullins_vce.bin"
>>  #endif
>>  #define FIRMWARE_TONGA         "amdgpu/tonga_vce.bin"
>>  #define FIRMWARE_CARRIZO       "amdgpu/carrizo_vce.bin"
>> diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c 
>> b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
>> index 079a5fc9b593..d2469453dca2 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
>> @@ -49,10 +49,10 @@
>>  #include "gmc/gmc_7_1_d.h"
>>  #include "gmc/gmc_7_1_sh_mask.h"
>>
>> -MODULE_FIRMWARE("radeon/bonaire_smc.bin");
>> -MODULE_FIRMWARE("radeon/bonaire_k_smc.bin");
>> -MODULE_FIRMWARE("radeon/hawaii_smc.bin");
>> -MODULE_FIRMWARE("radeon/hawaii_k_smc.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_smc.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_k_smc.bin");
>> +MODULE_FIRMWARE("amdgpu/hawaii_smc.bin");
>> +MODULE_FIRMWARE("amdgpu/hawaii_k_smc.bin");
>>
>>  #define MC_CG_ARB_FREQ_F0           0x0a
>>  #define MC_CG_ARB_FREQ_F1           0x0b
>> @@ -5815,7 +5815,7 @@ static int ci_dpm_init_microcode(struct amdgpu_device *adev)
>>         default: BUG();
>>         }
>>
>> -       snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name);
>> +       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_smc.bin", 
>> + chip_name);
>>         err = request_firmware(&adev->pm.fw, fw_name, adev->dev);
>>         if (err)
>>                 goto out;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c 
>> b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
>> index dbd553a8d584..d0fa2aac2388 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
>> @@ -54,16 +54,16 @@ static void cik_sdma_set_buffer_funcs(struct 
>> amdgpu_device *adev);  static void cik_sdma_set_vm_pte_funcs(struct 
>> amdgpu_device *adev);  static int cik_sdma_soft_reset(void *handle);
>>
>> -MODULE_FIRMWARE("radeon/bonaire_sdma.bin");
>> -MODULE_FIRMWARE("radeon/bonaire_sdma1.bin");
>> -MODULE_FIRMWARE("radeon/hawaii_sdma.bin");
>> -MODULE_FIRMWARE("radeon/hawaii_sdma1.bin");
>> -MODULE_FIRMWARE("radeon/kaveri_sdma.bin");
>> -MODULE_FIRMWARE("radeon/kaveri_sdma1.bin");
>> -MODULE_FIRMWARE("radeon/kabini_sdma.bin");
>> -MODULE_FIRMWARE("radeon/kabini_sdma1.bin");
>> -MODULE_FIRMWARE("radeon/mullins_sdma.bin");
>> -MODULE_FIRMWARE("radeon/mullins_sdma1.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_sdma.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_sdma1.bin");
>> +MODULE_FIRMWARE("amdgpu/hawaii_sdma.bin");
>> +MODULE_FIRMWARE("amdgpu/hawaii_sdma1.bin");
>> +MODULE_FIRMWARE("amdgpu/kaveri_sdma.bin");
>> +MODULE_FIRMWARE("amdgpu/kaveri_sdma1.bin");
>> +MODULE_FIRMWARE("amdgpu/kabini_sdma.bin");
>> +MODULE_FIRMWARE("amdgpu/kabini_sdma1.bin");
>> +MODULE_FIRMWARE("amdgpu/mullins_sdma.bin");
>> +MODULE_FIRMWARE("amdgpu/mullins_sdma1.bin");
>>
>>  u32 amdgpu_cik_gpu_check_soft_reset(struct amdgpu_device *adev);
>>
>> @@ -132,9 +132,9 @@ static int cik_sdma_init_microcode(struct 
>> amdgpu_device *adev)
>>
>>         for (i = 0; i < adev->sdma.num_instances; i++) {
>>                 if (i == 0)
>> -                       snprintf(fw_name, sizeof(fw_name), "radeon/%s_sdma.bin", chip_name);
>> +                       snprintf(fw_name, sizeof(fw_name), 
>> + "amdgpu/%s_sdma.bin", chip_name);
>>                 else
>> -                       snprintf(fw_name, sizeof(fw_name), "radeon/%s_sdma1.bin", chip_name);
>> +                       snprintf(fw_name, sizeof(fw_name), 
>> + "amdgpu/%s_sdma1.bin", chip_name);
>>                 err = request_firmware(&adev->sdma.instance[i].fw, fw_name, adev->dev);
>>                 if (err)
>>                         goto out;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
>> index 42b6144c1fd5..95452c5a9df6 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
>> @@ -57,36 +57,36 @@ static void gfx_v7_0_set_ring_funcs(struct 
>> amdgpu_device *adev);  static void gfx_v7_0_set_irq_funcs(struct 
>> amdgpu_device *adev);  static void gfx_v7_0_set_gds_init(struct 
>> amdgpu_device *adev);
>>
>> -MODULE_FIRMWARE("radeon/bonaire_pfp.bin");
>> -MODULE_FIRMWARE("radeon/bonaire_me.bin");
>> -MODULE_FIRMWARE("radeon/bonaire_ce.bin");
>> -MODULE_FIRMWARE("radeon/bonaire_rlc.bin");
>> -MODULE_FIRMWARE("radeon/bonaire_mec.bin");
>> -
>> -MODULE_FIRMWARE("radeon/hawaii_pfp.bin");
>> -MODULE_FIRMWARE("radeon/hawaii_me.bin");
>> -MODULE_FIRMWARE("radeon/hawaii_ce.bin");
>> -MODULE_FIRMWARE("radeon/hawaii_rlc.bin");
>> -MODULE_FIRMWARE("radeon/hawaii_mec.bin");
>> -
>> -MODULE_FIRMWARE("radeon/kaveri_pfp.bin");
>> -MODULE_FIRMWARE("radeon/kaveri_me.bin");
>> -MODULE_FIRMWARE("radeon/kaveri_ce.bin");
>> -MODULE_FIRMWARE("radeon/kaveri_rlc.bin");
>> -MODULE_FIRMWARE("radeon/kaveri_mec.bin");
>> -MODULE_FIRMWARE("radeon/kaveri_mec2.bin");
>> -
>> -MODULE_FIRMWARE("radeon/kabini_pfp.bin");
>> -MODULE_FIRMWARE("radeon/kabini_me.bin");
>> -MODULE_FIRMWARE("radeon/kabini_ce.bin");
>> -MODULE_FIRMWARE("radeon/kabini_rlc.bin");
>> -MODULE_FIRMWARE("radeon/kabini_mec.bin");
>> -
>> -MODULE_FIRMWARE("radeon/mullins_pfp.bin");
>> -MODULE_FIRMWARE("radeon/mullins_me.bin");
>> -MODULE_FIRMWARE("radeon/mullins_ce.bin");
>> -MODULE_FIRMWARE("radeon/mullins_rlc.bin");
>> -MODULE_FIRMWARE("radeon/mullins_mec.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_pfp.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_me.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_ce.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_rlc.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_mec.bin");
>> +
>> +MODULE_FIRMWARE("amdgpu/hawaii_pfp.bin");
>> +MODULE_FIRMWARE("amdgpu/hawaii_me.bin");
>> +MODULE_FIRMWARE("amdgpu/hawaii_ce.bin");
>> +MODULE_FIRMWARE("amdgpu/hawaii_rlc.bin");
>> +MODULE_FIRMWARE("amdgpu/hawaii_mec.bin");
>> +
>> +MODULE_FIRMWARE("amdgpu/kaveri_pfp.bin");
>> +MODULE_FIRMWARE("amdgpu/kaveri_me.bin");
>> +MODULE_FIRMWARE("amdgpu/kaveri_ce.bin");
>> +MODULE_FIRMWARE("amdgpu/kaveri_rlc.bin");
>> +MODULE_FIRMWARE("amdgpu/kaveri_mec.bin");
>> +MODULE_FIRMWARE("amdgpu/kaveri_mec2.bin");
>> +
>> +MODULE_FIRMWARE("amdgpu/kabini_pfp.bin");
>> +MODULE_FIRMWARE("amdgpu/kabini_me.bin");
>> +MODULE_FIRMWARE("amdgpu/kabini_ce.bin");
>> +MODULE_FIRMWARE("amdgpu/kabini_rlc.bin");
>> +MODULE_FIRMWARE("amdgpu/kabini_mec.bin");
>> +
>> +MODULE_FIRMWARE("amdgpu/mullins_pfp.bin");
>> +MODULE_FIRMWARE("amdgpu/mullins_me.bin");
>> +MODULE_FIRMWARE("amdgpu/mullins_ce.bin");
>> +MODULE_FIRMWARE("amdgpu/mullins_rlc.bin");
>> +MODULE_FIRMWARE("amdgpu/mullins_mec.bin");
>>
>>  static const struct amdgpu_gds_reg_offset amdgpu_gds_reg_offset[] =  
>> { @@ -925,7 +925,7 @@ static int gfx_v7_0_init_microcode(struct 
>> amdgpu_device *adev)
>>         default: BUG();
>>         }
>>
>> -       snprintf(fw_name, sizeof(fw_name), "radeon/%s_pfp.bin", chip_name);
>> +       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_pfp.bin", 
>> + chip_name);
>>         err = request_firmware(&adev->gfx.pfp_fw, fw_name, adev->dev);
>>         if (err)
>>                 goto out;
>> @@ -933,7 +933,7 @@ static int gfx_v7_0_init_microcode(struct amdgpu_device *adev)
>>         if (err)
>>                 goto out;
>>
>> -       snprintf(fw_name, sizeof(fw_name), "radeon/%s_me.bin", chip_name);
>> +       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_me.bin", 
>> + chip_name);
>>         err = request_firmware(&adev->gfx.me_fw, fw_name, adev->dev);
>>         if (err)
>>                 goto out;
>> @@ -941,7 +941,7 @@ static int gfx_v7_0_init_microcode(struct amdgpu_device *adev)
>>         if (err)
>>                 goto out;
>>
>> -       snprintf(fw_name, sizeof(fw_name), "radeon/%s_ce.bin", chip_name);
>> +       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ce.bin", 
>> + chip_name);
>>         err = request_firmware(&adev->gfx.ce_fw, fw_name, adev->dev);
>>         if (err)
>>                 goto out;
>> @@ -949,7 +949,7 @@ static int gfx_v7_0_init_microcode(struct amdgpu_device *adev)
>>         if (err)
>>                 goto out;
>>
>> -       snprintf(fw_name, sizeof(fw_name), "radeon/%s_mec.bin", chip_name);
>> +       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec.bin", 
>> + chip_name);
>>         err = request_firmware(&adev->gfx.mec_fw, fw_name, adev->dev);
>>         if (err)
>>                 goto out;
>> @@ -958,7 +958,7 @@ static int gfx_v7_0_init_microcode(struct amdgpu_device *adev)
>>                 goto out;
>>
>>         if (adev->asic_type == CHIP_KAVERI) {
>> -               snprintf(fw_name, sizeof(fw_name), "radeon/%s_mec2.bin", chip_name);
>> +               snprintf(fw_name, sizeof(fw_name), 
>> + "amdgpu/%s_mec2.bin", chip_name);
>>                 err = request_firmware(&adev->gfx.mec2_fw, fw_name, adev->dev);
>>                 if (err)
>>                         goto out;
>> @@ -967,7 +967,7 @@ static int gfx_v7_0_init_microcode(struct amdgpu_device *adev)
>>                         goto out;
>>         }
>>
>> -       snprintf(fw_name, sizeof(fw_name), "radeon/%s_rlc.bin", chip_name);
>> +       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_rlc.bin", 
>> + chip_name);
>>         err = request_firmware(&adev->gfx.rlc_fw, fw_name, adev->dev);
>>         if (err)
>>                 goto out;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
>> index 7147bfe25a23..2c2b93d4d63b 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
>> @@ -47,8 +47,8 @@ static void gmc_v7_0_set_gmc_funcs(struct 
>> amdgpu_device *adev);  static void gmc_v7_0_set_irq_funcs(struct 
>> amdgpu_device *adev);  static int gmc_v7_0_wait_for_idle(void 
>> *handle);
>>
>> -MODULE_FIRMWARE("radeon/bonaire_mc.bin");
>> -MODULE_FIRMWARE("radeon/hawaii_mc.bin");
>> +MODULE_FIRMWARE("amdgpu/bonaire_mc.bin");
>> +MODULE_FIRMWARE("amdgpu/hawaii_mc.bin");
>>  MODULE_FIRMWARE("amdgpu/topaz_mc.bin");
>>
>>  static const u32 golden_settings_iceland_a11[] = @@ -150,7 +150,7 @@ 
>> static int gmc_v7_0_init_microcode(struct amdgpu_device *adev)
>>         if (adev->asic_type == CHIP_TOPAZ)
>>                 snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mc.bin", chip_name);
>>         else
>> -               snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name);
>> +               snprintf(fw_name, sizeof(fw_name), 
>> + "amdgpu/%s_mc.bin", chip_name);
>>
>>         err = request_firmware(&adev->gmc.fw, fw_name, adev->dev);
>>         if (err)
>> --
>> 2.13.6
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
_______________________________________________
amd-gfx mailing list
amd-gfx at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux