mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
drm/i915/display: Add APIs to be used by gvt to get the register offsets
GVT code uses macros for register offsets that require display internal structures. This makes clean separation of display code and modularization difficult. Introduce APIs to abstract offset calculations: - intel_display_device_pipe_offset() - intel_display_device_trans_offset() - intel_display_device_cursor_offset() - intel_display_device_mmio_base() These APIs return absolute base offsets for the respective register groups, allowing GVT to compute MMIO addresses without using internal macros or struct fields. This prepares the path to separate display-dependent code from i915/gvt/*. v2: - Build GVT APIs only when GVT is actually enabled. (Jani) Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> (#v1) Link: https://patch.msgid.link/20251219060302.2365123-3-ankit.k.nautiyal@intel.com
This commit is contained in:
34
drivers/gpu/drm/i915/display/intel_gvt_api.c
Normal file
34
drivers/gpu/drm/i915/display/intel_gvt_api.c
Normal file
@@ -0,0 +1,34 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
/*
|
||||
* Copyright © 2025 Intel Corporation
|
||||
*/
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#include "intel_display_core.h"
|
||||
#include "intel_display_regs.h"
|
||||
#include "intel_gvt_api.h"
|
||||
|
||||
u32 intel_display_device_pipe_offset(struct intel_display *display, enum pipe pipe)
|
||||
{
|
||||
return INTEL_DISPLAY_DEVICE_PIPE_OFFSET(display, pipe);
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(intel_display_device_pipe_offset, "I915_GVT");
|
||||
|
||||
u32 intel_display_device_trans_offset(struct intel_display *display, enum transcoder trans)
|
||||
{
|
||||
return INTEL_DISPLAY_DEVICE_TRANS_OFFSET(display, trans);
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(intel_display_device_trans_offset, "I915_GVT");
|
||||
|
||||
u32 intel_display_device_cursor_offset(struct intel_display *display, enum pipe pipe)
|
||||
{
|
||||
return INTEL_DISPLAY_DEVICE_CURSOR_OFFSET(display, pipe);
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(intel_display_device_cursor_offset, "I915_GVT");
|
||||
|
||||
u32 intel_display_device_mmio_base(struct intel_display *display)
|
||||
{
|
||||
return DISPLAY_MMIO_BASE(display);
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(intel_display_device_mmio_base, "I915_GVT");
|
||||
Reference in New Issue
Block a user