Bug 183859 - [suspend/resume] Suspend fails on Lenovo Thinkpad x220 when RC6 power saving is enabled.
Summary: [suspend/resume] Suspend fails on Lenovo Thinkpad x220 when RC6 power saving ...
Status: Closed Overcome By Events
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 9.2-RELEASE
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-bugs (Nobody)
Keywords: i915
Depends on:
Reported: 2013-11-11 13:20 UTC by Tamas Szakaly
Modified: 2020-02-19 19:08 UTC (History)
4 users (show)

See Also:

don't lock in gen6_pm_rps_work_func if already locked (1.04 KB, patch)
2014-12-10 11:33 UTC, Jan Kokemüller
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tamas Szakaly 2013-11-11 13:20:01 UTC
Suspend fails when RC6 power saving feature of the i915 is enabled. The display turns off, but the system never goes to S3: it is possible to access it via SSH. This happens with all three RC6 levels (RC6, RC6p and RC6pp).

Based on some debugging it seems that the suspend is prevented because "gen6_pm_rps_work_func" (@sys/dev/drm2/i915/i915_irq.c) hangs on a "DRM_LOCK(dev)" call, thus the "taskqueue_drain(dev_priv->tq, &dev_priv->rps_task);" call in ironlake_irq_uninstall (@sys/dev/drm2/i915/i915_irq.c) can never finish.

How-To-Repeat: 1. Enable RC6 in /boot/loader.conf:
    drm.i915.enable_rc6=1 # or 3 for RC6p, 7 for RC6pp
2. With RC6 enabled, try to suspend the machine:
    acpiconf -s3
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2013-11-12 02:53:11 UTC
Responsible Changed
From-To: gnats-admin->freebsd-bugs

Comment 2 Jan Kokemüller 2014-12-10 11:33:35 UTC
Created attachment 150427 [details]
don't lock in gen6_pm_rps_work_func if already locked

I can confirm this issue. I've been using the attached patch for a while now.
Comment 3 rainbow 2015-06-16 06:26:23 UTC
works flawless with

FreeBSD paperino 10.1-RELEASE-p12 FreeBSD 10.1-RELEASE-p12 #1 r284344M: Mon Jun 15 19:28:55 CEST 2015     root@paperino:/usr/obj/usr/src/sys/GENERIC  amd64

Comment 4 Jan Kokemüller 2015-06-16 11:04:33 UTC
I can confirm that the latest DRM and/or i915 imports have fixed this bug (in CURRENT at least).
Comment 5 Eitan Adler freebsd_committer freebsd_triage 2018-05-20 23:53:18 UTC
For bugs matching the following conditions:
- Status == In Progress
- Assignee == "bugs@FreeBSD.org"
- Last Modified Year <= 2017

- Set Status to "Open"
Comment 6 Ed Maste freebsd_committer 2020-02-19 19:08:58 UTC
Multiple reports confirm this has been fixed, and I can confirm on my X220 running recentish -CURRENT.