[PATCH 1/4] drm/amdgpu: add S/G display parameter
Christian König
ckoenig.leichtzumerken at gmail.com
Thu Feb 9 14:37:02 UTC 2023
Am 09.02.23 um 15:11 schrieb Alex Deucher:
> Some users have reported flickerng with S/G display. We've
> tried extensively to reproduce and debug the issue on a wide
> variety of platform configurations (DRAM bandwidth, etc.) and
> a variety of monitors, but so far have not been able to. We
> disabled S/G display on a number of platforms to address this
> but that leads to failure to pin framebuffers errors and
> blank displays when there is memory pressure or no displays
> at all on systems with limited carveout (e.g., Chromebooks).
> Add a option to disable this as a debugging option as a
> way for users to disable this, depending on their use case,
> and for us to help debug this further.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
Acked-by: Christian König <christian.koenig at amd.com> for the series.
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 11 +++++++++++
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 +++
> 3 files changed, 15 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 64f9cc6fbbf0..187597024c1e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -242,6 +242,7 @@ extern int amdgpu_num_kcq;
>
> #define AMDGPU_VCNFW_LOG_SIZE (32 * 1024)
> extern int amdgpu_vcnfw_log;
> +extern int amdgpu_sg_display;
>
> extern int amdgpu_force_sg_display;
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> index fa3788bb6a2c..afa5c39c9c74 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> @@ -188,6 +188,7 @@ int amdgpu_num_kcq = -1;
> int amdgpu_smartshift_bias;
> int amdgpu_use_xgmi_p2p = 1;
> int amdgpu_vcnfw_log;
> +int amdgpu_sg_display = -1; /* auto */
>
> static void amdgpu_drv_delayed_reset_work_handler(struct work_struct *work);
>
> @@ -933,6 +934,16 @@ module_param_named(num_kcq, amdgpu_num_kcq, int, 0444);
> MODULE_PARM_DESC(vcnfw_log, "Enable vcnfw log(0 = disable (default value), 1 = enable)");
> module_param_named(vcnfw_log, amdgpu_vcnfw_log, int, 0444);
>
> +/**
> + * DOC: sg_display (int)
> + * Disable S/G (scatter/gather) display (i.e., display from system memory).
> + * This option is only relevant on APUs. Set this option to 0 to disable
> + * S/G display if you experience flickering or other issues under memory
> + * pressure and report the issue.
> + */
> +MODULE_PARM_DESC(sg_display, "S/G Display (-1 = auto (default), 0 = disable)");
> +module_param_named(sg_display, amdgpu_sg_display, int, 0444);
> +
> /**
> * DOC: smu_pptable_id (int)
> * Used to override pptable id. id = 0 use VBIOS pptable.
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index bf06875e6a01..1babdfaa789a 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -1576,6 +1576,9 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
> }
> break;
> }
> + if (init_data.flags.gpu_vm_support &&
> + (amdgpu_sg_display == 0))
> + adev->mode_info.gpu_vm_support = false;
>
> if (init_data.flags.gpu_vm_support)
> adev->mode_info.gpu_vm_support = true;
More information about the amd-gfx
mailing list