forked from Minki/linux
drm/i915: Make various init functions take dev_priv
Like GEM init, GUC init, MOCS init and context creation. Enables them to lose dev_priv locals. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
This commit is contained in:
parent
12d79d7828
commit
bf9e8429ab
@ -603,9 +603,9 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
||||
if (ret)
|
||||
goto cleanup_irq;
|
||||
|
||||
intel_guc_init(dev);
|
||||
intel_guc_init(dev_priv);
|
||||
|
||||
ret = i915_gem_init(dev);
|
||||
ret = i915_gem_init(dev_priv);
|
||||
if (ret)
|
||||
goto cleanup_irq;
|
||||
|
||||
@ -626,11 +626,11 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
||||
return 0;
|
||||
|
||||
cleanup_gem:
|
||||
if (i915_gem_suspend(dev))
|
||||
if (i915_gem_suspend(dev_priv))
|
||||
DRM_ERROR("failed to idle hardware; continuing to unload!\n");
|
||||
i915_gem_fini(dev_priv);
|
||||
cleanup_irq:
|
||||
intel_guc_fini(dev);
|
||||
intel_guc_fini(dev_priv);
|
||||
drm_irq_uninstall(dev);
|
||||
intel_teardown_gmbus(dev);
|
||||
cleanup_csr:
|
||||
@ -1283,7 +1283,7 @@ void i915_driver_unload(struct drm_device *dev)
|
||||
|
||||
intel_fbdev_fini(dev);
|
||||
|
||||
if (i915_gem_suspend(dev))
|
||||
if (i915_gem_suspend(dev_priv))
|
||||
DRM_ERROR("failed to idle hardware; continuing to unload!\n");
|
||||
|
||||
intel_display_power_get(dev_priv, POWER_DOMAIN_INIT);
|
||||
@ -1320,7 +1320,7 @@ void i915_driver_unload(struct drm_device *dev)
|
||||
/* Flush any outstanding unpin_work. */
|
||||
drain_workqueue(dev_priv->wq);
|
||||
|
||||
intel_guc_fini(dev);
|
||||
intel_guc_fini(dev_priv);
|
||||
i915_gem_fini(dev_priv);
|
||||
intel_fbc_cleanup_cfb(dev_priv);
|
||||
|
||||
@ -1425,14 +1425,14 @@ static int i915_drm_suspend(struct drm_device *dev)
|
||||
|
||||
pci_save_state(pdev);
|
||||
|
||||
error = i915_gem_suspend(dev);
|
||||
error = i915_gem_suspend(dev_priv);
|
||||
if (error) {
|
||||
dev_err(&pdev->dev,
|
||||
"GEM idle failed, resume might fail\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
intel_guc_suspend(dev);
|
||||
intel_guc_suspend(dev_priv);
|
||||
|
||||
intel_display_suspend(dev);
|
||||
|
||||
@ -1568,7 +1568,7 @@ static int i915_drm_resume(struct drm_device *dev)
|
||||
|
||||
intel_csr_ucode_resume(dev_priv);
|
||||
|
||||
i915_gem_resume(dev);
|
||||
i915_gem_resume(dev_priv);
|
||||
|
||||
i915_restore_state(dev);
|
||||
intel_pps_unlock_regs_wa(dev_priv);
|
||||
@ -1591,13 +1591,13 @@ static int i915_drm_resume(struct drm_device *dev)
|
||||
drm_mode_config_reset(dev);
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
if (i915_gem_init_hw(dev)) {
|
||||
if (i915_gem_init_hw(dev_priv)) {
|
||||
DRM_ERROR("failed to re-initialize GPU, declaring wedged!\n");
|
||||
i915_gem_set_wedged(dev_priv);
|
||||
}
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
|
||||
intel_guc_resume(dev);
|
||||
intel_guc_resume(dev_priv);
|
||||
|
||||
intel_modeset_init_hw(dev);
|
||||
|
||||
@ -1770,11 +1770,10 @@ static void enable_engines_irq(struct drm_i915_private *dev_priv)
|
||||
*/
|
||||
void i915_reset(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_device *dev = &dev_priv->drm;
|
||||
struct i915_gpu_error *error = &dev_priv->gpu_error;
|
||||
int ret;
|
||||
|
||||
lockdep_assert_held(&dev->struct_mutex);
|
||||
lockdep_assert_held(&dev_priv->drm.struct_mutex);
|
||||
|
||||
if (!test_and_clear_bit(I915_RESET_IN_PROGRESS, &error->flags))
|
||||
return;
|
||||
@ -1814,7 +1813,7 @@ void i915_reset(struct drm_i915_private *dev_priv)
|
||||
* was running at the time of the reset (i.e. we weren't VT
|
||||
* switched away).
|
||||
*/
|
||||
ret = i915_gem_init_hw(dev);
|
||||
ret = i915_gem_init_hw(dev_priv);
|
||||
if (ret) {
|
||||
DRM_ERROR("Failed hw init on reset %d\n", ret);
|
||||
goto error;
|
||||
@ -2328,7 +2327,7 @@ static int intel_runtime_suspend(struct device *kdev)
|
||||
*/
|
||||
i915_gem_runtime_suspend(dev_priv);
|
||||
|
||||
intel_guc_suspend(dev);
|
||||
intel_guc_suspend(dev_priv);
|
||||
|
||||
intel_runtime_pm_disable_interrupts(dev_priv);
|
||||
|
||||
@ -2413,7 +2412,7 @@ static int intel_runtime_resume(struct device *kdev)
|
||||
if (intel_uncore_unclaimed_mmio(dev_priv))
|
||||
DRM_DEBUG_DRIVER("Unclaimed access during suspend, bios?\n");
|
||||
|
||||
intel_guc_resume(dev);
|
||||
intel_guc_resume(dev_priv);
|
||||
|
||||
if (IS_GEN6(dev_priv))
|
||||
intel_init_pch_refclk(dev_priv);
|
||||
|
@ -3177,14 +3177,14 @@ static inline u32 i915_reset_count(struct i915_gpu_error *error)
|
||||
void i915_gem_reset(struct drm_i915_private *dev_priv);
|
||||
void i915_gem_set_wedged(struct drm_i915_private *dev_priv);
|
||||
void i915_gem_clflush_object(struct drm_i915_gem_object *obj, bool force);
|
||||
int __must_check i915_gem_init(struct drm_device *dev);
|
||||
int __must_check i915_gem_init_hw(struct drm_device *dev);
|
||||
int __must_check i915_gem_init(struct drm_i915_private *dev_priv);
|
||||
int __must_check i915_gem_init_hw(struct drm_i915_private *dev_priv);
|
||||
void i915_gem_init_swizzling(struct drm_i915_private *dev_priv);
|
||||
void i915_gem_cleanup_engines(struct drm_device *dev);
|
||||
int __must_check i915_gem_wait_for_idle(struct drm_i915_private *dev_priv,
|
||||
unsigned int flags);
|
||||
int __must_check i915_gem_suspend(struct drm_device *dev);
|
||||
void i915_gem_resume(struct drm_device *dev);
|
||||
int __must_check i915_gem_suspend(struct drm_i915_private *dev_priv);
|
||||
void i915_gem_resume(struct drm_i915_private *dev_priv);
|
||||
int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
|
||||
int i915_gem_object_wait(struct drm_i915_gem_object *obj,
|
||||
unsigned int flags,
|
||||
@ -3267,7 +3267,7 @@ void i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
||||
struct sg_table *pages);
|
||||
|
||||
/* i915_gem_context.c */
|
||||
int __must_check i915_gem_context_init(struct drm_device *dev);
|
||||
int __must_check i915_gem_context_init(struct drm_i915_private *dev_priv);
|
||||
void i915_gem_context_lost(struct drm_i915_private *dev_priv);
|
||||
void i915_gem_context_fini(struct drm_device *dev);
|
||||
int i915_gem_context_open(struct drm_device *dev, struct drm_file *file);
|
||||
|
@ -4194,9 +4194,9 @@ static void assert_kernel_context_is_current(struct drm_i915_private *dev_priv)
|
||||
GEM_BUG_ON(engine->last_context != dev_priv->kernel_context);
|
||||
}
|
||||
|
||||
int i915_gem_suspend(struct drm_device *dev)
|
||||
int i915_gem_suspend(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct drm_device *dev = &dev_priv->drm;
|
||||
int ret;
|
||||
|
||||
intel_suspend_gt_powersave(dev_priv);
|
||||
@ -4270,9 +4270,9 @@ err:
|
||||
return ret;
|
||||
}
|
||||
|
||||
void i915_gem_resume(struct drm_device *dev)
|
||||
void i915_gem_resume(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct drm_device *dev = &dev_priv->drm;
|
||||
|
||||
WARN_ON(dev_priv->gt.awake);
|
||||
|
||||
@ -4337,9 +4337,8 @@ static void init_unused_rings(struct drm_i915_private *dev_priv)
|
||||
}
|
||||
|
||||
int
|
||||
i915_gem_init_hw(struct drm_device *dev)
|
||||
i915_gem_init_hw(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct intel_engine_cs *engine;
|
||||
enum intel_engine_id id;
|
||||
int ret;
|
||||
@ -4393,10 +4392,10 @@ i915_gem_init_hw(struct drm_device *dev)
|
||||
goto out;
|
||||
}
|
||||
|
||||
intel_mocs_init_l3cc_table(dev);
|
||||
intel_mocs_init_l3cc_table(dev_priv);
|
||||
|
||||
/* We can't enable contexts until all firmware is loaded */
|
||||
ret = intel_guc_setup(dev);
|
||||
ret = intel_guc_setup(dev_priv);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
@ -4426,12 +4425,11 @@ bool intel_sanitize_semaphores(struct drm_i915_private *dev_priv, int value)
|
||||
return true;
|
||||
}
|
||||
|
||||
int i915_gem_init(struct drm_device *dev)
|
||||
int i915_gem_init(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
int ret;
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
mutex_lock(&dev_priv->drm.struct_mutex);
|
||||
|
||||
if (!i915.enable_execlists) {
|
||||
dev_priv->gt.resume = intel_legacy_submission_resume;
|
||||
@ -4455,15 +4453,15 @@ int i915_gem_init(struct drm_device *dev)
|
||||
if (ret)
|
||||
goto out_unlock;
|
||||
|
||||
ret = i915_gem_context_init(dev);
|
||||
ret = i915_gem_context_init(dev_priv);
|
||||
if (ret)
|
||||
goto out_unlock;
|
||||
|
||||
ret = intel_engines_init(dev);
|
||||
ret = intel_engines_init(dev_priv);
|
||||
if (ret)
|
||||
goto out_unlock;
|
||||
|
||||
ret = i915_gem_init_hw(dev);
|
||||
ret = i915_gem_init_hw(dev_priv);
|
||||
if (ret == -EIO) {
|
||||
/* Allow engine initialisation to fail by marking the GPU as
|
||||
* wedged. But we only want to do this where the GPU is angry,
|
||||
@ -4476,7 +4474,7 @@ int i915_gem_init(struct drm_device *dev)
|
||||
|
||||
out_unlock:
|
||||
intel_uncore_forcewake_put(dev_priv, FORCEWAKE_ALL);
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
mutex_unlock(&dev_priv->drm.struct_mutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -167,13 +167,12 @@ void i915_gem_context_free(struct kref *ctx_ref)
|
||||
}
|
||||
|
||||
static struct drm_i915_gem_object *
|
||||
alloc_context_obj(struct drm_device *dev, u64 size)
|
||||
alloc_context_obj(struct drm_i915_private *dev_priv, u64 size)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct drm_i915_gem_object *obj;
|
||||
int ret;
|
||||
|
||||
lockdep_assert_held(&dev->struct_mutex);
|
||||
lockdep_assert_held(&dev_priv->drm.struct_mutex);
|
||||
|
||||
obj = i915_gem_object_create(dev_priv, size);
|
||||
if (IS_ERR(obj))
|
||||
@ -260,10 +259,9 @@ static int assign_hw_id(struct drm_i915_private *dev_priv, unsigned *out)
|
||||
}
|
||||
|
||||
static struct i915_gem_context *
|
||||
__create_hw_context(struct drm_device *dev,
|
||||
__create_hw_context(struct drm_i915_private *dev_priv,
|
||||
struct drm_i915_file_private *file_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct i915_gem_context *ctx;
|
||||
int ret;
|
||||
|
||||
@ -287,7 +285,7 @@ __create_hw_context(struct drm_device *dev,
|
||||
struct drm_i915_gem_object *obj;
|
||||
struct i915_vma *vma;
|
||||
|
||||
obj = alloc_context_obj(dev, dev_priv->hw_context_size);
|
||||
obj = alloc_context_obj(dev_priv, dev_priv->hw_context_size);
|
||||
if (IS_ERR(obj)) {
|
||||
ret = PTR_ERR(obj);
|
||||
goto err_out;
|
||||
@ -353,21 +351,21 @@ err_out:
|
||||
* well as an idle case.
|
||||
*/
|
||||
static struct i915_gem_context *
|
||||
i915_gem_create_context(struct drm_device *dev,
|
||||
i915_gem_create_context(struct drm_i915_private *dev_priv,
|
||||
struct drm_i915_file_private *file_priv)
|
||||
{
|
||||
struct i915_gem_context *ctx;
|
||||
|
||||
lockdep_assert_held(&dev->struct_mutex);
|
||||
lockdep_assert_held(&dev_priv->drm.struct_mutex);
|
||||
|
||||
ctx = __create_hw_context(dev, file_priv);
|
||||
ctx = __create_hw_context(dev_priv, file_priv);
|
||||
if (IS_ERR(ctx))
|
||||
return ctx;
|
||||
|
||||
if (USES_FULL_PPGTT(dev)) {
|
||||
if (USES_FULL_PPGTT(dev_priv)) {
|
||||
struct i915_hw_ppgtt *ppgtt;
|
||||
|
||||
ppgtt = i915_ppgtt_create(to_i915(dev), file_priv, ctx->name);
|
||||
ppgtt = i915_ppgtt_create(dev_priv, file_priv, ctx->name);
|
||||
if (IS_ERR(ppgtt)) {
|
||||
DRM_DEBUG_DRIVER("PPGTT setup failed (%ld)\n",
|
||||
PTR_ERR(ppgtt));
|
||||
@ -407,7 +405,7 @@ i915_gem_context_create_gvt(struct drm_device *dev)
|
||||
if (ret)
|
||||
return ERR_PTR(ret);
|
||||
|
||||
ctx = i915_gem_create_context(dev, NULL);
|
||||
ctx = i915_gem_create_context(to_i915(dev), NULL);
|
||||
if (IS_ERR(ctx))
|
||||
goto out;
|
||||
|
||||
@ -433,9 +431,8 @@ static void i915_gem_context_unpin(struct i915_gem_context *ctx,
|
||||
}
|
||||
}
|
||||
|
||||
int i915_gem_context_init(struct drm_device *dev)
|
||||
int i915_gem_context_init(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct i915_gem_context *ctx;
|
||||
|
||||
/* Init should only be called once per module load. Eventually the
|
||||
@ -469,7 +466,7 @@ int i915_gem_context_init(struct drm_device *dev)
|
||||
}
|
||||
}
|
||||
|
||||
ctx = i915_gem_create_context(dev, NULL);
|
||||
ctx = i915_gem_create_context(dev_priv, NULL);
|
||||
if (IS_ERR(ctx)) {
|
||||
DRM_ERROR("Failed to create default global context (error %ld)\n",
|
||||
PTR_ERR(ctx));
|
||||
@ -551,7 +548,7 @@ int i915_gem_context_open(struct drm_device *dev, struct drm_file *file)
|
||||
idr_init(&file_priv->context_idr);
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
ctx = i915_gem_create_context(dev, file_priv);
|
||||
ctx = i915_gem_create_context(to_i915(dev), file_priv);
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
|
||||
if (IS_ERR(ctx)) {
|
||||
@ -1034,7 +1031,7 @@ int i915_gem_context_create_ioctl(struct drm_device *dev, void *data,
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ctx = i915_gem_create_context(dev, file_priv);
|
||||
ctx = i915_gem_create_context(to_i915(dev), file_priv);
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
if (IS_ERR(ctx))
|
||||
return PTR_ERR(ctx);
|
||||
|
@ -1485,11 +1485,10 @@ void i915_guc_submission_fini(struct drm_i915_private *dev_priv)
|
||||
|
||||
/**
|
||||
* intel_guc_suspend() - notify GuC entering suspend state
|
||||
* @dev: drm device
|
||||
* @dev_priv: i915 device private
|
||||
*/
|
||||
int intel_guc_suspend(struct drm_device *dev)
|
||||
int intel_guc_suspend(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct intel_guc *guc = &dev_priv->guc;
|
||||
struct i915_gem_context *ctx;
|
||||
u32 data[3];
|
||||
@ -1513,11 +1512,10 @@ int intel_guc_suspend(struct drm_device *dev)
|
||||
|
||||
/**
|
||||
* intel_guc_resume() - notify GuC resuming from suspend state
|
||||
* @dev: drm device
|
||||
* @dev_priv: i915 device private
|
||||
*/
|
||||
int intel_guc_resume(struct drm_device *dev)
|
||||
int intel_guc_resume(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct intel_guc *guc = &dev_priv->guc;
|
||||
struct i915_gem_context *ctx;
|
||||
u32 data[3];
|
||||
|
@ -111,13 +111,12 @@ intel_engine_setup(struct drm_i915_private *dev_priv,
|
||||
|
||||
/**
|
||||
* intel_engines_init() - allocate, populate and init the Engine Command Streamers
|
||||
* @dev: DRM device.
|
||||
* @dev_priv: i915 device private
|
||||
*
|
||||
* Return: non-zero if the initialization failed.
|
||||
*/
|
||||
int intel_engines_init(struct drm_device *dev)
|
||||
int intel_engines_init(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct intel_device_info *device_info = mkwrite_device_info(dev_priv);
|
||||
unsigned int ring_mask = INTEL_INFO(dev_priv)->ring_mask;
|
||||
unsigned int mask = 0;
|
||||
|
@ -437,7 +437,7 @@ static int guc_hw_reset(struct drm_i915_private *dev_priv)
|
||||
|
||||
/**
|
||||
* intel_guc_setup() - finish preparing the GuC for activity
|
||||
* @dev: drm device
|
||||
* @dev_priv: i915 device private
|
||||
*
|
||||
* Called from gem_init_hw() during driver loading and also after a GPU reset.
|
||||
*
|
||||
@ -448,9 +448,8 @@ static int guc_hw_reset(struct drm_i915_private *dev_priv)
|
||||
*
|
||||
* Return: non-zero code on error
|
||||
*/
|
||||
int intel_guc_setup(struct drm_device *dev)
|
||||
int intel_guc_setup(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw;
|
||||
const char *fw_path = guc_fw->guc_fw_path;
|
||||
int retries, ret, err;
|
||||
@ -588,10 +587,10 @@ fail:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw)
|
||||
static void guc_fw_fetch(struct drm_i915_private *dev_priv,
|
||||
struct intel_guc_fw *guc_fw)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct pci_dev *pdev = dev->pdev;
|
||||
struct pci_dev *pdev = dev_priv->drm.pdev;
|
||||
struct drm_i915_gem_object *obj;
|
||||
const struct firmware *fw = NULL;
|
||||
struct guc_css_header *css;
|
||||
@ -676,9 +675,9 @@ static void guc_fw_fetch(struct drm_device *dev, struct intel_guc_fw *guc_fw)
|
||||
guc_fw->guc_fw_major_found, guc_fw->guc_fw_minor_found,
|
||||
guc_fw->guc_fw_major_wanted, guc_fw->guc_fw_minor_wanted);
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
mutex_lock(&dev_priv->drm.struct_mutex);
|
||||
obj = i915_gem_object_create_from_data(dev_priv, fw->data, fw->size);
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
mutex_unlock(&dev_priv->drm.struct_mutex);
|
||||
if (IS_ERR_OR_NULL(obj)) {
|
||||
err = obj ? PTR_ERR(obj) : -ENOMEM;
|
||||
goto fail;
|
||||
@ -700,12 +699,12 @@ fail:
|
||||
DRM_DEBUG_DRIVER("GuC fw fetch status FAIL; err %d, fw %p, obj %p\n",
|
||||
err, fw, guc_fw->guc_fw_obj);
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
mutex_lock(&dev_priv->drm.struct_mutex);
|
||||
obj = guc_fw->guc_fw_obj;
|
||||
if (obj)
|
||||
i915_gem_object_put(obj);
|
||||
guc_fw->guc_fw_obj = NULL;
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
mutex_unlock(&dev_priv->drm.struct_mutex);
|
||||
|
||||
release_firmware(fw); /* OK even if fw is NULL */
|
||||
guc_fw->guc_fw_fetch_status = GUC_FIRMWARE_FAIL;
|
||||
@ -713,16 +712,15 @@ fail:
|
||||
|
||||
/**
|
||||
* intel_guc_init() - define parameters and fetch firmware
|
||||
* @dev: drm device
|
||||
* @dev_priv: i915 device private
|
||||
*
|
||||
* Called early during driver load, but after GEM is initialised.
|
||||
*
|
||||
* The firmware will be transferred to the GuC's memory later,
|
||||
* when intel_guc_setup() is called.
|
||||
*/
|
||||
void intel_guc_init(struct drm_device *dev)
|
||||
void intel_guc_init(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw;
|
||||
const char *fw_path;
|
||||
|
||||
@ -769,7 +767,7 @@ void intel_guc_init(struct drm_device *dev)
|
||||
|
||||
guc_fw->guc_fw_fetch_status = GUC_FIRMWARE_PENDING;
|
||||
DRM_DEBUG_DRIVER("GuC firmware pending, path %s\n", fw_path);
|
||||
guc_fw_fetch(dev, guc_fw);
|
||||
guc_fw_fetch(dev_priv, guc_fw);
|
||||
/* status must now be FAIL or SUCCESS */
|
||||
}
|
||||
|
||||
@ -777,12 +775,11 @@ void intel_guc_init(struct drm_device *dev)
|
||||
* intel_guc_fini() - clean up all allocated resources
|
||||
* @dev: drm device
|
||||
*/
|
||||
void intel_guc_fini(struct drm_device *dev)
|
||||
void intel_guc_fini(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw;
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
mutex_lock(&dev_priv->drm.struct_mutex);
|
||||
guc_interrupts_release(dev_priv);
|
||||
i915_guc_submission_disable(dev_priv);
|
||||
i915_guc_submission_fini(dev_priv);
|
||||
@ -790,7 +787,7 @@ void intel_guc_fini(struct drm_device *dev)
|
||||
if (guc_fw->guc_fw_obj)
|
||||
i915_gem_object_put(guc_fw->guc_fw_obj);
|
||||
guc_fw->guc_fw_obj = NULL;
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
mutex_unlock(&dev_priv->drm.struct_mutex);
|
||||
|
||||
guc_fw->guc_fw_fetch_status = GUC_FIRMWARE_NONE;
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ void intel_logical_ring_cleanup(struct intel_engine_cs *engine);
|
||||
int logical_render_ring_init(struct intel_engine_cs *engine);
|
||||
int logical_xcs_ring_init(struct intel_engine_cs *engine);
|
||||
|
||||
int intel_engines_init(struct drm_device *dev);
|
||||
int intel_engines_init(struct drm_i915_private *dev_priv);
|
||||
|
||||
/* Logical Ring Contexts */
|
||||
|
||||
|
@ -380,7 +380,7 @@ static int emit_mocs_l3cc_table(struct drm_i915_gem_request *req,
|
||||
|
||||
/**
|
||||
* intel_mocs_init_l3cc_table() - program the mocs control table
|
||||
* @dev: The the device to be programmed.
|
||||
* @dev_priv: i915 device private
|
||||
*
|
||||
* This function simply programs the mocs registers for the given table
|
||||
* starting at the given address. This register set is programmed in pairs.
|
||||
@ -392,9 +392,8 @@ static int emit_mocs_l3cc_table(struct drm_i915_gem_request *req,
|
||||
*
|
||||
* Return: Nothing.
|
||||
*/
|
||||
void intel_mocs_init_l3cc_table(struct drm_device *dev)
|
||||
void intel_mocs_init_l3cc_table(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = to_i915(dev);
|
||||
struct drm_i915_mocs_table table;
|
||||
unsigned int i;
|
||||
|
||||
|
@ -53,7 +53,7 @@
|
||||
#include "i915_drv.h"
|
||||
|
||||
int intel_rcs_context_init_mocs(struct drm_i915_gem_request *req);
|
||||
void intel_mocs_init_l3cc_table(struct drm_device *dev);
|
||||
void intel_mocs_init_l3cc_table(struct drm_i915_private *dev_priv);
|
||||
int intel_mocs_init_engine(struct intel_engine_cs *engine);
|
||||
|
||||
#endif
|
||||
|
@ -178,12 +178,12 @@ int intel_guc_log_flush(struct intel_guc *guc);
|
||||
int intel_guc_log_control(struct intel_guc *guc, u32 control_val);
|
||||
|
||||
/* intel_guc_loader.c */
|
||||
extern void intel_guc_init(struct drm_device *dev);
|
||||
extern int intel_guc_setup(struct drm_device *dev);
|
||||
extern void intel_guc_fini(struct drm_device *dev);
|
||||
extern void intel_guc_init(struct drm_i915_private *dev_priv);
|
||||
extern int intel_guc_setup(struct drm_i915_private *dev_priv);
|
||||
extern void intel_guc_fini(struct drm_i915_private *dev_priv);
|
||||
extern const char *intel_guc_fw_status_repr(enum intel_guc_fw_status status);
|
||||
extern int intel_guc_suspend(struct drm_device *dev);
|
||||
extern int intel_guc_resume(struct drm_device *dev);
|
||||
extern int intel_guc_suspend(struct drm_i915_private *dev_priv);
|
||||
extern int intel_guc_resume(struct drm_i915_private *dev_priv);
|
||||
|
||||
/* i915_guc_submission.c */
|
||||
int i915_guc_submission_init(struct drm_i915_private *dev_priv);
|
||||
|
Loading…
Reference in New Issue
Block a user