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 | 169 | #define CUR_DEFAULT CUR_UNDERLINE |
| 170 | 170 | |
| 171 | −static inline bool con_is_visible(const struct vc_data *vc) | |
| 172 | −{ | |
| 173 | − return *vc->vc_display_fg == vc; | |
| 174 | −} | |
| 171 | +bool con_is_visible(const struct vc_data *vc); | |
| 175 | 172 | |
| 176 | 173 | #endif /* _LINUX_CONSOLE_STRUCT_H */ |
| @@ -280,10 +280,12 @@ struct dma_buf_ops { · 279 unmodified lines | ||
| 280 | 280 | * @file: file pointer used for sharing buffers across, and for refcounting. |
| 281 | 281 | * @attachments: list of dma_buf_attachment that denotes all devices attached. |
| 282 | 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 | 285 | * @vmapping_counter: used internally to refcnt the vmaps |
| 285 | 286 | * @vmap_ptr: the current vmap ptr if vmapping_counter > 0 |
| 286 | 287 | * @exp_name: name of the exporter; useful for debugging. |
| 288 | + * @name: userspace-provided name; useful for accounting and debugging. | |
| 287 | 289 | * @owner: pointer to exporter module; used for refcounting when exporter is a |
| 288 | 290 | * kernel module. |
| 289 | 291 | * @list_node: node for dma_buf accounting and debugging. |
| @@ -311,6 +313,7 @@ struct dma_buf { · 21 unmodified lines | ||
| 311 | 313 | unsigned vmapping_counter; |
| 312 | 314 | void *vmap_ptr; |
| 313 | 315 | const char *exp_name; |
| 316 | + const char *name; | |
| 314 | 317 | struct module *owner; |
| 315 | 318 | struct list_head list_node; |
| 316 | 319 | void *priv; |
| @@ -126,39 +126,15 @@ struct fb_cursor_user { · 125 unmodified lines | ||
| 126 | 126 | |
| 127 | 127 | /* The resolution of the passed in fb_info about to change */ |
| 128 | 128 | #define FB_EVENT_MODE_CHANGE 0x01 |
| 129 | −/* The display on this fb_info is being suspended, no access to the | |
| 130 | − * framebuffer is allowed any more after that call returns | |
| 131 | − */ | |
| 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 */ | |
| 129 | + | |
| 130 | +#ifdef CONFIG_GUMSTIX_AM200EPD | |
| 131 | +/* only used by mach-pxa/am200epd.c */ | |
| 140 | 132 | #define FB_EVENT_FB_REGISTERED 0x05 |
| 141 | −/* A driver unregistered itself */ | |
| 142 | 133 | #define FB_EVENT_FB_UNREGISTERED 0x06 |
| 143 | −/* CONSOLE-SPECIFIC: get console to framebuffer mapping */ | |
| 144 | −#define FB_EVENT_GET_CONSOLE_MAP 0x07 | |
| 145 | −/* CONSOLE-SPECIFIC: set console to framebuffer mapping */ | |
| 146 | −#define FB_EVENT_SET_CONSOLE_MAP 0x08 | |
| 147 | −/* A hardware display blank change occurred */ | |
| 134 | +#endif | |
| 135 | + | |
| 136 | +/* A display blank is requested */ | |
| 148 | 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 | 138 | /* A hardware display blank early change occurred */ |
| 163 | 139 | #define FB_EARLY_EVENT_BLANK 0x10 |
| 164 | 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 | 610 | /* drivers/video/fbmem.c */ |
| 635 | 611 | extern int register_framebuffer(struct fb_info *fb_info); |
| 636 | −extern int unregister_framebuffer(struct fb_info *fb_info); | |
| 637 | −extern int unlink_framebuffer(struct fb_info *fb_info); | |
| 612 | +extern void unregister_framebuffer(struct fb_info *fb_info); | |
| 613 | +extern void unlink_framebuffer(struct fb_info *fb_info); | |
| 638 | 614 | extern int remove_conflicting_pci_framebuffers(struct pci_dev *pdev, int res_id, |
| 639 | 615 | const char *name); |
| 640 | 616 | extern int remove_conflicting_framebuffers(struct apertures_struct *a, |
| @@ -660,7 +636,10 @@ extern struct class *fb_class; · 19 unmodified lines | ||
| 660 | 636 | for (i = 0; i < FB_MAX; i++) \ |
| 661 | 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 | 644 | static inline void unlock_fb_info(struct fb_info *info) |
| 666 | 645 | { |
| @@ -4,9 +4,39 @@ · 3 unmodified lines | ||
| 4 | 4 | #ifdef CONFIG_FRAMEBUFFER_CONSOLE |
| 5 | 5 | void __init fb_console_init(void); |
| 6 | 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 | 22 | #else |
| 8 | 23 | static inline void fb_console_init(void) {} |
| 9 | 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 | 40 | #endif |
| 11 | 41 | |
| 12 | 42 | #endif /* _LINUX_FBCON_H */ |