Loading drivers/gpu/drm/drm_crtc_helper.c +23 −1 Original line number Diff line number Diff line Loading @@ -216,7 +216,7 @@ bool drm_helper_crtc_in_use(struct drm_crtc *crtc) EXPORT_SYMBOL(drm_helper_crtc_in_use); /** * drm_disable_unused_functions - disable unused objects * drm_helper_disable_unused_functions - disable unused objects * @dev: DRM device * * LOCKING: Loading Loading @@ -1162,6 +1162,9 @@ EXPORT_SYMBOL(drm_helper_mode_fill_fb_struct); int drm_helper_resume_force_mode(struct drm_device *dev) { struct drm_crtc *crtc; struct drm_encoder *encoder; struct drm_encoder_helper_funcs *encoder_funcs; struct drm_crtc_helper_funcs *crtc_funcs; int ret; list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { Loading @@ -1174,6 +1177,25 @@ int drm_helper_resume_force_mode(struct drm_device *dev) if (ret == false) DRM_ERROR("failed to set mode on crtc %p\n", crtc); /* Turn off outputs that were already powered off */ if (drm_helper_choose_crtc_dpms(crtc)) { list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { if(encoder->crtc != crtc) continue; encoder_funcs = encoder->helper_private; if (encoder_funcs->dpms) (*encoder_funcs->dpms) (encoder, drm_helper_choose_encoder_dpms(encoder)); crtc_funcs = crtc->helper_private; if (crtc_funcs->dpms) (*crtc_funcs->dpms) (crtc, drm_helper_choose_crtc_dpms(crtc)); } } } /* disable the unused connectors while restoring the modesetting */ drm_helper_disable_unused_functions(dev); Loading drivers/gpu/drm/drm_fb_helper.c +4 −5 Original line number Diff line number Diff line Loading @@ -606,11 +606,10 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var, return -EINVAL; /* Need to resize the fb object !!! */ if (var->xres > fb->width || var->yres > fb->height) { DRM_ERROR("Requested width/height is greater than current fb " "object %dx%d > %dx%d\n", var->xres, var->yres, fb->width, fb->height); DRM_ERROR("Need resizing code.\n"); if (var->bits_per_pixel > fb->bits_per_pixel || var->xres > fb->width || var->yres > fb->height) { DRM_DEBUG("fb userspace requested width/height/bpp is greater than current fb " "object %dx%d-%d > %dx%d-%d\n", var->xres, var->yres, var->bits_per_pixel, fb->width, fb->height, fb->bits_per_pixel); return -EINVAL; } Loading Loading
drivers/gpu/drm/drm_crtc_helper.c +23 −1 Original line number Diff line number Diff line Loading @@ -216,7 +216,7 @@ bool drm_helper_crtc_in_use(struct drm_crtc *crtc) EXPORT_SYMBOL(drm_helper_crtc_in_use); /** * drm_disable_unused_functions - disable unused objects * drm_helper_disable_unused_functions - disable unused objects * @dev: DRM device * * LOCKING: Loading Loading @@ -1162,6 +1162,9 @@ EXPORT_SYMBOL(drm_helper_mode_fill_fb_struct); int drm_helper_resume_force_mode(struct drm_device *dev) { struct drm_crtc *crtc; struct drm_encoder *encoder; struct drm_encoder_helper_funcs *encoder_funcs; struct drm_crtc_helper_funcs *crtc_funcs; int ret; list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { Loading @@ -1174,6 +1177,25 @@ int drm_helper_resume_force_mode(struct drm_device *dev) if (ret == false) DRM_ERROR("failed to set mode on crtc %p\n", crtc); /* Turn off outputs that were already powered off */ if (drm_helper_choose_crtc_dpms(crtc)) { list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { if(encoder->crtc != crtc) continue; encoder_funcs = encoder->helper_private; if (encoder_funcs->dpms) (*encoder_funcs->dpms) (encoder, drm_helper_choose_encoder_dpms(encoder)); crtc_funcs = crtc->helper_private; if (crtc_funcs->dpms) (*crtc_funcs->dpms) (crtc, drm_helper_choose_crtc_dpms(crtc)); } } } /* disable the unused connectors while restoring the modesetting */ drm_helper_disable_unused_functions(dev); Loading
drivers/gpu/drm/drm_fb_helper.c +4 −5 Original line number Diff line number Diff line Loading @@ -606,11 +606,10 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var, return -EINVAL; /* Need to resize the fb object !!! */ if (var->xres > fb->width || var->yres > fb->height) { DRM_ERROR("Requested width/height is greater than current fb " "object %dx%d > %dx%d\n", var->xres, var->yres, fb->width, fb->height); DRM_ERROR("Need resizing code.\n"); if (var->bits_per_pixel > fb->bits_per_pixel || var->xres > fb->width || var->yres > fb->height) { DRM_DEBUG("fb userspace requested width/height/bpp is greater than current fb " "object %dx%d-%d > %dx%d-%d\n", var->xres, var->yres, var->bits_per_pixel, fb->width, fb->height, fb->bits_per_pixel); return -EINVAL; } Loading