All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: DRI Development <dri-devel@lists.freedesktop.org>
Cc: "chen gong" <curry.gong@amd.com>,
	"Daniel Vetter" <daniel.vetter@intel.com>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Intel Graphics Development" <intel-gfx@lists.freedesktop.org>,
	"Wenhui Sheng" <Wenhui.Sheng@amd.com>,
	shaoyunl <shaoyun.liu@amd.com>,
	"Luben Tuikov" <luben.tuikov@amd.com>,
	"Stanley.Yang" <Stanley.Yang@amd.com>,
	"Dennis Li" <Dennis.Li@amd.com>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Bokun Zhang" <Bokun.Zhang@amd.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Felix Kuehling" <Felix.Kuehling@amd.com>,
	"Yintian Tao" <yttao@amd.com>, "Evan Quan" <evan.quan@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	"Monk Liu" <Monk.Liu@amd.com>,
	"Hawking Zhang" <Hawking.Zhang@amd.com>
Subject: [PATCH 3/5] drm/amdgpu: Paper over the drm_driver mangling for virt
Date: Fri, 30 Oct 2020 11:11:02 +0100	[thread overview]
Message-ID: <20201030101104.2503-3-daniel.vetter@ffwll.ch> (raw)
In-Reply-To: <20201030101104.2503-1-daniel.vetter@ffwll.ch>

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

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: DRI Development <dri-devel@lists.freedesktop.org>
Cc: "Andrey Grodzovsky" <andrey.grodzovsky@amd.com>,
	"chen gong" <curry.gong@amd.com>,
	"Daniel Vetter" <daniel.vetter@intel.com>,
	"Daniel Vetter" <daniel.vetter@ffwll.ch>,
	"Intel Graphics Development" <intel-gfx@lists.freedesktop.org>,
	"Wenhui Sheng" <Wenhui.Sheng@amd.com>,
	shaoyunl <shaoyun.liu@amd.com>,
	"Luben Tuikov" <luben.tuikov@amd.com>,
	"Stanley.Yang" <Stanley.Yang@amd.com>,
	"Dennis Li" <Dennis.Li@amd.com>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Bokun Zhang" <Bokun.Zhang@amd.com>,
	"Alex Deucher" <alexander.deucher@amd.com>,
	"Felix Kuehling" <Felix.Kuehling@amd.com>,
	"Yintian Tao" <yttao@amd.com>, "Evan Quan" <evan.quan@amd.com>,
	"Christian König" <christian.koenig@amd.com>,
	"Monk Liu" <Monk.Liu@amd.com>,
	"Hawking Zhang" <Hawking.Zhang@amd.com>
Subject: [Intel-gfx] [PATCH 3/5] drm/amdgpu: Paper over the drm_driver mangling for virt
Date: Fri, 30 Oct 2020 11:11:02 +0100	[thread overview]
Message-ID: <20201030101104.2503-3-daniel.vetter@ffwll.ch> (raw)
In-Reply-To: <20201030101104.2503-1-daniel.vetter@ffwll.ch>

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

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  parent reply	other threads:[~2020-10-30 10:11 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-30 10:11 [PATCH 1/5] drm/radeon: Stop changing the drm_driver struct Daniel Vetter
2020-10-30 10:11 ` Daniel Vetter
2020-10-30 10:11 ` [Intel-gfx] " Daniel Vetter
2020-10-30 10:11 ` [PATCH 2/5] drm: Compile out legacy chunks from struct drm_device Daniel Vetter
2020-10-30 10:11   ` [Intel-gfx] " Daniel Vetter
2020-10-30 18:22   ` Alex Deucher
2020-10-30 18:22     ` [Intel-gfx] " Alex Deucher
2020-10-30 10:11 ` Daniel Vetter [this message]
2020-10-30 10:11   ` [Intel-gfx] [PATCH 3/5] drm/amdgpu: Paper over the drm_driver mangling for virt Daniel Vetter
2020-10-30 10:41   ` Liu, Monk
2020-10-30 10:41     ` [Intel-gfx] " Liu, Monk
2020-10-30 12:04     ` Daniel Vetter
2020-10-30 12:04       ` [Intel-gfx] " Daniel Vetter
2020-10-31  5:09       ` Luben Tuikov
2020-10-31  5:09         ` [Intel-gfx] " Luben Tuikov
2020-11-01  9:59         ` Daniel Vetter
2020-11-01  9:59           ` [Intel-gfx] " Daniel Vetter
2020-10-30 18:47   ` Alex Deucher
2020-10-30 18:47     ` [Intel-gfx] " Alex Deucher
2020-10-31 13:57     ` Daniel Vetter
2020-10-31 13:57       ` [Intel-gfx] " Daniel Vetter
2020-11-01 10:01       ` Daniel Vetter
2020-11-01 10:01         ` [Intel-gfx] " Daniel Vetter
2020-11-03 16:49         ` Alex Deucher
2020-11-03 16:49           ` [Intel-gfx] " Alex Deucher
2020-11-04  9:31           ` Daniel Vetter
2020-11-04  9:31             ` [Intel-gfx] " Daniel Vetter
2020-10-30 10:11 ` [PATCH 4/5] drm: Allow const struct drm_driver Daniel Vetter
2020-10-30 10:11   ` [Intel-gfx] " Daniel Vetter
2020-10-30 18:53   ` Alex Deucher
2020-10-30 18:53     ` [Intel-gfx] " Alex Deucher
     [not found] ` <20201030101104.2503-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2020-10-30 10:11   ` [PATCH 5/5] drm/<drivers>: Constify " Daniel Vetter
2020-10-30 10:11     ` [Intel-gfx] " Daniel Vetter
2020-10-30 10:11     ` Daniel Vetter
2020-10-30 10:11     ` Daniel Vetter
2020-10-30 18:53     ` Alex Deucher
2020-10-30 18:53       ` [Intel-gfx] " Alex Deucher
2020-10-30 18:53       ` Alex Deucher
2020-10-30 18:53       ` Alex Deucher
2020-10-30 10:29 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/5] drm/radeon: Stop changing the drm_driver struct Patchwork
2020-10-30 10:31 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2020-10-30 10:58 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-10-30 13:13 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2020-10-30 18:21 ` [PATCH 1/5] " Alex Deucher
2020-10-30 18:21   ` Alex Deucher
2020-10-30 18:21   ` [Intel-gfx] " Alex Deucher
2020-10-30 18:42 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for series starting with [1/5] drm/radeon: Stop changing the drm_driver struct (rev2) Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2020-10-23 12:28 [PATCH 1/5] drm/radeon: Stop changing the drm_driver struct Daniel Vetter
2020-10-23 12:28 ` [PATCH 3/5] drm/amdgpu: Paper over the drm_driver mangling for virt Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201030101104.2503-3-daniel.vetter@ffwll.ch \
    --to=daniel.vetter@ffwll.ch \
    --cc=Bokun.Zhang@amd.com \
    --cc=Dennis.Li@amd.com \
    --cc=Felix.Kuehling@amd.com \
    --cc=Hawking.Zhang@amd.com \
    --cc=Monk.Liu@amd.com \
    --cc=Stanley.Yang@amd.com \
    --cc=Wenhui.Sheng@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=christian.koenig@amd.com \
    --cc=curry.gong@amd.com \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=evan.quan@amd.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=luben.tuikov@amd.com \
    --cc=shaoyun.liu@amd.com \
    --cc=tzimmermann@suse.de \
    --cc=yttao@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.