2014-09-10 08:16:10 +02:00
/*
* Copyright © 2014 Intel Corporation
* Daniel Vetter < daniel . vetter @ ffwll . ch >
*
* Permission is hereby granted , free of charge , to any person obtaining a
* copy of this software and associated documentation files ( the " Software " ) ,
* to deal in the Software without restriction , including without limitation
* the rights to use , copy , modify , merge , publish , distribute , sublicense ,
* and / or sell copies of the Software , and to permit persons to whom the
* Software is furnished to do so , subject to the following conditions :
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software .
*
* THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
* IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL
* THE COPYRIGHT HOLDER ( S ) OR AUTHOR ( S ) BE LIABLE FOR ANY CLAIM , DAMAGES OR
* OTHER LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE ,
* ARISING FROM , OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE .
*/
2018-09-05 15:57:06 +02:00
# include <drm/drm_ioctl.h>
drm: drop obsolete drm_core.h
The drm_core.h header contains a set of constants meant to be used
throughout DRM. However, as it turns out, they're each used just once and
don't bring any benefit. They're also grossly mis-named and lack
name-spacing. This patch inlines them, or moves them into drm_internal.h
as appropriate:
- CORE_AUTHOR and CORE_DESC are inlined into corresponding MODULE_*()
macros. It's just confusing having to follow 2 pointers when trying to
find the definition of these fields. Grep'ping for MODULE_AUTHOR()
should reveal the full information, if there's no strong reason not to.
- CORE_NAME, CORE_DATE, CORE_MAJOR, CORE_MINOR, and CORE_PATCHLEVEL are
inlined into the sysfs 'version' attribute. They're stripped
everywhere else (which is just some printk() statements). CORE_NAME
just doesn't make *any* sense, as we hard-code it in many places,
anyway. The other constants are outdated and just serve
binary-compatibility purposes. Hence, inline them in 'version' sysfs
attribute (we might even try dropping it..).
- DRM_IF_MAJOR and DRM_IF_MINOR are moved into drm_internal.h as they're
only used by the global ioctl handlers. Furthermore, versioning
interfaces breaks backports and as such is deprecated, anyway. We just
keep them for historic reasons. I doubt anyone will ever modify them
again.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20160901124837.680-6-dh.herrmann@gmail.com
2016-09-01 14:48:36 +02:00
# define DRM_IF_MAJOR 1
# define DRM_IF_MINOR 4
2018-12-26 22:03:47 +01:00
# define DRM_IF_VERSION(maj, min) (maj << 16 | min)
2019-05-26 19:35:32 +02:00
struct dentry ;
2018-09-05 15:57:06 +02:00
struct dma_buf ;
2019-05-26 19:35:32 +02:00
struct drm_connector ;
struct drm_crtc ;
struct drm_framebuffer ;
struct drm_gem_object ;
struct drm_master ;
struct drm_minor ;
struct drm_prime_file_private ;
struct drm_printer ;
2018-09-05 15:57:06 +02:00
2017-03-08 15:12:40 +01:00
/* drm_file.c */
2014-09-10 12:43:54 +02:00
extern struct mutex drm_global_mutex ;
2018-06-18 16:17:28 +02:00
struct drm_file * drm_file_alloc ( struct drm_minor * minor ) ;
void drm_file_free ( struct drm_file * file ) ;
2016-04-26 19:29:35 +02:00
void drm_lastclose ( struct drm_device * dev ) ;
2014-09-10 12:43:53 +02:00
/* drm_pci.c */
int drm_irq_by_busid ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
2017-01-25 07:26:52 +01:00
void drm_pci_agp_destroy ( struct drm_device * dev ) ;
2017-05-24 16:51:39 +02:00
int drm_pci_set_busid ( struct drm_device * dev , struct drm_master * master ) ;
2014-09-10 12:43:53 +02:00
/* drm_prime.c */
int drm_prime_handle_to_fd_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
int drm_prime_fd_to_handle_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
void drm_prime_init_file_private ( struct drm_prime_file_private * prime_fpriv ) ;
void drm_prime_destroy_file_private ( struct drm_prime_file_private * prime_fpriv ) ;
void drm_prime_remove_buf_handle_locked ( struct drm_prime_file_private * prime_fpriv ,
struct dma_buf * dma_buf ) ;
2016-11-14 12:58:19 +01:00
/* drm_drv.c */
struct drm_minor * drm_minor_acquire ( unsigned int minor_id ) ;
void drm_minor_release ( struct drm_minor * minor ) ;
2017-05-31 11:21:46 +02:00
/* drm_vblank.c */
void drm_vblank_disable_and_save ( struct drm_device * dev , unsigned int pipe ) ;
2017-06-26 18:19:49 +02:00
void drm_vblank_cleanup ( struct drm_device * dev ) ;
2016-11-14 10:02:55 +01:00
/* IOCTLS */
2017-05-24 16:51:46 +02:00
int drm_wait_vblank_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * filp ) ;
int drm_legacy_modeset_ctl_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
/* drm_irq.c */
/* IOCTLS */
2019-04-18 17:10:40 +10:00
# if IS_ENABLED(CONFIG_DRM_LEGACY)
2016-12-14 00:08:02 +01:00
int drm_legacy_irq_control ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
2019-04-18 17:10:40 +10:00
# endif
2014-09-10 12:43:53 +02:00
2017-06-29 22:49:31 -07:00
int drm_crtc_get_sequence_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * filp ) ;
int drm_crtc_queue_sequence_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * filp ) ;
2014-09-10 12:43:53 +02:00
/* drm_auth.c */
int drm_getmagic ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
int drm_authmagic ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
2016-06-14 20:50:59 +02:00
int drm_setmaster_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
int drm_dropmaster_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
2016-06-14 20:51:00 +02:00
int drm_master_open ( struct drm_file * file_priv ) ;
2016-06-14 20:51:01 +02:00
void drm_master_release ( struct drm_file * file_priv ) ;
2019-05-06 20:01:30 +02:00
bool drm_master_internal_acquire ( struct drm_device * dev ) ;
void drm_master_internal_release ( struct drm_device * dev ) ;
2014-09-10 12:43:53 +02:00
/* drm_sysfs.c */
2014-09-10 12:43:59 +02:00
extern struct class * drm_class ;
2015-09-09 14:21:30 +02:00
int drm_sysfs_init ( void ) ;
2014-09-10 12:43:53 +02:00
void drm_sysfs_destroy ( void ) ;
struct device * drm_sysfs_minor_alloc ( struct drm_minor * minor ) ;
int drm_sysfs_connector_add ( struct drm_connector * connector ) ;
void drm_sysfs_connector_remove ( struct drm_connector * connector ) ;
2018-11-29 10:42:26 +01:00
void drm_sysfs_lease_event ( struct drm_device * dev ) ;
2014-09-10 12:43:53 +02:00
/* drm_gem.c */
2019-05-13 19:05:04 +05:30
struct drm_gem_object ;
2014-09-10 12:43:53 +02:00
int drm_gem_init ( struct drm_device * dev ) ;
void drm_gem_destroy ( struct drm_device * dev ) ;
int drm_gem_handle_create_tail ( struct drm_file * file_priv ,
struct drm_gem_object * obj ,
u32 * handlep ) ;
int drm_gem_close_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
int drm_gem_flink_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
int drm_gem_open_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_priv ) ;
void drm_gem_open ( struct drm_device * dev , struct drm_file * file_private ) ;
void drm_gem_release ( struct drm_device * dev , struct drm_file * file_private ) ;
2017-11-07 20:13:40 +01:00
void drm_gem_print_info ( struct drm_printer * p , unsigned int indent ,
const struct drm_gem_object * obj ) ;
2014-09-23 15:46:51 +02:00
2019-06-14 22:35:18 +02:00
int drm_gem_pin ( struct drm_gem_object * obj ) ;
void drm_gem_unpin ( struct drm_gem_object * obj ) ;
void * drm_gem_vmap ( struct drm_gem_object * obj ) ;
void drm_gem_vunmap ( struct drm_gem_object * obj , void * vaddr ) ;
2017-03-22 21:54:01 +01:00
/* drm_debugfs.c drm_debugfs_crc.c */
2014-09-23 15:46:52 +02:00
# if defined(CONFIG_DEBUG_FS)
int drm_debugfs_init ( struct drm_minor * minor , int minor_id ,
struct dentry * root ) ;
2019-06-13 15:34:39 +02:00
void drm_debugfs_cleanup ( struct drm_minor * minor ) ;
void drm_debugfs_connector_add ( struct drm_connector * connector ) ;
2014-09-23 15:46:52 +02:00
void drm_debugfs_connector_remove ( struct drm_connector * connector ) ;
2019-06-13 15:34:39 +02:00
void drm_debugfs_crtc_add ( struct drm_crtc * crtc ) ;
2016-10-06 17:21:06 +02:00
void drm_debugfs_crtc_remove ( struct drm_crtc * crtc ) ;
2019-06-13 15:34:39 +02:00
void drm_debugfs_crtc_crc_add ( struct drm_crtc * crtc ) ;
2014-09-23 15:46:52 +02:00
# else
static inline int drm_debugfs_init ( struct drm_minor * minor , int minor_id ,
struct dentry * root )
{
return 0 ;
}
2019-06-13 15:34:39 +02:00
static inline void drm_debugfs_cleanup ( struct drm_minor * minor )
2014-09-23 15:46:52 +02:00
{
}
2019-06-13 15:34:39 +02:00
static inline void drm_debugfs_connector_add ( struct drm_connector * connector )
2014-09-23 15:46:52 +02:00
{
}
static inline void drm_debugfs_connector_remove ( struct drm_connector * connector )
{
}
2016-10-06 17:21:06 +02:00
2019-06-13 15:34:39 +02:00
static inline void drm_debugfs_crtc_add ( struct drm_crtc * crtc )
2016-10-06 17:21:06 +02:00
{
}
static inline void drm_debugfs_crtc_remove ( struct drm_crtc * crtc )
{
}
2019-06-13 15:34:39 +02:00
static inline void drm_debugfs_crtc_crc_add ( struct drm_crtc * crtc )
2016-10-06 17:21:06 +02:00
{
}
2017-04-04 13:26:24 +10:00
2014-09-23 15:46:52 +02:00
# endif
2017-04-04 13:26:24 +10:00
2017-05-24 14:11:03 -04:00
drm_ioctl_t drm_version ;
2017-05-24 14:15:20 -04:00
drm_ioctl_t drm_getunique ;
2017-05-24 19:10:32 -04:00
drm_ioctl_t drm_getclient ;
2017-07-09 18:48:37 -07:00
2017-04-04 13:26:24 +10:00
/* drm_syncobj.c */
void drm_syncobj_open ( struct drm_file * file_private ) ;
void drm_syncobj_release ( struct drm_file * file_private ) ;
int drm_syncobj_create_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
int drm_syncobj_destroy_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
int drm_syncobj_handle_to_fd_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
int drm_syncobj_fd_to_handle_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
2019-04-01 17:51:01 +08:00
int drm_syncobj_transfer_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
2017-08-25 10:52:22 -07:00
int drm_syncobj_wait_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
2019-04-01 17:50:57 +08:00
int drm_syncobj_timeline_wait_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
2017-08-28 14:10:27 -07:00
int drm_syncobj_reset_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
2017-08-28 14:10:28 -07:00
int drm_syncobj_signal_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
2019-04-01 17:51:02 +08:00
int drm_syncobj_timeline_signal_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
2019-04-01 17:50:58 +08:00
int drm_syncobj_query_ioctl ( struct drm_device * dev , void * data ,
struct drm_file * file_private ) ;
2017-11-07 20:13:40 +01:00
/* drm_framebuffer.c */
void drm_framebuffer_print_info ( struct drm_printer * p , unsigned int indent ,
const struct drm_framebuffer * fb ) ;
int drm_framebuffer_debugfs_init ( struct drm_minor * minor ) ;
2019-05-07 21:57:38 +05:30
/* drm_hdcp.c */
int drm_setup_hdcp_srm ( struct class * drm_class ) ;
void drm_teardown_hdcp_srm ( struct class * drm_class ) ;