* [Nouveau] [PATCH v2 01/22] drm/amdgpu: Track IRQ state in local device state
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 02/22] drm/hibmc: Call drm_irq_uninstall() unconditionally Thomas Zimmermann
` (22 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
Replace usage of struct drm_device.irq_enabled with the driver's
own state field struct amdgpu_device.irq.installed. The field in
the DRM device structure is considered legacy and should not be
used by KMS drivers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
index 32ce0e679dc7..7dad44e73cf6 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
@@ -599,7 +599,7 @@ void amdgpu_irq_gpu_reset_resume_helper(struct amdgpu_device *adev)
int amdgpu_irq_get(struct amdgpu_device *adev, struct amdgpu_irq_src *src,
unsigned type)
{
- if (!adev_to_drm(adev)->irq_enabled)
+ if (!adev->irq.installed)
return -ENOENT;
if (type >= src->num_types)
@@ -629,7 +629,7 @@ int amdgpu_irq_get(struct amdgpu_device *adev, struct amdgpu_irq_src *src,
int amdgpu_irq_put(struct amdgpu_device *adev, struct amdgpu_irq_src *src,
unsigned type)
{
- if (!adev_to_drm(adev)->irq_enabled)
+ if (!adev->irq.installed)
return -ENOENT;
if (type >= src->num_types)
@@ -660,7 +660,7 @@ int amdgpu_irq_put(struct amdgpu_device *adev, struct amdgpu_irq_src *src,
bool amdgpu_irq_enabled(struct amdgpu_device *adev, struct amdgpu_irq_src *src,
unsigned type)
{
- if (!adev_to_drm(adev)->irq_enabled)
+ if (!adev->irq.installed)
return false;
if (type >= src->num_types)
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 02/22] drm/hibmc: Call drm_irq_uninstall() unconditionally
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 01/22] drm/amdgpu: Track IRQ state in local device state Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-23 11:34 ` [Nouveau] 答复: " tiantao (H)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 03/22] drm/radeon: Track IRQ state in local device state Thomas Zimmermann
` (21 subsequent siblings)
23 siblings, 1 reply; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
Remove the check around drm_irq_uninstall(). The same test is
done by the function internally. The tested state in irq_enabled
is considered obsolete and should not be used by KMS drivers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
index f4bc5386574a..f8ef711bbe5d 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -253,8 +253,7 @@ static int hibmc_unload(struct drm_device *dev)
{
drm_atomic_helper_shutdown(dev);
- if (dev->irq_enabled)
- drm_irq_uninstall(dev);
+ drm_irq_uninstall(dev);
pci_disable_msi(to_pci_dev(dev->dev));
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] 答复: [PATCH v2 02/22] drm/hibmc: Call drm_irq_uninstall() unconditionally
2021-06-22 14:09 ` [Nouveau] [PATCH v2 02/22] drm/hibmc: Call drm_irq_uninstall() unconditionally Thomas Zimmermann
@ 2021-06-23 11:34 ` tiantao (H)
0 siblings, 0 replies; 34+ messages in thread
From: tiantao (H) @ 2021-06-23 11:34 UTC (permalink / raw)
-----邮件原件-----
发件人: Thomas Zimmermann [mailto:tzimmermann@suse.de]
发送时间: 2021年6月22日 22:10
收件人: daniel@ffwll.ch; airlied@linux.ie; alexander.deucher@amd.com; christian.koenig@amd.com; Xinhui.Pan@amd.com; james.qian.wang@arm.com; liviu.dudau@arm.com; mihail.atanassov@arm.com; brian.starkey@arm.com; maarten.lankhorst@linux.intel.com; mripard@kernel.org; inki.dae@samsung.com; jy0922.shim@samsung.com; sw0312.kim@samsung.com; kyungmin.park@samsung.com; krzysztof.kozlowski@canonical.com; xinliang.liu@linaro.org; tiantao (H) <tiantao6@hisilicon.com>; john.stultz@linaro.org; kongxinwei (A) <kong.kongxinwei@hisilicon.com>; Chenfeng (puck) <puck.chen@hisilicon.com>; laurentiu.palcu@oss.nxp.com; l.stach@pengutronix.de; p.zabel@pengutronix.de; shawnguo@kernel.org; s.hauer@pengutronix.de; kernel@pengutronix.de; festevam@gmail.com; linux-imx@nxp.com; chunkuang.hu@kernel.org; matthias.bgg@gmail.com; bskeggs@redhat.com; tomba@kernel.org; hjc@rock-chips.com; heiko@sntech.de; benjamin.gaignard@linaro.org; yannick.fertre@foss.st.com; philippe.cornu@foss.st.com; mcoquelin.stm32@gmail.com; alexandre.torgue@foss.st.com; wens@csie.org; jernej.skrabec@gmail.com; thierry.reding@gmail.com; jonathanh@nvidia.com; jyri.sarha@iki.fi; emma@anholt.net; linux-graphics-maintainer@vmware.com; zackr@vmware.com; hyun.kwon@xilinx.com; laurent.pinchart@ideasonboard.com; michal.simek@xilinx.com
抄送: amd-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org; linux-arm-kernel@lists.infradead.org; linux-samsung-soc@vger.kernel.org; linux-mediatek@lists.infradead.org; nouveau@lists.freedesktop.org; linux-rockchip@lists.infradead.org; linux-stm32@st-md-mailman.stormreply.com; linux-sunxi@lists.linux.dev; linux-tegra@vger.kernel.org; Thomas Zimmermann <tzimmermann@suse.de>
主题: [PATCH v2 02/22] drm/hibmc: Call drm_irq_uninstall() unconditionally
Remove the check around drm_irq_uninstall(). The same test is done by the function internally. The tested state in irq_enabled is considered obsolete and should not be used by KMS drivers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
Acked-by: Tian Tao <tiantao6@hisilicon.com>
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
index f4bc5386574a..f8ef711bbe5d 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -253,8 +253,7 @@ static int hibmc_unload(struct drm_device *dev) {
drm_atomic_helper_shutdown(dev);
- if (dev->irq_enabled)
- drm_irq_uninstall(dev);
+ drm_irq_uninstall(dev);
pci_disable_msi(to_pci_dev(dev->dev));
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 03/22] drm/radeon: Track IRQ state in local device state
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 01/22] drm/amdgpu: Track IRQ state in local device state Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 02/22] drm/hibmc: Call drm_irq_uninstall() unconditionally Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 04/22] drm: Don't test for IRQ support in VBLANK ioctls Thomas Zimmermann
` (20 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
Replace usage of struct drm_device.irq_enabled with the driver's
own state field struct radeon_device.irq.installed. The field in
the DRM device structure is considered legacy and should not be
used by KMS drivers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/radeon/radeon_fence.c | 2 +-
drivers/gpu/drm/radeon/radeon_irq_kms.c | 16 ++++++++--------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
index 0d8ef2368adf..7ec581363e23 100644
--- a/drivers/gpu/drm/radeon/radeon_fence.c
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
@@ -288,7 +288,7 @@ static void radeon_fence_check_lockup(struct work_struct *work)
return;
}
- if (fence_drv->delayed_irq && rdev->ddev->irq_enabled) {
+ if (fence_drv->delayed_irq && rdev->irq.installed) {
unsigned long irqflags;
fence_drv->delayed_irq = false;
diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c
index 84d0b1a3355f..a36ce826d0c0 100644
--- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
@@ -357,7 +357,7 @@ void radeon_irq_kms_sw_irq_get(struct radeon_device *rdev, int ring)
{
unsigned long irqflags;
- if (!rdev->ddev->irq_enabled)
+ if (!rdev->irq.installed)
return;
if (atomic_inc_return(&rdev->irq.ring_int[ring]) == 1) {
@@ -396,7 +396,7 @@ void radeon_irq_kms_sw_irq_put(struct radeon_device *rdev, int ring)
{
unsigned long irqflags;
- if (!rdev->ddev->irq_enabled)
+ if (!rdev->irq.installed)
return;
if (atomic_dec_and_test(&rdev->irq.ring_int[ring])) {
@@ -422,7 +422,7 @@ void radeon_irq_kms_pflip_irq_get(struct radeon_device *rdev, int crtc)
if (crtc < 0 || crtc >= rdev->num_crtc)
return;
- if (!rdev->ddev->irq_enabled)
+ if (!rdev->irq.installed)
return;
if (atomic_inc_return(&rdev->irq.pflip[crtc]) == 1) {
@@ -448,7 +448,7 @@ void radeon_irq_kms_pflip_irq_put(struct radeon_device *rdev, int crtc)
if (crtc < 0 || crtc >= rdev->num_crtc)
return;
- if (!rdev->ddev->irq_enabled)
+ if (!rdev->irq.installed)
return;
if (atomic_dec_and_test(&rdev->irq.pflip[crtc])) {
@@ -470,7 +470,7 @@ void radeon_irq_kms_enable_afmt(struct radeon_device *rdev, int block)
{
unsigned long irqflags;
- if (!rdev->ddev->irq_enabled)
+ if (!rdev->irq.installed)
return;
spin_lock_irqsave(&rdev->irq.lock, irqflags);
@@ -492,7 +492,7 @@ void radeon_irq_kms_disable_afmt(struct radeon_device *rdev, int block)
{
unsigned long irqflags;
- if (!rdev->ddev->irq_enabled)
+ if (!rdev->irq.installed)
return;
spin_lock_irqsave(&rdev->irq.lock, irqflags);
@@ -514,7 +514,7 @@ void radeon_irq_kms_enable_hpd(struct radeon_device *rdev, unsigned hpd_mask)
unsigned long irqflags;
int i;
- if (!rdev->ddev->irq_enabled)
+ if (!rdev->irq.installed)
return;
spin_lock_irqsave(&rdev->irq.lock, irqflags);
@@ -537,7 +537,7 @@ void radeon_irq_kms_disable_hpd(struct radeon_device *rdev, unsigned hpd_mask)
unsigned long irqflags;
int i;
- if (!rdev->ddev->irq_enabled)
+ if (!rdev->irq.installed)
return;
spin_lock_irqsave(&rdev->irq.lock, irqflags);
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 04/22] drm: Don't test for IRQ support in VBLANK ioctls
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (2 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 03/22] drm/radeon: Track IRQ state in local device state Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 15:25 ` Liviu Dudau
2021-06-22 14:09 ` [Nouveau] [PATCH v2 05/22] drm/komeda: Don't set struct drm_device.irq_enabled Thomas Zimmermann
` (19 subsequent siblings)
23 siblings, 1 reply; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
For KMS drivers, replace the IRQ check in VBLANK ioctls with a check for
vblank support. IRQs might be enabled wthout vblanking being supported.
This change also removes the DRM framework's only dependency on IRQ state
for non-legacy drivers. For legacy drivers with userspace modesetting,
the original test remains in drm_wait_vblank_ioctl().
v2:
* keep the old test for legacy drivers in
drm_wait_vblank_ioctl() (Daniel)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/drm_irq.c | 10 +++-------
drivers/gpu/drm/drm_vblank.c | 13 +++++++++----
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index c3bd664ea733..1d7785721323 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -74,10 +74,8 @@
* only supports devices with a single interrupt on the main device stored in
* &drm_device.dev and set as the device paramter in drm_dev_alloc().
*
- * These IRQ helpers are strictly optional. Drivers which roll their own only
- * need to set &drm_device.irq_enabled to signal the DRM core that vblank
- * interrupts are working. Since these helpers don't automatically clean up the
- * requested interrupt like e.g. devm_request_irq() they're not really
+ * These IRQ helpers are strictly optional. Since these helpers don't automatically
+ * clean up the requested interrupt like e.g. devm_request_irq() they're not really
* recommended.
*/
@@ -91,9 +89,7 @@
* and after the installation.
*
* This is the simplified helper interface provided for drivers with no special
- * needs. Drivers which need to install interrupt handlers for multiple
- * interrupts must instead set &drm_device.irq_enabled to signal the DRM core
- * that vblank interrupts are available.
+ * needs.
*
* @irq must match the interrupt number that would be passed to request_irq(),
* if called directly instead of using this helper function.
diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
index 3417e1ac7918..a98a4aad5037 100644
--- a/drivers/gpu/drm/drm_vblank.c
+++ b/drivers/gpu/drm/drm_vblank.c
@@ -1748,8 +1748,13 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
unsigned int pipe_index;
unsigned int flags, pipe, high_pipe;
- if (!dev->irq_enabled)
- return -EOPNOTSUPP;
+ if (drm_core_check_feature(dev, DRIVER_MODESET)) {
+ if (!drm_dev_has_vblank(dev))
+ return -EOPNOTSUPP;
+ } else {
+ if (!dev->irq_enabled)
+ return -EOPNOTSUPP;
+ }
if (vblwait->request.type & _DRM_VBLANK_SIGNAL)
return -EINVAL;
@@ -2023,7 +2028,7 @@ int drm_crtc_get_sequence_ioctl(struct drm_device *dev, void *data,
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EOPNOTSUPP;
- if (!dev->irq_enabled)
+ if (!drm_dev_has_vblank(dev))
return -EOPNOTSUPP;
crtc = drm_crtc_find(dev, file_priv, get_seq->crtc_id);
@@ -2082,7 +2087,7 @@ int drm_crtc_queue_sequence_ioctl(struct drm_device *dev, void *data,
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EOPNOTSUPP;
- if (!dev->irq_enabled)
+ if (!drm_dev_has_vblank(dev))
return -EOPNOTSUPP;
crtc = drm_crtc_find(dev, file_priv, queue_seq->crtc_id);
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 04/22] drm: Don't test for IRQ support in VBLANK ioctls
2021-06-22 14:09 ` [Nouveau] [PATCH v2 04/22] drm: Don't test for IRQ support in VBLANK ioctls Thomas Zimmermann
@ 2021-06-22 15:25 ` Liviu Dudau
2021-06-23 6:43 ` Thomas Zimmermann
0 siblings, 1 reply; 34+ messages in thread
From: Liviu Dudau @ 2021-06-22 15:25 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: heiko, emma, airlied, nouveau, alexandre.torgue, dri-devel,
michal.simek, linux-tegra, thierry.reding, laurent.pinchart,
benjamin.gaignard, mihail.atanassov, festevam, linux-stm32,
linux-samsung-soc, jy0922.shim, krzysztof.kozlowski,
linux-rockchip, linux-mediatek, wens, jernej.skrabec,
xinliang.liu, kong.kongxinwei, james.qian.wang, linux-imx,
linux-graphics-maintainer, linux-sunxi, bskeggs, chunkuang.hu,
p.zabel, puck.chen, s.hauer, maarten.lankhorst, mripard,
inki.dae, john.stultz, laurentiu.palcu, matthias.bgg, kernel,
linux-arm-kernel, mcoquelin.stm32, amd-gfx, hyun.kwon, tomba,
jyri.sarha, yannick.fertre, Xinhui.Pan, sw0312.kim, hjc,
christian.koenig, kyungmin.park, philippe.cornu, daniel,
alexander.deucher, tiantao6, shawnguo, brian.starkey, zackr,
l.stach
Hello,
On Tue, Jun 22, 2021 at 04:09:44PM +0200, Thomas Zimmermann wrote:
> For KMS drivers, replace the IRQ check in VBLANK ioctls with a check for
> vblank support. IRQs might be enabled wthout vblanking being supported.
>
> This change also removes the DRM framework's only dependency on IRQ state
> for non-legacy drivers. For legacy drivers with userspace modesetting,
> the original test remains in drm_wait_vblank_ioctl().
>
> v2:
> * keep the old test for legacy drivers in
> drm_wait_vblank_ioctl() (Daniel)
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
> drivers/gpu/drm/drm_irq.c | 10 +++-------
> drivers/gpu/drm/drm_vblank.c | 13 +++++++++----
> 2 files changed, 12 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
> index c3bd664ea733..1d7785721323 100644
> --- a/drivers/gpu/drm/drm_irq.c
> +++ b/drivers/gpu/drm/drm_irq.c
> @@ -74,10 +74,8 @@
> * only supports devices with a single interrupt on the main device stored in
> * &drm_device.dev and set as the device paramter in drm_dev_alloc().
> *
> - * These IRQ helpers are strictly optional. Drivers which roll their own only
> - * need to set &drm_device.irq_enabled to signal the DRM core that vblank
> - * interrupts are working. Since these helpers don't automatically clean up the
> - * requested interrupt like e.g. devm_request_irq() they're not really
> + * These IRQ helpers are strictly optional. Since these helpers don't automatically
> + * clean up the requested interrupt like e.g. devm_request_irq() they're not really
> * recommended.
> */
>
> @@ -91,9 +89,7 @@
> * and after the installation.
> *
> * This is the simplified helper interface provided for drivers with no special
> - * needs. Drivers which need to install interrupt handlers for multiple
> - * interrupts must instead set &drm_device.irq_enabled to signal the DRM core
> - * that vblank interrupts are available.
> + * needs.
> *
> * @irq must match the interrupt number that would be passed to request_irq(),
> * if called directly instead of using this helper function.
> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> index 3417e1ac7918..a98a4aad5037 100644
> --- a/drivers/gpu/drm/drm_vblank.c
> +++ b/drivers/gpu/drm/drm_vblank.c
> @@ -1748,8 +1748,13 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
> unsigned int pipe_index;
> unsigned int flags, pipe, high_pipe;
>
> - if (!dev->irq_enabled)
> - return -EOPNOTSUPP;
> + if (drm_core_check_feature(dev, DRIVER_MODESET)) {
> + if (!drm_dev_has_vblank(dev))
> + return -EOPNOTSUPP;
> + } else {
> + if (!dev->irq_enabled)
> + return -EOPNOTSUPP;
> + }
For a system call that is used quite a lot by userspace we have increased the code size
in a noticeable way. Can we not cache it privately?
Best regards,
Liviu
>
> if (vblwait->request.type & _DRM_VBLANK_SIGNAL)
> return -EINVAL;
> @@ -2023,7 +2028,7 @@ int drm_crtc_get_sequence_ioctl(struct drm_device *dev, void *data,
> if (!drm_core_check_feature(dev, DRIVER_MODESET))
> return -EOPNOTSUPP;
>
> - if (!dev->irq_enabled)
> + if (!drm_dev_has_vblank(dev))
> return -EOPNOTSUPP;
>
> crtc = drm_crtc_find(dev, file_priv, get_seq->crtc_id);
> @@ -2082,7 +2087,7 @@ int drm_crtc_queue_sequence_ioctl(struct drm_device *dev, void *data,
> if (!drm_core_check_feature(dev, DRIVER_MODESET))
> return -EOPNOTSUPP;
>
> - if (!dev->irq_enabled)
> + if (!drm_dev_has_vblank(dev))
> return -EOPNOTSUPP;
>
> crtc = drm_crtc_find(dev, file_priv, queue_seq->crtc_id);
> --
> 2.32.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 04/22] drm: Don't test for IRQ support in VBLANK ioctls
2021-06-22 15:25 ` Liviu Dudau
@ 2021-06-23 6:43 ` Thomas Zimmermann
2021-06-23 12:15 ` Liviu Dudau
0 siblings, 1 reply; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-23 6:43 UTC (permalink / raw)
To: Liviu Dudau
Cc: heiko, emma, airlied, nouveau, alexandre.torgue, dri-devel,
michal.simek, linux-tegra, thierry.reding, laurent.pinchart,
benjamin.gaignard, mihail.atanassov, festevam, linux-stm32,
linux-samsung-soc, jy0922.shim, krzysztof.kozlowski,
linux-rockchip, linux-mediatek, wens, jernej.skrabec,
xinliang.liu, kong.kongxinwei, james.qian.wang, linux-imx,
linux-graphics-maintainer, linux-sunxi, bskeggs, chunkuang.hu,
p.zabel, puck.chen, s.hauer, maarten.lankhorst, mripard,
inki.dae, john.stultz, laurentiu.palcu, matthias.bgg, kernel,
linux-arm-kernel, mcoquelin.stm32, amd-gfx, hyun.kwon, tomba,
jyri.sarha, yannick.fertre, Xinhui.Pan, sw0312.kim, hjc,
christian.koenig, kyungmin.park, philippe.cornu, daniel,
alexander.deucher, tiantao6, shawnguo, brian.starkey, zackr,
l.stach
[-- Attachment #1.1.1: Type: text/plain, Size: 4007 bytes --]
Hi Liviu
Am 22.06.21 um 17:25 schrieb Liviu Dudau:
> Hello,
>
> On Tue, Jun 22, 2021 at 04:09:44PM +0200, Thomas Zimmermann wrote:
>> For KMS drivers, replace the IRQ check in VBLANK ioctls with a check for
>> vblank support. IRQs might be enabled wthout vblanking being supported.
>>
>> This change also removes the DRM framework's only dependency on IRQ state
>> for non-legacy drivers. For legacy drivers with userspace modesetting,
>> the original test remains in drm_wait_vblank_ioctl().
>>
>> v2:
>> * keep the old test for legacy drivers in
>> drm_wait_vblank_ioctl() (Daniel)
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
>> ---
>> drivers/gpu/drm/drm_irq.c | 10 +++-------
>> drivers/gpu/drm/drm_vblank.c | 13 +++++++++----
>> 2 files changed, 12 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
>> index c3bd664ea733..1d7785721323 100644
>> --- a/drivers/gpu/drm/drm_irq.c
>> +++ b/drivers/gpu/drm/drm_irq.c
>> @@ -74,10 +74,8 @@
>> * only supports devices with a single interrupt on the main device stored in
>> * &drm_device.dev and set as the device paramter in drm_dev_alloc().
>> *
>> - * These IRQ helpers are strictly optional. Drivers which roll their own only
>> - * need to set &drm_device.irq_enabled to signal the DRM core that vblank
>> - * interrupts are working. Since these helpers don't automatically clean up the
>> - * requested interrupt like e.g. devm_request_irq() they're not really
>> + * These IRQ helpers are strictly optional. Since these helpers don't automatically
>> + * clean up the requested interrupt like e.g. devm_request_irq() they're not really
>> * recommended.
>> */
>>
>> @@ -91,9 +89,7 @@
>> * and after the installation.
>> *
>> * This is the simplified helper interface provided for drivers with no special
>> - * needs. Drivers which need to install interrupt handlers for multiple
>> - * interrupts must instead set &drm_device.irq_enabled to signal the DRM core
>> - * that vblank interrupts are available.
>> + * needs.
>> *
>> * @irq must match the interrupt number that would be passed to request_irq(),
>> * if called directly instead of using this helper function.
>> diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
>> index 3417e1ac7918..a98a4aad5037 100644
>> --- a/drivers/gpu/drm/drm_vblank.c
>> +++ b/drivers/gpu/drm/drm_vblank.c
>> @@ -1748,8 +1748,13 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
>> unsigned int pipe_index;
>> unsigned int flags, pipe, high_pipe;
>>
>> - if (!dev->irq_enabled)
>> - return -EOPNOTSUPP;
>> + if (drm_core_check_feature(dev, DRIVER_MODESET)) {
>> + if (!drm_dev_has_vblank(dev))
>> + return -EOPNOTSUPP;
>> + } else {
>> + if (!dev->irq_enabled)
>> + return -EOPNOTSUPP;
>> + }
>
> For a system call that is used quite a lot by userspace we have increased the code size
> in a noticeable way. Can we not cache it privately?
I'm not quite sure that I understand your concern. The additionally
called functions are trivial one-liners; probably inlined anyway.
However, irq_enabled is only relevant for legacy drivers and will
eventually disappear behind CONFIG_DRM_LEGACY. We can rewrite the test
like this:
ifdef CONFIG_DRM_LEGACY
if (unlikely(check_feature(dev, DRIVER_LEGACY))) {
if (!irq_enabled)
return;
} else
#endif
{
if (!has_vblank_support(dev))
return;
}
As CONFIG_DRM_LEGACY is most likely disabled on concurrent systems, we'd
get a single test for the modern drivers. If DRM_LEGACYis on, the
compiler at least knows that the else branch is preferred.
Best regards
Thomas
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 04/22] drm: Don't test for IRQ support in VBLANK ioctls
2021-06-23 6:43 ` Thomas Zimmermann
@ 2021-06-23 12:15 ` Liviu Dudau
0 siblings, 0 replies; 34+ messages in thread
From: Liviu Dudau @ 2021-06-23 12:15 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: emma, airlied, nouveau, alexandre.torgue, dri-devel,
matthias.bgg, thierry.reding, laurent.pinchart,
benjamin.gaignard, mihail.atanassov, linux-stm32,
linux-samsung-soc, jy0922.shim, krzysztof.kozlowski,
michal.simek, jernej.skrabec, linux-rockchip, kong.kongxinwei,
james.qian.wang, linux-imx, xinliang.liu,
linux-graphics-maintainer, linux-sunxi, bskeggs, chunkuang.hu,
mcoquelin.stm32, puck.chen, s.hauer, linux-mediatek,
laurentiu.palcu, linux-tegra, wens, linux-arm-kernel, amd-gfx,
tomba, hyun.kwon, shawnguo, yannick.fertre, Xinhui.Pan,
sw0312.kim, hjc, kyungmin.park, philippe.cornu, kernel,
alexander.deucher, tiantao6, jyri.sarha, christian.koenig
Hi Thomas,
On Wed, Jun 23, 2021 at 08:43:07AM +0200, Thomas Zimmermann wrote:
> Hi Liviu
>
> Am 22.06.21 um 17:25 schrieb Liviu Dudau:
> > Hello,
> >
> > On Tue, Jun 22, 2021 at 04:09:44PM +0200, Thomas Zimmermann wrote:
> > > For KMS drivers, replace the IRQ check in VBLANK ioctls with a check for
> > > vblank support. IRQs might be enabled wthout vblanking being supported.
> > >
> > > This change also removes the DRM framework's only dependency on IRQ state
> > > for non-legacy drivers. For legacy drivers with userspace modesetting,
> > > the original test remains in drm_wait_vblank_ioctl().
> > >
> > > v2:
> > > * keep the old test for legacy drivers in
> > > drm_wait_vblank_ioctl() (Daniel)
> > >
> > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> > > ---
> > > drivers/gpu/drm/drm_irq.c | 10 +++-------
> > > drivers/gpu/drm/drm_vblank.c | 13 +++++++++----
> > > 2 files changed, 12 insertions(+), 11 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
> > > index c3bd664ea733..1d7785721323 100644
> > > --- a/drivers/gpu/drm/drm_irq.c
> > > +++ b/drivers/gpu/drm/drm_irq.c
> > > @@ -74,10 +74,8 @@
> > > * only supports devices with a single interrupt on the main device stored in
> > > * &drm_device.dev and set as the device paramter in drm_dev_alloc().
> > > *
> > > - * These IRQ helpers are strictly optional. Drivers which roll their own only
> > > - * need to set &drm_device.irq_enabled to signal the DRM core that vblank
> > > - * interrupts are working. Since these helpers don't automatically clean up the
> > > - * requested interrupt like e.g. devm_request_irq() they're not really
> > > + * These IRQ helpers are strictly optional. Since these helpers don't automatically
> > > + * clean up the requested interrupt like e.g. devm_request_irq() they're not really
> > > * recommended.
> > > */
> > > @@ -91,9 +89,7 @@
> > > * and after the installation.
> > > *
> > > * This is the simplified helper interface provided for drivers with no special
> > > - * needs. Drivers which need to install interrupt handlers for multiple
> > > - * interrupts must instead set &drm_device.irq_enabled to signal the DRM core
> > > - * that vblank interrupts are available.
> > > + * needs.
> > > *
> > > * @irq must match the interrupt number that would be passed to request_irq(),
> > > * if called directly instead of using this helper function.
> > > diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c
> > > index 3417e1ac7918..a98a4aad5037 100644
> > > --- a/drivers/gpu/drm/drm_vblank.c
> > > +++ b/drivers/gpu/drm/drm_vblank.c
> > > @@ -1748,8 +1748,13 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,
> > > unsigned int pipe_index;
> > > unsigned int flags, pipe, high_pipe;
> > > - if (!dev->irq_enabled)
> > > - return -EOPNOTSUPP;
> > > + if (drm_core_check_feature(dev, DRIVER_MODESET)) {
> > > + if (!drm_dev_has_vblank(dev))
> > > + return -EOPNOTSUPP;
> > > + } else {
> > > + if (!dev->irq_enabled)
> > > + return -EOPNOTSUPP;
> > > + }
> >
> > For a system call that is used quite a lot by userspace we have increased the code size
> > in a noticeable way. Can we not cache it privately?
>
> I'm not quite sure that I understand your concern. The additionally called
> functions are trivial one-liners; probably inlined anyway.
They are inlined. However we replace the pointer dereference (which can be calculated
at compile time as offset from a base pointer) with the code in
drm_core_check_all_features() that does 3 pointer dereferences, masking and logical
AND before checking for matching value.
>
> However, irq_enabled is only relevant for legacy drivers and will eventually
> disappear behind CONFIG_DRM_LEGACY. We can rewrite the test like this:
I get the point that irq_enabled is legacy. However the IOCTL call is not and usually
is used in time critical code to wait for vblank before starting the old buffers for
a new frame. At 60Hz that's probably less of a concern, but at 120Hz refresh rate and
reduced vblank time your time slice allocation for new work matters.
Best regards,
Liviu
>
> ifdef CONFIG_DRM_LEGACY
> if (unlikely(check_feature(dev, DRIVER_LEGACY))) {
> if (!irq_enabled)
> return;
> } else
> #endif
> {
> if (!has_vblank_support(dev))
> return;
> }
>
> As CONFIG_DRM_LEGACY is most likely disabled on concurrent systems, we'd get
> a single test for the modern drivers. If DRM_LEGACYis on, the compiler at
> least knows that the else branch is preferred.
>
> Best regards
> Thomas
>
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Software Solutions Germany GmbH
> Maxfeldstr. 5, 90409 Nürnberg, Germany
> (HRB 36809, AG Nürnberg)
> Geschäftsführer: Felix Imendörffer
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 05/22] drm/komeda: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (3 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 04/22] drm: Don't test for IRQ support in VBLANK ioctls Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 15:25 ` Liviu Dudau
2021-06-22 14:09 ` [Nouveau] [PATCH v2 06/22] drm/malidp: " Thomas Zimmermann
` (18 subsequent siblings)
23 siblings, 1 reply; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in komeda.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
index ff45f23f3d56..52a6db5707a3 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
@@ -301,8 +301,6 @@ struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev)
if (err)
goto free_component_binding;
- drm->irq_enabled = true;
-
drm_kms_helper_poll_init(drm);
err = drm_dev_register(drm, 0);
@@ -313,7 +311,6 @@ struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev)
free_interrupts:
drm_kms_helper_poll_fini(drm);
- drm->irq_enabled = false;
free_component_binding:
component_unbind_all(mdev->dev, drm);
cleanup_mode_config:
@@ -331,7 +328,6 @@ void komeda_kms_detach(struct komeda_kms_dev *kms)
drm_dev_unregister(drm);
drm_kms_helper_poll_fini(drm);
drm_atomic_helper_shutdown(drm);
- drm->irq_enabled = false;
component_unbind_all(mdev->dev, drm);
drm_mode_config_cleanup(drm);
komeda_kms_cleanup_private_objs(kms);
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 05/22] drm/komeda: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 ` [Nouveau] [PATCH v2 05/22] drm/komeda: Don't set struct drm_device.irq_enabled Thomas Zimmermann
@ 2021-06-22 15:25 ` Liviu Dudau
0 siblings, 0 replies; 34+ messages in thread
From: Liviu Dudau @ 2021-06-22 15:25 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: heiko, emma, airlied, nouveau, alexandre.torgue, dri-devel,
michal.simek, linux-tegra, thierry.reding, laurent.pinchart,
benjamin.gaignard, mihail.atanassov, festevam, linux-stm32,
linux-samsung-soc, jy0922.shim, krzysztof.kozlowski,
linux-rockchip, linux-mediatek, wens, jernej.skrabec,
xinliang.liu, kong.kongxinwei, james.qian.wang, linux-imx,
linux-graphics-maintainer, linux-sunxi, bskeggs, chunkuang.hu,
p.zabel, puck.chen, s.hauer, maarten.lankhorst, mripard,
inki.dae, john.stultz, laurentiu.palcu, matthias.bgg, kernel,
linux-arm-kernel, mcoquelin.stm32, amd-gfx, hyun.kwon, tomba,
jyri.sarha, yannick.fertre, Xinhui.Pan, sw0312.kim, hjc,
christian.koenig, kyungmin.park, philippe.cornu, daniel,
alexander.deucher, tiantao6, shawnguo, brian.starkey, zackr,
l.stach
On Tue, Jun 22, 2021 at 04:09:45PM +0200, Thomas Zimmermann wrote:
> The field drm_device.irq_enabled is only used by legacy drivers
> with userspace modesetting. Don't set it in komeda.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Best regards,
Liviu
> ---
> drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> index ff45f23f3d56..52a6db5707a3 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_kms.c
> @@ -301,8 +301,6 @@ struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev)
> if (err)
> goto free_component_binding;
>
> - drm->irq_enabled = true;
> -
> drm_kms_helper_poll_init(drm);
>
> err = drm_dev_register(drm, 0);
> @@ -313,7 +311,6 @@ struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev)
>
> free_interrupts:
> drm_kms_helper_poll_fini(drm);
> - drm->irq_enabled = false;
> free_component_binding:
> component_unbind_all(mdev->dev, drm);
> cleanup_mode_config:
> @@ -331,7 +328,6 @@ void komeda_kms_detach(struct komeda_kms_dev *kms)
> drm_dev_unregister(drm);
> drm_kms_helper_poll_fini(drm);
> drm_atomic_helper_shutdown(drm);
> - drm->irq_enabled = false;
> component_unbind_all(mdev->dev, drm);
> drm_mode_config_cleanup(drm);
> komeda_kms_cleanup_private_objs(kms);
> --
> 2.32.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 06/22] drm/malidp: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (4 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 05/22] drm/komeda: Don't set struct drm_device.irq_enabled Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 15:26 ` Liviu Dudau
2021-06-22 14:09 ` [Nouveau] [PATCH v2 07/22] drm/exynos: " Thomas Zimmermann
` (17 subsequent siblings)
23 siblings, 1 reply; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in malidp.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/arm/malidp_drv.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index de59f3302516..78d15b04b105 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -847,8 +847,6 @@ static int malidp_bind(struct device *dev)
if (ret < 0)
goto irq_init_fail;
- drm->irq_enabled = true;
-
ret = drm_vblank_init(drm, drm->mode_config.num_crtc);
if (ret < 0) {
DRM_ERROR("failed to initialise vblank\n");
@@ -874,7 +872,6 @@ static int malidp_bind(struct device *dev)
vblank_fail:
malidp_se_irq_fini(hwdev);
malidp_de_irq_fini(hwdev);
- drm->irq_enabled = false;
irq_init_fail:
drm_atomic_helper_shutdown(drm);
component_unbind_all(dev, drm);
@@ -909,7 +906,6 @@ static void malidp_unbind(struct device *dev)
drm_atomic_helper_shutdown(drm);
malidp_se_irq_fini(hwdev);
malidp_de_irq_fini(hwdev);
- drm->irq_enabled = false;
component_unbind_all(dev, drm);
of_node_put(malidp->crtc.port);
malidp->crtc.port = NULL;
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 06/22] drm/malidp: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 ` [Nouveau] [PATCH v2 06/22] drm/malidp: " Thomas Zimmermann
@ 2021-06-22 15:26 ` Liviu Dudau
0 siblings, 0 replies; 34+ messages in thread
From: Liviu Dudau @ 2021-06-22 15:26 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: heiko, emma, airlied, nouveau, alexandre.torgue, dri-devel,
michal.simek, linux-tegra, thierry.reding, laurent.pinchart,
benjamin.gaignard, mihail.atanassov, festevam, linux-stm32,
linux-samsung-soc, jy0922.shim, krzysztof.kozlowski,
linux-rockchip, linux-mediatek, wens, jernej.skrabec,
xinliang.liu, kong.kongxinwei, james.qian.wang, linux-imx,
linux-graphics-maintainer, linux-sunxi, bskeggs, chunkuang.hu,
p.zabel, puck.chen, s.hauer, maarten.lankhorst, mripard,
inki.dae, john.stultz, laurentiu.palcu, matthias.bgg, kernel,
linux-arm-kernel, mcoquelin.stm32, amd-gfx, hyun.kwon, tomba,
jyri.sarha, yannick.fertre, Xinhui.Pan, sw0312.kim, hjc,
christian.koenig, kyungmin.park, philippe.cornu, daniel,
alexander.deucher, tiantao6, shawnguo, brian.starkey, zackr,
l.stach
On Tue, Jun 22, 2021 at 04:09:46PM +0200, Thomas Zimmermann wrote:
> The field drm_device.irq_enabled is only used by legacy drivers
> with userspace modesetting. Don't set it in malidp.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Best regards,
Liviu
> ---
> drivers/gpu/drm/arm/malidp_drv.c | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index de59f3302516..78d15b04b105 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -847,8 +847,6 @@ static int malidp_bind(struct device *dev)
> if (ret < 0)
> goto irq_init_fail;
>
> - drm->irq_enabled = true;
> -
> ret = drm_vblank_init(drm, drm->mode_config.num_crtc);
> if (ret < 0) {
> DRM_ERROR("failed to initialise vblank\n");
> @@ -874,7 +872,6 @@ static int malidp_bind(struct device *dev)
> vblank_fail:
> malidp_se_irq_fini(hwdev);
> malidp_de_irq_fini(hwdev);
> - drm->irq_enabled = false;
> irq_init_fail:
> drm_atomic_helper_shutdown(drm);
> component_unbind_all(dev, drm);
> @@ -909,7 +906,6 @@ static void malidp_unbind(struct device *dev)
> drm_atomic_helper_shutdown(drm);
> malidp_se_irq_fini(hwdev);
> malidp_de_irq_fini(hwdev);
> - drm->irq_enabled = false;
> component_unbind_all(dev, drm);
> of_node_put(malidp->crtc.port);
> malidp->crtc.port = NULL;
> --
> 2.32.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 07/22] drm/exynos: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (5 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 06/22] drm/malidp: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 08/22] drm/kirin: " Thomas Zimmermann
` (16 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in exynos.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index e60257f1f24b..d8f1cf4d6b69 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -300,16 +300,6 @@ static int exynos_drm_bind(struct device *dev)
drm_mode_config_reset(drm);
- /*
- * enable drm irq mode.
- * - with irq_enabled = true, we can use the vblank feature.
- *
- * P.S. note that we wouldn't use drm irq handler but
- * just specific driver own one instead because
- * drm framework supports only one irq handler.
- */
- drm->irq_enabled = true;
-
/* init kms poll for handling hpd */
drm_kms_helper_poll_init(drm);
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 08/22] drm/kirin: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (6 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 07/22] drm/exynos: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 09/22] drm/imx: " Thomas Zimmermann
` (15 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in kirin.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
index e590e19db657..98ae9a48f3fe 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c
@@ -185,8 +185,6 @@ static int kirin_drm_kms_init(struct drm_device *dev,
DRM_ERROR("failed to initialize vblank.\n");
goto err_unbind_all;
}
- /* with irq_enabled = true, we can use the vblank feature. */
- dev->irq_enabled = true;
/* reset all the states of crtc/plane/encoder/connector */
drm_mode_config_reset(dev);
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 09/22] drm/imx: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (7 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 08/22] drm/kirin: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-23 6:43 ` Laurentiu Palcu
2021-06-22 14:09 ` [Nouveau] [PATCH v2 10/22] drm/mediatek: " Thomas Zimmermann
` (14 subsequent siblings)
23 siblings, 1 reply; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in imx.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/imx/dcss/dcss-kms.c | 3 ---
drivers/gpu/drm/imx/imx-drm-core.c | 11 -----------
2 files changed, 14 deletions(-)
diff --git a/drivers/gpu/drm/imx/dcss/dcss-kms.c b/drivers/gpu/drm/imx/dcss/dcss-kms.c
index 37ae68a7fba5..917834b1c80e 100644
--- a/drivers/gpu/drm/imx/dcss/dcss-kms.c
+++ b/drivers/gpu/drm/imx/dcss/dcss-kms.c
@@ -133,8 +133,6 @@ struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss)
if (ret)
goto cleanup_mode_config;
- drm->irq_enabled = true;
-
ret = dcss_kms_bridge_connector_init(kms);
if (ret)
goto cleanup_mode_config;
@@ -178,7 +176,6 @@ void dcss_kms_detach(struct dcss_kms_dev *kms)
drm_kms_helper_poll_fini(drm);
drm_atomic_helper_shutdown(drm);
drm_crtc_vblank_off(&kms->crtc.base);
- drm->irq_enabled = false;
drm_mode_config_cleanup(drm);
dcss_crtc_deinit(&kms->crtc, drm);
drm->dev_private = NULL;
diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
index 76819a8ac37f..9558e9e1b431 100644
--- a/drivers/gpu/drm/imx/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/imx-drm-core.c
@@ -207,17 +207,6 @@ static int imx_drm_bind(struct device *dev)
if (IS_ERR(drm))
return PTR_ERR(drm);
- /*
- * enable drm irq mode.
- * - with irq_enabled = true, we can use the vblank feature.
- *
- * P.S. note that we wouldn't use drm irq handler but
- * just specific driver own one instead because
- * drm framework supports only one irq handler and
- * drivers can well take care of their interrupts
- */
- drm->irq_enabled = true;
-
/*
* set max width and height as default value(4096x4096).
* this value would be used to check framebuffer size limitation
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 09/22] drm/imx: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 ` [Nouveau] [PATCH v2 09/22] drm/imx: " Thomas Zimmermann
@ 2021-06-23 6:43 ` Laurentiu Palcu
0 siblings, 0 replies; 34+ messages in thread
From: Laurentiu Palcu @ 2021-06-23 6:43 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: heiko, emma, airlied, nouveau, liviu.dudau, alexandre.torgue,
dri-devel, michal.simek, linux-tegra, thierry.reding,
laurent.pinchart, benjamin.gaignard, mihail.atanassov, festevam,
linux-stm32, linux-samsung-soc, jy0922.shim, krzysztof.kozlowski,
linux-rockchip, linux-mediatek, wens, jernej.skrabec,
xinliang.liu, kong.kongxinwei, james.qian.wang, linux-imx,
linux-graphics-maintainer, linux-sunxi, bskeggs, chunkuang.hu,
p.zabel, puck.chen, s.hauer, maarten.lankhorst, mripard,
inki.dae, john.stultz, matthias.bgg, kernel, linux-arm-kernel,
mcoquelin.stm32, amd-gfx, hyun.kwon, tomba, jyri.sarha,
yannick.fertre, Xinhui.Pan, sw0312.kim, hjc, christian.koenig,
kyungmin.park, philippe.cornu, daniel, alexander.deucher,
tiantao6, shawnguo, brian.starkey, zackr, l.stach
Hi Thomas,
On Tue, Jun 22, 2021 at 04:09:49PM +0200, Thomas Zimmermann wrote:
> The field drm_device.irq_enabled is only used by legacy drivers
> with userspace modesetting. Don't set it in imx.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
> drivers/gpu/drm/imx/dcss/dcss-kms.c | 3 ---
Not sure if it's worth the effort but, since DCSS is a completely
self-contained driver, maybe it would be good to split this patch in 2
as well.
Anyway, for DCSS bit:
Acked-by: Laurentiu Palcu <laurentiu.palcu@oss.nxp.com>
Thanks,
laurentiu
> drivers/gpu/drm/imx/imx-drm-core.c | 11 -----------
> 2 files changed, 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/imx/dcss/dcss-kms.c b/drivers/gpu/drm/imx/dcss/dcss-kms.c
> index 37ae68a7fba5..917834b1c80e 100644
> --- a/drivers/gpu/drm/imx/dcss/dcss-kms.c
> +++ b/drivers/gpu/drm/imx/dcss/dcss-kms.c
> @@ -133,8 +133,6 @@ struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss)
> if (ret)
> goto cleanup_mode_config;
>
> - drm->irq_enabled = true;
> -
> ret = dcss_kms_bridge_connector_init(kms);
> if (ret)
> goto cleanup_mode_config;
> @@ -178,7 +176,6 @@ void dcss_kms_detach(struct dcss_kms_dev *kms)
> drm_kms_helper_poll_fini(drm);
> drm_atomic_helper_shutdown(drm);
> drm_crtc_vblank_off(&kms->crtc.base);
> - drm->irq_enabled = false;
> drm_mode_config_cleanup(drm);
> dcss_crtc_deinit(&kms->crtc, drm);
> drm->dev_private = NULL;
> diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
> index 76819a8ac37f..9558e9e1b431 100644
> --- a/drivers/gpu/drm/imx/imx-drm-core.c
> +++ b/drivers/gpu/drm/imx/imx-drm-core.c
> @@ -207,17 +207,6 @@ static int imx_drm_bind(struct device *dev)
> if (IS_ERR(drm))
> return PTR_ERR(drm);
>
> - /*
> - * enable drm irq mode.
> - * - with irq_enabled = true, we can use the vblank feature.
> - *
> - * P.S. note that we wouldn't use drm irq handler but
> - * just specific driver own one instead because
> - * drm framework supports only one irq handler and
> - * drivers can well take care of their interrupts
> - */
> - drm->irq_enabled = true;
> -
> /*
> * set max width and height as default value(4096x4096).
> * this value would be used to check framebuffer size limitation
> --
> 2.32.0
>
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 10/22] drm/mediatek: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (8 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 09/22] drm/imx: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 11/22] drm/nouveau: " Thomas Zimmermann
` (13 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in mediatek.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
index b46bdb8985da..9b60bec33d3b 100644
--- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
+++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
@@ -270,12 +270,6 @@ static int mtk_drm_kms_init(struct drm_device *drm)
goto err_component_unbind;
}
- /*
- * We don't use the drm_irq_install() helpers provided by the DRM
- * core, so we need to set this manually in order to allow the
- * DRM_IOCTL_WAIT_VBLANK to operate correctly.
- */
- drm->irq_enabled = true;
ret = drm_vblank_init(drm, MAX_CRTC);
if (ret < 0)
goto err_component_unbind;
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 11/22] drm/nouveau: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (9 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 10/22] drm/mediatek: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 12/22] drm/omapdrm: Track IRQ state in local device state Thomas Zimmermann
` (12 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in nouveau.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/nouveau/nouveau_drm.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
index a616cf4573b8..1cb14e99a60c 100644
--- a/drivers/gpu/drm/nouveau/nouveau_drm.c
+++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
@@ -553,8 +553,6 @@ nouveau_drm_device_init(struct drm_device *dev)
if (ret)
goto fail_master;
- dev->irq_enabled = true;
-
nvxx_client(&drm->client.base)->debug =
nvkm_dbgopt(nouveau_debug, "DRM");
@@ -795,7 +793,6 @@ nouveau_drm_device_remove(struct drm_device *dev)
drm_dev_unregister(dev);
- dev->irq_enabled = false;
client = nvxx_client(&drm->client.base);
device = nvkm_device_find(client->device);
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 12/22] drm/omapdrm: Track IRQ state in local device state
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (10 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 11/22] drm/nouveau: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 13/22] drm/rockchip: Don't set struct drm_device.irq_enabled Thomas Zimmermann
` (11 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
Replace usage of struct drm_device.irq_enabled with the driver's
own state field struct omap_drm_device.irq_enabled. The field in
the DRM device structure is considered legacy and should not be
used by KMS drivers.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/omapdrm/omap_drv.h | 2 ++
drivers/gpu/drm/omapdrm/omap_irq.c | 6 +++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/omapdrm/omap_drv.h b/drivers/gpu/drm/omapdrm/omap_drv.h
index d6f136984da9..591d4c273f02 100644
--- a/drivers/gpu/drm/omapdrm/omap_drv.h
+++ b/drivers/gpu/drm/omapdrm/omap_drv.h
@@ -48,6 +48,8 @@ struct omap_drm_private {
struct dss_device *dss;
struct dispc_device *dispc;
+ bool irq_enabled;
+
unsigned int num_pipes;
struct omap_drm_pipeline pipes[8];
struct omap_drm_pipeline *channels[8];
diff --git a/drivers/gpu/drm/omapdrm/omap_irq.c b/drivers/gpu/drm/omapdrm/omap_irq.c
index 15148d4b35b5..bb6e3fc18204 100644
--- a/drivers/gpu/drm/omapdrm/omap_irq.c
+++ b/drivers/gpu/drm/omapdrm/omap_irq.c
@@ -291,7 +291,7 @@ int omap_drm_irq_install(struct drm_device *dev)
if (ret < 0)
return ret;
- dev->irq_enabled = true;
+ priv->irq_enabled = true;
return 0;
}
@@ -300,10 +300,10 @@ void omap_drm_irq_uninstall(struct drm_device *dev)
{
struct omap_drm_private *priv = dev->dev_private;
- if (!dev->irq_enabled)
+ if (!priv->irq_enabled)
return;
- dev->irq_enabled = false;
+ priv->irq_enabled = false;
dispc_free_irq(priv->dispc, dev);
}
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 13/22] drm/rockchip: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (11 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 12/22] drm/omapdrm: Track IRQ state in local device state Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 14/22] drm/sti: " Thomas Zimmermann
` (10 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in rockchip.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index b730b8d5d949..c8e60fd9ff24 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -162,12 +162,6 @@ static int rockchip_drm_bind(struct device *dev)
drm_mode_config_reset(drm_dev);
- /*
- * enable drm irq mode.
- * - with irq_enabled = true, we can use the vblank feature.
- */
- drm_dev->irq_enabled = true;
-
ret = rockchip_drm_fbdev_init(drm_dev);
if (ret)
goto err_unbind_all;
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 14/22] drm/sti: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (12 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 13/22] drm/rockchip: Don't set struct drm_device.irq_enabled Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 15/22] drm/stm: " Thomas Zimmermann
` (9 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in sti.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/sti/sti_compositor.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/sti/sti_compositor.c b/drivers/gpu/drm/sti/sti_compositor.c
index 319962a2c17b..9caaf3ccfabe 100644
--- a/drivers/gpu/drm/sti/sti_compositor.c
+++ b/drivers/gpu/drm/sti/sti_compositor.c
@@ -145,8 +145,6 @@ static int sti_compositor_bind(struct device *dev,
}
drm_vblank_init(drm_dev, crtc_id);
- /* Allow usage of vblank without having to call drm_irq_install */
- drm_dev->irq_enabled = 1;
return 0;
}
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 15/22] drm/stm: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (13 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 14/22] drm/sti: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 16/22] drm/sun4i: " Thomas Zimmermann
` (8 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in stm.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/stm/ltdc.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
index 08b71248044d..e9c5a52f041a 100644
--- a/drivers/gpu/drm/stm/ltdc.c
+++ b/drivers/gpu/drm/stm/ltdc.c
@@ -1339,9 +1339,6 @@ int ltdc_load(struct drm_device *ddev)
goto err;
}
- /* Allow usage of vblank without having to call drm_irq_install */
- ddev->irq_enabled = 1;
-
clk_disable_unprepare(ldev->pixel_clk);
pinctrl_pm_select_sleep_state(ddev->dev);
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 16/22] drm/sun4i: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (14 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 15/22] drm/stm: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 17/22] drm/tegra: " Thomas Zimmermann
` (7 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in sun4i.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/sun4i/sun4i_drv.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c
index af335f58bdfc..570f3af25e86 100644
--- a/drivers/gpu/drm/sun4i/sun4i_drv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_drv.c
@@ -97,8 +97,6 @@ static int sun4i_drv_bind(struct device *dev)
if (ret)
goto cleanup_mode_config;
- drm->irq_enabled = true;
-
/* Remove early framebuffers (ie. simplefb) */
ret = drm_aperture_remove_framebuffers(false, "sun4i-drm-fb");
if (ret)
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 17/22] drm/tegra: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (15 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 16/22] drm/sun4i: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 18/22] drm/tidss: Don't use " Thomas Zimmermann
` (6 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in tegra.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/tegra/drm.c | 7 -------
1 file changed, 7 deletions(-)
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c
index f96c237b2242..8d27c21ddf48 100644
--- a/drivers/gpu/drm/tegra/drm.c
+++ b/drivers/gpu/drm/tegra/drm.c
@@ -1188,13 +1188,6 @@ static int host1x_drm_probe(struct host1x_device *dev)
goto device;
}
- /*
- * We don't use the drm_irq_install() helpers provided by the DRM
- * core, so we need to set this manually in order to allow the
- * DRM_IOCTL_WAIT_VBLANK to operate correctly.
- */
- drm->irq_enabled = true;
-
/* syncpoints are used for full 32-bit hardware VBLANK counters */
drm->max_vblank_count = 0xffffffff;
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 18/22] drm/tidss: Don't use struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (16 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 17/22] drm/tegra: " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:09 ` [Nouveau] [PATCH v2 19/22] drm/vc4: Don't set " Thomas Zimmermann
` (5 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't use it in tidss.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/tidss/tidss_irq.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/gpu/drm/tidss/tidss_irq.c b/drivers/gpu/drm/tidss/tidss_irq.c
index a5ec7931ef6b..2ed3e3296776 100644
--- a/drivers/gpu/drm/tidss/tidss_irq.c
+++ b/drivers/gpu/drm/tidss/tidss_irq.c
@@ -57,9 +57,6 @@ irqreturn_t tidss_irq_handler(int irq, void *arg)
unsigned int id;
dispc_irq_t irqstatus;
- if (WARN_ON(!ddev->irq_enabled))
- return IRQ_NONE;
-
irqstatus = dispc_read_and_clear_irqstatus(tidss->dispc);
for (id = 0; id < tidss->num_crtcs; id++) {
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 19/22] drm/vc4: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (17 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 18/22] drm/tidss: Don't use " Thomas Zimmermann
@ 2021-06-22 14:09 ` Thomas Zimmermann
2021-06-22 14:10 ` [Nouveau] [PATCH v2 20/22] drm/vmwgfx: " Thomas Zimmermann
` (4 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:09 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in vc4.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/vc4/vc4_kms.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
index 6a1a9e1d72ce..f0b3e4cf5bce 100644
--- a/drivers/gpu/drm/vc4/vc4_kms.c
+++ b/drivers/gpu/drm/vc4/vc4_kms.c
@@ -880,7 +880,6 @@ int vc4_kms_load(struct drm_device *dev)
/* Set support for vblank irq fast disable, before drm_vblank_init() */
dev->vblank_disable_immediate = true;
- dev->irq_enabled = true;
ret = drm_vblank_init(dev, dev->mode_config.num_crtc);
if (ret < 0) {
dev_err(dev->dev, "failed to initialize vblank\n");
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 20/22] drm/vmwgfx: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (18 preceding siblings ...)
2021-06-22 14:09 ` [Nouveau] [PATCH v2 19/22] drm/vc4: Don't set " Thomas Zimmermann
@ 2021-06-22 14:10 ` Thomas Zimmermann
2021-06-22 14:10 ` [Nouveau] [PATCH v2 21/22] drm/xlnx: " Thomas Zimmermann
` (3 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:10 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in vmxgfx. All usage of
the field within vmwgfx can safely be removed.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 8 --------
1 file changed, 8 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
index b9a9b7ddadbd..4b82f5995452 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
@@ -292,15 +292,11 @@ void vmw_irq_uninstall(struct drm_device *dev)
if (!(dev_priv->capabilities & SVGA_CAP_IRQMASK))
return;
- if (!dev->irq_enabled)
- return;
-
vmw_write(dev_priv, SVGA_REG_IRQMASK, 0);
status = vmw_irq_status_read(dev_priv);
vmw_irq_status_write(dev_priv, status);
- dev->irq_enabled = false;
free_irq(dev->irq, dev);
}
@@ -315,9 +311,6 @@ int vmw_irq_install(struct drm_device *dev, int irq)
{
int ret;
- if (dev->irq_enabled)
- return -EBUSY;
-
vmw_irq_preinstall(dev);
ret = request_threaded_irq(irq, vmw_irq_handler, vmw_thread_fn,
@@ -325,7 +318,6 @@ int vmw_irq_install(struct drm_device *dev, int irq)
if (ret < 0)
return ret;
- dev->irq_enabled = true;
dev->irq = irq;
return ret;
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 21/22] drm/xlnx: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (19 preceding siblings ...)
2021-06-22 14:10 ` [Nouveau] [PATCH v2 20/22] drm/vmwgfx: " Thomas Zimmermann
@ 2021-06-22 14:10 ` Thomas Zimmermann
2021-06-22 14:10 ` [Nouveau] [PATCH v2 22/22] drm/zte: " Thomas Zimmermann
` (2 subsequent siblings)
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:10 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in xlnx.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
index 0c1c50271a88..ac37053412a1 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_dpsub.c
@@ -111,8 +111,6 @@ static int zynqmp_dpsub_drm_init(struct zynqmp_dpsub *dpsub)
if (ret)
return ret;
- drm->irq_enabled = 1;
-
drm_kms_helper_poll_init(drm);
/*
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* [Nouveau] [PATCH v2 22/22] drm/zte: Don't set struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (20 preceding siblings ...)
2021-06-22 14:10 ` [Nouveau] [PATCH v2 21/22] drm/xlnx: " Thomas Zimmermann
@ 2021-06-22 14:10 ` Thomas Zimmermann
2021-06-22 15:24 ` [Nouveau] [PATCH v2 00/22] Deprecate " Daniel Vetter
2021-06-22 16:11 ` Laurent Pinchart
23 siblings, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-22 14:10 UTC (permalink / raw)
To: daniel, airlied, alexander.deucher, christian.koenig, Xinhui.Pan,
james.qian.wang, liviu.dudau, mihail.atanassov, brian.starkey,
maarten.lankhorst, mripard, inki.dae, jy0922.shim, sw0312.kim,
kyungmin.park, krzysztof.kozlowski, xinliang.liu, tiantao6,
john.stultz, kong.kongxinwei, puck.chen, laurentiu.palcu,
l.stach, p.zabel, shawnguo, s.hauer, kernel, festevam, linux-imx,
chunkuang.hu, matthias.bgg, bskeggs, tomba, hjc, heiko,
benjamin.gaignard, yannick.fertre, philippe.cornu,
mcoquelin.stm32, alexandre.torgue, wens, jernej.skrabec,
thierry.reding, jonathanh, jyri.sarha, emma,
linux-graphics-maintainer, zackr, hyun.kwon, laurent.pinchart,
michal.simek
Cc: linux-samsung-soc, nouveau, dri-devel, linux-sunxi,
linux-rockchip, linux-mediatek, amd-gfx, linux-tegra,
linux-stm32, linux-arm-kernel
The field drm_device.irq_enabled is only used by legacy drivers
with userspace modesetting. Don't set it in zte.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
---
drivers/gpu/drm/zte/zx_drm_drv.c | 6 ------
1 file changed, 6 deletions(-)
diff --git a/drivers/gpu/drm/zte/zx_drm_drv.c b/drivers/gpu/drm/zte/zx_drm_drv.c
index 5506336594e2..064056503ebb 100644
--- a/drivers/gpu/drm/zte/zx_drm_drv.c
+++ b/drivers/gpu/drm/zte/zx_drm_drv.c
@@ -75,12 +75,6 @@ static int zx_drm_bind(struct device *dev)
goto out_unbind;
}
- /*
- * We will manage irq handler on our own. In this case, irq_enabled
- * need to be true for using vblank core support.
- */
- drm->irq_enabled = true;
-
drm_mode_config_reset(drm);
drm_kms_helper_poll_init(drm);
--
2.32.0
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply related [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (21 preceding siblings ...)
2021-06-22 14:10 ` [Nouveau] [PATCH v2 22/22] drm/zte: " Thomas Zimmermann
@ 2021-06-22 15:24 ` Daniel Vetter
2021-06-22 16:11 ` Laurent Pinchart
23 siblings, 0 replies; 34+ messages in thread
From: Daniel Vetter @ 2021-06-22 15:24 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: heiko, emma, airlied, nouveau, liviu.dudau, alexandre.torgue,
dri-devel, michal.simek, linux-tegra, thierry.reding,
laurent.pinchart, benjamin.gaignard, mihail.atanassov, festevam,
linux-stm32, linux-samsung-soc, jy0922.shim, krzysztof.kozlowski,
linux-rockchip, linux-mediatek, wens, jernej.skrabec,
xinliang.liu, kong.kongxinwei, james.qian.wang, linux-imx,
linux-graphics-maintainer, linux-sunxi, bskeggs, chunkuang.hu,
p.zabel, puck.chen, s.hauer, maarten.lankhorst, mripard,
inki.dae, john.stultz, laurentiu.palcu, matthias.bgg, kernel,
linux-arm-kernel, mcoquelin.stm32, amd-gfx, hyun.kwon, tomba,
jyri.sarha, yannick.fertre, Xinhui.Pan, sw0312.kim, hjc,
christian.koenig, kyungmin.park, philippe.cornu, daniel,
alexander.deucher, tiantao6, shawnguo, brian.starkey, zackr,
l.stach
On Tue, Jun 22, 2021 at 04:09:40PM +0200, Thomas Zimmermann wrote:
> Remove references to struct drm_device.irq_enabled from modern
> DRM drivers and core.
>
> KMS drivers enable IRQs for their devices internally. They don't
> have to keep track of the IRQ state via irq_enabled. For vblanking,
> it's cleaner to test for vblanking support directly than to test
> for enabled IRQs.
>
> This used to be a single patch, [1] but it's now a full series.
>
> The first 3 patches replace instances of irq_enabled that are not
> required.
>
> Patch 4 fixes vblank ioctls to actually test for vblank support
> instead of IRQs.
>
> THe rest of the patchset removes irq_enabled from all non-legacy
> drivers. The only exception is omapdrm, which has an internal
> dpendency on the field's value. For this drivers, the state gets
> duplicated internally.
>
> With the patchset applied, drivers can later switch over to plain
> Linux IRQ interfaces and DRM's IRQ midlayer can be declared legacy.
>
> v2:
> * keep the original test for legacy drivers in
> drm_wait_vblank_ioctl() (Daniel)
>
> [1] https://lore.kernel.org/dri-devel/20210608090301.4752-1-tzimmermann@suse.de/
On the series:
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
But I've only done a very light reading of this, so please wait for driver
folks to have some time to check their own before merging.
I think a devm_ version of drm_irq_install might be helpful in further
untangling here, but that's definitely for another series.
-Daniel
>
> Thomas Zimmermann (22):
> drm/amdgpu: Track IRQ state in local device state
> drm/hibmc: Call drm_irq_uninstall() unconditionally
> drm/radeon: Track IRQ state in local device state
> drm: Don't test for IRQ support in VBLANK ioctls
> drm/komeda: Don't set struct drm_device.irq_enabled
> drm/malidp: Don't set struct drm_device.irq_enabled
> drm/exynos: Don't set struct drm_device.irq_enabled
> drm/kirin: Don't set struct drm_device.irq_enabled
> drm/imx: Don't set struct drm_device.irq_enabled
> drm/mediatek: Don't set struct drm_device.irq_enabled
> drm/nouveau: Don't set struct drm_device.irq_enabled
> drm/omapdrm: Track IRQ state in local device state
> drm/rockchip: Don't set struct drm_device.irq_enabled
> drm/sti: Don't set struct drm_device.irq_enabled
> drm/stm: Don't set struct drm_device.irq_enabled
> drm/sun4i: Don't set struct drm_device.irq_enabled
> drm/tegra: Don't set struct drm_device.irq_enabled
> drm/tidss: Don't use struct drm_device.irq_enabled
> drm/vc4: Don't set struct drm_device.irq_enabled
> drm/vmwgfx: Don't set struct drm_device.irq_enabled
> drm/xlnx: Don't set struct drm_device.irq_enabled
> drm/zte: Don't set struct drm_device.irq_enabled
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 6 +++---
> drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 ----
> drivers/gpu/drm/arm/malidp_drv.c | 4 ----
> drivers/gpu/drm/drm_irq.c | 10 +++-------
> drivers/gpu/drm/drm_vblank.c | 13 +++++++++----
> drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ----------
> drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 +--
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 2 --
> drivers/gpu/drm/imx/dcss/dcss-kms.c | 3 ---
> drivers/gpu/drm/imx/imx-drm-core.c | 11 -----------
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ------
> drivers/gpu/drm/nouveau/nouveau_drm.c | 3 ---
> drivers/gpu/drm/omapdrm/omap_drv.h | 2 ++
> drivers/gpu/drm/omapdrm/omap_irq.c | 6 +++---
> drivers/gpu/drm/radeon/radeon_fence.c | 2 +-
> drivers/gpu/drm/radeon/radeon_irq_kms.c | 16 ++++++++--------
> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ------
> drivers/gpu/drm/sti/sti_compositor.c | 2 --
> drivers/gpu/drm/stm/ltdc.c | 3 ---
> drivers/gpu/drm/sun4i/sun4i_drv.c | 2 --
> drivers/gpu/drm/tegra/drm.c | 7 -------
> drivers/gpu/drm/tidss/tidss_irq.c | 3 ---
> drivers/gpu/drm/vc4/vc4_kms.c | 1 -
> drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 8 --------
> drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 2 --
> drivers/gpu/drm/zte/zx_drm_drv.c | 6 ------
> 26 files changed, 30 insertions(+), 111 deletions(-)
>
>
> base-commit: 8c1323b422f8473421682ba783b5949ddd89a3f4
> prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d
> prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
> --
> 2.32.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled
2021-06-22 14:09 [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled Thomas Zimmermann
` (22 preceding siblings ...)
2021-06-22 15:24 ` [Nouveau] [PATCH v2 00/22] Deprecate " Daniel Vetter
@ 2021-06-22 16:11 ` Laurent Pinchart
2021-06-22 16:17 ` Laurent Pinchart
2021-06-23 6:46 ` Thomas Zimmermann
23 siblings, 2 replies; 34+ messages in thread
From: Laurent Pinchart @ 2021-06-22 16:11 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: heiko, emma, airlied, nouveau, liviu.dudau, alexandre.torgue,
dri-devel, michal.simek, linux-tegra, thierry.reding, amd-gfx,
benjamin.gaignard, mihail.atanassov, festevam, linux-stm32,
linux-samsung-soc, jy0922.shim, krzysztof.kozlowski,
linux-rockchip, linux-mediatek, wens, jernej.skrabec,
xinliang.liu, kong.kongxinwei, james.qian.wang, linux-imx,
linux-graphics-maintainer, linux-sunxi, bskeggs, chunkuang.hu,
p.zabel, puck.chen, s.hauer, maarten.lankhorst, mripard,
inki.dae, john.stultz, laurentiu.palcu, matthias.bgg, kernel,
linux-arm-kernel, mcoquelin.stm32, hyun.kwon, tomba, jyri.sarha,
yannick.fertre, Xinhui.Pan, sw0312.kim, hjc, christian.koenig,
kyungmin.park, philippe.cornu, daniel, alexander.deucher,
tiantao6, shawnguo, brian.starkey, zackr, l.stach
Hi Thomas,
Thank you for the patches.
On Tue, Jun 22, 2021 at 04:09:40PM +0200, Thomas Zimmermann wrote:
> Remove references to struct drm_device.irq_enabled from modern
> DRM drivers and core.
>
> KMS drivers enable IRQs for their devices internally. They don't
> have to keep track of the IRQ state via irq_enabled. For vblanking,
> it's cleaner to test for vblanking support directly than to test
> for enabled IRQs.
>
> This used to be a single patch, [1] but it's now a full series.
>
> The first 3 patches replace instances of irq_enabled that are not
> required.
>
> Patch 4 fixes vblank ioctls to actually test for vblank support
> instead of IRQs.
>
> THe rest of the patchset removes irq_enabled from all non-legacy
> drivers. The only exception is omapdrm, which has an internal
> dpendency on the field's value. For this drivers, the state gets
> duplicated internally.
>
> With the patchset applied, drivers can later switch over to plain
> Linux IRQ interfaces and DRM's IRQ midlayer can be declared legacy.
>
> v2:
> * keep the original test for legacy drivers in
> drm_wait_vblank_ioctl() (Daniel)
>
> [1] https://lore.kernel.org/dri-devel/20210608090301.4752-1-tzimmermann@suse.de/
>
> Thomas Zimmermann (22):
> drm/amdgpu: Track IRQ state in local device state
> drm/hibmc: Call drm_irq_uninstall() unconditionally
> drm/radeon: Track IRQ state in local device state
> drm: Don't test for IRQ support in VBLANK ioctls
> drm/komeda: Don't set struct drm_device.irq_enabled
> drm/malidp: Don't set struct drm_device.irq_enabled
> drm/exynos: Don't set struct drm_device.irq_enabled
> drm/kirin: Don't set struct drm_device.irq_enabled
> drm/imx: Don't set struct drm_device.irq_enabled
> drm/mediatek: Don't set struct drm_device.irq_enabled
> drm/nouveau: Don't set struct drm_device.irq_enabled
> drm/omapdrm: Track IRQ state in local device state
> drm/rockchip: Don't set struct drm_device.irq_enabled
> drm/sti: Don't set struct drm_device.irq_enabled
> drm/stm: Don't set struct drm_device.irq_enabled
> drm/sun4i: Don't set struct drm_device.irq_enabled
> drm/tegra: Don't set struct drm_device.irq_enabled
> drm/tidss: Don't use struct drm_device.irq_enabled
> drm/vc4: Don't set struct drm_device.irq_enabled
> drm/vmwgfx: Don't set struct drm_device.irq_enabled
> drm/xlnx: Don't set struct drm_device.irq_enabled
> drm/zte: Don't set struct drm_device.irq_enabled
The list seems to be missing armada, rcar-du and vkms. It would also be
nice to address i915 if possible.
> drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 6 +++---
> drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 ----
> drivers/gpu/drm/arm/malidp_drv.c | 4 ----
> drivers/gpu/drm/drm_irq.c | 10 +++-------
> drivers/gpu/drm/drm_vblank.c | 13 +++++++++----
> drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ----------
> drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 +--
> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 2 --
> drivers/gpu/drm/imx/dcss/dcss-kms.c | 3 ---
> drivers/gpu/drm/imx/imx-drm-core.c | 11 -----------
> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ------
> drivers/gpu/drm/nouveau/nouveau_drm.c | 3 ---
> drivers/gpu/drm/omapdrm/omap_drv.h | 2 ++
> drivers/gpu/drm/omapdrm/omap_irq.c | 6 +++---
> drivers/gpu/drm/radeon/radeon_fence.c | 2 +-
> drivers/gpu/drm/radeon/radeon_irq_kms.c | 16 ++++++++--------
> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ------
> drivers/gpu/drm/sti/sti_compositor.c | 2 --
> drivers/gpu/drm/stm/ltdc.c | 3 ---
> drivers/gpu/drm/sun4i/sun4i_drv.c | 2 --
> drivers/gpu/drm/tegra/drm.c | 7 -------
> drivers/gpu/drm/tidss/tidss_irq.c | 3 ---
> drivers/gpu/drm/vc4/vc4_kms.c | 1 -
> drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 8 --------
> drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 2 --
> drivers/gpu/drm/zte/zx_drm_drv.c | 6 ------
> 26 files changed, 30 insertions(+), 111 deletions(-)
>
>
> base-commit: 8c1323b422f8473421682ba783b5949ddd89a3f4
> prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d
> prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
--
Regards,
Laurent Pinchart
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled
2021-06-22 16:11 ` Laurent Pinchart
@ 2021-06-22 16:17 ` Laurent Pinchart
2021-06-23 6:46 ` Thomas Zimmermann
1 sibling, 0 replies; 34+ messages in thread
From: Laurent Pinchart @ 2021-06-22 16:17 UTC (permalink / raw)
To: Thomas Zimmermann
Cc: heiko, emma, airlied, nouveau, liviu.dudau, alexandre.torgue,
dri-devel, michal.simek, linux-tegra, thierry.reding, amd-gfx,
benjamin.gaignard, mihail.atanassov, festevam, linux-stm32,
linux-samsung-soc, jy0922.shim, krzysztof.kozlowski,
linux-rockchip, linux-mediatek, wens, jernej.skrabec,
xinliang.liu, kong.kongxinwei, james.qian.wang, linux-imx,
linux-graphics-maintainer, linux-sunxi, bskeggs, chunkuang.hu,
p.zabel, puck.chen, s.hauer, maarten.lankhorst, mripard,
inki.dae, john.stultz, laurentiu.palcu, matthias.bgg, kernel,
linux-arm-kernel, mcoquelin.stm32, hyun.kwon, tomba, jyri.sarha,
yannick.fertre, Xinhui.Pan, sw0312.kim, hjc, christian.koenig,
kyungmin.park, philippe.cornu, daniel, alexander.deucher,
tiantao6, shawnguo, brian.starkey, zackr, l.stach
On Tue, Jun 22, 2021 at 07:11:33PM +0300, Laurent Pinchart wrote:
> Hi Thomas,
>
> Thank you for the patches.
>
> On Tue, Jun 22, 2021 at 04:09:40PM +0200, Thomas Zimmermann wrote:
> > Remove references to struct drm_device.irq_enabled from modern
> > DRM drivers and core.
> >
> > KMS drivers enable IRQs for their devices internally. They don't
> > have to keep track of the IRQ state via irq_enabled. For vblanking,
> > it's cleaner to test for vblanking support directly than to test
> > for enabled IRQs.
> >
> > This used to be a single patch, [1] but it's now a full series.
> >
> > The first 3 patches replace instances of irq_enabled that are not
> > required.
> >
> > Patch 4 fixes vblank ioctls to actually test for vblank support
> > instead of IRQs.
> >
> > THe rest of the patchset removes irq_enabled from all non-legacy
> > drivers. The only exception is omapdrm, which has an internal
> > dpendency on the field's value. For this drivers, the state gets
> > duplicated internally.
> >
> > With the patchset applied, drivers can later switch over to plain
> > Linux IRQ interfaces and DRM's IRQ midlayer can be declared legacy.
> >
> > v2:
> > * keep the original test for legacy drivers in
> > drm_wait_vblank_ioctl() (Daniel)
> >
> > [1] https://lore.kernel.org/dri-devel/20210608090301.4752-1-tzimmermann@suse.de/
> >
> > Thomas Zimmermann (22):
> > drm/amdgpu: Track IRQ state in local device state
> > drm/hibmc: Call drm_irq_uninstall() unconditionally
> > drm/radeon: Track IRQ state in local device state
> > drm: Don't test for IRQ support in VBLANK ioctls
> > drm/komeda: Don't set struct drm_device.irq_enabled
> > drm/malidp: Don't set struct drm_device.irq_enabled
> > drm/exynos: Don't set struct drm_device.irq_enabled
> > drm/kirin: Don't set struct drm_device.irq_enabled
> > drm/imx: Don't set struct drm_device.irq_enabled
> > drm/mediatek: Don't set struct drm_device.irq_enabled
> > drm/nouveau: Don't set struct drm_device.irq_enabled
> > drm/omapdrm: Track IRQ state in local device state
> > drm/rockchip: Don't set struct drm_device.irq_enabled
> > drm/sti: Don't set struct drm_device.irq_enabled
> > drm/stm: Don't set struct drm_device.irq_enabled
> > drm/sun4i: Don't set struct drm_device.irq_enabled
> > drm/tegra: Don't set struct drm_device.irq_enabled
> > drm/tidss: Don't use struct drm_device.irq_enabled
> > drm/vc4: Don't set struct drm_device.irq_enabled
> > drm/vmwgfx: Don't set struct drm_device.irq_enabled
> > drm/xlnx: Don't set struct drm_device.irq_enabled
> > drm/zte: Don't set struct drm_device.irq_enabled
>
> The list seems to be missing armada, rcar-du and vkms. It would also be
> nice to address i915 if possible.
In addition to this, for all the existing patches,
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 6 +++---
> > drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 ----
> > drivers/gpu/drm/arm/malidp_drv.c | 4 ----
> > drivers/gpu/drm/drm_irq.c | 10 +++-------
> > drivers/gpu/drm/drm_vblank.c | 13 +++++++++----
> > drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ----------
> > drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 +--
> > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 2 --
> > drivers/gpu/drm/imx/dcss/dcss-kms.c | 3 ---
> > drivers/gpu/drm/imx/imx-drm-core.c | 11 -----------
> > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ------
> > drivers/gpu/drm/nouveau/nouveau_drm.c | 3 ---
> > drivers/gpu/drm/omapdrm/omap_drv.h | 2 ++
> > drivers/gpu/drm/omapdrm/omap_irq.c | 6 +++---
> > drivers/gpu/drm/radeon/radeon_fence.c | 2 +-
> > drivers/gpu/drm/radeon/radeon_irq_kms.c | 16 ++++++++--------
> > drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ------
> > drivers/gpu/drm/sti/sti_compositor.c | 2 --
> > drivers/gpu/drm/stm/ltdc.c | 3 ---
> > drivers/gpu/drm/sun4i/sun4i_drv.c | 2 --
> > drivers/gpu/drm/tegra/drm.c | 7 -------
> > drivers/gpu/drm/tidss/tidss_irq.c | 3 ---
> > drivers/gpu/drm/vc4/vc4_kms.c | 1 -
> > drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 8 --------
> > drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 2 --
> > drivers/gpu/drm/zte/zx_drm_drv.c | 6 ------
> > 26 files changed, 30 insertions(+), 111 deletions(-)
> >
> >
> > base-commit: 8c1323b422f8473421682ba783b5949ddd89a3f4
> > prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d
> > prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24
--
Regards,
Laurent Pinchart
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread
* Re: [Nouveau] [PATCH v2 00/22] Deprecate struct drm_device.irq_enabled
2021-06-22 16:11 ` Laurent Pinchart
2021-06-22 16:17 ` Laurent Pinchart
@ 2021-06-23 6:46 ` Thomas Zimmermann
1 sibling, 0 replies; 34+ messages in thread
From: Thomas Zimmermann @ 2021-06-23 6:46 UTC (permalink / raw)
To: Laurent Pinchart
Cc: emma, airlied, nouveau, liviu.dudau, alexandre.torgue, dri-devel,
matthias.bgg, thierry.reding, jernej.skrabec, benjamin.gaignard,
mihail.atanassov, linux-stm32, linux-samsung-soc, jy0922.shim,
krzysztof.kozlowski, michal.simek, amd-gfx, linux-rockchip, wens,
james.qian.wang, linux-imx, xinliang.liu,
linux-graphics-maintainer, kong.kongxinwei, linux-sunxi, bskeggs,
chunkuang.hu, mcoquelin.stm32, puck.chen, s.hauer,
linux-mediatek, laurentiu.palcu, linux-tegra, linux-arm-kernel,
tomba, hyun.kwon, shawnguo, yannick.fertre, Xinhui.Pan,
sw0312.kim, hjc, kyungmin.park, philippe.cornu, kernel,
alexander.deucher, tiantao6, jyri.sarha, christian.koenig
[-- Attachment #1.1.1: Type: text/plain, Size: 3137 bytes --]
Am 22.06.21 um 18:11 schrieb Laurent Pinchart:
> Hi Thomas,
>
> Thank you for the patches.
>
> On Tue, Jun 22, 2021 at 04:09:40PM +0200, Thomas Zimmermann wrote:
>> Remove references to struct drm_device.irq_enabled from modern
>> DRM drivers and core.
>>
>> KMS drivers enable IRQs for their devices internally. They don't
>> have to keep track of the IRQ state via irq_enabled. For vblanking,
>> it's cleaner to test for vblanking support directly than to test
>> for enabled IRQs.
>>
>> This used to be a single patch, [1] but it's now a full series.
>>
>> The first 3 patches replace instances of irq_enabled that are not
>> required.
>>
>> Patch 4 fixes vblank ioctls to actually test for vblank support
>> instead of IRQs.
>>
>> THe rest of the patchset removes irq_enabled from all non-legacy
>> drivers. The only exception is omapdrm, which has an internal
>> dpendency on the field's value. For this drivers, the state gets
>> duplicated internally.
>>
>> With the patchset applied, drivers can later switch over to plain
>> Linux IRQ interfaces and DRM's IRQ midlayer can be declared legacy.
>>
>> v2:
>> * keep the original test for legacy drivers in
>> drm_wait_vblank_ioctl() (Daniel)
>>
>> [1] https://lore.kernel.org/dri-devel/20210608090301.4752-1-tzimmermann@suse.de/
>>
>> Thomas Zimmermann (22):
>> drm/amdgpu: Track IRQ state in local device state
>> drm/hibmc: Call drm_irq_uninstall() unconditionally
>> drm/radeon: Track IRQ state in local device state
>> drm: Don't test for IRQ support in VBLANK ioctls
>> drm/komeda: Don't set struct drm_device.irq_enabled
>> drm/malidp: Don't set struct drm_device.irq_enabled
>> drm/exynos: Don't set struct drm_device.irq_enabled
>> drm/kirin: Don't set struct drm_device.irq_enabled
>> drm/imx: Don't set struct drm_device.irq_enabled
>> drm/mediatek: Don't set struct drm_device.irq_enabled
>> drm/nouveau: Don't set struct drm_device.irq_enabled
>> drm/omapdrm: Track IRQ state in local device state
>> drm/rockchip: Don't set struct drm_device.irq_enabled
>> drm/sti: Don't set struct drm_device.irq_enabled
>> drm/stm: Don't set struct drm_device.irq_enabled
>> drm/sun4i: Don't set struct drm_device.irq_enabled
>> drm/tegra: Don't set struct drm_device.irq_enabled
>> drm/tidss: Don't use struct drm_device.irq_enabled
>> drm/vc4: Don't set struct drm_device.irq_enabled
>> drm/vmwgfx: Don't set struct drm_device.irq_enabled
>> drm/xlnx: Don't set struct drm_device.irq_enabled
>> drm/zte: Don't set struct drm_device.irq_enabled
>
> The list seems to be missing armada, rcar-du and vkms. It would also be
> nice to address i915 if possible.
Indeed. I grepped for \>irq_enabled. But some few drivers use
.irq_enabled. I'll fix this in the patchset's next iteration. Thanks for
double checking.
Best regards
Thomas
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]
[-- Attachment #2: Type: text/plain, Size: 154 bytes --]
_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau
^ permalink raw reply [flat|nested] 34+ messages in thread