drm/gma500 : Suspend/resume issues
Guillaume Clément
gclement at baobob.org
Wed May 16 16:25:52 PDT 2012
Hello,
On my Poulsbo-enabled machine, I cannot do suspend/resume since the gma500_gfx
has left staging. I'm currently testing on linux-3.4-rc7.
After some debugging, I found out what the issue is. The crash occurs in
psb_save_display_registers at the following lines :
list_for_each_entry(connector, &dev->mode_config.connector_list, head){
connector->funcs->save(connector);
}
It appears that connector->funcs->save is NULL :
static const struct drm_connector_funcs psb_intel_sdvo_connector_funcs = {
.dpms = drm_helper_connector_dpms,
.detect = psb_intel_sdvo_detect,
.fill_modes = drm_helper_probe_single_connector_modes,
.set_property = psb_intel_sdvo_set_property,
.destroy = psb_intel_sdvo_destroy,
};
The staging version used to define a "save" function (psb_intel_sdvo_save). Was
it broken ? If not, should we insert it back ?
Either way, if I add an empty "save" function, suspend works again (but at the
moment, resume still doesn't work, I'm still trying to work on that).
If I just add a "if (connector->funcs->save)", this also fixes the crash.
More information about the dri-devel
mailing list