Commit bf9e8429 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin

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