mirror of
https://github.com/torvalds/linux.git
synced 2024-11-04 11:04:38 +00:00
drm/i915/overlay: Make the overlay control struct opaque.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
5dcdbcb06b
commit
23f09ce31c
@ -2224,11 +2224,11 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode)
|
|||||||
static void intel_crtc_dpms_overlay(struct intel_crtc *intel_crtc, bool enable)
|
static void intel_crtc_dpms_overlay(struct intel_crtc *intel_crtc, bool enable)
|
||||||
{
|
{
|
||||||
if (!enable && intel_crtc->overlay) {
|
if (!enable && intel_crtc->overlay) {
|
||||||
struct intel_overlay *overlay = intel_crtc->overlay;
|
struct drm_device *dev = intel_crtc->base.dev;
|
||||||
|
|
||||||
mutex_lock(&overlay->dev->struct_mutex);
|
mutex_lock(&dev->struct_mutex);
|
||||||
(void) intel_overlay_switch_off(overlay, false);
|
(void) intel_overlay_switch_off(intel_crtc->overlay, false);
|
||||||
mutex_unlock(&overlay->dev->struct_mutex);
|
mutex_unlock(&dev->struct_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Let userspace switch the overlay on again. In most cases userspace
|
/* Let userspace switch the overlay on again. In most cases userspace
|
||||||
|
@ -146,30 +146,6 @@ struct intel_connector {
|
|||||||
struct drm_connector base;
|
struct drm_connector base;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct intel_crtc;
|
|
||||||
struct intel_overlay {
|
|
||||||
struct drm_device *dev;
|
|
||||||
struct intel_crtc *crtc;
|
|
||||||
struct drm_i915_gem_object *vid_bo;
|
|
||||||
struct drm_i915_gem_object *old_vid_bo;
|
|
||||||
int active;
|
|
||||||
int pfit_active;
|
|
||||||
u32 pfit_vscale_ratio; /* shifted-point number, (1<<12) == 1.0 */
|
|
||||||
u32 color_key;
|
|
||||||
u32 brightness, contrast, saturation;
|
|
||||||
u32 old_xscale, old_yscale;
|
|
||||||
/* register access */
|
|
||||||
u32 flip_addr;
|
|
||||||
struct drm_i915_gem_object *reg_bo;
|
|
||||||
/* flip handling */
|
|
||||||
uint32_t last_flip_req;
|
|
||||||
int hw_wedged;
|
|
||||||
#define HW_WEDGED 1
|
|
||||||
#define NEEDS_WAIT_FOR_FLIP 2
|
|
||||||
#define RELEASE_OLD_VID 3
|
|
||||||
#define SWITCH_OFF 4
|
|
||||||
};
|
|
||||||
|
|
||||||
struct intel_crtc {
|
struct intel_crtc {
|
||||||
struct drm_crtc base;
|
struct drm_crtc base;
|
||||||
enum pipe pipe;
|
enum pipe pipe;
|
||||||
|
@ -170,6 +170,29 @@ struct overlay_registers {
|
|||||||
u16 RESERVEDG[0x100 / 2 - N_HORIZ_UV_TAPS * N_PHASES];
|
u16 RESERVEDG[0x100 / 2 - N_HORIZ_UV_TAPS * N_PHASES];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct intel_overlay {
|
||||||
|
struct drm_device *dev;
|
||||||
|
struct intel_crtc *crtc;
|
||||||
|
struct drm_i915_gem_object *vid_bo;
|
||||||
|
struct drm_i915_gem_object *old_vid_bo;
|
||||||
|
int active;
|
||||||
|
int pfit_active;
|
||||||
|
u32 pfit_vscale_ratio; /* shifted-point number, (1<<12) == 1.0 */
|
||||||
|
u32 color_key;
|
||||||
|
u32 brightness, contrast, saturation;
|
||||||
|
u32 old_xscale, old_yscale;
|
||||||
|
/* register access */
|
||||||
|
u32 flip_addr;
|
||||||
|
struct drm_i915_gem_object *reg_bo;
|
||||||
|
/* flip handling */
|
||||||
|
uint32_t last_flip_req;
|
||||||
|
int hw_wedged;
|
||||||
|
#define HW_WEDGED 1
|
||||||
|
#define NEEDS_WAIT_FOR_FLIP 2
|
||||||
|
#define RELEASE_OLD_VID 3
|
||||||
|
#define SWITCH_OFF 4
|
||||||
|
};
|
||||||
|
|
||||||
static struct overlay_registers *
|
static struct overlay_registers *
|
||||||
intel_overlay_map_regs_atomic(struct intel_overlay *overlay,
|
intel_overlay_map_regs_atomic(struct intel_overlay *overlay,
|
||||||
int slot)
|
int slot)
|
||||||
|
Loading…
Reference in New Issue
Block a user