cregit-Linux how code gets into the kernel

Release 4.11 drivers/gpu/drm/rockchip/cdn-dp-core.h

/*
 * Copyright (C) 2016 Chris Zhong <zyw@rock-chips.com>
 * Copyright (C) 2016 ROCKCHIP, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#ifndef _CDN_DP_CORE_H

#define _CDN_DP_CORE_H

#include <drm/drmP.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_dp_helper.h>
#include <drm/drm_panel.h>
#include "rockchip_drm_drv.h"


#define MAX_PHY		2


enum audio_format {
	
AFMT_I2S = 0,
	
AFMT_SPDIF = 1,
	
AFMT_UNUSED,
};


struct audio_info {
	
enum audio_format format;
	
int sample_rate;
	
int channels;
	
int sample_width;
};


enum vic_pxl_encoding_format {
	
PXL_RGB = 0x1,
	
YCBCR_4_4_4 = 0x2,
	
YCBCR_4_2_2 = 0x4,
	
YCBCR_4_2_0 = 0x8,
	
Y_ONLY = 0x10,
};


struct video_info {
	
bool h_sync_polarity;
	
bool v_sync_polarity;
	
bool interlaced;
	
int color_depth;
	
enum vic_pxl_encoding_format color_fmt;
};


struct cdn_firmware_header {
	
u32 size_bytes; /* size of the entire header+image(s) in bytes */
	
u32 header_size; /* size of just the header in bytes */
	
u32 iram_size; /* size of iram */
	
u32 dram_size; /* size of dram */
};


struct cdn_dp_port {
	
struct cdn_dp_device *dp;
	
struct notifier_block event_nb;
	
struct extcon_dev *extcon;
	
struct phy *phy;
	
u8 lanes;
	
bool phy_enabled;
	
u8 id;
};


struct cdn_dp_device {
	
struct device *dev;
	
struct drm_device *drm_dev;
	
struct drm_connector connector;
	
struct drm_encoder encoder;
	
struct drm_display_mode mode;
	
struct platform_device *audio_pdev;
	
struct work_struct event_work;
	
struct edid *edid;

	
struct mutex lock;
	
bool connected;
	
bool active;
	
bool suspended;

	
const struct firmware *fw;	/* cdn dp firmware */
	
unsigned int fw_version;	/* cdn fw version */
	
bool fw_loaded;

	
void __iomem *regs;
	
struct regmap *grf;
	
struct clk *core_clk;
	
struct clk *pclk;
	
struct clk *spdif_clk;
	
struct clk *grf_clk;
	
struct reset_control *spdif_rst;
	
struct reset_control *dptx_rst;
	
struct reset_control *apb_rst;
	
struct reset_control *core_rst;
	
struct audio_info audio_info;
	
struct video_info video_info;
	
struct drm_dp_link link;
	
struct cdn_dp_port *port[MAX_PHY];
	
u8 ports;
	
u8 lanes;
	
int active_port;

	
u8 dpcd[DP_RECEIVER_CAP_SIZE];
	
bool sink_has_audio;
};
#endif  /* _CDN_DP_CORE_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Chris Zhong31499.05%266.67%
Guenter Roeck30.95%133.33%
Total317100.00%3100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.