Created attachment 99561 [details] dmesg ==System Environment== -------------------------- Regression: Yes. Good commit on -fixes (7f1950fbb989e8fc5463b307e062b4529d51c862) Non-working platforms: SNB ==kernel== -------------------------- -nightly: f5b0cca269ca3f7062f8d3441cebe6a16ce12be4(works) -queued: e6a7e5d0fd778bc6cf295414b9937723091c9bb6(works) Author: Paulo Zanoni <paulo.r.zanoni@intel.com> Date: Wed May 21 17:29:31 2014 -0300 drm/i915: grab the audio power domain when enabling audio on HSW+ With the current code, we unconditionally touch HSW_AUD_PIN_ELD_CP_VLD, which means we can touch it when the power well is off, and that will trigger an "Unclaimed register" message. Just adding the intel_crtc->config.has_audio should already avoid the unclaimed register messsages, but since we actually need the power well to make the Audio code work, it makes sense to also grab the audio power domain reference, and release it when it's not needed anymore. I used IGT's pm_rpm to reproduce this bug, but it can probably be reproduced on other tests that do modesets. I'm using a machine with eDP+HDMI connected. Regression introduced by: commit acfa75b02e72bad7c93564ac379712e29c001432 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Thu Apr 24 23:54:51 2014 +0200 drm/i915: Simplify audio handling on DDI ports Credits to Daniel for suggesting this implementation. Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> -fixes: f93e94efebbe0b9ad5048076f171ea2b054ca4fb(fails) Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed May 21 12:42:56 2014 +0100 drm/i915: Fix dynamic allocation of physical handles A single object may be referenced by multiple registers fundamentally breaking the static allotment of ids in the current design. When the object is used the second time, the physical address of the first assignment is relinquished and a second one granted. However, the hardware is still reading (and possibly writing) to the old physical address now returned to the system. Eventually hilarity will ensue, but in the short term, it just means that cursors are broken when using more than one pipe. v2: Fix up leak of pci handle when handling an error during attachment, and avoid a double kmap/kunmap. (Ville) Rebase against -fixes. v3: And fix the error handling added in v2 (Ville) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77351 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: stable@vger.kernel.org Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> ==Bug detailed description== ----------------------------- igt/kms_flip/modeset-vs-vblank-race-interruptible fails Output: ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible IGT-Version: 1.6-gc75dcbd (x86_64) (Linux: 3.15.0-rc5_drm-intel-fixes_f93e94_20140522+ x86_64) Using monotonic timestamps Beginning modeset-vs-vblank-race-interruptible on crtc 5, connector 21 1920x1200 60 1920 1968 2000 2080 1200 1203 1209 1235 0x9 0x40 154000 ........... modeset-vs-vblank-race-interruptible on crtc 5, connector 21: PASSED Beginning modeset-vs-vblank-race-interruptible on crtc 8, connector 21 1920x1200 60 1920 1968 2000 2080 1200 1203 1209 1235 0x9 0x40 154000 Test assertion failure function run_test_step, file kms_flip.c:883: Last errno: 22, Invalid argument Failed assertion: __wait_for_vblank(TEST_VBLANK_BLOCK, o->pipe, 1, 0, &reply) == 0 Subtest modeset-vs-vblank-race-interruptible: FAIL ==Reproduce steps== ---------------------------- 1. ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible
Before you bisect, can you please retest on latest -nightly? I've just merged Ville's fixes for this.
(In reply to comment #1) > Before you bisect, can you please retest on latest -nightly? I've just > merged Ville's fixes for this. It was passed on latest -nightly(f5b0cca269ca3f7062f8d3441cebe6a16ce12be4), Maybe Ville's patch fixed it. ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible IGT-Version: 1.6-gc75dcbd (i686) (Linux: 3.15.0-rc5_drm-intel-nightly_f5b0cc_20140522+ i686) Using monotonic timestamps Beginning modeset-vs-vblank-race-interruptible on crtc 5, connector 10 1280x1024 60 1280 1328 1440 1688 1024 1025 1028 1066 0x5 0x48 108000 ............... modeset-vs-vblank-race-interruptible on crtc 5, connector 10: PASSED Beginning modeset-vs-vblank-race-interruptible on crtc 8, connector 10 1280x1024 60 1280 1328 1440 1688 1024 1025 1028 1066 0x5 0x48 108000 ............... modeset-vs-vblank-race-interruptible on crtc 8, connector 10: PASSED Subtest modeset-vs-vblank-race-interruptible: SUCCESS Need I bisect it?
The test was passed on latest -nightly(a7665faa31dbbbae25e376508a9b3781e25d09e2) Output: [root@x-sgb4 tests]# ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible IGT-Version: 1.7-g67e29a3 (i686) (Linux: 3.16.0-rc2_drm-intel-nightly_a7665f_20140701+ i686) Using monotonic timestamps Beginning modeset-vs-vblank-race-interruptible on crtc 6, connector 12 1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000 Beginning modeset-vs-vblank-race-interruptible on crtc 10, connector 12 1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000 Subtest modeset-vs-vblank-race-interruptible: SUCCESS
Closing this based on comment 1 and 2.
Verified on latest -nightly(4cf4ff0da2b98be40da6d9fdbc3c338888ba0eb0) [root@x-sgb4 tests]# ./kms_flip --run-subtest modeset-vs-vblank-race-interruptible IGT-Version: 1.8-g32a0308 (i686) (Linux: 3.17.0-rc7_drm-intel-nightly_4cf4ff_20140930+ i686) Using monotonic timestamps Beginning modeset-vs-vblank-race-interruptible on crtc 8, connector 14 1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000 ............................................................................................. modeset-vs-vblank-race-interruptible on crtc 8, connector 14: PASSED Beginning modeset-vs-vblank-race-interruptible on crtc 12, connector 14 1024x768 60 1024 1048 1184 1344 768 771 777 806 0xa 0x40 65000 ............................................................................................. modeset-vs-vblank-race-interruptible on crtc 12, connector 14: PASSED Subtest modeset-vs-vblank-race-interruptible: SUCCESS (10.264s)
Closing (>2 years) old Verified+Fixed.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.