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

hibmc_drm_drv.h (1663B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/* Hisilicon Hibmc SoC drm driver
      3 *
      4 * Based on the bochs drm driver.
      5 *
      6 * Copyright (c) 2016 Huawei Limited.
      7 *
      8 * Author:
      9 *	Rongrong Zou <zourongrong@huawei.com>
     10 *	Rongrong Zou <zourongrong@gmail.com>
     11 *	Jianhua Li <lijianhua@huawei.com>
     12 */
     13
     14#ifndef HIBMC_DRM_DRV_H
     15#define HIBMC_DRM_DRV_H
     16
     17#include <linux/gpio/consumer.h>
     18#include <linux/i2c-algo-bit.h>
     19#include <linux/i2c.h>
     20
     21#include <drm/drm_edid.h>
     22#include <drm/drm_fb_helper.h>
     23#include <drm/drm_framebuffer.h>
     24
     25struct hibmc_connector {
     26	struct drm_connector base;
     27
     28	struct i2c_adapter adapter;
     29	struct i2c_algo_bit_data bit_data;
     30};
     31
     32struct hibmc_drm_private {
     33	/* hw */
     34	void __iomem   *mmio;
     35	void __iomem   *fb_map;
     36	resource_size_t  fb_base;
     37	resource_size_t  fb_size;
     38
     39	/* drm */
     40	struct drm_device dev;
     41	struct drm_plane primary_plane;
     42	struct drm_crtc crtc;
     43	struct drm_encoder encoder;
     44	struct hibmc_connector connector;
     45};
     46
     47static inline struct hibmc_connector *to_hibmc_connector(struct drm_connector *connector)
     48{
     49	return container_of(connector, struct hibmc_connector, base);
     50}
     51
     52static inline struct hibmc_drm_private *to_hibmc_drm_private(struct drm_device *dev)
     53{
     54	return container_of(dev, struct hibmc_drm_private, dev);
     55}
     56
     57void hibmc_set_power_mode(struct hibmc_drm_private *priv,
     58			  u32 power_mode);
     59void hibmc_set_current_gate(struct hibmc_drm_private *priv,
     60			    u32 gate);
     61
     62int hibmc_de_init(struct hibmc_drm_private *priv);
     63int hibmc_vdac_init(struct hibmc_drm_private *priv);
     64
     65int hibmc_mm_init(struct hibmc_drm_private *hibmc);
     66int hibmc_ddc_create(struct drm_device *drm_dev, struct hibmc_connector *connector);
     67
     68#endif