cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mxsfb_drv.h (1324B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 * Copyright (C) 2016 Marek Vasut <marex@denx.de>
      4 *
      5 * i.MX23/i.MX28/i.MX6SX MXSFB LCD controller driver.
      6 */
      7
      8#ifndef __MXSFB_DRV_H__
      9#define __MXSFB_DRV_H__
     10
     11#include <drm/drm_crtc.h>
     12#include <drm/drm_device.h>
     13#include <drm/drm_encoder.h>
     14#include <drm/drm_plane.h>
     15
     16struct clk;
     17
     18struct mxsfb_devdata {
     19	unsigned int	transfer_count;
     20	unsigned int	cur_buf;
     21	unsigned int	next_buf;
     22	unsigned int	hs_wdth_mask;
     23	unsigned int	hs_wdth_shift;
     24	bool		has_overlay;
     25	bool		has_ctrl2;
     26	bool		has_crc32;
     27};
     28
     29struct mxsfb_drm_private {
     30	const struct mxsfb_devdata	*devdata;
     31
     32	void __iomem			*base;	/* registers */
     33	struct clk			*clk;
     34	struct clk			*clk_axi;
     35	struct clk			*clk_disp_axi;
     36
     37	unsigned int			irq;
     38
     39	struct drm_device		*drm;
     40	struct {
     41		struct drm_plane	primary;
     42		struct drm_plane	overlay;
     43	} planes;
     44	struct drm_crtc			crtc;
     45	struct drm_encoder		encoder;
     46	struct drm_connector		*connector;
     47	struct drm_bridge		*bridge;
     48
     49	bool				crc_active;
     50};
     51
     52static inline struct mxsfb_drm_private *
     53to_mxsfb_drm_private(struct drm_device *drm)
     54{
     55	return drm->dev_private;
     56}
     57
     58void mxsfb_enable_axi_clk(struct mxsfb_drm_private *mxsfb);
     59void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb);
     60
     61int mxsfb_kms_init(struct mxsfb_drm_private *mxsfb);
     62
     63#endif /* __MXSFB_DRV_H__ */