drm-misc-next for v5.3: UAPI Changes: - Give each dma-buf their own inode, add DMA_BUF_SET_NAME ioctl and a show_fdinfo handler. Cross-subsystem Changes: - Pull in the topic/remove-fbcon-notifiers branch: * remove fbdev notifier usage for fbcon, as prep work to clean up the fbcon locking * assorted locking checks in vt/console code * assorted notifier and cleanups in fbdev and backlight code Core Changes: - Make drm_debugfs_create_files() never fail. - add debug print to update_vblank_count. - Add DP_DPCD_QUIRK_NO_SINK_COUNT quirk. - Add todo item for drm_gem_objects. - Unexport drm_gem_(un)pin/v(un)map. - Document struct drm_cmdline_mode. - Rewrite the command handler for mode names, and add support to specify rotation, reflection and overscan. With a new selftest! :) - Fixes to drm/client for improving rotation support, and fixing variable scope. - Small fixes to self refresh helper. Driver Changes: - Add rockchip RK3328 support. - Assorted driver fixes to rockchip, vc4, rcar-du, vkms. - Expose panfrost performance counters through unstable ioctl's, hidden behind a module parameter. - Enumerate CRC sources list in vkms. - Add a basic kms driver for the Ingenic JZ47xx SoC, which will be expanded soon with more advanced features. - Suspend/resume fix for stm. Signed-off-by: Dave Airlie <airlied@redhat.com>
Showing the changes to include/linux (4 of 82 files). Show all
Unified · Split
| @@ -168,9 +168,6 @@ extern void vc_SAK(struct work_struct *work); · 167 unmodified lines | |||
| 168 | 168 | ||
| 169 | #define CUR_DEFAULT CUR_UNDERLINE | 169 | #define CUR_DEFAULT CUR_UNDERLINE |
| 170 | 170 | ||
| 171 | static inline bool con_is_visible(const struct vc_data *vc) | 171 | bool con_is_visible(const struct vc_data *vc); |
| 172 | { | ||
| 173 | return *vc->vc_display_fg == vc; | ||
| 174 | } | ||
| 175 | 172 | ||
| 176 | #endif /* _LINUX_CONSOLE_STRUCT_H */ | 173 | #endif /* _LINUX_CONSOLE_STRUCT_H */ |
| @@ -280,10 +280,12 @@ struct dma_buf_ops { · 279 unmodified lines | |||
| 280 | * @file: file pointer used for sharing buffers across, and for refcounting. | 280 | * @file: file pointer used for sharing buffers across, and for refcounting. |
| 281 | * @attachments: list of dma_buf_attachment that denotes all devices attached. | 281 | * @attachments: list of dma_buf_attachment that denotes all devices attached. |
| 282 | * @ops: dma_buf_ops associated with this buffer object. | 282 | * @ops: dma_buf_ops associated with this buffer object. |
| 283 | * @lock: used internally to serialize list manipulation, attach/detach and vmap/unmap | 283 | * @lock: used internally to serialize list manipulation, attach/detach and |
| 284 | * vmap/unmap, and accesses to name | ||
| 284 | * @vmapping_counter: used internally to refcnt the vmaps | 285 | * @vmapping_counter: used internally to refcnt the vmaps |
| 285 | * @vmap_ptr: the current vmap ptr if vmapping_counter > 0 | 286 | * @vmap_ptr: the current vmap ptr if vmapping_counter > 0 |
| 286 | * @exp_name: name of the exporter; useful for debugging. | 287 | * @exp_name: name of the exporter; useful for debugging. |
| 288 | * @name: userspace-provided name; useful for accounting and debugging. | ||
| 287 | * @owner: pointer to exporter module; used for refcounting when exporter is a | 289 | * @owner: pointer to exporter module; used for refcounting when exporter is a |
| 288 | * kernel module. | 290 | * kernel module. |
| 289 | * @list_node: node for dma_buf accounting and debugging. | 291 | * @list_node: node for dma_buf accounting and debugging. |
| @@ -311,6 +313,7 @@ struct dma_buf { · 21 unmodified lines | |||
| 311 | unsigned vmapping_counter; | 313 | unsigned vmapping_counter; |
| 312 | void *vmap_ptr; | 314 | void *vmap_ptr; |
| 313 | const char *exp_name; | 315 | const char *exp_name; |
| 316 | const char *name; | ||
| 314 | struct module *owner; | 317 | struct module *owner; |
| 315 | struct list_head list_node; | 318 | struct list_head list_node; |
| 316 | void *priv; | 319 | void *priv; |
| @@ -126,39 +126,15 @@ 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 | /* The display on this fb_info is being suspended, no access to the | 129 | |
| 130 | * framebuffer is allowed any more after that call returns | 130 | #ifdef CONFIG_GUMSTIX_AM200EPD |
| 131 | */ | 131 | /* only used by mach-pxa/am200epd.c */ |
| 132 | #define FB_EVENT_SUSPEND 0x02 | ||
| 133 | /* The display on this fb_info was resumed, you can restore the display | ||
| 134 | * if you own it | ||
| 135 | */ | ||
| 136 | #define FB_EVENT_RESUME 0x03 | ||
| 137 | /* An entry from the modelist was removed */ | ||
| 138 | #define FB_EVENT_MODE_DELETE 0x04 | ||
| 139 | /* A driver registered itself */ | ||
| 140 | #define FB_EVENT_FB_REGISTERED 0x05 | 132 | #define FB_EVENT_FB_REGISTERED 0x05 |
| 141 | /* A driver unregistered itself */ | ||
| 142 | #define FB_EVENT_FB_UNREGISTERED 0x06 | 133 | #define FB_EVENT_FB_UNREGISTERED 0x06 |
| 143 | /* CONSOLE-SPECIFIC: get console to framebuffer mapping */ | 134 | #endif |
| 144 | #define FB_EVENT_GET_CONSOLE_MAP 0x07 | 135 | |
| 145 | /* CONSOLE-SPECIFIC: set console to framebuffer mapping */ | 136 | /* A display blank is requested */ |
| 146 | #define FB_EVENT_SET_CONSOLE_MAP 0x08 | ||
| 147 | /* A hardware display blank change occurred */ | ||
| 148 | #define FB_EVENT_BLANK 0x09 | 137 | #define FB_EVENT_BLANK 0x09 |
| 149 | /* Private modelist is to be replaced */ | ||
| 150 | #define FB_EVENT_NEW_MODELIST 0x0A | ||
| 151 | /* The resolution of the passed in fb_info about to change and | ||
| 152 | all vc's should be changed */ | ||
| 153 | #define FB_EVENT_MODE_CHANGE_ALL 0x0B | ||
| 154 | /* A software display blank change occurred */ | ||
| 155 | #define FB_EVENT_CONBLANK 0x0C | ||
| 156 | /* Get drawing requirements */ | ||
| 157 | #define FB_EVENT_GET_REQ 0x0D | ||
| 158 | /* Unbind from the console if possible */ | ||
| 159 | #define FB_EVENT_FB_UNBIND 0x0E | ||
| 160 | /* CONSOLE-SPECIFIC: remap all consoles to new fb - for vga_switcheroo */ | ||
| 161 | #define FB_EVENT_REMAP_ALL_CONSOLE 0x0F | ||
| 162 | /* A hardware display blank early change occurred */ | 138 | /* A hardware display blank early change occurred */ |
| 163 | #define FB_EARLY_EVENT_BLANK 0x10 | 139 | #define FB_EARLY_EVENT_BLANK 0x10 |
| 164 | /* A hardware display blank revert early change occurred */ | 140 | /* A hardware display blank revert early change occurred */ |
| @@ -633,8 +609,8 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf, · 468 unmodified lines | |||
| 633 | 609 | ||
| 634 | /* drivers/video/fbmem.c */ | 610 | /* drivers/video/fbmem.c */ |
| 635 | extern int register_framebuffer(struct fb_info *fb_info); | 611 | extern int register_framebuffer(struct fb_info *fb_info); |
| 636 | extern int unregister_framebuffer(struct fb_info *fb_info); | 612 | extern void unregister_framebuffer(struct fb_info *fb_info); |
| 637 | extern int unlink_framebuffer(struct fb_info *fb_info); | 613 | extern void unlink_framebuffer(struct fb_info *fb_info); |
| 638 | extern int remove_conflicting_pci_framebuffers(struct pci_dev *pdev, int res_id, | 614 | extern int remove_conflicting_pci_framebuffers(struct pci_dev *pdev, int res_id, |
| 639 | const char *name); | 615 | const char *name); |
| 640 | extern int remove_conflicting_framebuffers(struct apertures_struct *a, | 616 | extern int remove_conflicting_framebuffers(struct apertures_struct *a, |
| @@ -660,7 +636,10 @@ extern struct class *fb_class; · 19 unmodified lines | |||
| 660 | for (i = 0; i < FB_MAX; i++) \ | 636 | for (i = 0; i < FB_MAX; i++) \ |
| 661 | if (!registered_fb[i]) {} else | 637 | if (!registered_fb[i]) {} else |
| 662 | 638 | ||
| 663 | extern int lock_fb_info(struct fb_info *info); | 639 | static inline void lock_fb_info(struct fb_info *info) |
| 640 | { | ||
| 641 | mutex_lock(&info->lock); | ||
| 642 | } | ||
| 664 | 643 | ||
| 665 | static inline void unlock_fb_info(struct fb_info *info) | 644 | static inline void unlock_fb_info(struct fb_info *info) |
| 666 | { | 645 | { |
| @@ -4,9 +4,39 @@ · 3 unmodified lines | |||
| 4 | #ifdef CONFIG_FRAMEBUFFER_CONSOLE | 4 | #ifdef CONFIG_FRAMEBUFFER_CONSOLE |
| 5 | void __init fb_console_init(void); | 5 | void __init fb_console_init(void); |
| 6 | void __exit fb_console_exit(void); | 6 | void __exit fb_console_exit(void); |
| 7 | int fbcon_fb_registered(struct fb_info *info); | ||
| 8 | void fbcon_fb_unregistered(struct fb_info *info); | ||
| 9 | void fbcon_fb_unbind(struct fb_info *info); | ||
| 10 | void fbcon_suspended(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); | ||
| 15 | void fbcon_get_requirement(struct fb_info *info, | ||
| 16 | struct fb_blit_caps *caps); | ||
| 17 | void fbcon_fb_blanked(struct fb_info *info, int blank); | ||
| 18 | void fbcon_update_vcs(struct fb_info *info, bool all); | ||
| 19 | void fbcon_remap_all(struct fb_info *info); | ||
| 20 | int fbcon_set_con2fb_map_ioctl(void __user *argp); | ||
| 21 | int fbcon_get_con2fb_map_ioctl(void __user *argp); | ||
| 7 | #else | 22 | #else |
| 8 | static inline void fb_console_init(void) {} | 23 | static inline void fb_console_init(void) {} |
| 9 | static inline void fb_console_exit(void) {} | 24 | static inline void fb_console_exit(void) {} |
| 25 | static inline int fbcon_fb_registered(struct fb_info *info) { return 0; } | ||
| 26 | static inline void fbcon_fb_unregistered(struct fb_info *info) {} | ||
| 27 | static inline void fbcon_fb_unbind(struct fb_info *info) {} | ||
| 28 | static inline void fbcon_suspended(struct fb_info *info) {} | ||
| 29 | static inline void fbcon_resumed(struct fb_info *info) {} | ||
| 30 | static inline int fbcon_mode_deleted(struct fb_info *info, | ||
| 31 | struct fb_videomode *mode) { return 0; } | ||
| 32 | static inline void fbcon_new_modelist(struct fb_info *info) {} | ||
| 33 | static inline void fbcon_get_requirement(struct fb_info *info, | ||
| 34 | struct fb_blit_caps *caps) {} | ||
| 35 | static inline void fbcon_fb_blanked(struct fb_info *info, int blank) {} | ||
| 36 | static inline void fbcon_update_vcs(struct fb_info *info, bool all) {} | ||
| 37 | static inline void fbcon_remap_all(struct fb_info *info) {} | ||
| 38 | static inline int fbcon_set_con2fb_map_ioctl(void __user *argp) { return 0; } | ||
| 39 | static inline int fbcon_get_con2fb_map_ioctl(void __user *argp) { return 0; } | ||
| 10 | #endif | 40 | #endif |
| 11 | 41 | ||
| 12 | #endif /* _LINUX_FBCON_H */ | 42 | #endif /* _LINUX_FBCON_H */ |