|
Line
Link Here
|
|
-- |
|
|
| 1 |
drivers/video/fbmem.c | 9 +++++++++ |
|
drivers/video/fbmem.c | 9 +++++++++ |
| 2 |
1 file changed, 9 insertions(+) |
1 |
1 file changed, 9 insertions(+) |
| 3 |
-- a/drivers/video/fbmem.c |
2 |
++ b/drivers/video/fbmem.c |
|
Lines 854-863
fb_set_var(struct fb_info *info, struct
Link Here
|
| 854 |
if (var->activate & FB_ACTIVATE_INV_MODE) { |
854 |
if (var->activate & FB_ACTIVATE_INV_MODE) { |
| 855 |
struct fb_videomode mode1, mode2; |
855 |
struct fb_videomode mode1, mode2; |
| 856 |
|
856 |
|
|
|
857 |
printk("%s(%u) FB_ACTIVATE_INV_MODE\n",__func__,__LINE__); |
| 857 |
fb_var_to_videomode(&mode1, var); |
858 |
fb_var_to_videomode(&mode1, var); |
| 858 |
fb_var_to_videomode(&mode2, &info->var); |
859 |
fb_var_to_videomode(&mode2, &info->var); |
| 859 |
/* make sure we don't delete the videomode of current var */ |
860 |
/* make sure we don't delete the videomode of current var */ |
| 860 |
ret = fb_mode_is_equal(&mode1, &mode2); |
861 |
ret = fb_mode_is_equal(&mode1, &mode2); |
|
|
862 |
printk("%s(%u) fb_mode_is_equal returned %d\n",__func__,__LINE__,ret); |
| 861 |
|
863 |
|
| 862 |
if (!ret) { |
864 |
if (!ret) { |
| 863 |
struct fb_event event; |
865 |
struct fb_event event; |
|
Lines 865-870
fb_set_var(struct fb_info *info, struct
Link Here
|
| 865 |
event.info = info; |
867 |
event.info = info; |
| 866 |
event.data = &mode1; |
868 |
event.data = &mode1; |
| 867 |
ret = fb_notifier_call_chain(FB_EVENT_MODE_DELETE, &event); |
869 |
ret = fb_notifier_call_chain(FB_EVENT_MODE_DELETE, &event); |
|
|
870 |
printk("%s(%u) fb_notifier_call_chain returned %d\n",__func__,__LINE__,ret); |
| 868 |
} |
871 |
} |
| 869 |
|
872 |
|
| 870 |
if (!ret) |
873 |
if (!ret) |
|
Lines 877-882
fb_set_var(struct fb_info *info, struct
Link Here
|
| 877 |
|
880 |
|
| 878 |
if ((var->activate & FB_ACTIVATE_FORCE) || |
881 |
if ((var->activate & FB_ACTIVATE_FORCE) || |
| 879 |
memcmp(&info->var, var, sizeof(struct fb_var_screeninfo))) { |
882 |
memcmp(&info->var, var, sizeof(struct fb_var_screeninfo))) { |
|
|
883 |
printk("%s(%u) FB_ACTIVATE_FORCE\n",__func__,__LINE__); |
| 880 |
u32 activate = var->activate; |
884 |
u32 activate = var->activate; |
| 881 |
|
885 |
|
| 882 |
if (!info->fbops->fb_check_var) { |
886 |
if (!info->fbops->fb_check_var) { |
|
Lines 886-891
fb_set_var(struct fb_info *info, struct
Link Here
|
| 886 |
|
890 |
|
| 887 |
ret = info->fbops->fb_check_var(var, info); |
891 |
ret = info->fbops->fb_check_var(var, info); |
| 888 |
|
892 |
|
|
|
893 |
printk("%s(%u) fb_check_var @ %p returned %d\n",__func__,__LINE__,info->fbops->fb_check_var,ret); |
| 889 |
if (ret) |
894 |
if (ret) |
| 890 |
goto done; |
895 |
goto done; |
| 891 |
|
896 |
|
|
Lines 895-900
fb_set_var(struct fb_info *info, struct
Link Here
|
| 895 |
if (info->fbops->fb_get_caps) { |
900 |
if (info->fbops->fb_get_caps) { |
| 896 |
ret = fb_check_caps(info, var, activate); |
901 |
ret = fb_check_caps(info, var, activate); |
| 897 |
|
902 |
|
|
|
903 |
printk("%s(%u) fb_check_caps returned %d\n",__func__,__LINE__,ret); |
| 898 |
if (ret) |
904 |
if (ret) |
| 899 |
goto done; |
905 |
goto done; |
| 900 |
} |
906 |
} |
|
Lines 910-917
fb_set_var(struct fb_info *info, struct
Link Here
|
| 910 |
|
916 |
|
| 911 |
if (info->modelist.prev && info->modelist.next && |
917 |
if (info->modelist.prev && info->modelist.next && |
| 912 |
!list_empty(&info->modelist)) |
918 |
!list_empty(&info->modelist)) |
|
|
919 |
{ |
| 913 |
ret = fb_add_videomode(&mode, &info->modelist); |
920 |
ret = fb_add_videomode(&mode, &info->modelist); |
| 914 |
|
921 |
|
|
|
922 |
printk("%s(%u) fb_add_videomode returned %d\n",__func__,__LINE__,ret); |
| 923 |
} |
| 915 |
if (!ret && (flags & FBINFO_MISC_USEREVENT)) { |
924 |
if (!ret && (flags & FBINFO_MISC_USEREVENT)) { |
| 916 |
struct fb_event event; |
925 |
struct fb_event event; |
| 917 |
int evnt = (activate & FB_ACTIVATE_ALL) ? |
926 |
int evnt = (activate & FB_ACTIVATE_ALL) ? |