[AMD Official Use Only - Internal Distribution Only]
What's the purpose of the patch sets
e.g.: what bug can those 5 patches fix or what feature provided
for this particular one (3/5) I didn't see how it helpful, could you give a background ?
thanks _____________________________________ Monk Liu|GPU Virtualization Team |AMD
-----Original Message----- From: Daniel Vetter daniel.vetter@ffwll.ch Sent: Friday, October 30, 2020 6:11 PM To: DRI Development dri-devel@lists.freedesktop.org Cc: Intel Graphics Development intel-gfx@lists.freedesktop.org; Daniel Vetter daniel.vetter@ffwll.ch; Deucher, Alexander Alexander.Deucher@amd.com; Koenig, Christian Christian.Koenig@amd.com; Quan, Evan Evan.Quan@amd.com; Kuehling, Felix Felix.Kuehling@amd.com; Zhang, Hawking Hawking.Zhang@amd.com; Grodzovsky, Andrey Andrey.Grodzovsky@amd.com; Tuikov, Luben Luben.Tuikov@amd.com; Thomas Zimmermann tzimmermann@suse.de; Liu, Monk Monk.Liu@amd.com; Yintian Tao yttao@amd.com; Li, Dennis Dennis.Li@amd.com; Liu, Shaoyun Shaoyun.Liu@amd.com; Zhang, Bokun Bokun.Zhang@amd.com; Yang, Stanley Stanley.Yang@amd.com; Sheng, Wenhui Wenhui.Sheng@amd.com; Gong, Curry Curry.Gong@amd.com; Daniel Vetter daniel.vetter@intel.com Subject: [PATCH 3/5] drm/amdgpu: Paper over the drm_driver mangling for virt
Prep work to make drm_device->driver const.
Signed-off-by: Daniel Vetter daniel.vetter@ffwll.ch Cc: Alex Deucher alexander.deucher@amd.com Cc: "Christian König" christian.koenig@amd.com Cc: Evan Quan evan.quan@amd.com Cc: Felix Kuehling Felix.Kuehling@amd.com Cc: Hawking Zhang Hawking.Zhang@amd.com Cc: Andrey Grodzovsky andrey.grodzovsky@amd.com Cc: Luben Tuikov luben.tuikov@amd.com Cc: Thomas Zimmermann tzimmermann@suse.de Cc: Monk Liu Monk.Liu@amd.com Cc: Yintian Tao yttao@amd.com Cc: Dennis Li Dennis.Li@amd.com Cc: shaoyunl shaoyun.liu@amd.com Cc: Bokun Zhang Bokun.Zhang@amd.com Cc: "Stanley.Yang" Stanley.Yang@amd.com Cc: Wenhui Sheng Wenhui.Sheng@amd.com Cc: chen gong curry.gong@amd.com Signed-off-by: Daniel Vetter daniel.vetter@intel.com --- drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 8 ++++---- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 +++++++++++- 2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index 024c3b70b1aa..3d337f13ae4e 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -1093,7 +1093,7 @@ static const struct pci_device_id pciidlist[] = {
MODULE_DEVICE_TABLE(pci, pciidlist);
-static struct drm_driver kms_driver; +struct drm_driver amdgpu_kms_driver;
static int amdgpu_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) @@ -1164,7 +1164,7 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, if (ret) return ret;
-adev = devm_drm_dev_alloc(&pdev->dev, &kms_driver, typeof(*adev), ddev); +adev = devm_drm_dev_alloc(&pdev->dev, &amdgpu_kms_driver, +typeof(*adev), ddev); if (IS_ERR(adev)) return PTR_ERR(adev);
@@ -1508,7 +1508,7 @@ int amdgpu_file_to_fpriv(struct file *filp, struct amdgpu_fpriv **fpriv) return 0; }
-static struct drm_driver kms_driver = { +struct drm_driver amdgpu_kms_driver = { .driver_features = DRIVER_ATOMIC | DRIVER_GEM | @@ -1571,7 +1571,7 @@ static int __init amdgpu_init(void) goto error_fence;
DRM_INFO("amdgpu kernel modesetting enabled.\n"); -kms_driver.num_ioctls = amdgpu_max_kms_ioctl; +amdgpu_kms_driver.num_ioctls = amdgpu_max_kms_ioctl; amdgpu_register_atpx_handler();
/* Ignore KFD init failures. Normal when CONFIG_HSA_AMD is not set. */ diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index d0aea5e39531..dde4c449c284 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -45,13 +45,23 @@ bool amdgpu_virt_mmio_blocked(struct amdgpu_device *adev) return RREG32_NO_KIQ(0xc040) == 0xffffffff; }
+extern struct drm_driver amdgpu_kms_driver; + void amdgpu_virt_init_setting(struct amdgpu_device *adev) { /* enable virtual display */ if (adev->mode_info.num_crtc == 0) adev->mode_info.num_crtc = 1; adev->enable_virtual_display = true; -adev_to_drm(adev)->driver->driver_features &= ~DRIVER_ATOMIC; + +/* + * FIXME: Either make virt support atomic or make sure you have two + * drm_driver structs, these kind of tricks are only ok when there's + * guaranteed only a single device per system. This should also be done + * before struct drm_device is initialized. + */ +amdgpu_kms_driver.driver_features &= ~DRIVER_ATOMIC; + adev->cg_flags = 0; adev->pg_flags = 0; } -- 2.28.0