diff options
Diffstat (limited to 'drivers/gpu/drm/tidss/tidss_drv.h')
| -rw-r--r-- | drivers/gpu/drm/tidss/tidss_drv.h | 39 | 
1 files changed, 39 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/tidss/tidss_drv.h b/drivers/gpu/drm/tidss/tidss_drv.h new file mode 100644 index 000000000000..e2aa6436ad18 --- /dev/null +++ b/drivers/gpu/drm/tidss/tidss_drv.h @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/ + * Author: Tomi Valkeinen <[email protected]> + */ + +#ifndef __TIDSS_DRV_H__ +#define __TIDSS_DRV_H__ + +#include <linux/spinlock.h> + +#define TIDSS_MAX_PORTS 4 +#define TIDSS_MAX_PLANES 4 + +typedef u32 dispc_irq_t; + +struct tidss_device { +	struct drm_device ddev;		/* DRM device for DSS */ +	struct device *dev;		/* Underlying DSS device */ + +	const struct dispc_features *feat; +	struct dispc_device *dispc; + +	unsigned int num_crtcs; +	struct drm_crtc *crtcs[TIDSS_MAX_PORTS]; + +	unsigned int num_planes; +	struct drm_plane *planes[TIDSS_MAX_PLANES]; + +	spinlock_t wait_lock;	/* protects the irq masks */ +	dispc_irq_t irq_mask;	/* enabled irqs in addition to wait_list */ + +	struct drm_atomic_state *saved_state; +}; + +int tidss_runtime_get(struct tidss_device *tidss); +void tidss_runtime_put(struct tidss_device *tidss); + +#endif |