mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 00:04:15 +08:00
5518572dce
Drop the DRM IRQ midlayer in favor of Linux IRQ interfaces. DRM's IRQ helpers are mostly useful for UMS drivers. Modern KMS drivers don't benefit from using it. DRM IRQ callbacks are now being called directly or inlined. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Acked-by: Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20210803090704.32152-11-tzimmermann@suse.de
42 lines
986 B
C
42 lines
986 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 2018 Texas Instruments Incorporated - https://www.ti.com/
|
|
* Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
|
*/
|
|
|
|
#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];
|
|
|
|
unsigned int irq;
|
|
|
|
spinlock_t wait_lock; /* protects the irq masks */
|
|
dispc_irq_t irq_mask; /* enabled irqs in addition to wait_list */
|
|
};
|
|
|
|
#define to_tidss(__dev) container_of(__dev, struct tidss_device, ddev)
|
|
|
|
int tidss_runtime_get(struct tidss_device *tidss);
|
|
void tidss_runtime_put(struct tidss_device *tidss);
|
|
|
|
#endif
|