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.



Reply via email to