Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.18 81 lines 2.4 kB view raw
1/* 2 * rcar_du_vsp.h -- R-Car Display Unit VSP-Based Compositor 3 * 4 * Copyright (C) 2015 Renesas Electronics Corporation 5 * 6 * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com) 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License as published by 10 * the Free Software Foundation; either version 2 of the License, or 11 * (at your option) any later version. 12 */ 13 14#ifndef __RCAR_DU_VSP_H__ 15#define __RCAR_DU_VSP_H__ 16 17#include <drm/drmP.h> 18#include <drm/drm_crtc.h> 19 20struct rcar_du_format_info; 21struct rcar_du_vsp; 22 23struct rcar_du_vsp_plane { 24 struct drm_plane plane; 25 struct rcar_du_vsp *vsp; 26 unsigned int index; 27}; 28 29struct rcar_du_vsp { 30 unsigned int index; 31 struct device *vsp; 32 struct rcar_du_device *dev; 33 struct rcar_du_vsp_plane *planes; 34 unsigned int num_planes; 35}; 36 37static inline struct rcar_du_vsp_plane *to_rcar_vsp_plane(struct drm_plane *p) 38{ 39 return container_of(p, struct rcar_du_vsp_plane, plane); 40} 41 42/** 43 * struct rcar_du_vsp_plane_state - Driver-specific plane state 44 * @state: base DRM plane state 45 * @format: information about the pixel format used by the plane 46 * @sg_tables: scatter-gather tables for the frame buffer memory 47 */ 48struct rcar_du_vsp_plane_state { 49 struct drm_plane_state state; 50 51 const struct rcar_du_format_info *format; 52 struct sg_table sg_tables[3]; 53}; 54 55static inline struct rcar_du_vsp_plane_state * 56to_rcar_vsp_plane_state(struct drm_plane_state *state) 57{ 58 return container_of(state, struct rcar_du_vsp_plane_state, state); 59} 60 61#ifdef CONFIG_DRM_RCAR_VSP 62int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct device_node *np, 63 unsigned int crtcs); 64void rcar_du_vsp_enable(struct rcar_du_crtc *crtc); 65void rcar_du_vsp_disable(struct rcar_du_crtc *crtc); 66void rcar_du_vsp_atomic_begin(struct rcar_du_crtc *crtc); 67void rcar_du_vsp_atomic_flush(struct rcar_du_crtc *crtc); 68#else 69static inline int rcar_du_vsp_init(struct rcar_du_vsp *vsp, 70 struct device_node *np, 71 unsigned int crtcs) 72{ 73 return -ENXIO; 74} 75static inline void rcar_du_vsp_enable(struct rcar_du_crtc *crtc) { }; 76static inline void rcar_du_vsp_disable(struct rcar_du_crtc *crtc) { }; 77static inline void rcar_du_vsp_atomic_begin(struct rcar_du_crtc *crtc) { }; 78static inline void rcar_du_vsp_atomic_flush(struct rcar_du_crtc *crtc) { }; 79#endif 80 81#endif /* __RCAR_DU_VSP_H__ */