linux/drivers/gpu/drm/mediatek/mtk_drm_drv.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2015 MediaTek Inc.
   3 *
   4 * This program is free software; you can redistribute it and/or modify
   5 * it under the terms of the GNU General Public License version 2 as
   6 * published by the Free Software Foundation.
   7 *
   8 * This program is distributed in the hope that it will be useful,
   9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11 * GNU General Public License for more details.
  12 */
  13
  14#ifndef MTK_DRM_DRV_H
  15#define MTK_DRM_DRV_H
  16
  17#include <linux/io.h>
  18#include "mtk_drm_ddp_comp.h"
  19
  20#define MAX_CRTC        2
  21#define MAX_CONNECTOR   2
  22
  23struct device;
  24struct device_node;
  25struct drm_crtc;
  26struct drm_device;
  27struct drm_fb_helper;
  28struct drm_property;
  29struct regmap;
  30
  31struct mtk_mmsys_driver_data {
  32        const enum mtk_ddp_comp_id *main_path;
  33        unsigned int main_len;
  34        const enum mtk_ddp_comp_id *ext_path;
  35        unsigned int ext_len;
  36        bool shadow_register;
  37};
  38
  39struct mtk_drm_private {
  40        struct drm_device *drm;
  41        struct device *dma_dev;
  42
  43        unsigned int num_pipes;
  44
  45        struct device_node *mutex_node;
  46        struct device *mutex_dev;
  47        void __iomem *config_regs;
  48        struct device_node *comp_node[DDP_COMPONENT_ID_MAX];
  49        struct mtk_ddp_comp *ddp_comp[DDP_COMPONENT_ID_MAX];
  50        const struct mtk_mmsys_driver_data *data;
  51
  52        struct {
  53                struct drm_atomic_state *state;
  54                struct work_struct work;
  55                struct mutex lock;
  56        } commit;
  57
  58        struct drm_atomic_state *suspend_state;
  59};
  60
  61extern struct platform_driver mtk_ddp_driver;
  62extern struct platform_driver mtk_disp_color_driver;
  63extern struct platform_driver mtk_disp_ovl_driver;
  64extern struct platform_driver mtk_disp_rdma_driver;
  65extern struct platform_driver mtk_dpi_driver;
  66extern struct platform_driver mtk_dsi_driver;
  67extern struct platform_driver mtk_mipi_tx_driver;
  68
  69#endif /* MTK_DRM_DRV_H */
  70