updating ipts to be more compatible with newer i915 modules
This commit is contained in:
parent
e43b8817a1
commit
bc2d4e51f7
|
@ -680,9 +680,8 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
|||
|
||||
drm_kms_helper_poll_init(dev);
|
||||
|
||||
pr_info(">> let init ipts\n");
|
||||
if (INTEL_GEN(dev_priv) >= 9 && i915.enable_guc_submission)
|
||||
intel_ipts_init(dev);
|
||||
intel_ipts_init(dev);
|
||||
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@ i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
|
|||
* the alignment of the buddy allocation will naturally match.
|
||||
*/
|
||||
phys = drm_pci_alloc(obj->base.dev,
|
||||
obj->base.size,
|
||||
roundup_pow_of_two(obj->base.size),
|
||||
roundup_pow_of_two(obj->base.size));
|
||||
if (!phys)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
|
|
@ -1358,7 +1358,7 @@ int i915_guc_ipts_submission_enable(struct drm_i915_private *dev_priv,
|
|||
/* client for execbuf submission */
|
||||
client = guc_client_alloc(dev_priv,
|
||||
INTEL_INFO(dev_priv)->ring_mask,
|
||||
GUC_CLIENT_PRIORITY_KMD_NORMAL,
|
||||
GUC_CLIENT_PRIORITY_NORMAL,
|
||||
ctx);
|
||||
if (!client) {
|
||||
DRM_ERROR("Failed to create normal GuC client!\n");
|
||||
|
@ -1387,7 +1387,7 @@ void i915_guc_ipts_reacquire_doorbell(struct drm_i915_private *dev_priv)
|
|||
{
|
||||
struct intel_guc *guc = &dev_priv->guc;
|
||||
|
||||
int err = __guc_allocate_doorbell(guc, guc->ipts_client);
|
||||
int err = __guc_allocate_doorbell(guc, guc->ipts_client->stage_id);
|
||||
|
||||
if (err)
|
||||
DRM_ERROR("Not able to reacquire IPTS doorbell\n");
|
||||
|
|
|
@ -56,8 +56,8 @@ struct i915_params i915 __read_mostly = {
|
|||
.verbose_state_checks = 1,
|
||||
.nuclear_pageflip = 0,
|
||||
.edp_vswing = 0,
|
||||
.enable_guc_loading = 0,
|
||||
.enable_guc_submission = 0,
|
||||
.enable_guc_loading = 1,
|
||||
.enable_guc_submission = 1,
|
||||
.guc_log_level = -1,
|
||||
.guc_firmware_path = NULL,
|
||||
.huc_firmware_path = NULL,
|
||||
|
@ -225,12 +225,12 @@ MODULE_PARM_DESC(edp_vswing,
|
|||
module_param_named_unsafe(enable_guc_loading, i915.enable_guc_loading, int, 0400);
|
||||
MODULE_PARM_DESC(enable_guc_loading,
|
||||
"Enable GuC firmware loading "
|
||||
"(-1=auto, 0=never [default], 1=if available, 2=required)");
|
||||
"(-1=auto, 0=never, 1=if available [default], 2=required)");
|
||||
|
||||
module_param_named_unsafe(enable_guc_submission, i915.enable_guc_submission, int, 0400);
|
||||
MODULE_PARM_DESC(enable_guc_submission,
|
||||
"Enable GuC submission "
|
||||
"(-1=auto, 0=never [default], 1=if available, 2=required)");
|
||||
"(-1=auto, 0=never, 1=if available [default], 2=required)");
|
||||
|
||||
module_param_named(guc_log_level, i915.guc_log_level, int, 0400);
|
||||
MODULE_PARM_DESC(guc_log_level,
|
||||
|
|
|
@ -69,7 +69,7 @@ typedef struct intel_ipts_object {
|
|||
|
||||
static intel_ipts_object_t *ipts_object_create(size_t size, u32 flags)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
|
||||
struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
|
||||
intel_ipts_object_t *obj = NULL;
|
||||
struct drm_i915_gem_object *gem_obj = NULL;
|
||||
int ret = 0;
|
||||
|
@ -132,7 +132,7 @@ static int ipts_object_pin(intel_ipts_object_t* obj,
|
|||
{
|
||||
struct i915_address_space *vm = NULL;
|
||||
struct i915_vma *vma = NULL;
|
||||
struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
|
||||
struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
|
||||
int ret = 0;
|
||||
|
||||
if (ipts_ctx->ppgtt) {
|
||||
|
@ -172,7 +172,8 @@ static void ipts_object_unmap(intel_ipts_object_t* obj)
|
|||
static int create_ipts_context(void)
|
||||
{
|
||||
struct i915_gem_context *ipts_ctx = NULL;
|
||||
struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
|
||||
struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
|
||||
struct intel_ring *pin_ret;
|
||||
int ret = 0;
|
||||
|
||||
/* Initialize the context right away.*/
|
||||
|
@ -196,9 +197,9 @@ static int create_ipts_context(void)
|
|||
goto err_ctx;
|
||||
}
|
||||
|
||||
ret = execlists_context_pin(dev_priv->engine[RCS], ipts_ctx);
|
||||
if (ret) {
|
||||
DRM_DEBUG("lr context pinning failed : %d\n", ret);
|
||||
pin_ret = execlists_context_pin(dev_priv->engine[RCS], ipts_ctx);
|
||||
if (IS_ERR(pin_ret)) {
|
||||
DRM_DEBUG("lr context pinning failed : %ld\n", PTR_ERR(pin_ret));
|
||||
goto err_ctx;
|
||||
}
|
||||
|
||||
|
@ -225,7 +226,7 @@ err_unlock:
|
|||
static void destroy_ipts_context(void)
|
||||
{
|
||||
struct i915_gem_context *ipts_ctx = NULL;
|
||||
struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
|
||||
struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
|
||||
int ret = 0;
|
||||
|
||||
ipts_ctx = intel_ipts.ipts_context;
|
||||
|
@ -308,7 +309,7 @@ static int intel_ipts_get_wq_info(uint64_t gfx_handle,
|
|||
|
||||
static int set_wq_info(void)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
|
||||
struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
|
||||
struct intel_guc *guc = &dev_priv->guc;
|
||||
struct i915_guc_client *client;
|
||||
struct guc_process_desc *desc;
|
||||
|
@ -402,7 +403,7 @@ static int intel_ipts_map_buffer(u64 gfx_handle, intel_ipts_mapbuffer_t *mapbuf)
|
|||
{
|
||||
intel_ipts_object_t* obj;
|
||||
struct i915_gem_context *ipts_ctx = NULL;
|
||||
struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
|
||||
struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
|
||||
struct i915_address_space *vm = NULL;
|
||||
struct i915_vma *vma = NULL;
|
||||
int ret = 0;
|
||||
|
@ -482,7 +483,7 @@ static int intel_ipts_unmap_buffer(uint64_t gfx_handle, uint64_t buf_handle)
|
|||
|
||||
int intel_ipts_connect(intel_ipts_connect_t *ipts_connect)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = intel_ipts.dev->dev_private;
|
||||
struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
|
||||
int ret = 0;
|
||||
|
||||
if (!intel_ipts.initialized)
|
||||
|
@ -584,6 +585,8 @@ int intel_ipts_init(struct drm_device *dev)
|
|||
{
|
||||
int ret = 0;
|
||||
|
||||
pr_info("ipts: initializing ipts\n");
|
||||
|
||||
intel_ipts.dev = dev;
|
||||
INIT_DELAYED_WORK(&intel_ipts.reacquire_db_work, reacquire_db_work_func);
|
||||
|
||||
|
|
|
@ -67,6 +67,8 @@ static void disconnect_gfx(ipts_info_t *ipts)
|
|||
intel_ipts_disconnect(ipts->gfx_info.gfx_handle);
|
||||
}
|
||||
|
||||
#define RUN_DBG_THREAD
|
||||
|
||||
#ifdef RUN_DBG_THREAD
|
||||
#include "../mei/mei_dev.h"
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ static int allocate_common_resource(ipts_info_t *ipts)
|
|||
addr = dmam_alloc_coherent(&ipts->cldev->dev,
|
||||
buffer_size,
|
||||
&dma_addr,
|
||||
GFP_ATOMIC|GFP_DMA32);
|
||||
GFP_ATOMIC|__GFP_ZERO);
|
||||
if (addr == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -76,7 +76,7 @@ static int allocate_common_resource(ipts_info_t *ipts)
|
|||
feedback_buffer[i].addr = dmam_alloc_coherent(&ipts->cldev->dev,
|
||||
ipts->device_info.feedback_size,
|
||||
&feedback_buffer[i].dma_addr,
|
||||
GFP_ATOMIC|GFP_DMA32);
|
||||
GFP_ATOMIC|__GFP_ZERO);
|
||||
|
||||
if (feedback_buffer[i].addr == NULL) {
|
||||
ret = -ENOMEM;
|
||||
|
@ -110,7 +110,7 @@ static int allocate_hid_resource(ipts_info_t *ipts)
|
|||
buffer_hid->addr = dmam_alloc_coherent(&ipts->cldev->dev,
|
||||
ipts->device_info.frame_size,
|
||||
&buffer_hid->dma_addr,
|
||||
GFP_ATOMIC|GFP_DMA32);
|
||||
GFP_ATOMIC|__GFP_ZERO);
|
||||
if (buffer_hid->addr == NULL) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue