Deprecate struct drm_device.irq_enabled
Subsystems (33)
Thomas Zimmermann
maintainerv3 cover Deprecate struct drm_device.irq_enabled
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.
The first 3 patches replace uses of irq_enabled that are not required.
Patch 4 fixes vblank ioctls to actually test for vblank support instead of IRQs (for KMS drivers).
The rest of the patchset removes irq_enabled from all non-legacy drivers. The only exceptions are i915 and omapdrm, which have an internal dpendency on the field's value. For these 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.
v3:
* update armada, i915, rcar-du and vkms as well (Laurent)
* optimize drm_wait_vblank_ioctl() for KMS (Liviu)
* move imx/dcss changes into their own patch (Laurentiu)
* doc cleanups
v2:
* keep the original test for legacy drivers in drm_wait_vblank_ioctl() (Daniel)
Thomas Zimmermann (27):
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/armada: Don't set struct drm_device.irq_enabled drm/i915: Track IRQ state in local device state 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/imx/dcss: 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/rcar-du: Don't set struct drm_device.irq_enabled 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/vkms: 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/armada/armada_drv.c | 2 -- drivers/gpu/drm/drm_irq.c | 13 ++++--------- drivers/gpu/drm/drm_vblank.c | 16 ++++++++++++---- 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/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_irq.c | 8 ++++---- 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/rcar-du/rcar_du_drv.c | 2 -- 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/vkms/vkms_drv.c | 2 -- 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 ------ 31 files changed, 40 insertions(+), 123 deletions(-)
base-commit: 8c1323b422f8473421682ba783b5949ddd89a3f4
prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d
prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24 --
2.32.0
Thomas Zimmermann
maintainerPATCH v3 1/27 drm/amdgpu: Track IRQ state in local device state
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.
--- drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c +3 -3
@@ -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)
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 2/27 drm/hibmc: Call drm_irq_uninstall() unconditionally
In reply to Thomas ZimmermannRemove 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.
--- drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c +1 -2
@@ -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));
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 3/27 drm/radeon: Track IRQ state in local device state
In reply to Thomas ZimmermannReplace 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.
--- drivers/gpu/drm/radeon/radeon_fence.c | 2 +- drivers/gpu/drm/radeon/radeon_irq_kms.c | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-)
drivers/gpu/drm/radeon/radeon_fence.c +1 -1
@@ -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;
drivers/gpu/drm/radeon/radeon_irq_kms.c +8 -8
@@ -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);
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 4/27 drm: Don't test for IRQ support in VBLANK ioctls
In reply to Thomas ZimmermannFor 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().
v3:
* optimize test in drm_wait_vblank_ioctl() for KMS case (Liviu)
* update docs for drm_irq_uninstall()
v2:
* keep the old test for legacy drivers in drm_wait_vblank_ioctl() (Daniel)
--- drivers/gpu/drm/drm_irq.c | 13 ++++--------- drivers/gpu/drm/drm_vblank.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 13 deletions(-)
drivers/gpu/drm/drm_irq.c +4 -9
@@ -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.
@@ -156,8 +152,7 @@ EXPORT_SYMBOL(drm_irq_install);* * Calls the driver's &drm_driver.irq_uninstall function and unregisters the IRQ * handler. This should only be called by drivers which used drm_irq_install() -* to set up their interrupt handler. Other drivers must only reset -* &drm_device.irq_enabled to false. +* to set up their interrupt handler. * * Note that for kernel modesetting drivers it is a bug if this function fails. * The sanity checks are only to catch buggy user modesetting drivers which call
drivers/gpu/drm/drm_vblank.c +12 -4
@@ -1748,8 +1748,16 @@ 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 defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }if (vblwait->request.type & _DRM_VBLANK_SIGNAL)return -EINVAL ;
@@ -2023,7 +2031,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 +2090,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);
Signature · 1 line
2.32.0
Jani Nikula
maintainerRe: [PATCH v3 04/27] drm: Don't test for IRQ support in VBLANK ioctls
Quoted 70 lines · Thomas Zimmermann
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().v3:
* optimize test indrm_wait_vblank_ioctl()for KMS case (Liviu)
* update docs fordrm_irq_uninstall()
v2:
* keep the old test for legacy drivers indrm_wait_vblank_ioctl()(Daniel)Signed-off-by Thomas Zimmermann <[email protected]>Reviewed-by Laurent Pinchart <[email protected]>Acked-by Daniel Vetter <[email protected]>--- drivers/gpu/drm/drm_irq.c | 13 ++++--------- drivers/gpu/drm/drm_vblank.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 13 deletions(-)drivers/gpu/drm/drm_irq.c +4
-9@@ -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. @@ -156,8 +152,7 @@ EXPORT_SYMBOL(drm_irq_install);* * Calls the driver's &drm_driver.irq_uninstall function and unregisters the IRQ * handler. This should only be called by drivers which used drm_irq_install() -* to set up their interrupt handler. Other drivers must only reset -* &drm_device.irq_enabled to false. +* to set up their interrupt handler. * * Note that for kernel modesetting drivers it is a bug if this function fails. * The sanity checks are only to catch buggy user modesetting drivers which call drivers/gpu/drm/drm_vblank.c +0
-2@@ -1748,8 +1748,16 @@ 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 ;
drivers/gpu/drm/drm_vblank.c int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, · line 1760
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +10
-0+#if defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }
Sheesh I hate this kind of inline #ifdefs.
Two alternate suggestions that I believe should be as just efficient:
1) The more verbose:
#if defined(CONFIG_DRM_LEGACY)
static bool drm_wait_vblank_supported(struct drm_device *dev)
{
if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY)))
return dev->irq_enabled;
else
return drm_dev_has_vblank(dev);
}
#else
static bool drm_wait_vblank_supported(struct drm_device *dev)
{
return drm_dev_has_vblank(dev);
}#endif
2) The more compact:
static bool drm_wait_vblank_supported(struct drm_device *dev)
{
if (IS_ENABLED(CONFIG_DRM_LEGACY) && unlikely(drm_core_check_feature(dev, DRIVER_LEGACY)))
return dev->irq_enabled;
else
return drm_dev_has_vblank(dev);
}Then, in drm_wait_vblank_ioctl().
if (!drm_wait_vblank_supported(dev)) return -EOPNOTSUPP;
The compiler should do the right thing without any explicit inline keywords etc.
BR,
Jani.
Quoted 21 lines
drivers/gpu/drm/drm_vblank.c +2
-2if (vblwait->request.type & _DRM_VBLANK_SIGNAL)return -EINVAL ;@@ -2023,7 +2031,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 +2090,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);
Signature · 1 line
Jani Nikula, Intel Open Source Graphics Center
Thomas Zimmermann
maintainerRe: [PATCH v3 04/27] drm: Don't test for IRQ support in VBLANK ioctls
Hi
Am 24.06.21 um 10:06 schrieb Jani Nikula:
Quoted 69 lines · Thomas Zimmermann
Quoted 68 lines
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().v3:
* optimize test indrm_wait_vblank_ioctl()for KMS case (Liviu)
* update docs fordrm_irq_uninstall()
v2:
* keep the old test for legacy drivers indrm_wait_vblank_ioctl()(Daniel)Signed-off-by Thomas Zimmermann <[email protected]>Reviewed-by Laurent Pinchart <[email protected]>Acked-by Daniel Vetter <[email protected]>--- drivers/gpu/drm/drm_irq.c | 13 ++++--------- drivers/gpu/drm/drm_vblank.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 13 deletions(-)drivers/gpu/drm/drm_irq.c +4
-9@@ -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. @@ -156,8 +152,7 @@ EXPORT_SYMBOL(drm_irq_install);* * Calls the driver's &drm_driver.irq_uninstall function and unregisters the IRQ * handler. This should only be called by drivers which used drm_irq_install() -* to set up their interrupt handler. Other drivers must only reset -* &drm_device.irq_enabled to false. +* to set up their interrupt handler. * * Note that for kernel modesetting drivers it is a bug if this function fails. * The sanity checks are only to catch buggy user modesetting drivers which call drivers/gpu/drm/drm_vblank.c +0
-0@@ -1748,8 +1748,16 @@ int drm_wait_vblank_ioctl(struct drm_device *dev, void *data,unsigned int pipe_index;unsigned int flags, pipe, high_pipe;
Quoted 14 lines
drivers/gpu/drm/drm_vblank.c int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, · line 1760
Quoted 12 lines
drivers/gpu/drm/drm_vblank.c +10
-2-if (!dev->irq_enabled) -return -EOPNOTSUPP ; +#if defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }Sheesh I hate this kind of inline #ifdefs.
I don't like them either. I guess I'll go with suggestion 2. Thanks for the feedback.
Best regards
Thomas
Quoted 63 lines
Two alternate suggestions that I believe should be as just efficient:
1) The more verbose:
#if
defined(CONFIG_DRM_LEGACY)
static booldrm_wait_vblank_supported(struct drm_device *dev){ if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); } #else static bool drm_wait_vblank_supported(struct drm_device *dev) { return drm_dev_has_vblank(dev); }#endif
2) The more compact:
static bool
drm_wait_vblank_supported(struct drm_device *dev){ if (IS_ENABLED(CONFIG_DRM_LEGACY) && unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); }Then, in
drm_wait_vblank_ioctl().if (!drm_wait_vblank_supported(dev)) return -EOPNOTSUPP;The compiler should do the right thing without any explicit inline keywords etc.
BR,
Jani.Quoted 21 lines
drivers/gpu/drm/drm_vblank.c +2
-2if (vblwait->request.type & _DRM_VBLANK_SIGNAL)return -EINVAL ;@@ -2023,7 +2031,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 +2090,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);
Signature · 6 lines
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
Thomas Zimmermann
maintainerRe: [PATCH v3 04/27] drm: Don't test for IRQ support in VBLANK ioctls
In reply to Jani NikulaHi
Am 24.06.21 um 10:06 schrieb Jani Nikula:
Quoted 84 lines · Thomas Zimmermann
Quoted 70 lines
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().v3:
* optimize test indrm_wait_vblank_ioctl()for KMS case (Liviu)
* update docs fordrm_irq_uninstall()
v2:
* keep the old test for legacy drivers indrm_wait_vblank_ioctl()(Daniel)Signed-off-by Thomas Zimmermann <[email protected]>Reviewed-by Laurent Pinchart <[email protected]>Acked-by Daniel Vetter <[email protected]>--- drivers/gpu/drm/drm_irq.c | 13 ++++--------- drivers/gpu/drm/drm_vblank.c | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 13 deletions(-)drivers/gpu/drm/drm_irq.c +4
-9@@ -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. @@ -156,8 +152,7 @@ EXPORT_SYMBOL(drm_irq_install);* * Calls the driver's &drm_driver.irq_uninstall function and unregisters the IRQ * handler. This should only be called by drivers which used drm_irq_install() -* to set up their interrupt handler. Other drivers must only reset -* &drm_device.irq_enabled to false. +* to set up their interrupt handler. * * Note that for kernel modesetting drivers it is a bug if this function fails. * The sanity checks are only to catch buggy user modesetting drivers which call drivers/gpu/drm/drm_vblank.c +0
-2@@ -1748,8 +1748,16 @@ 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 ;drivers/gpu/drm/drm_vblank.c int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, · line 1760
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +10
-0+#if defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }Sheesh I hate this kind of inline #ifdefs.
Quoted 1 line
Two alternate suggestions that I believe should be as just efficient:
Or how about:
static bool drm_wait_vblank_supported(struct drm_device *dev)
{
if defined(CONFIG_DRM_LEGACY)
if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled;
#endif return drm_dev_has_vblank(dev);
}
?
It's inline, but still readable.
Best regards
Thomas
Quoted 61 lines
1) The more verbose:
#if
defined(CONFIG_DRM_LEGACY)
static booldrm_wait_vblank_supported(struct drm_device *dev){ if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); } #else static bool drm_wait_vblank_supported(struct drm_device *dev) { return drm_dev_has_vblank(dev); }#endif
2) The more compact:
static bool
drm_wait_vblank_supported(struct drm_device *dev){ if (IS_ENABLED(CONFIG_DRM_LEGACY) && unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); }Then, in
drm_wait_vblank_ioctl().if (!drm_wait_vblank_supported(dev)) return -EOPNOTSUPP;The compiler should do the right thing without any explicit inline keywords etc.
BR,
Jani.Quoted 21 lines
drivers/gpu/drm/drm_vblank.c +2
-2if (vblwait->request.type & _DRM_VBLANK_SIGNAL)return -EINVAL ;@@ -2023,7 +2031,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 +2090,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);
Signature · 6 lines
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
Jani Nikula
maintainerRe: [PATCH v3 04/27] drm: Don't test for IRQ support in VBLANK ioctls
Quoted 43 lines · Thomas Zimmermann
Hi
Am 24.06.21 um 10:06 schrieb Jani Nikula:
Quoted 24 lines · Thomas Zimmermann
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +0
-2@@ -1748,8 +1748,16 @@ 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 ;drivers/gpu/drm/drm_vblank.c int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, · line 1760
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +10
-0+#if defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }Sheesh I hate this kind of inline #ifdefs.
Quoted 1 line
Two alternate suggestions that I believe should be as just efficient:
Or how about:
static bool
drm_wait_vblank_supported(struct drm_device *dev){
if
defined(CONFIG_DRM_LEGACY)if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled;#endif return drm_dev_has_vblank(dev);
Quoted 6 lines
}
?
It's inline, but still readable.
It's definitely better than the original, but it's unclear to me why you'd prefer this over option 2) below. I guess the only reason I can think of is emphasizing the conditional compilation. However, IS_ENABLED() is widely used in this manner specifically to avoid inline #if, and the compiler optimizes it away.
BR,
Jani.
Quoted 65 lines
Best regards
ThomasQuoted 61 lines
1) The more verbose:
#if
defined(CONFIG_DRM_LEGACY)
static booldrm_wait_vblank_supported(struct drm_device *dev){ if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); } #else static bool drm_wait_vblank_supported(struct drm_device *dev) { return drm_dev_has_vblank(dev); }#endif
2) The more compact:
static bool
drm_wait_vblank_supported(struct drm_device *dev){ if (IS_ENABLED(CONFIG_DRM_LEGACY) && unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); }Then, in
drm_wait_vblank_ioctl().if (!drm_wait_vblank_supported(dev)) return -EOPNOTSUPP;The compiler should do the right thing without any explicit inline keywords etc.
BR,
Jani.Quoted 21 lines
drivers/gpu/drm/drm_vblank.c +2
-2if (vblwait->request.type & _DRM_VBLANK_SIGNAL)return -EINVAL ;@@ -2023,7 +2031,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 +2090,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);
Signature · 1 line
Jani Nikula, Intel Open Source Graphics Center
Thomas Zimmermann
maintainerRe: [PATCH v3 04/27] drm: Don't test for IRQ support in VBLANK ioctls
Hi
Am 24.06.21 um 10:51 schrieb Jani Nikula:
Quoted 49 lines · Thomas Zimmermann
Quoted 48 lines
Hi
Am 24.06.21 um 10:06 schrieb Jani Nikula:
Quoted 24 lines · Thomas Zimmermann
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +0
-2@@ -1748,8 +1748,16 @@ 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 ;drivers/gpu/drm/drm_vblank.c int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, · line 1760
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +10
-0+#if defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }Sheesh I hate this kind of inline #ifdefs.
Quoted 1 line
Two alternate suggestions that I believe should be as just efficient:
Or how about:
static bool
drm_wait_vblank_supported(struct drm_device *dev){
if
defined(CONFIG_DRM_LEGACY)if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled;#endif return drm_dev_has_vblank(dev);}
?
Quoted 7 lines
Quoted 1 line
It's inline, but still readable.
It's definitely better than the original, but it's unclear to me why you'd prefer this over option 2) below. I guess the only reason I can think of is emphasizing the conditional compilation. However,
IS_ENABLED()is widely used in this manner specifically to avoid inline #if, and the compiler optimizes it away.
It's simply more readable to me as the condition is simpler. But option 2 is also ok.
Best regards
Thomas
Quoted 71 lines
BR,
Jani.Quoted 65 lines
Best regards
ThomasQuoted 61 lines
1) The more verbose:
#if
defined(CONFIG_DRM_LEGACY)
static booldrm_wait_vblank_supported(struct drm_device *dev){ if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); } #else static bool drm_wait_vblank_supported(struct drm_device *dev) { return drm_dev_has_vblank(dev); }#endif
2) The more compact:
static bool
drm_wait_vblank_supported(struct drm_device *dev){ if (IS_ENABLED(CONFIG_DRM_LEGACY) && unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); }Then, in
drm_wait_vblank_ioctl().if (!drm_wait_vblank_supported(dev)) return -EOPNOTSUPP;The compiler should do the right thing without any explicit inline keywords etc.
BR,
Jani.Quoted 21 lines
drivers/gpu/drm/drm_vblank.c +2
-2if (vblwait->request.type & _DRM_VBLANK_SIGNAL)return -EINVAL ;@@ -2023,7 +2031,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 +2090,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);
Signature · 6 lines
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
Re: [PATCH v3 04/27] drm: Don't test for IRQ support in VBLANK ioctls
Quoted 53 lines · Thomas Zimmermann
Hi
Am 24.06.21 um 10:51 schrieb Jani Nikula:
Quoted 50 lines · Thomas Zimmermann
Quoted 48 lines
Hi
Am 24.06.21 um 10:06 schrieb Jani Nikula:
Quoted 23 lines · Thomas Zimmermann
Quoted 9 lines
drivers/gpu/drm/drm_vblank.c +0
-2@@ -1748,8 +1748,16 @@ 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 ;drivers/gpu/drm/drm_vblank.c int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, · line 1759
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +10
-0+#if defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }Sheesh I hate this kind of inline #ifdefs.
Quoted 1 line
Two alternate suggestions that I believe should be as just efficient:
Or how about:
static bool
drm_wait_vblank_supported(struct drm_device *dev){
if
defined(CONFIG_DRM_LEGACY)if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled;#endif return drm_dev_has_vblank(dev);}
?
It's inline, but still readable.
Quoted 8 lines
Quoted 5 lines
It's definitely better than the original, but it's unclear to me why you'd prefer this over option 2) below. I guess the only reason I can think of is emphasizing the conditional compilation. However,
IS_ENABLED()is widely used in this manner specifically to avoid inline #if, and the compiler optimizes it away.It's simply more readable to me as the condition is simpler. But option 2 is also ok.
Either option looks good to me.
Thanks for doing that!
Liviu
Quoted 79 lines
Best regards
ThomasQuoted 66 lines
BR,
Jani.Quoted 60 lines
Best regards
ThomasQuoted 56 lines
1) The more verbose:
#if
defined(CONFIG_DRM_LEGACY)
static booldrm_wait_vblank_supported(struct drm_device *dev){ if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); } #else static bool drm_wait_vblank_supported(struct drm_device *dev) { return drm_dev_has_vblank(dev); }#endif
2) The more compact:
static bool
drm_wait_vblank_supported(struct drm_device *dev){ if (IS_ENABLED(CONFIG_DRM_LEGACY) && unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; else return drm_dev_has_vblank(dev); }Then, in
drm_wait_vblank_ioctl().if (!drm_wait_vblank_supported(dev)) return -EOPNOTSUPP;The compiler should do the right thing without any explicit inline keywords etc.
BR,
Jani.Quoted 16 lines
drivers/gpu/drm/drm_vblank.c +2
-2if (vblwait->request.type & _DRM_VBLANK_SIGNAL)return -EINVAL ;@@ -2023,7 +2031,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 +2090,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);Signature · 6 lines
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
Signature · 8 lines
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯Re: [PATCH v3 04/27] drm: Don't test for IRQ support in VBLANK ioctls
In reply to Thomas ZimmermannQuoted 53 lines · Thomas Zimmermann
Hi
Am 24.06.21 um 10:51 schrieb Jani Nikula:
Quoted 50 lines · Thomas Zimmermann
Quoted 48 lines
Hi
Am 24.06.21 um 10:06 schrieb Jani Nikula:
Quoted 23 lines · Thomas Zimmermann
Quoted 9 lines
drivers/gpu/drm/drm_vblank.c +0
-2@@ -1748,8 +1748,16 @@ 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 ;drivers/gpu/drm/drm_vblank.c int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, · line 1759
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +10
-0+#if defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }Sheesh I hate this kind of inline #ifdefs.
Quoted 1 line
Two alternate suggestions that I believe should be as just efficient:
Or how about:
static bool
drm_wait_vblank_supported(struct drm_device *dev){
if
defined(CONFIG_DRM_LEGACY)if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled;#endif return drm_dev_has_vblank(dev);}
?
It's inline, but still readable.
Quoted 8 lines
Quoted 5 lines
It's definitely better than the original, but it's unclear to me why you'd prefer this over option 2) below. I guess the only reason I can think of is emphasizing the conditional compilation. However,
IS_ENABLED()is widely used in this manner specifically to avoid inline #if, and the compiler optimizes it away.It's simply more readable to me as the condition is simpler. But option 2 is also ok.
Perhaps do something like this, then:
if (IS_ENABLED(CONFIG_DRM_LEGACY)) {
if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY)))
return dev->irq_enabled;
}
return drm_dev_has_vblank(dev);That's about just as readable as the variant involving the preprocessor but has all the benefits of not using the preprocessor.
Thierry
Jani Nikula
maintainerRe: [PATCH v3 04/27] drm: Don't test for IRQ support in VBLANK ioctls
Quoted 72 lines · Thierry Reding
Quoted 53 lines · Thomas Zimmermann
Hi
Am 24.06.21 um 10:51 schrieb Jani Nikula:
Quoted 50 lines · Thomas Zimmermann
Quoted 48 lines
Hi
Am 24.06.21 um 10:06 schrieb Jani Nikula:
Quoted 23 lines · Thomas Zimmermann
Quoted 9 lines
drivers/gpu/drm/drm_vblank.c +0
-2@@ -1748,8 +1748,16 @@ 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 ;drivers/gpu/drm/drm_vblank.c int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, · line 1759
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +10
-0+#if defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }Sheesh I hate this kind of inline #ifdefs.
Quoted 1 line
Two alternate suggestions that I believe should be as just efficient:
Or how about:
static bool
drm_wait_vblank_supported(struct drm_device *dev){
if
defined(CONFIG_DRM_LEGACY)if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled;#endif return drm_dev_has_vblank(dev);}
?
It's inline, but still readable.
Quoted 8 lines
Quoted 5 lines
It's definitely better than the original, but it's unclear to me why you'd prefer this over option 2) below. I guess the only reason I can think of is emphasizing the conditional compilation. However,
IS_ENABLED()is widely used in this manner specifically to avoid inline #if, and the compiler optimizes it away.It's simply more readable to me as the condition is simpler. But option 2 is also ok.
Perhaps do something like this, then:
if (IS_ENABLED(CONFIG_DRM_LEGACY)) { if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; } return drm_dev_has_vblank(dev);
Quoted 2 lines
That's about just as readable as the variant involving the preprocessor but has all the benefits of not using the preprocessor.
Looks like a winner to me. :)
BR,
Jani.
Signature · 1 line
Jani Nikula, Intel Open Source Graphics Center
Thomas Zimmermann
maintainerRe: [PATCH v3 04/27] drm: Don't test for IRQ support in VBLANK ioctls
Hi
Am 24.06.21 um 14:36 schrieb Jani Nikula:
Quoted 71 lines · Thierry Reding
Quoted 70 lines · Thomas Zimmermann
Quoted 53 lines
Hi
Am 24.06.21 um 10:51 schrieb Jani Nikula:
Quoted 50 lines · Thomas Zimmermann
Quoted 48 lines
Hi
Am 24.06.21 um 10:06 schrieb Jani Nikula:
Quoted 23 lines · Thomas Zimmermann
Quoted 9 lines
drivers/gpu/drm/drm_vblank.c +0
-2@@ -1748,8 +1748,16 @@ 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 ;drivers/gpu/drm/drm_vblank.c int drm_wait_vblank_ioctl(struct drm_device *dev, void *data, · line 1759
Quoted 10 lines
drivers/gpu/drm/drm_vblank.c +10
-0+#if defined(CONFIG_DRM_LEGACY ) +if (unlikely (drm_core_check_feature (dev,DRIVER_LEGACY ))) { +if (!dev->irq_enabled) +return -EOPNOTSUPP ; + } else /* if DRIVER_MODESET */ +#endif + { +if (!drm_dev_has_vblank (dev)) +return -EOPNOTSUPP ; + }Sheesh I hate this kind of inline #ifdefs.
Quoted 1 line
Two alternate suggestions that I believe should be as just efficient:
Or how about:
static bool
drm_wait_vblank_supported(struct drm_device *dev){
if
defined(CONFIG_DRM_LEGACY)if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled;#endif return drm_dev_has_vblank(dev);}
?
It's inline, but still readable.
Quoted 8 lines
Quoted 5 lines
It's definitely better than the original, but it's unclear to me why you'd prefer this over option 2) below. I guess the only reason I can think of is emphasizing the conditional compilation. However,
IS_ENABLED()is widely used in this manner specifically to avoid inline #if, and the compiler optimizes it away.It's simply more readable to me as the condition is simpler. But option 2 is also ok.
Perhaps do something like this, then:
if (IS_ENABLED(CONFIG_DRM_LEGACY)) { if (unlikely(drm_core_check_feature(dev, DRIVER_LEGACY))) return dev->irq_enabled; }
Quoted 6 lines
Quoted 4 lines
return drm_dev_has_vblank(dev);That's about just as readable as the variant involving the preprocessor but has all the benefits of not using the preprocessor.
Looks like a winner to me. :)
That's the most readable.
But I just remembered that irq_enabled will likely become legacy-only in the device structure. We'll need an ifdef variant then. :/
Best regards
Thomas
Quoted 5 lines
BR,
Jani.
Signature · 6 lines
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
Thomas Zimmermann
maintainerPATCH v3 5/27 drm/armada: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in armada.
--- drivers/gpu/drm/armada/armada_drv.c | 2 -- 1 file changed, 2 deletions(-)
drivers/gpu/drm/armada/armada_drv.c +0 -2
@@ -130,8 +130,6 @@ static int armada_drm_bind(struct device *dev)if (ret) goto err_comp; - priv->drm.irq_enabled = true; -drm_mode_config_reset (&priv->drm); ret =armada_fbdev_init (&priv->drm);
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 6/27 drm/i915: Track IRQ state in local device state
In reply to Thomas ZimmermannReplace usage of struct drm_device.irq_enabled with the driver's own state field struct drm_i915_private.irq_enabled. The field in the DRM device structure is considered legacy and should not be used by KMS drivers.
--- drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_irq.c | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-)
drivers/gpu/drm/i915/i915_drv.h +2 -0
@@ -1134,6 +1134,8 @@ struct drm_i915_private {/* For i915gm/i945gm vblank irq workaround */ u8 vblank_enabled; +bool irq_enabled; +/* perform PHY state sanity checks? */ bool chv_phy_assert[2 ];
drivers/gpu/drm/i915/i915_irq.c +4 -4
@@ -4488,14 +4488,14 @@ int intel_irq_install(struct drm_i915_private *dev_priv)*/ dev_priv->runtime_pm.irqs_enabled = true; - dev_priv->drm.irq_enabled = true; + dev_priv->irq_enabled = true;intel_irq_reset (dev_priv); ret =request_irq (irq,intel_irq_handler (dev_priv),IRQF_SHARED ,DRIVER_NAME , dev_priv);if (ret <0 ) { - dev_priv->drm.irq_enabled = false; + dev_priv->irq_enabled = false;return ret; }
@@ -4521,10 +4521,10 @@ void intel_irq_uninstall(struct drm_i915_private *dev_priv)* intel_modeset_driver_remove() calling us out of sequence. * Would be nice if it didn't do that... */ -if (!dev_priv->drm.irq_enabled) +if (!dev_priv->irq_enabled)return ; - dev_priv->drm.irq_enabled = false; + dev_priv->irq_enabled = false;intel_irq_reset (dev_priv);
Signature · 1 line
2.32.0
Re: [PATCH v3 06/27] drm/i915: Track IRQ state in local device state
Quoted 6 lines · Thomas Zimmermann
Replace usage of struct drm_device.irq_enabled with the driver's own state field struct drm_i915_private.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 <[email protected]>
and ack for merging through drm-misc-next or whatever you think is best.
Quoted 51 lines
--- drivers/gpu/drm/i915/i915_drv.h | 2 ++ drivers/gpu/drm/i915/i915_irq.c | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-)drivers/gpu/drm/i915/i915_drv.h +2
-0@@ -1134,6 +1134,8 @@ struct drm_i915_private {/* For i915gm/i945gm vblank irq workaround */ u8 vblank_enabled; +bool irq_enabled; +/* perform PHY state sanity checks? */ bool chv_phy_assert[2 ];drivers/gpu/drm/i915/i915_irq.c +4
-4@@ -4488,14 +4488,14 @@ int intel_irq_install(struct drm_i915_private *dev_priv)*/ dev_priv->runtime_pm.irqs_enabled = true; - dev_priv->drm.irq_enabled = true; + dev_priv->irq_enabled = true;intel_irq_reset (dev_priv); ret =request_irq (irq,intel_irq_handler (dev_priv),IRQF_SHARED ,DRIVER_NAME , dev_priv);if (ret <0 ) { - dev_priv->drm.irq_enabled = false; + dev_priv->irq_enabled = false;return ret; }@@ -4521,10 +4521,10 @@ void intel_irq_uninstall(struct drm_i915_private *dev_priv)* intel_modeset_driver_remove() calling us out of sequence. * Would be nice if it didn't do that... */ -if (!dev_priv->drm.irq_enabled) +if (!dev_priv->irq_enabled)return ; - dev_priv->drm.irq_enabled = false; + dev_priv->irq_enabled = false;intel_irq_reset (dev_priv);
Signature · 1 line
Jani Nikula, Intel Open Source Graphics Center
Thomas Zimmermann
maintainerPATCH v3 7/27 drm/komeda: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in komeda.
--- drivers/gpu/drm/arm/display/komeda/komeda_kms.c | 4 ---- 1 file changed, 4 deletions(-)
drivers/gpu/drm/arm/display/komeda/komeda_kms.c +0 -4
@@ -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);
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 8/27 drm/malidp: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in malidp.
--- drivers/gpu/drm/arm/malidp_drv.c | 4 ---- 1 file changed, 4 deletions(-)
drivers/gpu/drm/arm/malidp_drv.c +0 -4
@@ -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 ;
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 9/27 drm/exynos: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in exynos.
--- drivers/gpu/drm/exynos/exynos_drm_drv.c | 10 ---------- 1 file changed, 10 deletions(-)
drivers/gpu/drm/exynos/exynos_drm_drv.c +0 -10
@@ -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);
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 10/27 drm/kirin: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in kirin.
--- drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 2 -- 1 file changed, 2 deletions(-)
drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c +0 -2
@@ -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);
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 11/27 drm/imx: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in imx.
v3:
* move dcss changes into separate patch (Laurentiu)
--- drivers/gpu/drm/imx/imx-drm-core.c | 11 ----------- 1 file changed, 11 deletions(-)
drivers/gpu/drm/imx/imx-drm-core.c +0 -11
@@ -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
Signature · 1 line
2.32.0
Re: [PATCH v3 11/27] drm/imx: Don't set struct drm_device.irq_enabled
Quoted 25 lines · Thomas Zimmermann
The field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in imx.
v3:
* move dcss changes into separate patch (Laurentiu)Signed-off-by Thomas Zimmermann <[email protected]>Reviewed-by Laurent Pinchart <[email protected]>Acked-by Daniel Vetter <[email protected]>--- drivers/gpu/drm/imx/imx-drm-core.c | 11 ----------- 1 file changed, 11 deletions(-)drivers/gpu/drm/imx/imx-drm-core.c +0
-4@@ -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. -*
drivers/gpu/drm/imx/imx-drm-core.c static int imx_drm_bind(struct device *dev) · line 212
Quoted 10 lines
drivers/gpu/drm/imx/imx-drm-core.c +0
-7-* 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
regards
Philipp
Thomas Zimmermann
maintainerPATCH v3 12/27 drm/imx/dcss: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in dcss.
--- drivers/gpu/drm/imx/dcss/dcss-kms.c | 3 --- 1 file changed, 3 deletions(-)
drivers/gpu/drm/imx/dcss/dcss-kms.c +0 -3
@@ -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 ;
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 13/27 drm/mediatek: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in mediatek.
--- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 6 ------ 1 file changed, 6 deletions(-)
drivers/gpu/drm/mediatek/mtk_drm_drv.c +0 -6
@@ -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;
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 14/27 drm/nouveau: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in nouveau.
--- drivers/gpu/drm/nouveau/nouveau_drm.c | 3 --- 1 file changed, 3 deletions(-)
drivers/gpu/drm/nouveau/nouveau_drm.c +0 -3
@@ -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);
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 15/27 drm/omapdrm: Track IRQ state in local device state
In reply to Thomas ZimmermannReplace 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.
--- drivers/gpu/drm/omapdrm/omap_drv.h | 2 ++ drivers/gpu/drm/omapdrm/omap_irq.c | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-)
drivers/gpu/drm/omapdrm/omap_drv.h +2 -0
@@ -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 ];
drivers/gpu/drm/omapdrm/omap_irq.c +3 -3
@@ -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); }
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 16/27 drm/rcar-du: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in rcar-du.
--- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 2 -- 1 file changed, 2 deletions(-)
drivers/gpu/drm/rcar-du/rcar_du_drv.c +0 -2
@@ -593,8 +593,6 @@ static int rcar_du_probe(struct platform_device *pdev) goto error; } - rcdu->ddev.irq_enabled =1 ; -/* * Register the DRM device with the core and the connectors with * sysfs.
Signature · 1 line
2.32.0
Re: [PATCH v3 16/27] drm/rcar-du: Don't set struct drm_device.irq_enabled
Hi Thomas,
Thank you for the patch.
Quoted 4 lines · Thomas Zimmermann
The field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in rcar-du.
Signed-off-by Thomas Zimmermann <[email protected]>
Quoted 17 lines
--- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 2 -- 1 file changed, 2 deletions(-)drivers/gpu/drm/rcar-du/rcar_du_drv.c +0
-2@@ -593,8 +593,6 @@ static int rcar_du_probe(struct platform_device *pdev) goto error; } - rcdu->ddev.irq_enabled =1 ; -/* * Register the DRM device with the core and the connectors with * sysfs.
Signature · 3 lines
Regards, Laurent Pinchart
Thomas Zimmermann
maintainerPATCH v3 17/27 drm/rockchip: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in rockchip.
--- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ------ 1 file changed, 6 deletions(-)
drivers/gpu/drm/rockchip/rockchip_drm_drv.c +0 -6
@@ -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;
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 18/27 drm/sti: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in sti.
--- drivers/gpu/drm/sti/sti_compositor.c | 2 -- 1 file changed, 2 deletions(-)
drivers/gpu/drm/sti/sti_compositor.c +0 -2
@@ -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 ; }
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 19/27 drm/stm: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in stm.
--- drivers/gpu/drm/stm/ltdc.c | 3 --- 1 file changed, 3 deletions(-)
drivers/gpu/drm/stm/ltdc.c +0 -3
@@ -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);
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 20/27 drm/sun4i: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in sun4i.
--- drivers/gpu/drm/sun4i/sun4i_drv.c | 2 -- 1 file changed, 2 deletions(-)
drivers/gpu/drm/sun4i/sun4i_drv.c +0 -2
@@ -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)
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 21/27 drm/tegra: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in tegra.
--- drivers/gpu/drm/tegra/drm.c | 7 ------- 1 file changed, 7 deletions(-)
drivers/gpu/drm/tegra/drm.c +0 -7
@@ -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 ;
Signature · 1 line
2.32.0
Re: [PATCH v3 21/27] drm/tegra: Don't set struct drm_device.irq_enabled
Quoted 9 lines · Thomas Zimmermann
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 <[email protected]>Reviewed-by Laurent Pinchart <[email protected]>Acked-by Daniel Vetter <[email protected]>--- drivers/gpu/drm/tegra/drm.c | 7 ------- 1 file changed, 7 deletions(-)
Thomas Zimmermann
maintainerPATCH v3 22/27 drm/tidss: Don't use struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't use it in tidss.
--- drivers/gpu/drm/tidss/tidss_irq.c | 3 --- 1 file changed, 3 deletions(-)
drivers/gpu/drm/tidss/tidss_irq.c +0 -3
@@ -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++) {
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 23/27 drm/vc4: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in vc4.
--- drivers/gpu/drm/vc4/vc4_kms.c | 1 - 1 file changed, 1 deletion(-)
drivers/gpu/drm/vc4/vc4_kms.c +0 -1
@@ -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" );
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 24/27 drm/vkms: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in vkms.
--- drivers/gpu/drm/vkms/vkms_drv.c | 2 -- 1 file changed, 2 deletions(-)
drivers/gpu/drm/vkms/vkms_drv.c +0 -2
@@ -163,8 +163,6 @@ static int vkms_create(struct vkms_config *config) goto out_devres; } - vkms_device->drm.irq_enabled = true; - ret =drm_vblank_init (&vkms_device->drm,1 );if (ret) {DRM_ERROR ("Failed to vblank\n" );
Signature · 1 line
2.32.0
Re: [PATCH v3 24/27] drm/vkms: Don't set struct drm_device.irq_enabled
Hi Thomas,
Thank you for the patch.
Quoted 4 lines · Thomas Zimmermann
The field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in vkms.
Signed-off-by Thomas Zimmermann <[email protected]>
Quoted 17 lines
--- drivers/gpu/drm/vkms/vkms_drv.c | 2 -- 1 file changed, 2 deletions(-)drivers/gpu/drm/vkms/vkms_drv.c +0
-2@@ -163,8 +163,6 @@ static int vkms_create(struct vkms_config *config) goto out_devres; } - vkms_device->drm.irq_enabled = true; - ret =drm_vblank_init (&vkms_device->drm,1 );if (ret) {DRM_ERROR ("Failed to vblank\n" );
Signature · 3 lines
Regards, Laurent Pinchart
Thomas Zimmermann
maintainerPATCH v3 25/27 drm/vmwgfx: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe 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.
--- drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 8 -------- 1 file changed, 8 deletions(-)
drivers/gpu/drm/vmwgfx/vmwgfx_irq.c +0 -8
@@ -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;
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 26/27 drm/xlnx: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in xlnx.
--- drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 2 -- 1 file changed, 2 deletions(-)
drivers/gpu/drm/xlnx/zynqmp_dpsub.c +0 -2
@@ -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);/*
Signature · 1 line
2.32.0
Thomas Zimmermann
maintainerPATCH v3 27/27 drm/zte: Don't set struct drm_device.irq_enabled
In reply to Thomas ZimmermannThe field drm_device.irq_enabled is only used by legacy drivers with userspace modesetting. Don't set it in zte.
--- drivers/gpu/drm/zte/zx_drm_drv.c | 6 ------ 1 file changed, 6 deletions(-)
drivers/gpu/drm/zte/zx_drm_drv.c +0 -6
@@ -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);
Signature · 1 line
2.32.0
Patchwork
CI[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Deprecate struct drm_device.irq_enabled
In reply to Thomas Zimmermann== Series Details ==
== Series Details ==
Series: Deprecate struct drm_device.irq_enabled
URL : https://patchwork.freedesktop.org/series/91845/
State : warning
== Summary ==
$ dim checkpatch origin/drm-tip 7e81b48893e1 drm/amdgpu: Track IRQ state in local device state 5a2f7ec2c996 drm/hibmc: Call drm_irq_uninstall() unconditionally d0d52ba63904 drm/radeon: Track IRQ state in local device state 0f1cc7795ded drm: Don't test for IRQ support in VBLANK ioctls -:76: CHECK:BRACES: Unbalanced braces around else statement #76: FILE: drivers/gpu/drm/drm_vblank.c:1755: + } else /* if DRIVER_MODESET */
total: 0 errors, 0 warnings, 1 checks, 65 lines checked ae9d335be636 drm/armada: Don't set struct drm_device.irq_enabled d612b0fe70b3 drm/i915: Track IRQ state in local device state 5c2c66c6eab0 drm/komeda: Don't set struct drm_device.irq_enabled e95bfbbca4c8 drm/malidp: Don't set struct drm_device.irq_enabled dc686169f377 drm/exynos: Don't set struct drm_device.irq_enabled 3c52f688ee13 drm/kirin: Don't set struct drm_device.irq_enabled cbaab88d0e2f drm/imx: Don't set struct drm_device.irq_enabled 4a88efe9db38 drm/imx/dcss: Don't set struct drm_device.irq_enabled 64f52f7b8a3e drm/mediatek: Don't set struct drm_device.irq_enabled 7b4f8ee0acba drm/nouveau: Don't set struct drm_device.irq_enabled 72d4c49bb4dc drm/omapdrm: Track IRQ state in local device state 7af8e5991a16 drm/rcar-du: Don't set struct drm_device.irq_enabled c0c1d7a37c87 drm/rockchip: Don't set struct drm_device.irq_enabled 3a205c191fa2 drm/sti: Don't set struct drm_device.irq_enabled 8871c398118c drm/stm: Don't set struct drm_device.irq_enabled 9301579c5ef1 drm/sun4i: Don't set struct drm_device.irq_enabled 1c8a70ef5545 drm/tegra: Don't set struct drm_device.irq_enabled 46ddcc26dbc7 drm/tidss: Don't use struct drm_device.irq_enabled e24755e0074a drm/vc4: Don't set struct drm_device.irq_enabled e4c301b14b3a drm/vkms: Don't set struct drm_device.irq_enabled fcfbcb2e09b0 drm/vmwgfx: Don't set struct drm_device.irq_enabled 6373373903c7 drm/xlnx: Don't set struct drm_device.irq_enabled d42ce5ef965c drm/zte: Don't set struct drm_device.irq_enabled
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✗ Fi.CI.SPARSE: warning for Deprecate struct drm_device.irq_enabled
In reply to Thomas Zimmermann== Series Details ==
== Series Details ==
Series: Deprecate struct drm_device.irq_enabled
URL : https://patchwork.freedesktop.org/series/91845/
State : warning
== Summary ==
$ dim sparse --fast origin/drm-tip Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately. - +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:312:49: error: static assertion failed: "amd_sriov_msg_vf2pf_info must be 1 KB" +drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h:316:49: error: static assertion failed: "amd_sriov_msg_pf2vf_info must be 1 KB" +drivers/gpu/drm/i915/display/intel_display.c:1893:21: expected struct i915_vma *[assigned] vma +drivers/gpu/drm/i915/display/intel_display.c:1893:21: got void [noderef] __iomem *[assigned] iomem +drivers/gpu/drm/i915/display/intel_display.c:1893:21: warning: incorrect type in assignment (different address spaces) +drivers/gpu/drm/i915/gem/i915_gem_ttm.c:733:38: warning: symbol 'i915_gem_ttm_obj_ops' was not declared. Should it be static? +drivers/gpu/drm/i915/gt/intel_engine_stats.h:27:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_engine_stats.h:27:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_engine_stats.h:27:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_engine_stats.h:32:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_engine_stats.h:32:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_engine_stats.h:49:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_engine_stats.h:49:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_engine_stats.h:49:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_engine_stats.h:56:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_engine_stats.h:56:9: warning: trying to copy expression type 31 +drivers/gpu/drm/i915/gt/intel_reset.c:1396:5: warning: context imbalance in 'intel_gt_reset_trylock' - different lock contexts for basic block +drivers/gpu/drm/i915/gt/intel_ring_submission.c:1207:24: warning: Using plain integer as NULL pointer +drivers/gpu/drm/i915/i915_perf.c:1434:15: warning: memset with byte count of 16777216 +drivers/gpu/drm/i915/i915_perf.c:1488:15: warning: memset with byte count of 16777216 +./include/asm-generic/bitops/find.h:112:45: warning: shift count is negative (-262080) +./include/asm-generic/bitops/find.h:32:31: warning: shift count is negative (-262080) +./include/linux/seqlock.h:840:24: warning: trying to copy expression type 31 +./include/linux/seqlock.h:840:24: warning: trying to copy expression type 31 +./include/linux/seqlock.h:866:16: warning: trying to copy expression type 31 +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read64' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_read8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'fwtable_write8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read64' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_read8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen11_fwtable_write8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read64' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_read8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen12_fwtable_write8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read64' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_read8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen6_write8' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write16' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write32' - different lock contexts for basic block +./include/linux/spinlock.h:409:9: warning: context imbalance in 'gen8_write8' - different lock contexts for basic block
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✓ Fi.CI.BAT: success for Deprecate struct drm_device.irq_enabled
In reply to Thomas Zimmermann== Series Details ==
== Series Details ==
Series: Deprecate struct drm_device.irq_enabled
URL : https://patchwork.freedesktop.org/series/91845/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_10271 -> Patchwork_20450
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/index.html
Known issues
------------
Here are the changes found in Patchwork_20450 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@amdgpu/amd_basic@cs-gfx:
- fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271]) +8 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/fi-kbl-soraka/igt@amdgpu/[email protected]
* igt@kms_chamelium@dp-crc-fast:
- fi-bsw-nick: NOTRUN -> [SKIP][2] ([fdo#109271] / [fdo#111827]) +8 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/fi-bsw-nick/igt@[email protected]
* igt@prime_vgem@basic-fence-flip:
- fi-bsw-nick: NOTRUN -> [SKIP][3] ([fdo#109271]) +63 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/fi-bsw-nick/igt@[email protected]
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
Participating hosts (41 -> 37)
------------------------------
Missing (4): fi-skl-guc fi-ilk-m540 fi-bsw-cyan fi-bdw-samus
Build changes
-------------
* Linux: CI_DRM_10271 -> Patchwork_20450
CI-20190529: 20190529
CI_DRM_10271: 7a4a01d6716339c418394dbeb9a20d55bbb9a9ba @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_6117: 3ba0a02404f243d6d8f232c6215163cc4b0fd699 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_20450: d42ce5ef965c1c78dfc296da3acbb342d4ac4d4b @ git://anongit.freedesktop.org/gfx-ci/linux
== Linux commits ==
d42ce5ef965c drm/zte: Don't set struct drm_device.irq_enabled 6373373903c7 drm/xlnx: Don't set struct drm_device.irq_enabled fcfbcb2e09b0 drm/vmwgfx: Don't set struct drm_device.irq_enabled e4c301b14b3a drm/vkms: Don't set struct drm_device.irq_enabled e24755e0074a drm/vc4: Don't set struct drm_device.irq_enabled 46ddcc26dbc7 drm/tidss: Don't use struct drm_device.irq_enabled 1c8a70ef5545 drm/tegra: Don't set struct drm_device.irq_enabled 9301579c5ef1 drm/sun4i: Don't set struct drm_device.irq_enabled 8871c398118c drm/stm: Don't set struct drm_device.irq_enabled 3a205c191fa2 drm/sti: Don't set struct drm_device.irq_enabled c0c1d7a37c87 drm/rockchip: Don't set struct drm_device.irq_enabled 7af8e5991a16 drm/rcar-du: Don't set struct drm_device.irq_enabled 72d4c49bb4dc drm/omapdrm: Track IRQ state in local device state 7b4f8ee0acba drm/nouveau: Don't set struct drm_device.irq_enabled 64f52f7b8a3e drm/mediatek: Don't set struct drm_device.irq_enabled 4a88efe9db38 drm/imx/dcss: Don't set struct drm_device.irq_enabled cbaab88d0e2f drm/imx: Don't set struct drm_device.irq_enabled 3c52f688ee13 drm/kirin: Don't set struct drm_device.irq_enabled dc686169f377 drm/exynos: Don't set struct drm_device.irq_enabled e95bfbbca4c8 drm/malidp: Don't set struct drm_device.irq_enabled 5c2c66c6eab0 drm/komeda: Don't set struct drm_device.irq_enabled d612b0fe70b3 drm/i915: Track IRQ state in local device state ae9d335be636 drm/armada: Don't set struct drm_device.irq_enabled 0f1cc7795ded drm: Don't test for IRQ support in VBLANK ioctls d0d52ba63904 drm/radeon: Track IRQ state in local device state 5a2f7ec2c996 drm/hibmc: Call drm_irq_uninstall() unconditionally 7e81b48893e1 drm/amdgpu: Track IRQ state in local device state
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/index.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[Intel-gfx] ✗ Fi.CI.IGT: failure for Deprecate struct drm_device.irq_enabled
In reply to Thomas Zimmermann== Series Details ==
== Series Details ==
Series: Deprecate struct drm_device.irq_enabled
URL : https://patchwork.freedesktop.org/series/91845/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_10271_full -> Patchwork_20450_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_20450_full absolutely need to be verified manually.
If you think the reported changes have nothing to do with the changes introduced in Patchwork_20450_full, please notify your bug team to allow them to document this new failure mode, which will reduce false positives in CI.
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_20450_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_exec_endless@dispatch@rcs0:
- shard-iclb: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb4/igt@gem_exec_endless@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb4/igt@gem_exec_endless@[email protected]
* igt@sysfs_timeslice_duration@timeout@vecs0:
- shard-skl: [PASS][3] -> [FAIL][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl5/igt@sysfs_timeslice_duration@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl9/igt@sysfs_timeslice_duration@[email protected]
#### Warnings ####
* igt@kms_psr2_sf@cursor-plane-update-sf:
- shard-tglb: [SKIP][5] ([i915#2920]) -> [SKIP][6] +19 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-tglb2/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-tglb2/igt@[email protected]
* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3:
- shard-iclb: [SKIP][7] ([i915#658]) -> [SKIP][8] +3 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb8/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb2/igt@[email protected]
Known issues
------------
Here are the changes found in Patchwork_20450_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_create@create-clear:
- shard-glk: [PASS][9] -> [FAIL][10] ([i915#1888] / [i915#3160])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-glk9/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-glk7/igt@[email protected]
* igt@gem_ctx_persistence@engines-cleanup:
- shard-snb: NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#1099]) +1 similar issue
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-snb6/igt@[email protected]
* igt@gem_exec_fair@basic-none-vip@rcs0:
- shard-kbl: [PASS][12] -> [FAIL][13] ([i915#2842]) +1 similar issue
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-kbl2/igt@gem_exec_fair@[email protected]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl3/igt@gem_exec_fair@[email protected]
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [PASS][14] -> [FAIL][15] ([i915#2842])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-glk9/igt@gem_exec_fair@[email protected]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-glk4/igt@gem_exec_fair@[email protected]
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-tglb: [PASS][16] -> [FAIL][17] ([i915#2842])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-tglb5/igt@gem_exec_fair@[email protected]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-tglb8/igt@gem_exec_fair@[email protected]
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-iclb: [PASS][18] -> [FAIL][19] ([i915#2849])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb1/igt@gem_exec_fair@[email protected]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb1/igt@gem_exec_fair@[email protected]
* igt@gem_exec_whisper@basic-normal:
- shard-glk: [PASS][20] -> [DMESG-WARN][21] ([i915#118] / [i915#95])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-glk1/igt@[email protected]
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-glk2/igt@[email protected]
* igt@gem_exec_whisper@basic-queues-priority-all:
- shard-iclb: [PASS][22] -> [INCOMPLETE][23] ([i915#1895]) +1 similar issue
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb4/igt@[email protected]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb5/igt@[email protected]
* igt@gem_pread@exhaustion:
- shard-kbl: NOTRUN -> [WARN][24] ([i915#2658])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl7/igt@[email protected]
* igt@gem_userptr_blits@dmabuf-sync:
- shard-apl: NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#3323])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl1/igt@[email protected]
* igt@gen9_exec_parse@allowed-single:
- shard-skl: [PASS][26] -> [DMESG-WARN][27] ([i915#1436] / [i915#716])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl8/igt@[email protected]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl7/igt@[email protected]
* igt@i915_pm_rc6_residency@rc6-fence:
- shard-iclb: NOTRUN -> [WARN][28] ([i915#1804] / [i915#2684])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb6/igt@[email protected]
* igt@i915_pm_rpm@modeset-pc8-residency-stress:
- shard-apl: NOTRUN -> [SKIP][29] ([fdo#109271]) +89 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl3/igt@[email protected]
* igt@i915_suspend@forcewake:
- shard-kbl: [PASS][30] -> [DMESG-WARN][31] ([i915#180])
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-kbl2/igt@[email protected]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl7/igt@[email protected]
* igt@kms_chamelium@dp-crc-fast:
- shard-iclb: NOTRUN -> [SKIP][32] ([fdo#109284] / [fdo#111827]) +1 similar issue
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb6/igt@[email protected]
* igt@kms_chamelium@vga-hpd-for-each-pipe:
- shard-kbl: NOTRUN -> [SKIP][33] ([fdo#109271] / [fdo#111827]) +13 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl6/igt@[email protected]
* igt@kms_color_chamelium@pipe-b-ctm-0-5:
- shard-apl: NOTRUN -> [SKIP][34] ([fdo#109271] / [fdo#111827]) +11 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl3/igt@[email protected]
* igt@kms_color_chamelium@pipe-c-degamma:
- shard-skl: NOTRUN -> [SKIP][35] ([fdo#109271] / [fdo#111827]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl8/igt@[email protected]
* igt@kms_color_chamelium@pipe-d-ctm-red-to-blue:
- shard-snb: NOTRUN -> [SKIP][36] ([fdo#109271] / [fdo#111827]) +3 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-snb6/igt@[email protected]
* igt@kms_content_protection@atomic-dpms:
- shard-apl: NOTRUN -> [TIMEOUT][37] ([i915#1319])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl7/igt@[email protected]
- shard-kbl: NOTRUN -> [TIMEOUT][38] ([i915#1319])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl3/igt@[email protected]
- shard-iclb: NOTRUN -> [SKIP][39] ([fdo#109300] / [fdo#111066])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb6/igt@[email protected]
* igt@kms_cursor_crc@pipe-a-cursor-256x85-sliding:
- shard-snb: NOTRUN -> [SKIP][40] ([fdo#109271]) +58 similar issues
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-snb6/igt@[email protected]
* igt@kms_cursor_crc@pipe-b-cursor-512x170-sliding:
- shard-iclb: NOTRUN -> [SKIP][41] ([fdo#109278] / [fdo#109279])
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb6/igt@[email protected]
* igt@kms_cursor_crc@pipe-d-cursor-suspend:
- shard-kbl: NOTRUN -> [SKIP][42] ([fdo#109271]) +105 similar issues
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl6/igt@[email protected]
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
- shard-iclb: NOTRUN -> [SKIP][43] ([fdo#109274] / [fdo#109278]) +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@pipe-d-torture-bo:
- shard-kbl: NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#533]) +1 similar issue
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl2/igt@[email protected]
* igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-xtiled:
- shard-skl: [PASS][45] -> [DMESG-WARN][46] ([i915#1982])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl8/igt@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl7/igt@[email protected]
* igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
- shard-apl: [PASS][47] -> [DMESG-WARN][48] ([i915#180]) +3 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-apl8/igt@kms_flip@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl2/igt@kms_flip@[email protected]
* igt@kms_flip@plain-flip-fb-recreate@a-edp1:
- shard-skl: [PASS][49] -> [FAIL][50] ([i915#2122])
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl10/igt@kms_flip@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl5/igt@kms_flip@[email protected]
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs:
- shard-kbl: NOTRUN -> [SKIP][51] ([fdo#109271] / [i915#2672])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl3/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt:
- shard-iclb: NOTRUN -> [SKIP][52] ([fdo#109280]) +5 similar issues
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb6/igt@[email protected]
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-pgflip-blt:
- shard-skl: [PASS][53] -> [FAIL][54] ([i915#49])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl6/igt@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl10/igt@[email protected]
* igt@kms_invalid_dotclock:
- shard-iclb: NOTRUN -> [SKIP][55] ([fdo#109310])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb6/igt@kms_invalid_dotclock.html
* igt@kms_plane_alpha_blend@pipe-b-alpha-opaque-fb:
- shard-kbl: NOTRUN -> [FAIL][56] ([fdo#108145] / [i915#265]) +1 similar issue
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl2/igt@[email protected]
* igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
- shard-skl: [PASS][57] -> [FAIL][58] ([fdo#108145] / [i915#265])
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl7/igt@[email protected]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl4/igt@[email protected]
* igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
- shard-apl: NOTRUN -> [FAIL][59] ([fdo#108145] / [i915#265])
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl1/igt@[email protected]
* igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
- shard-skl: NOTRUN -> [FAIL][60] ([fdo#108145] / [i915#265])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl2/igt@[email protected]
* igt@kms_plane_alpha_blend@pipe-d-coverage-vs-premult-vs-constant:
- shard-iclb: NOTRUN -> [SKIP][61] ([fdo#109278]) +3 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb6/igt@kms_plane_alpha_blend@pipe-d-coverage-vs-premult-vs-constant.html
* igt@kms_psr2_sf@plane-move-sf-dmg-area-2:
- shard-apl: NOTRUN -> [SKIP][62] ([fdo#109271] / [i915#658])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl3/igt@[email protected]
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5:
- shard-kbl: NOTRUN -> [SKIP][63] ([fdo#109271] / [i915#658]) +3 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl3/igt@[email protected]
* igt@kms_psr@psr2_cursor_blt:
- shard-iclb: [PASS][64] -> [SKIP][65] ([fdo#109441]) +1 similar issue
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb8/igt@kms_psr@psr2_cursor_blt.html
* igt@kms_vblank@pipe-d-wait-busy:
- shard-skl: NOTRUN -> [SKIP][66] ([fdo#109271]) +18 similar issues
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl2/igt@[email protected]
* igt@perf@polling-parameterized:
- shard-glk: [PASS][67] -> [FAIL][68] ([i915#1542])
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-glk5/igt@[email protected]
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-glk5/igt@[email protected]
#### Possible fixes ####
* igt@gem_eio@unwedge-stress:
- shard-tglb: [TIMEOUT][69] ([i915#2369] / [i915#3063]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-tglb2/igt@[email protected]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-tglb2/igt@[email protected]
- shard-iclb: [TIMEOUT][71] ([i915#2369] / [i915#2481] / [i915#3070]) -> [PASS][72]
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb2/igt@[email protected]
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb8/igt@[email protected]
* igt@gem_exec_fair@basic-none@vcs0:
- shard-kbl: [FAIL][73] ([i915#2842]) -> [PASS][74] +2 similar issues
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-kbl3/igt@gem_exec_fair@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl4/igt@gem_exec_fair@[email protected]
* igt@gem_exec_fair@basic-pace@bcs0:
- shard-iclb: [FAIL][75] ([i915#2842]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb2/igt@gem_exec_fair@[email protected]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb8/igt@gem_exec_fair@[email protected]
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-kbl: [SKIP][77] ([fdo#109271]) -> [PASS][78]
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-kbl4/igt@gem_exec_fair@[email protected]
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl1/igt@gem_exec_fair@[email protected]
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-tglb: [FAIL][79] ([i915#2842]) -> [PASS][80] +1 similar issue
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-tglb5/igt@gem_exec_fair@[email protected]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-tglb8/igt@gem_exec_fair@[email protected]
* igt@gem_mmap_gtt@big-copy-odd:
- shard-glk: [FAIL][81] ([i915#307]) -> [PASS][82]
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-glk1/igt@[email protected]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-glk8/igt@[email protected]
* igt@gem_mmap_offset@clear:
- shard-skl: [FAIL][83] ([i915#3160]) -> [PASS][84]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl10/igt@[email protected]
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl6/igt@[email protected]
* igt@gem_softpin@noreloc-s3:
- shard-apl: [DMESG-WARN][85] ([i915#180]) -> [PASS][86] +1 similar issue
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-apl7/igt@[email protected]
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl7/igt@[email protected]
* igt@kms_atomic_transition@plane-toggle-modeset-transition:
- shard-snb: [SKIP][87] ([fdo#109271]) -> [PASS][88] +1 similar issue
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-snb2/igt@[email protected]
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-snb6/igt@[email protected]
* igt@kms_big_fb@linear-32bpp-rotate-180:
- shard-glk: [DMESG-WARN][89] ([i915#118] / [i915#95]) -> [PASS][90] +1 similar issue
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-glk4/igt@[email protected]
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-glk4/igt@[email protected]
* igt@kms_color@pipe-b-ctm-blue-to-red:
- shard-skl: [DMESG-WARN][91] ([i915#1982]) -> [PASS][92]
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl7/igt@[email protected]
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl4/igt@[email protected]
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
- shard-skl: [FAIL][93] ([i915#2346]) -> [PASS][94]
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl3/igt@[email protected]
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl1/igt@[email protected]
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-skl: [FAIL][95] ([i915#2346] / [i915#533]) -> [PASS][96]
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_flip@flip-vs-suspend@c-edp1:
- shard-skl: [INCOMPLETE][97] ([i915#198] / [i915#1982]) -> [PASS][98]
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl7/igt@kms_flip@[email protected]
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl8/igt@kms_flip@[email protected]
* igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
- shard-skl: [FAIL][99] ([i915#2122]) -> [PASS][100] +1 similar issue
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl2/igt@kms_flip@[email protected]
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl2/igt@kms_flip@[email protected]
* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
- shard-skl: [INCOMPLETE][101] ([i915#198]) -> [PASS][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl1/igt@[email protected]
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl2/igt@[email protected]
* igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes:
- shard-kbl: [DMESG-WARN][103] ([i915#180]) -> [PASS][104] +8 similar issues
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-kbl1/igt@kms_plane@[email protected]
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-kbl2/igt@kms_plane@[email protected]
* igt@kms_psr@psr2_sprite_plane_move:
- shard-iclb: [SKIP][105] ([fdo#109441]) -> [PASS][106] +1 similar issue
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb8/igt@kms_psr@psr2_sprite_plane_move.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
* igt@perf@polling-small-buf:
- shard-skl: [FAIL][107] ([i915#1722]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl4/igt@[email protected]
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl5/igt@[email protected]
#### Warnings ####
* igt@i915_pm_rc6_residency@rc6-idle:
- shard-iclb: [WARN][109] ([i915#2684]) -> [FAIL][110] ([i915#2680])
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb1/igt@[email protected]
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb1/igt@[email protected]
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-1:
- shard-iclb: [SKIP][111] ([i915#2920]) -> [SKIP][112] ([i915#658]) +3 similar issues
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb2/igt@[email protected]
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb8/igt@[email protected]
* igt@runner@aborted:
- shard-iclb: ([FAIL][113], [FAIL][114], [FAIL][115]) ([i915#1814] / [i915#3002]) -> ([FAIL][116], [FAIL][117]) ([i915#3002])
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb3/igt@[email protected]
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb1/igt@[email protected]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-iclb8/igt@[email protected]
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb1/igt@[email protected]
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-iclb2/igt@[email protected]
- shard-apl: ([FAIL][118], [FAIL][119], [FAIL][120]) ([i915#180] / [i915#3002] / [i915#3363]) -> ([FAIL][121], [FAIL][122], [FAIL][123], [FAIL][124]) ([fdo#109271] / [i915#180] / [i915#1814] / [i915#3002] / [i915#3363])
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-apl7/igt@[email protected]
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-apl8/igt@[email protected]
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-apl7/igt@[email protected]
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl3/igt@[email protected]
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl1/igt@[email protected]
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl8/igt@[email protected]
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-apl2/igt@[email protected]
- shard-skl: ([FAIL][125], [FAIL][126]) ([i915#3002] / [i915#3363]) -> ([FAIL][127], [FAIL][128], [FAIL][129]) ([i915#1436] / [i915#3002] / [i915#3363])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl4/igt@[email protected]
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10271/shard-skl6/igt@[email protected]
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl5/igt@[email protected]
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl10/igt@[email protected]
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/shard-skl7/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
[fdo#109310]: https://bugs.freedesktop.org/show_bug.cgi?id=109310
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#111066]: https://bugs.freedesktop.org/show_bug.cgi?id=111066
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
[i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1804]: https://gitlab.freedesktop.org/drm/intel/issues/1804
[i915#1814]: https://gitlab.freedesktop.org/drm/intel/issues/1814
[i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
[i915#1895]: https://gitlab.freedesktop.org/drm/intel/issues/1895
[i915#198]: https://gitlab.freedesktop.org/drm/intel/issues/198
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2369]: https://gitlab.freedesktop.org/drm/intel/issues/2369
[i915#2481]: https://gitlab.freedesktop.org/drm/intel/issues/2481
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2680]: https://gitlab.freedesktop.org/drm/intel/issues/2680
[i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
[i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
[i915#307]: https://gitlab.freedesktop.org/drm/intel/issues/307
[i915#3070]: https://gitlab.freedesktop.org/drm/intel/issues/3070
[i915#3160]: https://gitlab.freedesktop.org/drm/intel/issues/3160
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3363]: https://gitlab.freedesktop.org/drm/intel/issues/3363
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95
Participating hosts (10 -> 10)
------------------------------
No changes in participating hosts
Build changes
-------------
* Linux: CI_DRM_10271 -> Patchwork_20450
CI-20190529: 20190529
CI_DRM_10271: 7a4a01d6716339c418394dbeb9a20d55bbb9a9ba @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_6117: 3ba0a02404f243d6d8f232c6215163cc4b0fd699 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_20450: d42ce5ef965c1c78dfc296da3acbb342d4ac4d4b @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_20450/index.html
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx