Maarten Lankhorst
033b7a230c
drm/i915: Handle pipe CRC around enabling/disabling pipe.
This will get rid of the following error:
[ 74.730271] WARNING: CPU: 4 PID: 0 at drivers/gpu/drm/drm_vblank.c:614 drm_calc_vbltimestamp_from_scanoutpos+0x13e/0x2f0
[ 74.730311] Modules linked in: vgem snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic i915 x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_intel crct10dif_pclmul snd_hda_codec crc32_pclmul snd_hwdep broadcom ghash_clmulni_intel snd_hda_core bcm_phy_lib snd_pcm tg3 lpc_ich mei_me mei prime_numbers
[ 74.730353] CPU: 4 PID: 0 Comm: swapper/4 Tainted: G U 4.16.0-rc2-CI-CI_DRM_3822+ #1
[ 74.730355] Hardware name: Dell Inc. XPS 8300 /0Y2MRG, BIOS A06 10/17/2011
[ 74.730359] RIP: 0010:drm_calc_vbltimestamp_from_scanoutpos+0x13e/0x2f0
[ 74.730361] RSP: 0018:ffff88022fb03d10 EFLAGS: 00010086
[ 74.730365] RAX: ffffffffa0291d20 RBX: ffff88021a180000 RCX: 0000000000000001
[ 74.730367] RDX: ffffffff820e7db8 RSI: 0000000000000001 RDI: ffffffff82068cea
[ 74.730369] RBP: ffff88022fb03d70 R08: 0000000000000000 R09: ffffffff815d26d0
[ 74.730371] R10: 0000000000000000 R11: ffffffffa0161ca0 R12: 0000000000000001
[ 74.730373] R13: ffff880212448008 R14: ffff880212448330 R15: 0000000000000000
[ 74.730376] FS: 0000000000000000(0000) GS:ffff88022fb00000(0000) knlGS:0000000000000000
[ 74.730378] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 74.730380] CR2: 000055edcbec9000 CR3: 0000000002210001 CR4: 00000000000606e0
[ 74.730382] Call Trace:
[ 74.730385] <IRQ>
[ 74.730397] drm_get_last_vbltimestamp+0x36/0x50
[ 74.730401] drm_update_vblank_count+0x64/0x240
[ 74.730409] drm_crtc_accurate_vblank_count+0x41/0x90
[ 74.730453] display_pipe_crc_irq_handler+0x176/0x220 [i915]
[ 74.730497] i9xx_pipe_crc_irq_handler+0xfe/0x150 [i915]
[ 74.730537] ironlake_irq_handler+0x618/0xa30 [i915]
[ 74.730548] __handle_irq_event_percpu+0x3c/0x340
[ 74.730556] handle_irq_event_percpu+0x1b/0x50
[ 74.730561] handle_irq_event+0x2f/0x50
[ 74.730566] handle_edge_irq+0xe4/0x1b0
[ 74.730572] handle_irq+0x11/0x20
[ 74.730576] do_IRQ+0x5e/0x120
[ 74.730584] common_interrupt+0x84/0x84
[ 74.730586] </IRQ>
[ 74.730591] RIP: 0010:cpuidle_enter_state+0xaa/0x350
[ 74.730593] RSP: 0018:ffffc9000008beb8 EFLAGS: 00000212 ORIG_RAX: ffffffffffffffde
[ 74.730597] RAX: ffff880226b80040 RBX: 000000000031fc3e RCX: 0000000000000001
[ 74.730599] RDX: 0000000000000000 RSI: ffffffff8210fb59 RDI: ffffffff820c02e7
[ 74.730601] RBP: 0000000000000004 R08: 00000000000040af R09: 0000000000000018
[ 74.730603] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000004
[ 74.730606] R13: ffffe8ffffd00430 R14: 0000001166120bf4 R15: ffffffff82294460
[ 74.730621] ? cpuidle_enter_state+0xa6/0x350
[ 74.730629] do_idle+0x188/0x1d0
[ 74.730636] cpu_startup_entry+0x14/0x20
[ 74.730641] start_secondary+0x129/0x160
[ 74.730646] secondary_startup_64+0xa5/0xb0
[ 74.730660] Code: e1 48 c7 c2 b8 7d 0e 82 be 01 00 00 00 48 c7 c7 ea 8c 06 82 e8 64 ec ff ff 48 8b 83 c8 07 00 00 48 83 78 28 00 0f 84 e2 fe ff ff <0f> 0b 45 31 ed e9 db fe ff ff 41 b8 d3 4d 62 10 89 c8 6a 03 41
[ 74.730754] ---[ end trace 14b1345705b68565 ]---
Changes since v1:
- Don't try to apply CRC workaround when enabling pipe, it should already be enabled.
Changes since v2:
- Make crc functions for !DEBUGFS case inline.
- Pass intel_crtc to crc functions.
- Add comments to callsites.
Changes since v3:
- Cache selected source to pipe_crc->source.
- Set pipe_crc->skipped to MIN_INT during disable to close a race condition.
Changes since v4:
- Handle fallout from setting pipe_crc->source in irq handler.
Cc: Marta Löfstedt <marta.lofstedt@intel.com>
Reported-by: Marta Löfstedt <marta.lofstedt@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105185
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180308120202.52446-1-maarten.lankhorst@linux.intel.com
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-03-08 19:09:21 +01:00
..
2018-03-01 14:07:22 +10:00
2018-01-30 18:05:25 +01:00
2018-01-23 17:41:36 +02:00
2018-01-05 09:51:43 +10:00
2018-02-01 11:35:46 +10:00
2018-01-29 12:08:37 +01:00
2018-02-19 10:43:44 +01:00
2018-02-16 09:33:07 +01:00
2017-12-28 09:48:19 -05:00
2018-01-02 17:36:53 +01:00
2018-01-29 12:08:42 +01:00
2017-12-05 13:46:41 +01:00
2018-02-06 09:59:40 -08:00
2017-12-28 09:48:19 -05:00
2018-01-18 16:24:38 +02:00
2018-03-08 19:09:21 +01:00
2018-02-16 09:33:07 +01:00
2017-11-02 11:10:55 +01:00
2018-01-23 17:41:45 +02:00
2018-02-16 09:33:07 +01:00
2018-01-30 18:05:25 +01:00
2018-02-16 09:29:27 +10:00
2017-10-01 17:02:20 +02:00
2018-02-16 09:29:27 +10:00
2018-02-20 11:07:22 -05:00
2018-02-20 11:07:22 -05:00
2018-02-07 09:08:51 +01:00
2017-12-28 09:48:19 -05:00
2017-12-27 19:00:09 -05:00
2018-03-01 14:07:22 +10:00
2018-02-23 11:12:52 +10:00
2018-02-18 11:16:55 +01:00
2018-02-19 14:19:04 -05:00
2017-12-04 05:42:49 +10:00
2017-11-15 20:42:10 -08:00
2017-12-08 14:47:41 +01:00
2018-02-08 10:23:32 +01:00
2018-02-16 15:47:43 -05:00
2018-03-01 14:07:22 +10:00
2018-02-28 11:48:25 +02:00
2018-02-20 11:07:22 -05:00
2018-02-19 14:19:52 -05:00
2017-12-08 14:47:42 +01:00
2017-10-24 16:51:05 +10:00
2018-02-16 09:29:27 +10:00
2017-11-21 15:57:07 -08:00
2017-12-04 05:42:49 +10:00
2018-02-01 17:45:41 +01:00
2018-02-16 09:29:27 +10:00
2018-01-23 17:59:14 +02:00
2018-01-30 11:27:26 +01:00
2018-02-16 09:36:04 +10:00
2018-01-31 09:27:51 +01:00
2018-02-20 12:10:46 +01:00
2017-10-12 10:03:04 +10:00
2018-02-20 12:10:46 +01:00
2017-10-13 15:49:03 -04:00
2017-12-13 22:59:00 +01:00
2018-01-29 21:51:51 +02:00
2018-02-05 13:22:44 +01:00
2017-11-14 11:08:17 +02:00
2017-11-13 15:38:16 +00:00
2017-10-13 12:13:54 +03:00
2018-01-26 13:36:53 +02:00
2018-02-19 12:58:20 +01:00
2017-11-21 14:17:56 +01:00
2018-02-19 13:01:20 +01:00
2018-01-29 18:46:53 +02:00
2017-12-08 14:27:47 +01:00
2017-12-20 15:30:17 +01:00
2018-02-11 14:34:03 -08:00
2018-01-29 12:07:47 +01:00
2017-12-20 15:30:17 +01:00
2017-11-15 18:14:46 +01:00
2017-12-08 14:26:00 +01:00
2018-02-19 12:21:24 +00:00
2017-11-21 14:17:56 +01:00
2018-02-10 22:23:10 +00:00
2018-02-19 10:49:59 +01:00
2018-02-13 11:57:59 -05:00
2018-01-16 17:10:14 -05:00
2017-12-19 21:37:24 +10:00
2017-12-19 21:37:24 +10:00
2017-11-10 13:50:47 +10:00
2018-02-20 12:10:46 +01:00
2017-11-30 18:18:08 +01:00
2017-10-31 17:36:46 +01:00
2017-10-13 16:59:36 +02:00
2017-12-23 20:06:45 +01:00
2017-09-27 10:53:12 +02:00
2017-11-20 21:14:22 +02:00
2018-03-01 14:07:22 +10:00
2018-01-19 11:14:59 -05:00
2017-11-23 12:31:49 +02:00
2018-01-29 21:51:51 +02:00
2017-10-12 10:03:04 +10:00
2017-09-28 05:46:15 +10:00
2018-02-20 08:42:17 +01:00
2018-02-19 12:21:24 +00:00
2017-11-15 20:42:10 -08:00
2018-02-21 19:29:06 +01:00
2017-11-02 10:44:08 +01:00
2018-01-25 11:42:25 +10:00
2018-01-24 15:49:04 -05:00