diff options
author | Dave Airlie <airlied@redhat.com> | 2009-12-07 22:52:41 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-12-07 22:52:41 -0500 |
commit | 1bd049fa895f9c6743f38b52ce14775f5a31ea63 (patch) | |
tree | cb9163ac1c20f7fbdbde42eaab8013d0c3734aed /drivers/gpu/drm/drm_fb_helper.c | |
parent | 22763c5cf3690a681551162c15d34d935308c8d7 (diff) | |
parent | b0a007dc27d8d3ff3db07b3ea997323d9330f770 (diff) |
Merge branch 'drm-core-next' into drm-linus
Bring all core drm changes into 2.6.32 tree and resolve
the conflict that occurs.
Conflicts:
drivers/gpu/drm/drm_fb_helper.c
Diffstat (limited to 'drivers/gpu/drm/drm_fb_helper.c')
-rw-r--r-- | drivers/gpu/drm/drm_fb_helper.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 65ef011fa8ba..1b49fa055f4f 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c | |||
@@ -373,11 +373,9 @@ static void drm_fb_helper_off(struct fb_info *info, int dpms_mode) | |||
373 | mutex_unlock(&dev->mode_config.mutex); | 373 | mutex_unlock(&dev->mode_config.mutex); |
374 | } | 374 | } |
375 | } | 375 | } |
376 | if (dpms_mode == DRM_MODE_DPMS_OFF) { | 376 | mutex_lock(&dev->mode_config.mutex); |
377 | mutex_lock(&dev->mode_config.mutex); | 377 | crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF); |
378 | crtc_funcs->dpms(crtc, dpms_mode); | 378 | mutex_unlock(&dev->mode_config.mutex); |
379 | mutex_unlock(&dev->mode_config.mutex); | ||
380 | } | ||
381 | } | 379 | } |
382 | } | 380 | } |
383 | } | 381 | } |
@@ -385,18 +383,23 @@ static void drm_fb_helper_off(struct fb_info *info, int dpms_mode) | |||
385 | int drm_fb_helper_blank(int blank, struct fb_info *info) | 383 | int drm_fb_helper_blank(int blank, struct fb_info *info) |
386 | { | 384 | { |
387 | switch (blank) { | 385 | switch (blank) { |
386 | /* Display: On; HSync: On, VSync: On */ | ||
388 | case FB_BLANK_UNBLANK: | 387 | case FB_BLANK_UNBLANK: |
389 | drm_fb_helper_on(info); | 388 | drm_fb_helper_on(info); |
390 | break; | 389 | break; |
390 | /* Display: Off; HSync: On, VSync: On */ | ||
391 | case FB_BLANK_NORMAL: | 391 | case FB_BLANK_NORMAL: |
392 | drm_fb_helper_off(info, DRM_MODE_DPMS_STANDBY); | 392 | drm_fb_helper_off(info, DRM_MODE_DPMS_ON); |
393 | break; | 393 | break; |
394 | /* Display: Off; HSync: Off, VSync: On */ | ||
394 | case FB_BLANK_HSYNC_SUSPEND: | 395 | case FB_BLANK_HSYNC_SUSPEND: |
395 | drm_fb_helper_off(info, DRM_MODE_DPMS_STANDBY); | 396 | drm_fb_helper_off(info, DRM_MODE_DPMS_STANDBY); |
396 | break; | 397 | break; |
398 | /* Display: Off; HSync: On, VSync: Off */ | ||
397 | case FB_BLANK_VSYNC_SUSPEND: | 399 | case FB_BLANK_VSYNC_SUSPEND: |
398 | drm_fb_helper_off(info, DRM_MODE_DPMS_SUSPEND); | 400 | drm_fb_helper_off(info, DRM_MODE_DPMS_SUSPEND); |
399 | break; | 401 | break; |
402 | /* Display: Off; HSync: Off, VSync: Off */ | ||
400 | case FB_BLANK_POWERDOWN: | 403 | case FB_BLANK_POWERDOWN: |
401 | drm_fb_helper_off(info, DRM_MODE_DPMS_OFF); | 404 | drm_fb_helper_off(info, DRM_MODE_DPMS_OFF); |
402 | break; | 405 | break; |
@@ -905,8 +908,13 @@ int drm_fb_helper_single_fb_probe(struct drm_device *dev, | |||
905 | 908 | ||
906 | if (new_fb) { | 909 | if (new_fb) { |
907 | info->var.pixclock = 0; | 910 | info->var.pixclock = 0; |
908 | if (register_framebuffer(info) < 0) | 911 | ret = fb_alloc_cmap(&info->cmap, modeset->crtc->gamma_size, 0); |
912 | if (ret) | ||
913 | return ret; | ||
914 | if (register_framebuffer(info) < 0) { | ||
915 | fb_dealloc_cmap(&info->cmap); | ||
909 | return -EINVAL; | 916 | return -EINVAL; |
917 | } | ||
910 | } else { | 918 | } else { |
911 | drm_fb_helper_set_par(info); | 919 | drm_fb_helper_set_par(info); |
912 | } | 920 | } |
@@ -936,6 +944,7 @@ void drm_fb_helper_free(struct drm_fb_helper *helper) | |||
936 | unregister_sysrq_key('v', &sysrq_drm_fb_helper_restore_op); | 944 | unregister_sysrq_key('v', &sysrq_drm_fb_helper_restore_op); |
937 | } | 945 | } |
938 | drm_fb_helper_crtc_free(helper); | 946 | drm_fb_helper_crtc_free(helper); |
947 | fb_dealloc_cmap(&helper->fb->fbdev->cmap); | ||
939 | } | 948 | } |
940 | EXPORT_SYMBOL(drm_fb_helper_free); | 949 | EXPORT_SYMBOL(drm_fb_helper_free); |
941 | 950 | ||