mirror of
https://github.com/torvalds/linux.git
synced 2024-12-06 19:11:31 +00:00
6bd0fbe156
We don't have to immediately fail on WOPCM partitioning, we can wait until we will start programming WOPCM registers. This should give us more options if we decide to restore fallback in case of GuC failures. v3: rebased Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20190802184055.31988-7-michal.wajdeczko@intel.com
61 lines
1.2 KiB
C
61 lines
1.2 KiB
C
/*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
* Copyright © 2017-2018 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _INTEL_WOPCM_H_
|
|
#define _INTEL_WOPCM_H_
|
|
|
|
#include <linux/types.h>
|
|
|
|
/**
|
|
* struct intel_wopcm - Overall WOPCM info and WOPCM regions.
|
|
* @size: Size of overall WOPCM.
|
|
* @guc: GuC WOPCM Region info.
|
|
* @guc.base: GuC WOPCM base which is offset from WOPCM base.
|
|
* @guc.size: Size of the GuC WOPCM region.
|
|
*/
|
|
struct intel_wopcm {
|
|
u32 size;
|
|
struct {
|
|
u32 base;
|
|
u32 size;
|
|
} guc;
|
|
};
|
|
|
|
/**
|
|
* intel_wopcm_guc_base()
|
|
* @wopcm: intel_wopcm structure
|
|
*
|
|
* Returns the base of the WOPCM shadowed region.
|
|
*
|
|
* Returns:
|
|
* 0 if GuC is not present or not in use.
|
|
* Otherwise, the GuC WOPCM base.
|
|
*/
|
|
static inline u32 intel_wopcm_guc_base(struct intel_wopcm *wopcm)
|
|
{
|
|
return wopcm->guc.base;
|
|
}
|
|
|
|
/**
|
|
* intel_wopcm_guc_size()
|
|
* @wopcm: intel_wopcm structure
|
|
*
|
|
* Returns size of the WOPCM shadowed region.
|
|
*
|
|
* Returns:
|
|
* 0 if GuC is not present or not in use.
|
|
* Otherwise, the GuC WOPCM size.
|
|
*/
|
|
static inline u32 intel_wopcm_guc_size(struct intel_wopcm *wopcm)
|
|
{
|
|
return wopcm->guc.size;
|
|
}
|
|
|
|
void intel_wopcm_init_early(struct intel_wopcm *wopcm);
|
|
void intel_wopcm_init(struct intel_wopcm *wopcm);
|
|
|
|
#endif
|