linux/drivers/gpu/drm/rockchip/rockchip_drm_drv.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Copyright (C) Fuzhou Rockchip Electronics Co.Ltd
   4 * Author:Mark Yao <mark.yao@rock-chips.com>
   5 *
   6 * based on exynos_drm_drv.h
   7 */
   8
   9#ifndef _ROCKCHIP_DRM_DRV_H
  10#define _ROCKCHIP_DRM_DRV_H
  11
  12#include <drm/drm_fb_helper.h>
  13#include <drm/drm_atomic_helper.h>
  14#include <drm/drm_gem.h>
  15
  16#include <linux/module.h>
  17#include <linux/component.h>
  18
  19#define ROCKCHIP_MAX_FB_BUFFER  3
  20#define ROCKCHIP_MAX_CONNECTOR  2
  21#define ROCKCHIP_MAX_CRTC       2
  22
  23struct drm_device;
  24struct drm_connector;
  25struct iommu_domain;
  26
  27struct rockchip_crtc_state {
  28        struct drm_crtc_state base;
  29        int output_type;
  30        int output_mode;
  31        int output_bpc;
  32        int output_flags;
  33};
  34#define to_rockchip_crtc_state(s) \
  35                container_of(s, struct rockchip_crtc_state, base)
  36
  37/*
  38 * Rockchip drm private structure.
  39 *
  40 * @crtc: array of enabled CRTCs, used to map from "pipe" to drm_crtc.
  41 * @num_pipe: number of pipes for this device.
  42 * @mm_lock: protect drm_mm on multi-threads.
  43 */
  44struct rockchip_drm_private {
  45        struct drm_fb_helper fbdev_helper;
  46        struct drm_gem_object *fbdev_bo;
  47        struct iommu_domain *domain;
  48        struct mutex mm_lock;
  49        struct drm_mm mm;
  50        struct list_head psr_list;
  51        struct mutex psr_list_lock;
  52};
  53
  54int rockchip_drm_dma_attach_device(struct drm_device *drm_dev,
  55                                   struct device *dev);
  56void rockchip_drm_dma_detach_device(struct drm_device *drm_dev,
  57                                    struct device *dev);
  58int rockchip_drm_wait_vact_end(struct drm_crtc *crtc, unsigned int mstimeout);
  59
  60int rockchip_drm_endpoint_is_subdriver(struct device_node *ep);
  61extern struct platform_driver cdn_dp_driver;
  62extern struct platform_driver dw_hdmi_rockchip_pltfm_driver;
  63extern struct platform_driver dw_mipi_dsi_rockchip_driver;
  64extern struct platform_driver inno_hdmi_driver;
  65extern struct platform_driver rockchip_dp_driver;
  66extern struct platform_driver rockchip_lvds_driver;
  67extern struct platform_driver vop_platform_driver;
  68extern struct platform_driver rk3066_hdmi_driver;
  69#endif /* _ROCKCHIP_DRM_DRV_H_ */
  70