Bug 52952

Summary: Ubuntu 10.04.4 LTS 32-bit and ATI Technologies Radeon Xpress 200 for Intel (RC410) ACPI S3 State Resume Failure
Product: DRI Reporter: mypersonalmailbox1
Component: DRM/RadeonAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: dan.g.tob
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
BootDmesg.txt
none
CurrentDmesg.txt
none
XorgLog.txt
none
possible fix none

Description mypersonalmailbox1 2012-07-30 09:47:45 UTC
Hi,

I will like to report that Intel D101GGC mainboard fails to resume from ACPI S3 State when tested on Ubuntu 10.04.4 LTS 32-bit LiveCD.
The information about the mainboard can be seen here.

http://www.intel.com/p/en_US/support/highlights/dsktpboards/d101ggc/

Obviously, the computer will enter standby, but when I press the power button to wake it up, it will start reading the DVD, but the screen will stay blank, and the computer completely freezes.


System Configuration:

- Ubuntu 10.04.4 LTS 32-bit LiveCD
- Intel Pentium 4 511 2.8 GHz
  * 533 MHz FSB
  * 1 MB L2 cache
- Intel D101GGC mainboard
  * BIOS Version GC11010N.86.0313 (last release)
  * ATI Technologies Radeon Xpress 200 for Intel (RC410 (NB) + SB450 (SB))
- 1 GB DDR 333 DDR SDRAM
  * 512 MB module X 2
- ATI Technologies Radeon Xpress 200 for Intel IGP
  * 64 MB of RAM taken from the main memory
- Pioneer DVR-106D PATA DVD-RW drive
- USB keyboard
- USB mouse
- Gateway EV700 17 inch VGA monitor


Please fix this bug.
I will do anything to help the developers fix the bug.

Regards,

fpgahardwareengineer
Comment 1 Alex Deucher 2012-07-30 13:16:58 UTC
Please attach your dmesg output and xorg log.  Also, you might try a newer kernel or distro. Ubuntu 10.x is pretty old.
Comment 2 Alex Deucher 2012-07-30 13:21:13 UTC
*** Bug 52959 has been marked as a duplicate of this bug. ***
Comment 3 Alex Deucher 2012-07-30 13:25:03 UTC
*** Bug 52940 has been marked as a duplicate of this bug. ***
Comment 4 Alex Deucher 2012-07-30 13:25:36 UTC
*** Bug 52943 has been marked as a duplicate of this bug. ***
Comment 5 mypersonalmailbox1 2012-09-02 05:31:31 UTC
Created attachment 66477 [details]
BootDmesg.txt

Hi Alex,

This is the BootDmesg.txt you have requested.
Comment 6 mypersonalmailbox1 2012-09-02 05:33:28 UTC
Created attachment 66478 [details]
CurrentDmesg.txt

Hi Alex,

This is the CurrentDmesg.txt you have requested.
Comment 7 mypersonalmailbox1 2012-09-02 05:34:35 UTC
Created attachment 66479 [details]
XorgLog.txt

Hi Alex,

This is the XorgLog.txt you have requested.
Comment 8 mypersonalmailbox1 2012-09-02 05:35:29 UTC
Hi Alex,

I know Ubuntu 10.04 is considered old to you, but I still want bugs fixed regardless.

Regards,

fpgahardwareengineer
Comment 9 mypersonalmailbox1 2012-09-02 05:46:11 UTC
Hi Alex,

You have marked my posting regarding Ubuntu 12.04 LTS 32-bit and ATI Technologies Radeon Xpress 200 ACPI S3 state resume freeze as a duplicate, but note that Ubuntu 12.04 LTS 32-bit has the exact same behavior/issue as Ubuntu 10.04 LTS 32-bit.

Regards,

fpgahardwareengineer
Comment 10 Alex Deucher 2012-09-09 14:32:28 UTC
try making the following change to radeon_combios_asic_init() in radeon_combios.c in the kernel.  Remove the following code:

	/* DYN CLK 1 */
	table = combios_get_table_offset(dev, COMBIOS_DYN_CLK_1_TABLE);
	if (table)
		combios_parse_pll_table(dev, table);

