xref: /linux/drivers/gpu/drm/i915/gvt/display_helpers.h (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1d6a3a678SAnkit Nautiyal /* SPDX-License-Identifier: MIT
2d6a3a678SAnkit Nautiyal  *
3d6a3a678SAnkit Nautiyal  * Copyright © 2025 Intel Corporation
4d6a3a678SAnkit Nautiyal  */
5d6a3a678SAnkit Nautiyal 
6d6a3a678SAnkit Nautiyal #ifndef __DISPLAY_HELPERS_H__
7d6a3a678SAnkit Nautiyal #define __DISPLAY_HELPERS_H__
8d6a3a678SAnkit Nautiyal 
9d6a3a678SAnkit Nautiyal #include "display/intel_gvt_api.h"
10d6a3a678SAnkit Nautiyal 
11d6a3a678SAnkit Nautiyal #define DISPLAY_MMIO_BASE(display) \
12d6a3a678SAnkit Nautiyal 	intel_display_device_mmio_base((display))
13d6a3a678SAnkit Nautiyal 
14d6a3a678SAnkit Nautiyal /*
15d6a3a678SAnkit Nautiyal  * #FIXME:
16d6a3a678SAnkit Nautiyal  * TRANSCONF() uses pipe-based addressing via _MMIO_PIPE2().
17d6a3a678SAnkit Nautiyal  * Some GVT call sites pass enum transcoder instead of enum pipe.
18d6a3a678SAnkit Nautiyal  * Cast the argument to enum pipe for now since TRANSCODER_A..D map
19d6a3a678SAnkit Nautiyal  * 1:1 to PIPE_A..D.
20d6a3a678SAnkit Nautiyal  * TRANSCODER_EDP is an exception, the cast preserves the existing
21d6a3a678SAnkit Nautiyal  * behaviour but this needs to be handled later either by using the
22d6a3a678SAnkit Nautiyal  * correct pipe or by switching TRANSCONF() to use _MMIO_TRANS2().
23d6a3a678SAnkit Nautiyal  */
24d6a3a678SAnkit Nautiyal #define INTEL_DISPLAY_DEVICE_PIPE_OFFSET(display, idx) \
25d6a3a678SAnkit Nautiyal 	intel_display_device_pipe_offset((display), (enum pipe)(idx))
26d6a3a678SAnkit Nautiyal 
27d6a3a678SAnkit Nautiyal #define INTEL_DISPLAY_DEVICE_TRANS_OFFSET(display, trans) \
28d6a3a678SAnkit Nautiyal 	intel_display_device_trans_offset((display), (trans))
29d6a3a678SAnkit Nautiyal 
30d6a3a678SAnkit Nautiyal #define INTEL_DISPLAY_DEVICE_CURSOR_OFFSET(display, pipe) \
31d6a3a678SAnkit Nautiyal 	intel_display_device_cursor_offset((display), (pipe))
32d6a3a678SAnkit Nautiyal 
33*d805e879SAnkit Nautiyal #define gvt_for_each_pipe(display, __p) \
34*d805e879SAnkit Nautiyal 	for ((__p) = PIPE_A; (__p) < I915_MAX_PIPES; (__p)++) \
35*d805e879SAnkit Nautiyal 		for_each_if(intel_display_device_pipe_valid((display), (__p)))
36*d805e879SAnkit Nautiyal 
37d6a3a678SAnkit Nautiyal #endif /* __DISPLAY_HELPERS_H__ */
38