forked from Minki/linux
af3c8d9850
-----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJZYseIAAoJEAx081l5xIa+85kP/0zKzKKVzZXSXG2TAGb5jNfk Ex+TELG8tWk9KBxA7lEE5c0WEsnP79cNoXZLQu8wlUzO8+kwQK5Bz0zgNUkpSuo1 RthwdsxBQX1++UxB+HoSG+dOa7hkKVqlgQR3z9qyhsBXzetkJV0DoYcpMV0A1EWd 6Jzt+AvCShVkcW+21LqHPlc5EIVewrDMoA3oU6aYCLhyAOUTVvvQB2ML8YApH7TM JrSrzCFHTrQEBbGUrZQhzR0sZzZzk9byntb/I/mdVbHeCyIHiL8sC4PfWSOyyazm GkPnA8G3aFAY9haBRz9jG/VBr1yVb0mCBjkWQ1lGfIAOCDDSc+d7PDXdG+i4AewK jZheXlrDIdGgmJLy4W3rdEqJvdf7UQHZOs8594OL19l4+FxCTrol1JSHSMeavCvr 8bUNil9Jb/ONU/wmp+q55U0k4TCTyerUA7gKnuaJAwBvd4n78/PKmQnbrWinDyJc GQXp6zESk9bKt5DXSnVZuVf4POTzpuAsQkkfX1V2y145EHTQYfS3jLENWqEjyZUy QtKCHZvRkJfGaFU4Pr+vBo9Iu1GlA5OiOv08QadldTT4OxUI0T6yaLDobHCQfKPE sc3wCuCM+/dAnqoKDcGC4hAmF8zDdO0kw65P2m7uC6T9Jm1G35CioKbzo+fzUhuL fg5TBpbp2Wwe2oPA5iBm =2S5N -----END PGP SIGNATURE----- Merge tag 'drm-for-v4.13' of git://people.freedesktop.org/~airlied/linux Pull drm updates from Dave Airlie: "This is the main pull request for the drm, I think I've got one later driver pull for mediatek SoC driver, I'm undecided on if it needs to go to you yet. Otherwise summary below: Core drm: - Atomic add driver private objects - Deprecate preclose hook in modern drivers - MST bandwidth tracking - Use kvmalloc in more places - Add mode_valid hook for crtc/encoder/bridge - Reduce sync_file construction time - Documentation updates - New DRM synchronisation object support New drivers: - pl111 - pl111 CLCD display controller Panel: - Innolux P079ZCA panel driver - Add NL12880B20-05, NL192108AC18-02D, P320HVN03 panels - panel-samsung-s6e3ha2: Add s6e3hf2 panel support i915: - SKL+ watermark fixes - G4x/G33 reset improvements - DP AUX backlight improvements - Buffer based GuC/host communication - New getparam for (sub)slice infomation - Cannonlake and Coffeelake initial patches - Execbuf optimisations radeon/amdgpu: - Lots of Vega10 bug fixes - Preliminary raven support - KIQ support for compute rings - MEC queue management rework - DCE6 Audio support - SR-IOV improvements - Better radeon/amdgpu selection support nouveau: - HDMI stereoscopic support - Display code rework for >= GM20x GPUs msm: - GEM rework for fine-grained locking - Per-process pagetable work - HDMI fixes for Snapdragon 820. vc4: - Remove 256MB CMA limit from vc4 - Add out-fence support - Add support for cygnus - Get/set tiling ioctls support - Add T-format tiling support for scanout zte: - add VGA support. etnaviv: - Thermal throttle support for newer GPUs - Restore userspace buffer cache performance - dma-buf sync fix stm: - add stm32f429 display support exynos: - Rework vblank handling - Fixup sw-trigger code sun4i: - V3s display engine support - HDMI support for older SoCs - Preliminary work on dual-pipeline SoCs. rcar-du: - VSP work imx-drm: - Remove counter load enable from PRE - Double read/write reduction flag support tegra: - Documentation for the host1x and drm driver. - Lots of staging ioctl fixes due to grate project work. omapdrm: - dma-buf fence support - TILER rotation fixes" * tag 'drm-for-v4.13' of git://people.freedesktop.org/~airlied/linux: (1270 commits) drm: Remove unused drm_file parameter to drm_syncobj_replace_fence() drm/amd/powerplay: fix bug fail to remove sysfs when rmmod amdgpu. amdgpu: Set cik/si_support to 1 by default if radeon isn't built drm/amdgpu/gfx9: fix driver reload with KIQ drm/amdgpu/gfx8: fix driver reload with KIQ drm/amdgpu: Don't call amd_powerplay_destroy() if we don't have powerplay drm/ttm: Fix use-after-free in ttm_bo_clean_mm drm/amd/amdgpu: move get memory type function from early init to sw init drm/amdgpu/cgs: always set reference clock in mode_info drm/amdgpu: fix vblank_time when displays are off drm/amd/powerplay: power value format change for Vega10 drm/amdgpu/gfx9: support the amdgpu.disable_cu option drm/amd/powerplay: change PPSMC_MSG_GetCurrPkgPwr for Vega10 drm/amdgpu: Make amdgpu_cs_parser_init static (v2) drm/amdgpu/cs: fix a typo in a comment drm/amdgpu: Fix the exported always on CU bitmap drm/amdgpu/gfx9: gfx_v9_0_enable_gfx_static_mg_power_gating() can be static drm/amdgpu/psp: upper_32_bits/lower_32_bits for address setup drm/amd/powerplay/cz: print message if smc message fails drm/amdgpu: fix typo in amdgpu_debugfs_test_ib_init ...
164 lines
5.8 KiB
C
164 lines
5.8 KiB
C
/*
|
|
* 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.
|
|
*/
|
|
|
|
#define DRM_IF_MAJOR 1
|
|
#define DRM_IF_MINOR 4
|
|
|
|
/* drm_file.c */
|
|
extern struct mutex drm_global_mutex;
|
|
void drm_lastclose(struct drm_device *dev);
|
|
|
|
/* drm_pci.c */
|
|
int drm_irq_by_busid(struct drm_device *dev, void *data,
|
|
struct drm_file *file_priv);
|
|
void drm_pci_agp_destroy(struct drm_device *dev);
|
|
|
|
/* 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);
|
|
|
|
/* drm_drv.c */
|
|
struct drm_minor *drm_minor_acquire(unsigned int minor_id);
|
|
void drm_minor_release(struct drm_minor *minor);
|
|
|
|
/* drm_info.c */
|
|
int drm_name_info(struct seq_file *m, void *data);
|
|
int drm_clients_info(struct seq_file *m, void* data);
|
|
int drm_gem_name_info(struct seq_file *m, void *data);
|
|
|
|
/* drm_vblank.c */
|
|
extern unsigned int drm_timestamp_monotonic;
|
|
void drm_vblank_disable_and_save(struct drm_device *dev, unsigned int pipe);
|
|
|
|
/* IOCTLS */
|
|
int drm_wait_vblank(struct drm_device *dev, void *data,
|
|
struct drm_file *filp);
|
|
int drm_legacy_irq_control(struct drm_device *dev, void *data,
|
|
struct drm_file *file_priv);
|
|
int drm_legacy_modeset_ctl(struct drm_device *dev, void *data,
|
|
struct drm_file *file_priv);
|
|
|
|
/* 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);
|
|
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);
|
|
int drm_master_open(struct drm_file *file_priv);
|
|
void drm_master_release(struct drm_file *file_priv);
|
|
|
|
/* drm_sysfs.c */
|
|
extern struct class *drm_class;
|
|
|
|
int drm_sysfs_init(void);
|
|
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);
|
|
|
|
/* drm_gem.c */
|
|
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);
|
|
|
|
/* drm_debugfs.c drm_debugfs_crc.c */
|
|
#if defined(CONFIG_DEBUG_FS)
|
|
int drm_debugfs_init(struct drm_minor *minor, int minor_id,
|
|
struct dentry *root);
|
|
int drm_debugfs_cleanup(struct drm_minor *minor);
|
|
int drm_debugfs_connector_add(struct drm_connector *connector);
|
|
void drm_debugfs_connector_remove(struct drm_connector *connector);
|
|
int drm_debugfs_crtc_add(struct drm_crtc *crtc);
|
|
void drm_debugfs_crtc_remove(struct drm_crtc *crtc);
|
|
int drm_debugfs_crtc_crc_add(struct drm_crtc *crtc);
|
|
#else
|
|
static inline int drm_debugfs_init(struct drm_minor *minor, int minor_id,
|
|
struct dentry *root)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline int drm_debugfs_cleanup(struct drm_minor *minor)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline int drm_debugfs_connector_add(struct drm_connector *connector)
|
|
{
|
|
return 0;
|
|
}
|
|
static inline void drm_debugfs_connector_remove(struct drm_connector *connector)
|
|
{
|
|
}
|
|
|
|
static inline int drm_debugfs_crtc_add(struct drm_crtc *crtc)
|
|
{
|
|
return 0;
|
|
}
|
|
static inline void drm_debugfs_crtc_remove(struct drm_crtc *crtc)
|
|
{
|
|
}
|
|
|
|
static inline int drm_debugfs_crtc_crc_add(struct drm_crtc *crtc)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
#endif
|
|
|
|
drm_ioctl_t drm_version;
|
|
drm_ioctl_t drm_getunique;
|
|
drm_ioctl_t drm_getclient;
|
|
|
|
/* 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);
|