and see if that helps.
Comment 11 mypersonalmailbox1 2012-09-22 06:43:40 UTC
(In reply to comment #10)
> try making the following change to radeon_combios_asic_init() in
> radeon_combios.c in the kernel.  Remove the following code:
> 
>     /* DYN CLK 1 */
>     table = combios_get_table_offset(dev, COMBIOS_DYN_CLK_1_TABLE);
>     if (table)
>         combios_parse_pll_table(dev, table);
> 
> and see if that helps.

I am not saying that I cannot do this, but I am not a Linux kernel developer, so I am not sure how I can make the change, and recompile the kernel.
I do have Windows device driver development experience, but I have never done software development with Linux.
Keeping that in mind, can you provide me with detailed instructions on how to make the edits and recompile the kernel?

Regards,

fpgahardwareengineer
Comment 12 mypersonalmailbox1 2012-09-24 04:27:58 UTC
Hi Alex,

I recently obtained emachines C6207 desktop PC by accident.
Interestingly, I noticed that the mainboard inside has ATI Technologies Radeon Xpress 200 (RS480 + SB400).
The mainboard inside is MSI R480M (MS-7145).
When I tested the ACPI S3 State resume with the original BIOS (AMI BIOS that shows emachines 'e' logo during POST. The BIOS version displayed is Version 1.05.) of the mainboard, to my surprise, ACPI S3 State resume worked correctly.
However, if I flashed MSI R480M mainboard with the BIOS image from MSI (R480M BIOS Version 1.50, Award BIOS), the mainboard will not resume from ACPI S3 State.
Note that RS480 is 130nm process version of Radeon Xpress 200 and RS482 is 110nm process shrink version of the same chip with supposedly exact same functionality.
I used flashrom (http://www.flashrom.org) to go from AMI to Award.
I kept the original BIOS image of the mainboard so I can go back to the original image for testing purposes.

Regards,

fpgahardwareengineer
Comment 13 Alex Deucher 2012-09-24 13:14:22 UTC
(In reply to comment #11)
> (In reply to comment #10)
> > try making the following change to radeon_combios_asic_init() in
> > radeon_combios.c in the kernel.  Remove the following code:
> > 
> >     /* DYN CLK 1 */
> >     table = combios_get_table_offset(dev, COMBIOS_DYN_CLK_1_TABLE);
> >     if (table)
> >         combios_parse_pll_table(dev, table);
> > 
> > and see if that helps.
> 
> I am not saying that I cannot do this, but I am not a Linux kernel
> developer, so I am not sure how I can make the change, and recompile the
> kernel.
> I do have Windows device driver development experience, but I have never
> done software development with Linux.
> Keeping that in mind, can you provide me with detailed instructions on how
> to make the edits and recompile the kernel?

1. download the kernel source.
2. edit drivers/gpu/drm/radeon/radeon_combios.c in the kernel source tree and remove the code in question.
3. build the kernel:
make
make modules
(as root) make modules_install
(as root) make install
4. reboot and pick the new kernel in the grub menu
Comment 14 Alex Deucher 2012-09-24 13:15:02 UTC
(In reply to comment #12)
> Hi Alex,
> 
> I recently obtained emachines C6207 desktop PC by accident.
> Interestingly, I noticed that the mainboard inside has ATI Technologies
> Radeon Xpress 200 (RS480 + SB400).
> The mainboard inside is MSI R480M (MS-7145).
> When I tested the ACPI S3 State resume with the original BIOS (AMI BIOS that
> shows emachines 'e' logo during POST. The BIOS version displayed is Version
> 1.05.) of the mainboard, to my surprise, ACPI S3 State resume worked
> correctly.
> However, if I flashed MSI R480M mainboard with the BIOS image from MSI
> (R480M BIOS Version 1.50, Award BIOS), the mainboard will not resume from
> ACPI S3 State.
> Note that RS480 is 130nm process version of Radeon Xpress 200 and RS482 is
> 110nm process shrink version of the same chip with supposedly exact same
> functionality.
> I used flashrom (http://www.flashrom.org) to go from AMI to Award.
> I kept the original BIOS image of the mainboard so I can go back to the
> original image for testing purposes.

Sounds like it may be a bios bug.  Does the change I suggested help?
Comment 15 Daniel T. 2013-05-27 12:45:28 UTC
Same board same symptoms. I was able to get around it for a while running a pcie video card and propietry nvidia drivers. But I'd much rather switch back to radeon o/s so here I am..

Up to date arch linux system; linux 3.9.3 etc. Also note I couldnt get the machine to respond to the Alt+SysRq keys after wakeup from resume.

Haven't tried the suggested workaround, ill get on that now (make localyesconfig should be okay?)

Title should probably be changed to mention the motherboard and remove ubuntu since it doesnt seem to be distro specific. thanks
Comment 16 Daniel T. 2013-05-27 13:55:34 UTC
The suggested fix doesn't seem to make a difference. Nothing seems to be logged after wakeup from suspend
Comment 17 mypersonalmailbox1 2013-06-18 06:02:39 UTC
(In reply to Comment #15)

Hi Dant,

Since no Linux device driver developers that I know of fix the bugs I report, I kinda gave up on uploading reports to get them to fix.
That being said, based on my memory, this is what happens.

- This ACPI S3 State bug appears to be related to ATI Technologies Radeon Xpress 200, and affects both AMD and Intel editions

- This bug can be worked around by using a PCI Express graphics card instead (assuming that the particular graphics chip doesn't have any issues with ACPI S3 State resume)

- See Comment #12 that this bug seems to impact Award/Pheonix BIOS-based mainboard

- The Comment #12 implies that AMI BIOS is probably configuring the Radeon Xpress 200 differently than Award/Pheonix BIOS during POST, hence, the graphics device driver "happened" to work okay with AMI BIOS, but there probably is a bug in the way the graphics device driver is written

- All known systems that have this bug have Award/Pheonix BIOS (Intel mainboard, HP Pavilion PC (I forgot the model.), and emachines PC (after flashing the BIOS via flashrom software), if I remember it correctly

- The fact that Linux 3.9 kernel still has this bug means that the code for Radeon Xpress 200 hasn't really been updated to fix this embarrassing bug


I have at least 3 different ATI Technologies Radeon Xpress 200-based mainboards in my apartment for testing purposes if anyone is willing to fix the bug.

Regards,

fpgahardwareengineer
Comment 18 mypersonalmailbox1 2013-08-26 03:19:58 UTC
Hi,

Someone please fix this bug!
It affects large number of Radeon Xpress 200 mainboards.

Regards,

fpgahardwareengineer
Comment 19 Alex Deucher 2013-08-27 19:10:07 UTC
Created attachment 84747 [details] [review]
possible fix

Does this patch help?
Comment 20 Daniel T. 2013-08-28 05:57:26 UTC
Hi Alex,

I with the patch you have posted (commnet #19) against 3.10.9 , I have so far been able to suspend and resume about 8 times without issue! Before the first try would always fail. This part seems to be solved

you can add my Tested-by: Daniel Tobias dan.g.tob@gmail.com

I have however got warnings about low memory corruption caused by bios, doesnt seem to cause any issues however

[  120.373369] Corrupted low memory at c0009ff4 (9ff4 phys) = 00000cd7
[  120.375589] Corrupted low memory at c0009ff8 (9ff8 phys) = 01000000
[  120.377841] ------------[ cut here ]------------
[  120.380103] WARNING: at arch/x86/kernel/check.c:140 check_for_bios_corruption+0xbe/0xd0()
[  120.382386] Memory corruption detected in low memory
[  120.384616] Modules linked in:
[  120.386901] CPU: 0 PID: 190 Comm: kworker/0:3 Not tainted 3.10.9-ARCH #1
[  120.389250] Hardware name:                  /D101GGC                        , BIOS GC11010N.86A.0313.2006.0915.1840 09/15/2006
[  120.391682] Workqueue: events check_corruption
[  120.394125]  f363fecc f363fecc f363fe94 c16ad588 f363febc c103af4e c1815f00 f363fee8
[  120.396693]  0000008c c102f48e c102f48e 00000000 c0010000 c1a38570 f363fed4 c103afa3
[  120.399336]  00000009 f363fecc c1815f00 f363fee8 f363fefc c102f48e c180deed 0000008c
[  120.402004] Call Trace:
[  120.404622]  [<c16ad588>] dump_stack+0x16/0x18
[  120.407244]  [<c103af4e>] warn_slowpath_common+0x5e/0x80
[  120.409884]  [<c102f48e>] ? check_for_bios_corruption+0xbe/0xd0
[  120.412562]  [<c102f48e>] ? check_for_bios_corruption+0xbe/0xd0
[  120.415234]  [<c103afa3>] warn_slowpath_fmt+0x33/0x40
[  120.417846]  [<c102f48e>] check_for_bios_corruption+0xbe/0xd0
[  120.420536]  [<c102f4b0>] check_corruption+0x10/0x40
[  120.423224]  [<c1055327>] process_one_work+0x107/0x380
[  120.425944]  [<c1055b81>] worker_thread+0x101/0x340
[  120.428678]  [<c1055a80>] ? manage_workers.isra.26+0x250/0x250
[  120.431440]  [<c105ad84>] kthread+0x94/0xa0
[  120.434116]  [<c1060000>] ? down_interruptible+0x20/0x50
[  120.436897]  [<c16b8e77>] ret_from_kernel_thread+0x1b/0x28
[  120.439745]  [<c105acf0>] ? kthread_create_on_node+0xc0/0xc0
[  120.442585] ---[ end trace 81f23fa39f4c88a9 ]---

If you need any more info let me know. thanks
Comment 21 mypersonalmailbox1 2013-08-31 19:09:45 UTC
(In reply to Comment 19)

Hi Alex,

Is it possible you or someone can backport the fix so that this issue can be resolved on Ubuntu 10.04 LTS (Linux 2.6.32 kernel) and Ubuntu 12.04 LTS (Linux 3.2 kernel)?
It will be nice if the fix can be applied via apt-get.

Regards,

fpgahardwareengineer


> Created attachment 84747 [details] [review] [review]
> possible fix
> 
> Does this patch help?
Comment 22 Alex Deucher 2013-09-01 16:47:04 UTC
(In reply to comment #21)
> (In reply to Comment 19)
> 
> Hi Alex,
> 
> Is it possible you or someone can backport the fix so that this issue can be
> resolved on Ubuntu 10.04 LTS (Linux 2.6.32 kernel) and Ubuntu 12.04 LTS
> (Linux 3.2 kernel)?
> It will be nice if the fix can be applied via apt-get.

It will show up in stable kernels eventually.  However, it would be nice if you could actually test and verify the fix for your specific system.
Comment 23 mypersonalmailbox1 2014-06-05 15:16:06 UTC
(In reply to comment #22)
> 
> It will show up in stable kernels eventually.  However, it would be nice if
> you could actually test and verify the fix for your specific system.

Hi Alex,

It appears that the patch you created has been applied to most Linux 3.x kernels that are/were supported at the time.
However, it also appears that this patch has not been applied to Linux 2.6.32 kernel as of today.
Is it possible for someone to apply this fix to the next release of Linux 2.6.32 kernel?
I don't have access to my computers that have Radeon Xpress 200 until early July, so I won't be able to verify the fix myself until then.
After I get access to my mainboards with Radeon Xpress 200, I will go test your  fix with Ubuntu / Xubuntu / Lubuntu 12.04 (By now, the fix should have been applied assuming that I update the Linux 3.2 kernel to the lastest version via Update Manager.).

Regards,

fpgahardwareengineer
Comment 24 Alex Deucher 2014-06-05 15:18:27 UTC
(In reply to comment #23)
> Is it possible for someone to apply this fix to the next release of Linux
> 2.6.32 kernel?

I don't know if anyone is maintaining 2.6.32 anymore.

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.