Bug 624316

Summary: pm-utils quirk removal breaks video on a return from suspend (intel driver)
Product: [Fedora] Fedora Reporter: Michal Jaegermann <michal>
Component: xorg-x11-drv-intelAssignee: Adam Jackson <ajax>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 13CC: ajax, johannbg, jskala, jskarvad, opensource, pknirsch, rhughes, xgl-maint
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-28 14:34:39 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
pm-suspend.log after a resume. It looks the same with or witout a patch here only you may fail to see anything on a screen.
none
possible patch for 98smart-kernel-video none

Description Michal Jaegermann 2010-08-16 00:53:31 UTC
Created attachment 438872 [details]
pm-suspend.log after a resume.  It looks the same with or witout a patch here only you may fail to see anything on a screen.

Description of problem:

Acer TravelMate 230 laptop needs --quirk-s3-bios and --quirk-s3-mode or on a return from a suspend a video remains blank.  See bug 437886 for details.  This was fixed at that time and with Fedora 10 everything on that laptop worked and
that included suspend and hibernate.

Fedora 11 was not installed on that machine.  With Fedora 12 bug 546994 hit.  It is true, as noted in a comment 5 for that bug that at some moment a return from a hibernation started to restore a video but for suspend this was remaining consistently blank.  OTOH a required video driver in Fedora 12 was generally crashy and barely usable (cf. bug 571525) so I did not investigate the matter any further.

With Fedora 13 we are in bug 546994 situation "with improvement".  That means that a return from hibernation works and restore a video and after a resume from suspend a machine seems to be OK, and that includes a working network, but a screen remains consistently blank. Check of pm-suspend.log shows that quirks are added but have_kms() from /usr/lib/pm-utils/sleep.d/98smart-kernel-video removes them.  There is no choice of running with nomodeset and using have_smart_intel() instead as with the current software this is not finding any usable screens for X server.  Still the following dumb patch:

--- orig/98smart-kernel-video   2010-02-24 07:43:21.000000000 -0700
+++ sleep.d/98smart-kernel-video        2010-08-15 17:14:17.988040680 -0600
@@ -33,7 +33,7 @@
     # if we are running with a KMS-enabled video driver, we should not
     # attempt to run any quirks
     grep -q -E '(nouveau|drm)fb' /proc/fb || return 1
-    remove_all_video_quirks
+#    remove_all_video_quirks
     add_parameters --quirk-no-chvt
 }

makes video to come back after a resume and hibernate works too.  It appears that this "we should not attempt ..." comment is way too optimistic.

Version-Release number of selected component (if applicable):
pm-utils-1.2.6.1-1.fc13

How reproducible:
always

Additional info:
I tried multiple suspends and hibernates, in a row, with the above patch applied and so far everything worked like it should.

Comment 1 Michal Jaegermann 2010-08-16 01:18:05 UTC
This machine may be "in the field" between a beginning of September and the end of December so please take that into account if any further information is required.

Comment 2 Michal Jaegermann 2010-08-16 23:57:13 UTC
Instead of an outright commenting out 'remove_all_video_quirks', which I did while trying figure that out, the following version of 'have_kms' works without doing, hopefully, too much damage elsewhere:

have_kms()
{
    # if we are running with a KMS-enabled video driver, we should not
    # attempt to run any quirks (unless this is intel video)
    if [ -d /sys/module/i915 ] ; then
        have_smart_intel
    else
        grep -q -E '(nouveau|drm)fb' /proc/fb || return 1
        remove_all_video_quirks
    fi
    add_parameters --quirk-no-chvt
}

Comment 3 Michal Jaegermann 2010-08-16 23:58:56 UTC
Created attachment 439033 [details]
possible patch for 98smart-kernel-video

Comment 4 Jaroslav Škarvada 2010-08-17 11:28:13 UTC
Does it work with KMS?

Comment 5 Michal Jaegermann 2010-08-17 16:11:39 UTC
(In reply to comment #4)
> Does it work with KMS?

I am not sure if I understand the question.  As I wrote in the original report
"There is no choice of running with nomodeset ..." because X server without KMS and with an intel driver simply does not start.  OTOH with KMS and with unpatched 98smart-kernel-video after a resume from a suspend my laptop is dead.

If I would be running without KMS then the patch from comment 3 should have no effects.  No?

Comment 6 Jaroslav Škarvada 2010-08-18 08:33:20 UTC
Thanks for info. AFAIK KMS should correctly work without quirks, that's why the quirks are removed. I checked with my Intel graphics and everything is working OK without quirks. Thus this seems to be a bug related to your HW that should be fixed in kernel driver. Quirks from user space is not correct way how to handle it and also it can break things for other users -> I will reassign this to kernel.

Comment 7 Michal Jaegermann 2010-08-18 18:27:43 UTC
(In reply to comment #6)
> Thanks for info. AFAIK KMS should correctly work without quirks, that's why the
> quirks are removed.

Only it does not and quirks removal is killing video.

> I checked with my Intel graphics and everything is working
> OK without quirks.

That depends on a particular machine and its BIOS.  Quite a few of those with intel video worked just fine without any quirks _before_ KMS showed up and other models required quirks.

> Thus this seems to be a bug related to your HW that should
> be fixed in kernel driver. Quirks from user space is not correct way how to
> handle it and also it can break things for other users -> I will reassign this
> to kernel.

See bug 546994 which is still in a NEW state and bug 573215 (also NEW so far).
As for "breaking things for other users" if quirks were not needed before then none will be applied even with a proposed patch. So far you are breaking things for "other users" with a help of a long standing regression.

Comment 8 Michal Jaegermann 2010-08-22 21:19:24 UTC
I tried suspend and hibernate with my modification to 98smart-kernel-video on another laptop with an intel video.  Only in this case everything which showed up as "Adding quirks from HAL:" in /var/log/pm-suspend.log was removed by have_smart_intel() function so in this case this is effectively a null change (and suspend and hibernate do work correctly before and after).

BTW - in remove_all_video_quirks() and have_smart_intel() from 98smart-kernel-video there are pairs of lines:

        --quirk-vbe-post \
        --quirk-vbe-post \

That looks a bit excessive if harmless. '--quirk-radeon-off' in have_smart_intel() is to cover a case of multiple video cards?

Comment 9 Jóhann B. Guðmundsson 2010-09-13 21:21:00 UTC
Reassigning this to the intel driver as mentioned in comment 6

Comment 10 Michal Jaegermann 2010-09-14 00:08:54 UTC
A note before anybody will ask.  That particular laptop with the video issue is now "working out there" and I will not see it before the second half of December.  Another netbook with i915 video is fine as noted in comment 8.  Not that surprising as it never required --quirk-s3-bios and/or --quirk-s3-mode.

Comment 11 Bug Zapper 2011-06-01 11:25:38 UTC
This message is a reminder that Fedora 13 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 13.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '13'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 13's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 13 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 12 Bug Zapper 2011-06-28 14:34:39 UTC
Fedora 13 changed to end-of-life (EOL) status on 2011-06-25. Fedora 13 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.