#include <drm/drm_crtc.h>
#include <drm/drm_fourcc.h>
#include "nouveau_drv.h"
#include "nouveau_bo.h"
#include "nouveau_connector.h"
#include "nouveau_display.h"
#include "nouveau_gem.h"
#include "nvreg.h"
#include "disp.h"
struct nouveau_plane { … };
static uint32_t formats[] = …;
static inline int
sin_mul(int degrees, int factor)
{ … }
static inline int
cos_mul(int degrees, int factor)
{ … }
static int
verify_scaling(const struct drm_framebuffer *fb, uint8_t shift,
uint32_t src_x, uint32_t src_y, uint32_t src_w, uint32_t src_h,
uint32_t crtc_w, uint32_t crtc_h)
{ … }
static int
nv10_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
struct drm_framebuffer *fb, int crtc_x, int crtc_y,
unsigned int crtc_w, unsigned int crtc_h,
uint32_t src_x, uint32_t src_y,
uint32_t src_w, uint32_t src_h,
struct drm_modeset_acquire_ctx *ctx)
{ … }
static int
nv10_disable_plane(struct drm_plane *plane,
struct drm_modeset_acquire_ctx *ctx)
{ … }
static void
nv_destroy_plane(struct drm_plane *plane)
{ … }
static void
nv10_set_params(struct nouveau_plane *plane)
{ … }
static int
nv_set_property(struct drm_plane *plane,
struct drm_property *property,
uint64_t value)
{ … }
static const struct drm_plane_funcs nv10_plane_funcs = …;
static void
nv10_overlay_init(struct drm_device *device)
{ … }
static int
nv04_update_plane(struct drm_plane *plane, struct drm_crtc *crtc,
struct drm_framebuffer *fb, int crtc_x, int crtc_y,
unsigned int crtc_w, unsigned int crtc_h,
uint32_t src_x, uint32_t src_y,
uint32_t src_w, uint32_t src_h,
struct drm_modeset_acquire_ctx *ctx)
{ … }
static int
nv04_disable_plane(struct drm_plane *plane,
struct drm_modeset_acquire_ctx *ctx)
{ … }
static const struct drm_plane_funcs nv04_plane_funcs = …;
static void
nv04_overlay_init(struct drm_device *device)
{ … }
void
nouveau_overlay_init(struct drm_device *device)
{ … }