New prototype computer problem with S3 suspend

From: Boszormenyi Zoltan
Date: Thu Jun 06 2013 - 14:18:42 EST


Hi,

we are working on an Intel Atom-based embedded PC and I have to
make suspend-to-RAM work but I can't seem to succeed.

The symptom is that quite often, the machine resumes immediately
after pm-suspend. Sometimes more than 20 times out of 50 attempts.

I have tried 3.7.10, 3.9.4, 3.10-rc[234] and the linux-next branch from the
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git repository.
The attached dmesg is from today's linux-pm/linux-next plus the
latest drm-fixes patchset posted by Dave Airlie.

The reason for cross-posting to dri-devel is the warnings that complain
about the video chip, like:

[drm:intel_enable_lvds] *ERROR* timed out waiting for panel to power on

on boot and 4 further warnings appearing after the machine was resumed:

WARNING: at drivers/gpu/drm/i915/intel_display.c:3927 intel_modeset_check_state+0xbd/0x539()
active connector not linked to encoder

WARNING: at drivers/gpu/drm/i915/intel_display.c:3933 intel_modeset_check_state+0x119/0x539()

WARNING: at drivers/gpu/drm/i915/intel_display.c:7873 intel_modeset_check_state+0x4d3/0x539()
encoder's active_connectors set, but no crtc

WARNING: at drivers/gpu/drm/i915/intel_display.c:7892 intel_modeset_check_state+0x2c8/0x539()
encoder's computed active state doesn't match tracked active state (expected 0, found 1)

FYI. the machine does have LVDS and a touchscreen as well.

I have tried disabling wakeup devices via /proc/acpi/wakeup and via sysfs files.
(/sys/devices/.../wakeup)

We have cross-checked suspend-resume using Windows XP and Windows 7
and these OSs are able to properly suspend the machine 50 times out of
50 attempts with Intel's official driver for the GMA3150.

How can I make S3 suspend work reliably? Is there a missing piece from our kernel .config?

Best regards,
Zoltán Böszörményi

Attachment: config-3.10-003.gz
Description: Unix tar archive

Attachment: dmesg-sl20.txt.gz
Description: Unix tar archive

Attachment: lspci-names.txt.gz
Description: Unix tar archive

Attachment: lspci-numeric.txt.gz
Description: Unix tar archive