mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
Call the parent driver pcode functions through the parent interface function pointers instead of expecting both to have functions of the same name. In i915, add the interface to existing intel_pcode.[ch], while in xe move them to new display/xe_display_pcode.[ch] and build it only for CONFIG_DRM_XE_DISPLAY=y. Do not add separate write and write_timeout calls in the interface. Instead, handle the default 1 ms timeout in the intel_parent.c glue layer. This drops the last intel_pcode.h includes from display, and allows us to remove the corresponding xe compat header. v2: initialize .pcode in i915 Reviewed-by: Michał Grzelak <michal.grzelak@intel.com> Link: https://patch.msgid.link/20260126112925.2452171-1-jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
33 lines
1005 B
C
33 lines
1005 B
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2013-2021 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _INTEL_PCODE_H_
|
|
#define _INTEL_PCODE_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct drm_device;
|
|
struct intel_uncore;
|
|
|
|
int snb_pcode_read(struct intel_uncore *uncore, u32 mbox, u32 *val, u32 *val1);
|
|
int snb_pcode_write_timeout(struct intel_uncore *uncore, u32 mbox, u32 val, int timeout_ms);
|
|
#define snb_pcode_write(uncore, mbox, val) \
|
|
snb_pcode_write_timeout((uncore), (mbox), (val), 1)
|
|
|
|
int skl_pcode_request(struct intel_uncore *uncore, u32 mbox, u32 request,
|
|
u32 reply_mask, u32 reply, int timeout_base_ms);
|
|
|
|
int intel_pcode_init(struct intel_uncore *uncore);
|
|
|
|
/*
|
|
* Helpers for dGfx PCODE mailbox command formatting
|
|
*/
|
|
int snb_pcode_read_p(struct intel_uncore *uncore, u32 mbcmd, u32 p1, u32 p2, u32 *val);
|
|
int snb_pcode_write_p(struct intel_uncore *uncore, u32 mbcmd, u32 p1, u32 p2, u32 val);
|
|
|
|
extern const struct intel_display_pcode_interface i915_display_pcode_interface;
|
|
|
|
#endif /* _INTEL_PCODE_H */
|