brintos

brintos / linux-shallow public Read only

0
0
Text · 7.9 KiB · 04154db Raw
178 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (c) 2020 MediaTek Inc.4 */5 6#ifndef _MTK_DISP_DRV_H_7#define _MTK_DISP_DRV_H_8 9#include <linux/soc/mediatek/mtk-cmdq.h>10#include <linux/soc/mediatek/mtk-mmsys.h>11#include <linux/soc/mediatek/mtk-mutex.h>12#include "mtk_mdp_rdma.h"13#include "mtk_plane.h"14 15int mtk_aal_clk_enable(struct device *dev);16void mtk_aal_clk_disable(struct device *dev);17void mtk_aal_config(struct device *dev, unsigned int w,18		    unsigned int h, unsigned int vrefresh,19		    unsigned int bpc, struct cmdq_pkt *cmdq_pkt);20unsigned int mtk_aal_gamma_get_lut_size(struct device *dev);21void mtk_aal_gamma_set(struct device *dev, struct drm_crtc_state *state);22void mtk_aal_start(struct device *dev);23void mtk_aal_stop(struct device *dev);24 25void mtk_ccorr_ctm_set(struct device *dev, struct drm_crtc_state *state);26int mtk_ccorr_clk_enable(struct device *dev);27void mtk_ccorr_clk_disable(struct device *dev);28void mtk_ccorr_config(struct device *dev, unsigned int w,29		      unsigned int h, unsigned int vrefresh,30		      unsigned int bpc, struct cmdq_pkt *cmdq_pkt);31void mtk_ccorr_start(struct device *dev);32void mtk_ccorr_stop(struct device *dev);33 34void mtk_color_bypass_shadow(struct device *dev);35int mtk_color_clk_enable(struct device *dev);36void mtk_color_clk_disable(struct device *dev);37void mtk_color_config(struct device *dev, unsigned int w,38		      unsigned int h, unsigned int vrefresh,39		      unsigned int bpc, struct cmdq_pkt *cmdq_pkt);40void mtk_color_start(struct device *dev);41 42void mtk_dither_set_common(void __iomem *regs, struct cmdq_client_reg *cmdq_reg,43			   unsigned int bpc, unsigned int cfg,44			   unsigned int dither_en, struct cmdq_pkt *cmdq_pkt);45 46void mtk_dpi_start(struct device *dev);47void mtk_dpi_stop(struct device *dev);48unsigned int mtk_dpi_encoder_index(struct device *dev);49 50void mtk_dsi_ddp_start(struct device *dev);51void mtk_dsi_ddp_stop(struct device *dev);52unsigned int mtk_dsi_encoder_index(struct device *dev);53 54int mtk_gamma_clk_enable(struct device *dev);55void mtk_gamma_clk_disable(struct device *dev);56void mtk_gamma_config(struct device *dev, unsigned int w,57		      unsigned int h, unsigned int vrefresh,58		      unsigned int bpc, struct cmdq_pkt *cmdq_pkt);59unsigned int mtk_gamma_get_lut_size(struct device *dev);60void mtk_gamma_set(struct device *dev, struct drm_crtc_state *state);61void mtk_gamma_start(struct device *dev);62void mtk_gamma_stop(struct device *dev);63 64int mtk_merge_clk_enable(struct device *dev);65void mtk_merge_clk_disable(struct device *dev);66void mtk_merge_config(struct device *dev, unsigned int width,67		      unsigned int height, unsigned int vrefresh,68		      unsigned int bpc, struct cmdq_pkt *cmdq_pkt);69void mtk_merge_start(struct device *dev);70void mtk_merge_stop(struct device *dev);71void mtk_merge_advance_config(struct device *dev, unsigned int l_w, unsigned int r_w,72			      unsigned int h, unsigned int vrefresh, unsigned int bpc,73			      struct cmdq_pkt *cmdq_pkt);74void mtk_merge_start_cmdq(struct device *dev, struct cmdq_pkt *cmdq_pkt);75void mtk_merge_stop_cmdq(struct device *dev, struct cmdq_pkt *cmdq_pkt);76enum drm_mode_status mtk_merge_mode_valid(struct device *dev,77					  const struct drm_display_mode *mode);78 79void mtk_ovl_bgclr_in_on(struct device *dev);80void mtk_ovl_bgclr_in_off(struct device *dev);81void mtk_ovl_bypass_shadow(struct device *dev);82int mtk_ovl_clk_enable(struct device *dev);83void mtk_ovl_clk_disable(struct device *dev);84void mtk_ovl_config(struct device *dev, unsigned int w,85		    unsigned int h, unsigned int vrefresh,86		    unsigned int bpc, struct cmdq_pkt *cmdq_pkt);87int mtk_ovl_layer_check(struct device *dev, unsigned int idx,88			struct mtk_plane_state *mtk_state);89void mtk_ovl_layer_config(struct device *dev, unsigned int idx,90			  struct mtk_plane_state *state,91			  struct cmdq_pkt *cmdq_pkt);92unsigned int mtk_ovl_layer_nr(struct device *dev);93void mtk_ovl_layer_on(struct device *dev, unsigned int idx,94		      struct cmdq_pkt *cmdq_pkt);95void mtk_ovl_layer_off(struct device *dev, unsigned int idx,96		       struct cmdq_pkt *cmdq_pkt);97void mtk_ovl_start(struct device *dev);98void mtk_ovl_stop(struct device *dev);99unsigned int mtk_ovl_supported_rotations(struct device *dev);100void mtk_ovl_register_vblank_cb(struct device *dev,101				void (*vblank_cb)(void *),102				void *vblank_cb_data);103void mtk_ovl_unregister_vblank_cb(struct device *dev);104void mtk_ovl_enable_vblank(struct device *dev);105void mtk_ovl_disable_vblank(struct device *dev);106u32 mtk_ovl_get_blend_modes(struct device *dev);107const u32 *mtk_ovl_get_formats(struct device *dev);108size_t mtk_ovl_get_num_formats(struct device *dev);109 110void mtk_ovl_adaptor_add_comp(struct device *dev, struct mtk_mutex *mutex);111void mtk_ovl_adaptor_remove_comp(struct device *dev, struct mtk_mutex *mutex);112void mtk_ovl_adaptor_connect(struct device *dev, struct device *mmsys_dev,113			     unsigned int next);114void mtk_ovl_adaptor_disconnect(struct device *dev, struct device *mmsys_dev,115				unsigned int next);116int mtk_ovl_adaptor_power_on(struct device *dev);117void mtk_ovl_adaptor_power_off(struct device *dev);118int mtk_ovl_adaptor_clk_enable(struct device *dev);119void mtk_ovl_adaptor_clk_disable(struct device *dev);120void mtk_ovl_adaptor_config(struct device *dev, unsigned int w,121			    unsigned int h, unsigned int vrefresh,122			    unsigned int bpc, struct cmdq_pkt *cmdq_pkt);123void mtk_ovl_adaptor_layer_config(struct device *dev, unsigned int idx,124				  struct mtk_plane_state *state,125				  struct cmdq_pkt *cmdq_pkt);126void mtk_ovl_adaptor_register_vblank_cb(struct device *dev, void (*vblank_cb)(void *),127					void *vblank_cb_data);128void mtk_ovl_adaptor_unregister_vblank_cb(struct device *dev);129void mtk_ovl_adaptor_enable_vblank(struct device *dev);130void mtk_ovl_adaptor_disable_vblank(struct device *dev);131void mtk_ovl_adaptor_start(struct device *dev);132void mtk_ovl_adaptor_stop(struct device *dev);133unsigned int mtk_ovl_adaptor_layer_nr(struct device *dev);134struct device *mtk_ovl_adaptor_dma_dev_get(struct device *dev);135u32 mtk_ovl_adaptor_get_blend_modes(struct device *dev);136const u32 *mtk_ovl_adaptor_get_formats(struct device *dev);137size_t mtk_ovl_adaptor_get_num_formats(struct device *dev);138enum drm_mode_status mtk_ovl_adaptor_mode_valid(struct device *dev,139						const struct drm_display_mode *mode);140 141void mtk_rdma_bypass_shadow(struct device *dev);142int mtk_rdma_clk_enable(struct device *dev);143void mtk_rdma_clk_disable(struct device *dev);144void mtk_rdma_config(struct device *dev, unsigned int width,145		     unsigned int height, unsigned int vrefresh,146		     unsigned int bpc, struct cmdq_pkt *cmdq_pkt);147unsigned int mtk_rdma_layer_nr(struct device *dev);148void mtk_rdma_layer_config(struct device *dev, unsigned int idx,149			   struct mtk_plane_state *state,150			   struct cmdq_pkt *cmdq_pkt);151void mtk_rdma_start(struct device *dev);152void mtk_rdma_stop(struct device *dev);153void mtk_rdma_register_vblank_cb(struct device *dev,154				 void (*vblank_cb)(void *),155				 void *vblank_cb_data);156void mtk_rdma_unregister_vblank_cb(struct device *dev);157void mtk_rdma_enable_vblank(struct device *dev);158void mtk_rdma_disable_vblank(struct device *dev);159const u32 *mtk_rdma_get_formats(struct device *dev);160size_t mtk_rdma_get_num_formats(struct device *dev);161 162int mtk_mdp_rdma_power_on(struct device *dev);163void mtk_mdp_rdma_power_off(struct device *dev);164int mtk_mdp_rdma_clk_enable(struct device *dev);165void mtk_mdp_rdma_clk_disable(struct device *dev);166void mtk_mdp_rdma_start(struct device *dev, struct cmdq_pkt *cmdq_pkt);167void mtk_mdp_rdma_stop(struct device *dev, struct cmdq_pkt *cmdq_pkt);168void mtk_mdp_rdma_config(struct device *dev, struct mtk_mdp_rdma_cfg *cfg,169			 struct cmdq_pkt *cmdq_pkt);170const u32 *mtk_mdp_rdma_get_formats(struct device *dev);171size_t mtk_mdp_rdma_get_num_formats(struct device *dev);172 173int mtk_padding_clk_enable(struct device *dev);174void mtk_padding_clk_disable(struct device *dev);175void mtk_padding_start(struct device *dev);176void mtk_padding_stop(struct device *dev);177#endif178