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        bool enable_afbc;
  34};
  35#define to_rockchip_crtc_state(s) \
  36                container_of(s, struct rockchip_crtc_state, base)
  37
  38/*
  39 * Rockchip drm private structure.
  40 *
  41 * @crtc: array of enabled CRTCs, used to map from "pipe" to drm_crtc.
  42 * @num_pipe: number of pipes for this device.
  43 * @mm_lock: protect drm_mm on multi-threads.
  44 */
  45struct rockchip_drm_private {
  46        struct drm_fb_helper fbdev_helper;
  47        struct drm_gem_object *fbdev_bo;
  48        struct iommu_domain *domain;
  49        struct mutex mm_lock;
  50        struct drm_mm mm;
  51        struct list_head psr_list;
  52        struct mutex psr_list_lock;
  53};
  54
  55int rockchip_drm_dma_attach_device(struct drm_device *drm_dev,
  56                                   struct device *dev);
  57void rockchip_drm_dma_detach_device(struct drm_device *drm_dev,
  58                                    struct device *dev);
  59int rockchip_drm_wait_vact_end(struct drm_crtc *crtc, unsigned int mstimeout);
  60
  61int rockchip_drm_endpoint_is_subdriver(struct device_node *ep);
  62extern struct platform_driver cdn_dp_driver;
  63extern struct platform_driver dw_hdmi_rockchip_pltfm_driver;
  64extern struct platform_driver dw_mipi_dsi_rockchip_driver;
  65extern struct platform_driver inno_hdmi_driver;
  66extern struct platform_driver rockchip_dp_driver;
  67extern struct platform_driver rockchip_lvds_driver;
  68extern struct platform_driver vop_platform_driver;
  69extern struct platform_driver rk3066_hdmi_driver;
  70#endif /* _ROCKCHIP_DRM_DRV_H_ */
  71