mirror of
https://github.com/torvalds/linux.git
synced 2026-05-13 00:28:54 +02: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>
38 lines
1.1 KiB
C
38 lines
1.1 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2022 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _XE_PCODE_H_
|
|
#define _XE_PCODE_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
struct drm_device;
|
|
struct xe_device;
|
|
struct xe_tile;
|
|
|
|
void xe_pcode_init(struct xe_tile *tile);
|
|
int xe_pcode_probe_early(struct xe_device *xe);
|
|
int xe_pcode_ready(struct xe_device *xe, bool locked);
|
|
int xe_pcode_init_min_freq_table(struct xe_tile *tile, u32 min_gt_freq,
|
|
u32 max_gt_freq);
|
|
int xe_pcode_read(struct xe_tile *tile, u32 mbox, u32 *val, u32 *val1);
|
|
int xe_pcode_write_timeout(struct xe_tile *tile, u32 mbox, u32 val,
|
|
int timeout_ms);
|
|
int xe_pcode_write64_timeout(struct xe_tile *tile, u32 mbox, u32 data0,
|
|
u32 data1, int timeout);
|
|
|
|
#define xe_pcode_write(tile, mbox, val) \
|
|
xe_pcode_write_timeout(tile, mbox, val, 1)
|
|
|
|
int xe_pcode_request(struct xe_tile *tile, u32 mbox, u32 request,
|
|
u32 reply_mask, u32 reply, int timeout_ms);
|
|
|
|
#define PCODE_MBOX(mbcmd, param1, param2)\
|
|
(FIELD_PREP(PCODE_MB_COMMAND, mbcmd)\
|
|
| FIELD_PREP(PCODE_MB_PARAM1, param1)\
|
|
| FIELD_PREP(PCODE_MB_PARAM2, param2))
|
|
|
|
#endif
|