#ifndef __RCAR_DU_DRV_H__
#define __RCAR_DU_DRV_H__
#include <linux/kernel.h>
#include <linux/wait.h>
#include <drm/drm_device.h>
#include "rcar_cmm.h"
#include "rcar_du_crtc.h"
#include "rcar_du_group.h"
#include "rcar_du_vsp.h"
struct clk;
struct device;
struct drm_bridge;
struct drm_property;
struct rcar_du_device;
#define RCAR_DU_FEATURE_CRTC_IRQ …
#define RCAR_DU_FEATURE_CRTC_CLOCK …
#define RCAR_DU_FEATURE_VSP1_SOURCE …
#define RCAR_DU_FEATURE_INTERLACED …
#define RCAR_DU_FEATURE_TVM_SYNC …
#define RCAR_DU_FEATURE_NO_BLENDING …
#define RCAR_DU_QUIRK_ALIGN_128B …
enum rcar_du_output { … };
struct rcar_du_output_routing { … };
struct rcar_du_device_info { … };
#define RCAR_DU_MAX_CRTCS …
#define RCAR_DU_MAX_GROUPS …
#define RCAR_DU_MAX_VSPS …
#define RCAR_DU_MAX_LVDS …
#define RCAR_DU_MAX_DSI …
struct rcar_du_device { … };
static inline struct rcar_du_device *to_rcar_du_device(struct drm_device *dev)
{ … }
static inline bool rcar_du_has(struct rcar_du_device *rcdu,
unsigned int feature)
{ … }
static inline bool rcar_du_needs(struct rcar_du_device *rcdu,
unsigned int quirk)
{ … }
static inline u32 rcar_du_read(struct rcar_du_device *rcdu, u32 reg)
{ … }
static inline void rcar_du_write(struct rcar_du_device *rcdu, u32 reg, u32 data)
{ … }
const char *rcar_du_output_name(enum rcar_du_output output);
#endif