Thread (24 messages) 24 messages, 7 authors, 2006-11-17

Re: Fwd: [Suspend-devel] resume not working on acer ferrari 4005 with radeonfb enabled

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2006-11-15 01:48:58
Also in: lkml

On Wed, 2006-11-15 at 01:54 +0100, Christian Hoffmann wrote:
On Tuesday 14 November 2006 23:07, Benjamin Herrenschmidt wrote:
quoted
quoted
I tried that patch, but the last message I see over netconsole (using
tg3) is: Suspending console(s)
and then nothing. Nothing on resume at all :(

Adding some printks in the radeonfb_pci_suspend and radeonfb_pci_resume
(radeon_pm.c) didn't help: I don't see them. But I am not a kernel
programmer at all, so I might do something wrong or in the wrong place.
Does it resume if you make radeon_pci_resume() a nop ?

Of course, the fbdev will not come back, but will the machine overall
resume ?

Ben.
Yes, if i make radeon_pci_resume a nop, the machine resumes if i do a return 0 
immediately.
I think I tracked it down to the call to acquire_console_sem() as the 
following code makes the machine hang again:

int radeonfb_pci_resume(struct pci_dev *pdev)
{
        struct fb_info *info = pci_get_drvdata(pdev);
        struct radeonfb_info *rinfo = info->par;
        int rc = 0;
        if (pdev->dev.power.power_state.event == PM_EVENT_ON)
                return 0;
        if (rinfo->no_schedule) {
        /*      if (try_acquire_console_sem())*/
                        return 0;
        } else
                acquire_console_sem();

        return 0;
...
Well, if you acquire the console sem you need to release it too :-)

Ben.



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help