lkml.org 
[lkml]   [2023]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 01/27] drm/amd: Delay removal of the firmware framebuffer
    Date
    Removing the firmware framebuffer from the driver means that even
    if the driver doesn't support the IP blocks in a GPU it will no
    longer be functional after the driver fails to initialize.

    This change will ensure that unsupported IP blocks at least cause
    the driver to work with the EFI framebuffer.

    Cc: stable@vger.kernel.org
    Suggested-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    ---
    v3->v4:
    * Drop all R-b/A-b tags.
    * Move to after early IP init instead
    ---
    drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 8 ++++++++
    drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 6 ------
    2 files changed, 8 insertions(+), 6 deletions(-)

    diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
    index 9a1a5c2864a0..cdb681398a99 100644
    --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
    +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
    @@ -37,6 +37,7 @@
    #include <linux/pci-p2pdma.h>

    #include <drm/drm_atomic_helper.h>
    +#include <drm/drm_aperture.h>
    #include <drm/drm_probe_helper.h>
    #include <drm/amdgpu_drm.h>
    #include <linux/vgaarb.h>
    @@ -89,6 +90,8 @@ MODULE_FIRMWARE("amdgpu/navi12_gpu_info.bin");
    #define AMDGPU_MAX_RETRY_LIMIT 2
    #define AMDGPU_RETRY_SRIOV_RESET(r) ((r) == -EBUSY || (r) == -ETIMEDOUT || (r) == -EINVAL)

    +static const struct drm_driver amdgpu_kms_driver;
    +
    const char *amdgpu_asic_name[] = {
    "TAHITI",
    "PITCAIRN",
    @@ -3685,6 +3688,11 @@ int amdgpu_device_init(struct amdgpu_device *adev,
    if (r)
    return r;

    + /* Get rid of things like offb */
    + r = drm_aperture_remove_conflicting_pci_framebuffers(adev->pdev, &amdgpu_kms_driver);
    + if (r)
    + return r;
    +
    /* Enable TMZ based on IP_VERSION */
    amdgpu_gmc_tmz_set(adev);

    diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
    index db7e34eacc35..b9f14ec9edb2 100644
    --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
    +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
    @@ -23,7 +23,6 @@
    */

    #include <drm/amdgpu_drm.h>
    -#include <drm/drm_aperture.h>
    #include <drm/drm_drv.h>
    #include <drm/drm_gem.h>
    #include <drm/drm_vblank.h>
    @@ -2096,11 +2095,6 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
    }
    #endif

    - /* Get rid of things like offb */
    - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &amdgpu_kms_driver);
    - if (ret)
    - return ret;
    -
    adev = devm_drm_dev_alloc(&pdev->dev, &amdgpu_kms_driver, typeof(*adev), ddev);
    if (IS_ERR(adev))
    return PTR_ERR(adev);
    --
    2.34.1
    \
     
     \ /
      Last update: 2023-03-26 23:26    [W:3.991 / U:0.636 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site