On Tue, 2023-05-02 at 09:38 -0700, Ceraolo Spurio, Daniele wrote: > The GSC uC needs to communicate with the CSME to perform certain > operations. Since the GSC can't perform this communication directly > on platforms where it is integrated in GT, i915 needs to transfer the > messages from GSC to CSME and back. > alan:snip > +++ b/drivers/gpu/drm/i915/gt/uc/intel_gsc_fw.c > @@ -13,6 +13,7 @@ > #define GSC_FW_STATUS_REG _MMIO(0x116C40) > #define GSC_FW_CURRENT_STATE REG_GENMASK(3, 0) > #define GSC_FW_CURRENT_STATE_RESET 0 > +#define GSC_FW_PROXY_STATE_NORMAL 5 > #define GSC_FW_INIT_COMPLETE_BIT REG_BIT(9) > > static bool gsc_is_in_reset(struct intel_uncore *uncore) > @@ -23,6 +24,15 @@ static bool gsc_is_in_reset(struct intel_uncore *uncore) > GSC_FW_CURRENT_STATE_RESET; > } > > +bool intel_gsc_uc_fw_proxy_init_done(struct intel_gsc_uc *gsc) > +{ > + struct intel_uncore *uncore = gsc_uc_to_gt(gsc)->uncore; > + u32 fw_status = intel_uncore_read(uncore, GSC_FW_STATUS_REG); > + > + return REG_FIELD_GET(GSC_FW_CURRENT_STATE, fw_status) == > + GSC_FW_PROXY_STATE_NORMAL; > +} > + Since this function was added here, repeating rb: Reviewed-by: Alan Previn <alan.previn.teres.alexis@xxxxxxxxx>