Merge tag 'drm-intel-next-fixes-2023-06-21' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
One fix for incorrect error handling in the frame buffer mmap callback, HuC init error handling fix, missing wakeref during GSC init and a build fix when !CONFIG_PROC_FS. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/ZJLI8ON96ApPTl8H@tursulin-desk
This commit is contained in:
commit
5ff2977b19
@ -1085,8 +1085,8 @@ int i915_gem_fb_mmap(struct drm_i915_gem_object *obj, struct vm_area_struct *vma
|
||||
/* handle stolen and smem objects */
|
||||
mmap_type = i915_ggtt_has_aperture(ggtt) ? I915_MMAP_TYPE_GTT : I915_MMAP_TYPE_WC;
|
||||
mmo = mmap_offset_attach(obj, mmap_type, NULL);
|
||||
if (!mmo)
|
||||
return -ENODEV;
|
||||
if (IS_ERR(mmo))
|
||||
return PTR_ERR(mmo);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -24,21 +24,27 @@ static bool gsc_is_in_reset(struct intel_uncore *uncore)
|
||||
GSC_FW_CURRENT_STATE_RESET;
|
||||
}
|
||||
|
||||
static u32 gsc_uc_get_fw_status(struct intel_uncore *uncore)
|
||||
{
|
||||
intel_wakeref_t wakeref;
|
||||
u32 fw_status = 0;
|
||||
|
||||
with_intel_runtime_pm(uncore->rpm, wakeref)
|
||||
fw_status = intel_uncore_read(uncore, GSC_FW_STATUS_REG);
|
||||
|
||||
return fw_status;
|
||||
}
|
||||
|
||||
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) ==
|
||||
return REG_FIELD_GET(GSC_FW_CURRENT_STATE,
|
||||
gsc_uc_get_fw_status(gsc_uc_to_gt(gsc)->uncore)) ==
|
||||
GSC_FW_PROXY_STATE_NORMAL;
|
||||
}
|
||||
|
||||
bool intel_gsc_uc_fw_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 fw_status & GSC_FW_INIT_COMPLETE_BIT;
|
||||
return gsc_uc_get_fw_status(gsc_uc_to_gt(gsc)->uncore) & GSC_FW_INIT_COMPLETE_BIT;
|
||||
}
|
||||
|
||||
static int emit_gsc_fw_load(struct i915_request *rq, struct intel_gsc_uc *gsc)
|
||||
|
@ -384,6 +384,7 @@ int intel_huc_init(struct intel_huc *huc)
|
||||
|
||||
vma = intel_guc_allocate_vma(>->uc.guc, PXP43_HUC_AUTH_INOUT_SIZE * 2);
|
||||
if (IS_ERR(vma)) {
|
||||
err = PTR_ERR(vma);
|
||||
huc_info(huc, "Failed to allocate heci pkt\n");
|
||||
goto out;
|
||||
}
|
||||
|
@ -1816,7 +1816,7 @@ static const struct drm_driver i915_drm_driver = {
|
||||
.open = i915_driver_open,
|
||||
.lastclose = i915_driver_lastclose,
|
||||
.postclose = i915_driver_postclose,
|
||||
.show_fdinfo = i915_drm_client_fdinfo,
|
||||
.show_fdinfo = PTR_IF(IS_ENABLED(CONFIG_PROC_FS), i915_drm_client_fdinfo),
|
||||
|
||||
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
|
||||
.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
|
||||
|
@ -47,8 +47,6 @@ static inline void i915_drm_client_put(struct i915_drm_client *client)
|
||||
|
||||
struct i915_drm_client *i915_drm_client_alloc(void);
|
||||
|
||||
#ifdef CONFIG_PROC_FS
|
||||
void i915_drm_client_fdinfo(struct drm_printer *p, struct drm_file *file);
|
||||
#endif
|
||||
|
||||
#endif /* !__I915_DRM_CLIENT_H__ */
|
||||
|
Loading…
Reference in New Issue
Block a user