LCOV - code coverage report
Current view: top level - drivers/gpu/drm - drm_crtc_internal.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 1 0.0 %
Date: 2023-03-27 20:00:47 Functions: 0 0 -

          Line data    Source code
       1             : /*
       2             :  * Copyright © 2006 Keith Packard
       3             :  * Copyright © 2007-2008 Dave Airlie
       4             :  * Copyright © 2007-2008 Intel Corporation
       5             :  *   Jesse Barnes <jesse.barnes@intel.com>
       6             :  * Copyright © 2014 Intel Corporation
       7             :  *   Daniel Vetter <daniel.vetter@ffwll.ch>
       8             :  * Copyright (c) 2020, The Linux Foundation. All rights reserved.
       9             :  *
      10             :  * Permission is hereby granted, free of charge, to any person obtaining a
      11             :  * copy of this software and associated documentation files (the "Software"),
      12             :  * to deal in the Software without restriction, including without limitation
      13             :  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      14             :  * and/or sell copies of the Software, and to permit persons to whom the
      15             :  * Software is furnished to do so, subject to the following conditions:
      16             :  *
      17             :  * The above copyright notice and this permission notice shall be included in
      18             :  * all copies or substantial portions of the Software.
      19             :  *
      20             :  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      21             :  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      22             :  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
      23             :  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
      24             :  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
      25             :  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
      26             :  * OTHER DEALINGS IN THE SOFTWARE.
      27             :  */
      28             : 
      29             : /*
      30             :  * This header file contains mode setting related functions and definitions
      31             :  * which are only used within the drm module as internal implementation details
      32             :  * and are not exported to drivers.
      33             :  */
      34             : 
      35             : #include <linux/types.h>
      36             : 
      37             : enum drm_color_encoding;
      38             : enum drm_color_range;
      39             : enum drm_connector_force;
      40             : enum drm_mode_status;
      41             : 
      42             : struct drm_atomic_state;
      43             : struct drm_bridge;
      44             : struct drm_connector;
      45             : struct drm_crtc;
      46             : struct drm_device;
      47             : struct drm_display_mode;
      48             : struct drm_file;
      49             : struct drm_framebuffer;
      50             : struct drm_mode_create_dumb;
      51             : struct drm_mode_fb_cmd2;
      52             : struct drm_mode_fb_cmd;
      53             : struct drm_mode_object;
      54             : struct drm_mode_set;
      55             : struct drm_plane;
      56             : struct drm_plane_state;
      57             : struct drm_property;
      58             : struct edid;
      59             : struct fwnode_handle;
      60             : struct kref;
      61             : struct seq_file;
      62             : struct work_struct;
      63             : 
      64             : /* drm_crtc.c */
      65             : int drm_mode_crtc_set_obj_prop(struct drm_mode_object *obj,
      66             :                                struct drm_property *property,
      67             :                                uint64_t value);
      68             : int drm_crtc_check_viewport(const struct drm_crtc *crtc,
      69             :                             int x, int y,
      70             :                             const struct drm_display_mode *mode,
      71             :                             const struct drm_framebuffer *fb);
      72             : int drm_crtc_register_all(struct drm_device *dev);
      73             : void drm_crtc_unregister_all(struct drm_device *dev);
      74             : int drm_crtc_force_disable(struct drm_crtc *crtc);
      75             : 
      76             : struct dma_fence *drm_crtc_create_fence(struct drm_crtc *crtc);
      77             : 
      78             : struct drm_property *
      79             : drm_create_scaling_filter_prop(struct drm_device *dev,
      80             :                                unsigned int supported_filters);
      81             : /* IOCTLs */
      82             : int drm_mode_getcrtc(struct drm_device *dev,
      83             :                      void *data, struct drm_file *file_priv);
      84             : int drm_mode_setcrtc(struct drm_device *dev,
      85             :                      void *data, struct drm_file *file_priv);
      86             : 
      87             : 
      88             : /* drm_mode_config.c */
      89             : int drm_modeset_register_all(struct drm_device *dev);
      90             : void drm_modeset_unregister_all(struct drm_device *dev);
      91             : void drm_mode_config_validate(struct drm_device *dev);
      92             : 
      93             : /* drm_modes.c */
      94             : const char *drm_get_mode_status_name(enum drm_mode_status status);
      95             : 
      96             : /* IOCTLs */
      97             : int drm_mode_getresources(struct drm_device *dev,
      98             :                           void *data, struct drm_file *file_priv);
      99             : 
     100             : 
     101             : /* drm_dumb_buffers.c */
     102             : int drm_mode_create_dumb(struct drm_device *dev,
     103             :                          struct drm_mode_create_dumb *args,
     104             :                          struct drm_file *file_priv);
     105             : int drm_mode_destroy_dumb(struct drm_device *dev, u32 handle,
     106             :                           struct drm_file *file_priv);
     107             : 
     108             : /* IOCTLs */
     109             : int drm_mode_create_dumb_ioctl(struct drm_device *dev,
     110             :                                void *data, struct drm_file *file_priv);
     111             : int drm_mode_mmap_dumb_ioctl(struct drm_device *dev,
     112             :                              void *data, struct drm_file *file_priv);
     113             : int drm_mode_destroy_dumb_ioctl(struct drm_device *dev,
     114             :                                 void *data, struct drm_file *file_priv);
     115             : 
     116             : /* drm_color_mgmt.c */
     117             : const char *drm_get_color_encoding_name(enum drm_color_encoding encoding);
     118             : const char *drm_get_color_range_name(enum drm_color_range range);
     119             : 
     120             : /* IOCTLs */
     121             : int drm_mode_gamma_get_ioctl(struct drm_device *dev,
     122             :                              void *data, struct drm_file *file_priv);
     123             : int drm_mode_gamma_set_ioctl(struct drm_device *dev,
     124             :                              void *data, struct drm_file *file_priv);
     125             : 
     126             : /* drm_property.c */
     127             : void drm_property_destroy_user_blobs(struct drm_device *dev,
     128             :                                      struct drm_file *file_priv);
     129             : bool drm_property_change_valid_get(struct drm_property *property,
     130             :                                    uint64_t value,
     131             :                                    struct drm_mode_object **ref);
     132             : void drm_property_change_valid_put(struct drm_property *property,
     133             :                                    struct drm_mode_object *ref);
     134             : 
     135             : /* IOCTL */
     136             : int drm_mode_getproperty_ioctl(struct drm_device *dev,
     137             :                                void *data, struct drm_file *file_priv);
     138             : int drm_mode_getblob_ioctl(struct drm_device *dev,
     139             :                            void *data, struct drm_file *file_priv);
     140             : int drm_mode_createblob_ioctl(struct drm_device *dev,
     141             :                               void *data, struct drm_file *file_priv);
     142             : int drm_mode_destroyblob_ioctl(struct drm_device *dev,
     143             :                                void *data, struct drm_file *file_priv);
     144             : 
     145             : /* drm_mode_object.c */
     146             : int __drm_mode_object_add(struct drm_device *dev, struct drm_mode_object *obj,
     147             :                           uint32_t obj_type, bool register_obj,
     148             :                           void (*obj_free_cb)(struct kref *kref));
     149             : int drm_mode_object_add(struct drm_device *dev, struct drm_mode_object *obj,
     150             :                         uint32_t obj_type);
     151             : void drm_mode_object_register(struct drm_device *dev,
     152             :                               struct drm_mode_object *obj);
     153             : struct drm_mode_object *__drm_mode_object_find(struct drm_device *dev,
     154             :                                                struct drm_file *file_priv,
     155             :                                                uint32_t id, uint32_t type);
     156             : void drm_mode_object_unregister(struct drm_device *dev,
     157             :                                 struct drm_mode_object *object);
     158             : int drm_mode_object_get_properties(struct drm_mode_object *obj, bool atomic,
     159             :                                    uint32_t __user *prop_ptr,
     160             :                                    uint64_t __user *prop_values,
     161             :                                    uint32_t *arg_count_props);
     162             : struct drm_property *drm_mode_obj_find_prop_id(struct drm_mode_object *obj,
     163             :                                                uint32_t prop_id);
     164             : 
     165             : /* IOCTL */
     166             : 
     167             : int drm_mode_obj_get_properties_ioctl(struct drm_device *dev, void *data,
     168             :                                       struct drm_file *file_priv);
     169             : int drm_mode_obj_set_property_ioctl(struct drm_device *dev, void *data,
     170             :                                     struct drm_file *file_priv);
     171             : 
     172             : /* drm_encoder.c */
     173             : int drm_encoder_register_all(struct drm_device *dev);
     174             : void drm_encoder_unregister_all(struct drm_device *dev);
     175             : 
     176             : /* IOCTL */
     177             : int drm_mode_getencoder(struct drm_device *dev,
     178             :                         void *data, struct drm_file *file_priv);
     179             : 
     180             : /* drm_connector.c */
     181             : void drm_connector_ida_init(void);
     182             : void drm_connector_ida_destroy(void);
     183             : void drm_connector_unregister_all(struct drm_device *dev);
     184             : int drm_connector_register_all(struct drm_device *dev);
     185             : int drm_connector_set_obj_prop(struct drm_mode_object *obj,
     186             :                                     struct drm_property *property,
     187             :                                     uint64_t value);
     188             : int drm_connector_create_standard_properties(struct drm_device *dev);
     189             : const char *drm_get_connector_force_name(enum drm_connector_force force);
     190             : void drm_connector_free_work_fn(struct work_struct *work);
     191             : struct drm_connector *drm_connector_find_by_fwnode(struct fwnode_handle *fwnode);
     192             : 
     193             : /* IOCTL */
     194             : int drm_connector_property_set_ioctl(struct drm_device *dev,
     195             :                                      void *data, struct drm_file *file_priv);
     196             : int drm_mode_getconnector(struct drm_device *dev,
     197             :                           void *data, struct drm_file *file_priv);
     198             : 
     199             : /* drm_framebuffer.c */
     200             : struct drm_framebuffer *
     201             : drm_internal_framebuffer_create(struct drm_device *dev,
     202             :                                 const struct drm_mode_fb_cmd2 *r,
     203             :                                 struct drm_file *file_priv);
     204             : void drm_framebuffer_free(struct kref *kref);
     205             : int drm_framebuffer_check_src_coords(uint32_t src_x, uint32_t src_y,
     206             :                                      uint32_t src_w, uint32_t src_h,
     207             :                                      const struct drm_framebuffer *fb);
     208             : void drm_fb_release(struct drm_file *file_priv);
     209             : 
     210             : int drm_mode_addfb(struct drm_device *dev, struct drm_mode_fb_cmd *or,
     211             :                    struct drm_file *file_priv);
     212             : int drm_mode_addfb2(struct drm_device *dev,
     213             :                     void *data, struct drm_file *file_priv);
     214             : int drm_mode_rmfb(struct drm_device *dev, u32 fb_id,
     215             :                   struct drm_file *file_priv);
     216             : 
     217             : 
     218             : /* IOCTL */
     219             : int drm_mode_addfb_ioctl(struct drm_device *dev,
     220             :                          void *data, struct drm_file *file_priv);
     221             : int drm_mode_addfb2_ioctl(struct drm_device *dev,
     222             :                           void *data, struct drm_file *file_priv);
     223             : int drm_mode_rmfb_ioctl(struct drm_device *dev,
     224             :                         void *data, struct drm_file *file_priv);
     225             : int drm_mode_getfb(struct drm_device *dev,
     226             :                    void *data, struct drm_file *file_priv);
     227             : int drm_mode_getfb2_ioctl(struct drm_device *dev,
     228             :                           void *data, struct drm_file *file_priv);
     229             : int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
     230             :                            void *data, struct drm_file *file_priv);
     231             : 
     232             : /* drm_atomic.c */
     233             : #ifdef CONFIG_DEBUG_FS
     234             : struct drm_minor;
     235             : void drm_atomic_debugfs_init(struct drm_minor *minor);
     236             : #endif
     237             : 
     238             : int __drm_atomic_helper_disable_plane(struct drm_plane *plane,
     239             :                                       struct drm_plane_state *plane_state);
     240             : int __drm_atomic_helper_set_config(struct drm_mode_set *set,
     241             :                                    struct drm_atomic_state *state);
     242             : 
     243             : void drm_atomic_print_new_state(const struct drm_atomic_state *state,
     244             :                 struct drm_printer *p);
     245             : 
     246             : /* drm_atomic_uapi.c */
     247             : int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,
     248             :                                      struct drm_connector *connector,
     249             :                                      int mode);
     250             : int drm_atomic_set_property(struct drm_atomic_state *state,
     251             :                             struct drm_file *file_priv,
     252             :                             struct drm_mode_object *obj,
     253             :                             struct drm_property *prop,
     254             :                             uint64_t prop_value);
     255             : int drm_atomic_get_property(struct drm_mode_object *obj,
     256             :                             struct drm_property *property, uint64_t *val);
     257             : 
     258             : /* IOCTL */
     259             : int drm_mode_atomic_ioctl(struct drm_device *dev,
     260             :                           void *data, struct drm_file *file_priv);
     261             : 
     262             : 
     263             : /* drm_plane.c */
     264             : int drm_plane_register_all(struct drm_device *dev);
     265             : void drm_plane_unregister_all(struct drm_device *dev);
     266             : int drm_plane_check_pixel_format(struct drm_plane *plane,
     267             :                                  u32 format, u64 modifier);
     268             : struct drm_mode_rect *
     269             : __drm_plane_get_damage_clips(const struct drm_plane_state *state);
     270             : 
     271             : /* drm_bridge.c */
     272             : void drm_bridge_detach(struct drm_bridge *bridge);
     273             : 
     274             : /* IOCTL */
     275             : int drm_mode_getplane_res(struct drm_device *dev, void *data,
     276             :                           struct drm_file *file_priv);
     277             : int drm_mode_getplane(struct drm_device *dev,
     278             :                       void *data, struct drm_file *file_priv);
     279             : int drm_mode_setplane(struct drm_device *dev,
     280             :                       void *data, struct drm_file *file_priv);
     281             : int drm_mode_cursor_ioctl(struct drm_device *dev,
     282             :                           void *data, struct drm_file *file_priv);
     283             : int drm_mode_cursor2_ioctl(struct drm_device *dev,
     284             :                            void *data, struct drm_file *file_priv);
     285             : int drm_mode_page_flip_ioctl(struct drm_device *dev,
     286             :                              void *data, struct drm_file *file_priv);
     287             : 
     288             : /* drm_edid.c */
     289             : void drm_mode_fixup_1366x768(struct drm_display_mode *mode);
     290             : int drm_edid_override_show(struct drm_connector *connector, struct seq_file *m);
     291             : int drm_edid_override_set(struct drm_connector *connector, const void *edid, size_t size);
     292             : int drm_edid_override_reset(struct drm_connector *connector);
     293             : 
     294             : /* drm_edid_load.c */
     295             : #ifdef CONFIG_DRM_LOAD_EDID_FIRMWARE
     296             : const struct drm_edid *drm_edid_load_firmware(struct drm_connector *connector);
     297             : #else
     298             : static inline const struct drm_edid *
     299             : drm_edid_load_firmware(struct drm_connector *connector)
     300             : {
     301           0 :         return ERR_PTR(-ENOENT);
     302             : }
     303             : #endif

Generated by: LCOV version 1.14