diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 33 | 
1 files changed, 27 insertions, 6 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 7419ea8a388b..1e2cc9d68a05 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -74,9 +74,11 @@   * - 3.28.0 - Add AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES   * - 3.29.0 - Add AMDGPU_IB_FLAG_RESET_GDS_MAX_WAVE_ID   * - 3.30.0 - Add AMDGPU_SCHED_OP_CONTEXT_PRIORITY_OVERRIDE. + * - 3.31.0 - Add support for per-flip tiling attribute changes with DC + * - 3.32.0 - Add syncobj timeline support to AMDGPU_CS.   */  #define KMS_DRIVER_MAJOR	3 -#define KMS_DRIVER_MINOR	30 +#define KMS_DRIVER_MINOR	32  #define KMS_DRIVER_PATCHLEVEL	0  int amdgpu_vram_limit = 0; @@ -117,8 +119,8 @@ uint amdgpu_pg_mask = 0xffffffff;  uint amdgpu_sdma_phase_quantum = 32;  char *amdgpu_disable_cu = NULL;  char *amdgpu_virtual_display = NULL; -/* OverDrive(bit 14),gfxoff(bit 15),stutter mode(bit 17) disabled by default*/ -uint amdgpu_pp_feature_mask = 0xfffd3fff; +/* OverDrive(bit 14) disabled by default*/ +uint amdgpu_pp_feature_mask = 0xffffbfff;  int amdgpu_ngg = 0;  int amdgpu_prim_buf_per_se = 0;  int amdgpu_pos_buf_per_se = 0; @@ -136,6 +138,8 @@ uint amdgpu_dc_feature_mask = 0;  struct amdgpu_mgpu_info mgpu_info = {  	.mutex = __MUTEX_INITIALIZER(mgpu_info.mutex),  }; +int amdgpu_ras_enable = -1; +uint amdgpu_ras_mask = 0xffffffff;  /**   * DOC: vramlimit (int) @@ -495,6 +499,21 @@ MODULE_PARM_DESC(emu_mode, "Emulation mode, (1 = enable, 0 = disable)");  module_param_named(emu_mode, amdgpu_emu_mode, int, 0444);  /** + * DOC: ras_enable (int) + * Enable RAS features on the GPU (0 = disable, 1 = enable, -1 = auto (default)) + */ +MODULE_PARM_DESC(ras_enable, "Enable RAS features on the GPU (0 = disable, 1 = enable, -1 = auto (default))"); +module_param_named(ras_enable, amdgpu_ras_enable, int, 0444); + +/** + * DOC: ras_mask (uint) + * Mask of RAS features to enable (default 0xffffffff), only valid when ras_enable == 1 + * See the flags in drivers/gpu/drm/amd/amdgpu/amdgpu_ras.h + */ +MODULE_PARM_DESC(ras_mask, "Mask of RAS features to enable (default 0xffffffff), only valid when ras_enable == 1"); +module_param_named(ras_mask, amdgpu_ras_mask, uint, 0444); + +/**   * DOC: si_support (int)   * Set SI support driver. This parameter works after set config CONFIG_DRM_AMDGPU_SI. For SI asic, when radeon driver is enabled,   * set value 0 to use radeon driver, while set value 1 to use amdgpu driver. The default is using radeon driver when it available, @@ -974,6 +993,7 @@ amdgpu_pci_remove(struct pci_dev *pdev)  	DRM_ERROR("Device removal is currently not supported outside of fbcon\n");  	drm_dev_unplug(dev); +	drm_dev_put(dev);  	pci_disable_device(pdev);  	pci_set_drvdata(pdev, NULL);  } @@ -1158,13 +1178,14 @@ static int amdgpu_flush(struct file *f, fl_owner_t id)  {  	struct drm_file *file_priv = f->private_data;  	struct amdgpu_fpriv *fpriv = file_priv->driver_priv; +	long timeout = MAX_WAIT_SCHED_ENTITY_Q_EMPTY; -	amdgpu_ctx_mgr_entity_flush(&fpriv->ctx_mgr); +	timeout = amdgpu_ctx_mgr_entity_flush(&fpriv->ctx_mgr, timeout); +	timeout = amdgpu_vm_wait_idle(&fpriv->vm, timeout); -	return 0; +	return timeout >= 0 ? 0 : timeout;  } -  static const struct file_operations amdgpu_driver_kms_fops = {  	.owner = THIS_MODULE,  	.open = drm_open, |