#include <linux/delay.h>
#include <linux/highmem.h>
#include <drm/drm_crtc.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_modeset_helper_vtables.h>
#include <drm/drm_vblank.h>
#include "framebuffer.h"
#include "gem.h"
#include "gma_display.h"
#include "psb_irq.h"
#include "psb_intel_drv.h"
#include "psb_intel_reg.h"
bool gma_pipe_has_type(struct drm_crtc *crtc, int type)
{ … }
void gma_wait_for_vblank(struct drm_device *dev)
{ … }
int gma_pipe_set_base(struct drm_crtc *crtc, int x, int y,
struct drm_framebuffer *old_fb)
{ … }
void gma_crtc_load_lut(struct drm_crtc *crtc)
{ … }
static int gma_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
u16 *blue, u32 size,
struct drm_modeset_acquire_ctx *ctx)
{ … }
void gma_crtc_dpms(struct drm_crtc *crtc, int mode)
{ … }
static int gma_crtc_cursor_set(struct drm_crtc *crtc,
struct drm_file *file_priv, uint32_t handle,
uint32_t width, uint32_t height)
{ … }
static int gma_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)
{ … }
void gma_crtc_prepare(struct drm_crtc *crtc)
{ … }
void gma_crtc_commit(struct drm_crtc *crtc)
{ … }
void gma_crtc_disable(struct drm_crtc *crtc)
{ … }
void gma_crtc_destroy(struct drm_crtc *crtc)
{ … }
int gma_crtc_page_flip(struct drm_crtc *crtc,
struct drm_framebuffer *fb,
struct drm_pending_vblank_event *event,
uint32_t page_flip_flags,
struct drm_modeset_acquire_ctx *ctx)
{ … }
const struct drm_crtc_funcs gma_crtc_funcs = …;
void gma_crtc_save(struct drm_crtc *crtc)
{ … }
void gma_crtc_restore(struct drm_crtc *crtc)
{ … }
void gma_encoder_prepare(struct drm_encoder *encoder)
{ … }
void gma_encoder_commit(struct drm_encoder *encoder)
{ … }
void gma_encoder_destroy(struct drm_encoder *encoder)
{ … }
struct drm_encoder *gma_best_encoder(struct drm_connector *connector)
{ … }
void gma_connector_attach_encoder(struct gma_connector *connector,
struct gma_encoder *encoder)
{ … }
#define GMA_PLL_INVALID(s) …
bool gma_pll_is_valid(struct drm_crtc *crtc,
const struct gma_limit_t *limit,
struct gma_clock_t *clock)
{ … }
bool gma_find_best_pll(const struct gma_limit_t *limit,
struct drm_crtc *crtc, int target, int refclk,
struct gma_clock_t *best_clock)
{ … }