Re: Linux kernel 2.6.17-git14 and PCI suspend/resume

From: Greg KH
Date: Mon Jul 03 2006 - 19:23:07 EST


On Tue, Jul 04, 2006 at 01:11:21AM +0200, Lukas Hejtmanek wrote:
> Hello,
>
> in this kernel I'm seeing these messages after S3 resume:
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset f (was 4020205, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset e (was 0, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset d (was dc, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset c (was 0, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset b (was 19671043, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset a (was 0, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 9 (was 0, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 8 (was 0, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 7 (was 0, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 6 (was 0, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 5 (was 0, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 4 (was fe8fd800, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 3 (was 804000, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 2 (was c001008, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 1 (was 2100006, writing ffffffff)
> kernel: PM: Writing back config space on device 0000:01:01.1 at offset 0 (was 5521180, writing ffffffff)
>
> Which actually mess up PCI config space (and sdhci driver is unable to set up
> MMC device correctly). Do you have any idea what to try?

When suspending, pci_save_state() would have saved off those values (all
1s) which is what it is restoring. That function gets called if there
is no driver specific suspend function to call. On suspend, is there
any driver loaded for the device?

And what type of PCI device is this?

> These messages appear for devices that are not handled by any loaded module.

Ick.

Any chance you can test -mm and see if that helps with suspend/resume?
Linus's new suspend framework is in there, and that's the way forward
for these kinds of issues.

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/