LCOV - code coverage report
Current view: top level - dev/pci/drm - drm_panel.c (source / functions) Hit Total Coverage
Test: 6.4 Lines: 0 24 0.0 %
Date: 2018-10-19 03:25:38 Functions: 0 5 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (C) 2013, NVIDIA Corporation.  All rights reserved.
       3             :  *
       4             :  * Permission is hereby granted, free of charge, to any person obtaining a
       5             :  * copy of this software and associated documentation files (the "Software"),
       6             :  * to deal in the Software without restriction, including without limitation
       7             :  * the rights to use, copy, modify, merge, publish, distribute, sub license,
       8             :  * and/or sell copies of the Software, and to permit persons to whom the
       9             :  * Software is furnished to do so, subject to the following conditions:
      10             :  *
      11             :  * The above copyright notice and this permission notice (including the
      12             :  * next paragraph) shall be included in all copies or substantial portions
      13             :  * of the Software.
      14             :  *
      15             :  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      16             :  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      17             :  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
      18             :  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      19             :  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
      20             :  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
      21             :  * DEALINGS IN THE SOFTWARE.
      22             :  */
      23             : 
      24             : #ifdef __linux__
      25             : #include <linux/err.h>
      26             : #include <linux/module.h>
      27             : #endif
      28             : 
      29             : #include <dev/pci/drm/drmP.h>
      30             : #include <dev/pci/drm/drm_crtc.h>
      31             : #include <dev/pci/drm/drm_panel.h>
      32             : 
      33             : static DEFINE_MUTEX(panel_lock);
      34             : static DRM_LIST_HEAD(panel_list);
      35             : 
      36           0 : void drm_panel_init(struct drm_panel *panel)
      37             : {
      38           0 :         INIT_LIST_HEAD(&panel->list);
      39           0 : }
      40             : EXPORT_SYMBOL(drm_panel_init);
      41             : 
      42           0 : int drm_panel_add(struct drm_panel *panel)
      43             : {
      44           0 :         mutex_lock(&panel_lock);
      45           0 :         list_add_tail(&panel->list, &panel_list);
      46           0 :         mutex_unlock(&panel_lock);
      47             : 
      48           0 :         return 0;
      49             : }
      50             : EXPORT_SYMBOL(drm_panel_add);
      51             : 
      52           0 : void drm_panel_remove(struct drm_panel *panel)
      53             : {
      54           0 :         mutex_lock(&panel_lock);
      55           0 :         list_del_init(&panel->list);
      56           0 :         mutex_unlock(&panel_lock);
      57           0 : }
      58             : EXPORT_SYMBOL(drm_panel_remove);
      59             : 
      60           0 : int drm_panel_attach(struct drm_panel *panel, struct drm_connector *connector)
      61             : {
      62           0 :         if (panel->connector)
      63           0 :                 return -EBUSY;
      64             : 
      65           0 :         panel->connector = connector;
      66           0 :         panel->drm = connector->dev;
      67             : 
      68           0 :         return 0;
      69           0 : }
      70             : EXPORT_SYMBOL(drm_panel_attach);
      71             : 
      72           0 : int drm_panel_detach(struct drm_panel *panel)
      73             : {
      74           0 :         panel->connector = NULL;
      75           0 :         panel->drm = NULL;
      76             : 
      77           0 :         return 0;
      78             : }
      79             : EXPORT_SYMBOL(drm_panel_detach);
      80             : 
      81             : #ifdef CONFIG_OF
      82             : struct drm_panel *of_drm_find_panel(struct device_node *np)
      83             : {
      84             :         struct drm_panel *panel;
      85             : 
      86             :         mutex_lock(&panel_lock);
      87             : 
      88             :         list_for_each_entry(panel, &panel_list, list) {
      89             :                 if (panel->dev->of_node == np) {
      90             :                         mutex_unlock(&panel_lock);
      91             :                         return panel;
      92             :                 }
      93             :         }
      94             : 
      95             :         mutex_unlock(&panel_lock);
      96             :         return NULL;
      97             : }
      98             : EXPORT_SYMBOL(of_drm_find_panel);
      99             : #endif
     100             : 
     101             : MODULE_AUTHOR("Thierry Reding <treding@nvidia.com>");
     102             : MODULE_DESCRIPTION("DRM panel infrastructure");
     103             : MODULE_LICENSE("GPL and additional rights");

Generated by: LCOV version 1.13