I'm not entirely clear on what new_modelist actually does, it seems exclusively for a sysfs interface. Which in the end does amount to a normal fb_set_par to check the mode, but then takes a different path in both fbmem.c and fbcon.c. I have no idea why these 2 paths are different, but then I also don't really want to find out. So just do the simple conversion to a direct function call. v2: static inline for the dummy versions, I forgot.
Showing the changes to include/linux (2 of 4 files). Show all
Unified · Split
| @@ -126,8 +126,6 @@ struct fb_cursor_user { · 125 unmodified lines | |||
| 126 | 126 | ||
| 127 | /* The resolution of the passed in fb_info about to change */ | 127 | /* The resolution of the passed in fb_info about to change */ |
| 128 | #define FB_EVENT_MODE_CHANGE 0x01 | 128 | #define FB_EVENT_MODE_CHANGE 0x01 |
| 129 | /* An entry from the modelist was removed */ | ||
| 130 | #define FB_EVENT_MODE_DELETE 0x04 | ||
| 131 | 129 | ||
| 132 | #ifdef CONFIG_GUMSTIX_AM200EPD | 130 | #ifdef CONFIG_GUMSTIX_AM200EPD |
| 133 | /* only used by mach-pxa/am200epd.c */ | 131 | /* only used by mach-pxa/am200epd.c */ |
| @@ -142,9 +140,6 @@ struct fb_cursor_user { · 8 unmodified lines | |||
| 142 | /* A hardware display blank change occurred */ | 140 | /* A hardware display blank change occurred */ |
| 143 | #define FB_EVENT_BLANK 0x09 | 141 | #define FB_EVENT_BLANK 0x09 |
| 144 | /* Private modelist is to be replaced */ | 142 | /* Private modelist is to be replaced */ |
| 145 | #define FB_EVENT_NEW_MODELIST 0x0A | ||
| 146 | /* The resolution of the passed in fb_info about to change and | ||
| 147 | all vc's should be changed */ | ||
| 148 | #define FB_EVENT_MODE_CHANGE_ALL 0x0B | 143 | #define FB_EVENT_MODE_CHANGE_ALL 0x0B |
| 149 | /* A software display blank change occurred */ | 144 | /* A software display blank change occurred */ |
| 150 | #define FB_EVENT_CONBLANK 0x0C | 145 | #define FB_EVENT_CONBLANK 0x0C |
| @@ -9,6 +9,9 @@ void fbcon_fb_unregistered(struct fb_info *info); · 8 unmodified lines | |||
| 9 | void fbcon_fb_unbind(struct fb_info *info); | 9 | void fbcon_fb_unbind(struct fb_info *info); |
| 10 | void fbcon_suspended(struct fb_info *info); | 10 | void fbcon_suspended(struct fb_info *info); |
| 11 | void fbcon_resumed(struct fb_info *info); | 11 | void fbcon_resumed(struct fb_info *info); |
| 12 | int fbcon_mode_deleted(struct fb_info *info, | ||
| 13 | struct fb_videomode *mode); | ||
| 14 | void fbcon_new_modelist(struct fb_info *info); | ||
| 12 | #else | 15 | #else |
| 13 | static inline void fb_console_init(void) {} | 16 | static inline void fb_console_init(void) {} |
| 14 | static inline void fb_console_exit(void) {} | 17 | static inline void fb_console_exit(void) {} |
| @@ -17,6 +20,9 @@ static inline void fbcon_fb_unregistered(struct fb_info *info) {} · 2 unmodified lines | |||
| 17 | static inline void fbcon_fb_unbind(struct fb_info *info) {} | 20 | static inline void fbcon_fb_unbind(struct fb_info *info) {} |
| 18 | static inline void fbcon_suspended(struct fb_info *info) {} | 21 | static inline void fbcon_suspended(struct fb_info *info) {} |
| 19 | static inline void fbcon_resumed(struct fb_info *info) {} | 22 | static inline void fbcon_resumed(struct fb_info *info) {} |
| 23 | static inline int fbcon_mode_deleted(struct fb_info *info, | ||
| 24 | struct fb_videomode *mode) { return 0; } | ||
| 25 | static inline void fbcon_new_modelist(struct fb_info *info) {} | ||
| 20 | #endif | 26 | #endif |
| 21 | 27 | ||
| 22 | #endif /* _LINUX_FBCON_H */ | 28 | #endif /* _LINUX_FBCON_H */ |