mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 16:54:20 +08:00
a0877f5203
- best_encoder cleanup from Boris. - drm_simple_display_pipe helpers from Noralf. Looks really neat imo, and there's 2-3 in-flight drivers which look like they could/should use it. Anyway, with this we have now helpers and everything in place to write drivers for simple hw with fewer complexity in the driver than what fbdev would need. That was the last complaint I've heard from embedded folks after we made atomic happen. Mission accomplished! - nonblocking commit helpers for atomic, plus a bunch of driver patches for that. - Prep patch from Laurent for cleaned up pixel format functions. - More of Gustavo's cleanup for drm vblank functions. - and a few oddball things in between Plus the merge of docs-next to prep the docbook->sphinx conversion as discussed. Jon cc'ed as fyi. * tag 'topic/drm-misc-2016-06-15' of git://anongit.freedesktop.org/drm-intel: (108 commits) drm/atomic-helpers: Clear up cleanup_done a bit drm/atomic-helpers: Stall on the right commit drm/vmwgfx: use *_32_bits() macros drm/virtio: Don't reinvent a flipping wheel drm/i915: Fix missing unlock on error in i915_ppgtt_info() drm/gma500: use drm_crtc_vblank_{on,off}() drm/radeon: use crtc directly in drm_crtc_vblank_put() drm/amdgpu: use crtc directly in drm_crtc_vblank_put() drm/radeon: use drm_crtc_vblank_{on,off}() drm/amdgpu: use drm_crtc_vblank_{on,off}() drm: make drm_vblank_{get,put}() static drm: remove legacy drm_arm_vblank_event() drm: remove legacy drm_send_vblank_event() drm/nouveau: replace legacy vblank helpers drm/prime: fix error path deadlock fail drm/dsi: Add uevent callback drm: fb: cma: fix memory leak drm: i915: Rely on the default ->best_encoder() behavior where appropriate drm: Add helper for simple display pipeline drm/bridge: dw-hdmi: Use drm_atomic_helper_best_encoder() ...
51 lines
1.4 KiB
C
51 lines
1.4 KiB
C
/*
|
|
* ARC PGU DRM driver.
|
|
*
|
|
* Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com)
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
*/
|
|
|
|
#ifndef _ARCPGU_H_
|
|
#define _ARCPGU_H_
|
|
|
|
struct arcpgu_drm_private {
|
|
void __iomem *regs;
|
|
struct clk *clk;
|
|
struct drm_fbdev_cma *fbdev;
|
|
struct drm_framebuffer *fb;
|
|
struct drm_crtc crtc;
|
|
struct drm_plane *plane;
|
|
};
|
|
|
|
#define crtc_to_arcpgu_priv(x) container_of(x, struct arcpgu_drm_private, crtc)
|
|
|
|
static inline void arc_pgu_write(struct arcpgu_drm_private *arcpgu,
|
|
unsigned int reg, u32 value)
|
|
{
|
|
iowrite32(value, arcpgu->regs + reg);
|
|
}
|
|
|
|
static inline u32 arc_pgu_read(struct arcpgu_drm_private *arcpgu,
|
|
unsigned int reg)
|
|
{
|
|
return ioread32(arcpgu->regs + reg);
|
|
}
|
|
|
|
int arc_pgu_setup_crtc(struct drm_device *dev);
|
|
int arcpgu_drm_hdmi_init(struct drm_device *drm, struct device_node *np);
|
|
int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np);
|
|
struct drm_fbdev_cma *arcpgu_fbdev_cma_init(struct drm_device *dev,
|
|
unsigned int preferred_bpp, unsigned int num_crtc,
|
|
unsigned int max_conn_count);
|
|
|
|
#endif
|