#include <linux/math64.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_mode.h>
#include <drm/drm_vblank.h>
#include "omap_drv.h"
#define to_omap_crtc_state(x) …
struct omap_crtc_state { … };
#define to_omap_crtc(x) …
struct omap_crtc { … };
struct videomode *omap_crtc_timings(struct drm_crtc *crtc)
{ … }
enum omap_channel omap_crtc_channel(struct drm_crtc *crtc)
{ … }
static bool omap_crtc_is_pending(struct drm_crtc *crtc)
{ … }
int omap_crtc_wait_pending(struct drm_crtc *crtc)
{ … }
void omap_crtc_dss_start_update(struct omap_drm_private *priv,
enum omap_channel channel)
{ … }
void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable)
{ … }
int omap_crtc_dss_enable(struct omap_drm_private *priv, enum omap_channel channel)
{ … }
void omap_crtc_dss_disable(struct omap_drm_private *priv, enum omap_channel channel)
{ … }
void omap_crtc_dss_set_timings(struct omap_drm_private *priv,
enum omap_channel channel,
const struct videomode *vm)
{ … }
void omap_crtc_dss_set_lcd_config(struct omap_drm_private *priv,
enum omap_channel channel,
const struct dss_lcd_mgr_config *config)
{ … }
int omap_crtc_dss_register_framedone(
struct omap_drm_private *priv, enum omap_channel channel,
void (*handler)(void *), void *data)
{ … }
void omap_crtc_dss_unregister_framedone(
struct omap_drm_private *priv, enum omap_channel channel,
void (*handler)(void *), void *data)
{ … }
void omap_crtc_error_irq(struct drm_crtc *crtc, u32 irqstatus)
{ … }
void omap_crtc_vblank_irq(struct drm_crtc *crtc)
{ … }
void omap_crtc_framedone_irq(struct drm_crtc *crtc, uint32_t irqstatus)
{ … }
void omap_crtc_flush(struct drm_crtc *crtc)
{ … }
static void omap_crtc_manual_display_update(struct work_struct *data)
{ … }
static s16 omap_crtc_s31_32_to_s2_8(s64 coef)
{ … }
static void omap_crtc_cpr_coefs_from_ctm(const struct drm_color_ctm *ctm,
struct omap_dss_cpr_coefs *cpr)
{ … }
static void omap_crtc_write_crtc_properties(struct drm_crtc *crtc)
{ … }
static void omap_crtc_destroy(struct drm_crtc *crtc)
{ … }
static void omap_crtc_arm_event(struct drm_crtc *crtc)
{ … }
static void omap_crtc_atomic_enable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void omap_crtc_atomic_disable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static enum drm_mode_status omap_crtc_mode_valid(struct drm_crtc *crtc,
const struct drm_display_mode *mode)
{ … }
static void omap_crtc_mode_set_nofb(struct drm_crtc *crtc)
{ … }
static bool omap_crtc_is_manually_updated(struct drm_crtc *crtc)
{ … }
static int omap_crtc_atomic_check(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void omap_crtc_atomic_begin(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void omap_crtc_atomic_flush(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
struct drm_crtc_state *state,
struct drm_property *property,
u64 val)
{ … }
static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
const struct drm_crtc_state *state,
struct drm_property *property,
u64 *val)
{ … }
static void omap_crtc_reset(struct drm_crtc *crtc)
{ … }
static struct drm_crtc_state *
omap_crtc_duplicate_state(struct drm_crtc *crtc)
{ … }
static const struct drm_crtc_funcs omap_crtc_funcs = …;
static const struct drm_crtc_helper_funcs omap_crtc_helper_funcs = …;
static const char *channel_names[] = …;
struct drm_crtc *omap_crtc_init(struct drm_device *dev,
struct omap_drm_pipeline *pipe,
struct drm_plane *plane)
{ … }