Commit 5afc8b49 authored by Sagar Arun Kamble's avatar Sagar Arun Kamble Committed by Chris Wilson

drm/i915/guc: Rename i915_guc_client struct to intel_guc_client

GuC submission clients are currently being used in kernel only hence
update the structure name to intel_guc_client.
Signed-off-by: default avatarSagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michal Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Acked-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Acked-by: default avatarJoonas Lahtinen <joonas.lahtinen@linux.intel.com>
Acked-by: default avatarOscar Mateo <oscar.mateo@intel.com>
Reviewed-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1510839162-25197-5-git-send-email-sagar.a.kamble@intel.comSigned-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
parent db14d0c5
...@@ -2433,7 +2433,7 @@ static void i915_guc_log_info(struct seq_file *m, ...@@ -2433,7 +2433,7 @@ static void i915_guc_log_info(struct seq_file *m,
static void i915_guc_client_info(struct seq_file *m, static void i915_guc_client_info(struct seq_file *m,
struct drm_i915_private *dev_priv, struct drm_i915_private *dev_priv,
struct i915_guc_client *client) struct intel_guc_client *client)
{ {
struct intel_engine_cs *engine; struct intel_engine_cs *engine;
enum intel_engine_id id; enum intel_engine_id id;
...@@ -2498,7 +2498,7 @@ static int i915_guc_stage_pool(struct seq_file *m, void *data) ...@@ -2498,7 +2498,7 @@ static int i915_guc_stage_pool(struct seq_file *m, void *data)
struct drm_i915_private *dev_priv = node_to_i915(m->private); struct drm_i915_private *dev_priv = node_to_i915(m->private);
const struct intel_guc *guc = &dev_priv->guc; const struct intel_guc *guc = &dev_priv->guc;
struct guc_stage_desc *desc = guc->stage_desc_pool_vaddr; struct guc_stage_desc *desc = guc->stage_desc_pool_vaddr;
struct i915_guc_client *client = guc->execbuf_client; struct intel_guc_client *client = guc->execbuf_client;
unsigned int tmp; unsigned int tmp;
int index; int index;
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
* DOC: GuC-based command submission * DOC: GuC-based command submission
* *
* GuC client: * GuC client:
* A i915_guc_client refers to a submission path through GuC. Currently, there * A intel_guc_client refers to a submission path through GuC. Currently, there
* are two clients. One of them (the execbuf_client) is charged with all * are two clients. One of them (the execbuf_client) is charged with all
* submissions to the GuC, the other one (preempt_client) is responsible for * submissions to the GuC, the other one (preempt_client) is responsible for
* preempting the execbuf_client. This struct is the owner of a doorbell, a * preempting the execbuf_client. This struct is the owner of a doorbell, a
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
* GuC stage descriptor: * GuC stage descriptor:
* During initialization, the driver allocates a static pool of 1024 such * During initialization, the driver allocates a static pool of 1024 such
* descriptors, and shares them with the GuC. * descriptors, and shares them with the GuC.
* Currently, there exists a 1:1 mapping between a i915_guc_client and a * Currently, there exists a 1:1 mapping between a intel_guc_client and a
* guc_stage_desc (via the client's stage_id), so effectively only one * guc_stage_desc (via the client's stage_id), so effectively only one
* gets used. This stage descriptor lets the GuC know about the doorbell, * gets used. This stage descriptor lets the GuC know about the doorbell,
* workqueue and process descriptor. Theoretically, it also lets the GuC * workqueue and process descriptor. Theoretically, it also lets the GuC
...@@ -82,13 +82,13 @@ ...@@ -82,13 +82,13 @@
* *
*/ */
static inline bool is_high_priority(struct i915_guc_client* client) static inline bool is_high_priority(struct intel_guc_client *client)
{ {
return (client->priority == GUC_CLIENT_PRIORITY_KMD_HIGH || return (client->priority == GUC_CLIENT_PRIORITY_KMD_HIGH ||
client->priority == GUC_CLIENT_PRIORITY_HIGH); client->priority == GUC_CLIENT_PRIORITY_HIGH);
} }
static int __reserve_doorbell(struct i915_guc_client *client) static int __reserve_doorbell(struct intel_guc_client *client)
{ {
unsigned long offset; unsigned long offset;
unsigned long end; unsigned long end;
...@@ -120,7 +120,7 @@ static int __reserve_doorbell(struct i915_guc_client *client) ...@@ -120,7 +120,7 @@ static int __reserve_doorbell(struct i915_guc_client *client)
return 0; return 0;
} }
static void __unreserve_doorbell(struct i915_guc_client *client) static void __unreserve_doorbell(struct intel_guc_client *client)
{ {
GEM_BUG_ON(client->doorbell_id == GUC_DOORBELL_INVALID); GEM_BUG_ON(client->doorbell_id == GUC_DOORBELL_INVALID);
...@@ -152,7 +152,7 @@ static int __guc_deallocate_doorbell(struct intel_guc *guc, u32 stage_id) ...@@ -152,7 +152,7 @@ static int __guc_deallocate_doorbell(struct intel_guc *guc, u32 stage_id)
return intel_guc_send(guc, action, ARRAY_SIZE(action)); return intel_guc_send(guc, action, ARRAY_SIZE(action));
} }
static struct guc_stage_desc *__get_stage_desc(struct i915_guc_client *client) static struct guc_stage_desc *__get_stage_desc(struct intel_guc_client *client)
{ {
struct guc_stage_desc *base = client->guc->stage_desc_pool_vaddr; struct guc_stage_desc *base = client->guc->stage_desc_pool_vaddr;
...@@ -166,7 +166,7 @@ static struct guc_stage_desc *__get_stage_desc(struct i915_guc_client *client) ...@@ -166,7 +166,7 @@ static struct guc_stage_desc *__get_stage_desc(struct i915_guc_client *client)
* client object which contains the page being used for the doorbell * client object which contains the page being used for the doorbell
*/ */
static void __update_doorbell_desc(struct i915_guc_client *client, u16 new_id) static void __update_doorbell_desc(struct intel_guc_client *client, u16 new_id)
{ {
struct guc_stage_desc *desc; struct guc_stage_desc *desc;
...@@ -175,12 +175,12 @@ static void __update_doorbell_desc(struct i915_guc_client *client, u16 new_id) ...@@ -175,12 +175,12 @@ static void __update_doorbell_desc(struct i915_guc_client *client, u16 new_id)
desc->db_id = new_id; desc->db_id = new_id;
} }
static struct guc_doorbell_info *__get_doorbell(struct i915_guc_client *client) static struct guc_doorbell_info *__get_doorbell(struct intel_guc_client *client)
{ {
return client->vaddr + client->doorbell_offset; return client->vaddr + client->doorbell_offset;
} }
static bool has_doorbell(struct i915_guc_client *client) static bool has_doorbell(struct intel_guc_client *client)
{ {
if (client->doorbell_id == GUC_DOORBELL_INVALID) if (client->doorbell_id == GUC_DOORBELL_INVALID)
return false; return false;
...@@ -188,7 +188,7 @@ static bool has_doorbell(struct i915_guc_client *client) ...@@ -188,7 +188,7 @@ static bool has_doorbell(struct i915_guc_client *client)
return test_bit(client->doorbell_id, client->guc->doorbell_bitmap); return test_bit(client->doorbell_id, client->guc->doorbell_bitmap);
} }
static int __create_doorbell(struct i915_guc_client *client) static int __create_doorbell(struct intel_guc_client *client)
{ {
struct guc_doorbell_info *doorbell; struct guc_doorbell_info *doorbell;
int err; int err;
...@@ -207,7 +207,7 @@ static int __create_doorbell(struct i915_guc_client *client) ...@@ -207,7 +207,7 @@ static int __create_doorbell(struct i915_guc_client *client)
return err; return err;
} }
static int __destroy_doorbell(struct i915_guc_client *client) static int __destroy_doorbell(struct intel_guc_client *client)
{ {
struct drm_i915_private *dev_priv = guc_to_i915(client->guc); struct drm_i915_private *dev_priv = guc_to_i915(client->guc);
struct guc_doorbell_info *doorbell; struct guc_doorbell_info *doorbell;
...@@ -228,7 +228,7 @@ static int __destroy_doorbell(struct i915_guc_client *client) ...@@ -228,7 +228,7 @@ static int __destroy_doorbell(struct i915_guc_client *client)
return __guc_deallocate_doorbell(client->guc, client->stage_id); return __guc_deallocate_doorbell(client->guc, client->stage_id);
} }
static int create_doorbell(struct i915_guc_client *client) static int create_doorbell(struct intel_guc_client *client)
{ {
int ret; int ret;
...@@ -250,7 +250,7 @@ static int create_doorbell(struct i915_guc_client *client) ...@@ -250,7 +250,7 @@ static int create_doorbell(struct i915_guc_client *client)
return ret; return ret;
} }
static int destroy_doorbell(struct i915_guc_client *client) static int destroy_doorbell(struct intel_guc_client *client)
{ {
int err; int err;
...@@ -286,7 +286,7 @@ static unsigned long __select_cacheline(struct intel_guc* guc) ...@@ -286,7 +286,7 @@ static unsigned long __select_cacheline(struct intel_guc* guc)
} }
static inline struct guc_process_desc * static inline struct guc_process_desc *
__get_process_desc(struct i915_guc_client *client) __get_process_desc(struct intel_guc_client *client)
{ {
return client->vaddr + client->proc_desc_offset; return client->vaddr + client->proc_desc_offset;
} }
...@@ -295,7 +295,7 @@ __get_process_desc(struct i915_guc_client *client) ...@@ -295,7 +295,7 @@ __get_process_desc(struct i915_guc_client *client)
* Initialise the process descriptor shared with the GuC firmware. * Initialise the process descriptor shared with the GuC firmware.
*/ */
static void guc_proc_desc_init(struct intel_guc *guc, static void guc_proc_desc_init(struct intel_guc *guc,
struct i915_guc_client *client) struct intel_guc_client *client)
{ {
struct guc_process_desc *desc; struct guc_process_desc *desc;
...@@ -355,7 +355,7 @@ static void guc_stage_desc_pool_destroy(struct intel_guc *guc) ...@@ -355,7 +355,7 @@ static void guc_stage_desc_pool_destroy(struct intel_guc *guc)
* write queue, etc). * write queue, etc).
*/ */
static void guc_stage_desc_init(struct intel_guc *guc, static void guc_stage_desc_init(struct intel_guc *guc,
struct i915_guc_client *client) struct intel_guc_client *client)
{ {
struct drm_i915_private *dev_priv = guc_to_i915(guc); struct drm_i915_private *dev_priv = guc_to_i915(guc);
struct intel_engine_cs *engine; struct intel_engine_cs *engine;
...@@ -436,7 +436,7 @@ static void guc_stage_desc_init(struct intel_guc *guc, ...@@ -436,7 +436,7 @@ static void guc_stage_desc_init(struct intel_guc *guc,
} }
static void guc_stage_desc_fini(struct intel_guc *guc, static void guc_stage_desc_fini(struct intel_guc *guc,
struct i915_guc_client *client) struct intel_guc_client *client)
{ {
struct guc_stage_desc *desc; struct guc_stage_desc *desc;
...@@ -472,7 +472,7 @@ static void guc_shared_data_destroy(struct intel_guc *guc) ...@@ -472,7 +472,7 @@ static void guc_shared_data_destroy(struct intel_guc *guc)
} }
/* Construct a Work Item and append it to the GuC's Work Queue */ /* Construct a Work Item and append it to the GuC's Work Queue */
static void guc_wq_item_append(struct i915_guc_client *client, static void guc_wq_item_append(struct intel_guc_client *client,
u32 target_engine, u32 context_desc, u32 target_engine, u32 context_desc,
u32 ring_tail, u32 fence_id) u32 ring_tail, u32 fence_id)
{ {
...@@ -517,7 +517,7 @@ static void guc_wq_item_append(struct i915_guc_client *client, ...@@ -517,7 +517,7 @@ static void guc_wq_item_append(struct i915_guc_client *client,
WRITE_ONCE(desc->tail, (wq_off + wqi_size) & (GUC_WQ_SIZE - 1)); WRITE_ONCE(desc->tail, (wq_off + wqi_size) & (GUC_WQ_SIZE - 1));
} }
static void guc_reset_wq(struct i915_guc_client *client) static void guc_reset_wq(struct intel_guc_client *client)
{ {
struct guc_process_desc *desc = __get_process_desc(client); struct guc_process_desc *desc = __get_process_desc(client);
...@@ -525,7 +525,7 @@ static void guc_reset_wq(struct i915_guc_client *client) ...@@ -525,7 +525,7 @@ static void guc_reset_wq(struct i915_guc_client *client)
desc->tail = 0; desc->tail = 0;
} }
static void guc_ring_doorbell(struct i915_guc_client *client) static void guc_ring_doorbell(struct intel_guc_client *client)
{ {
struct guc_doorbell_info *db; struct guc_doorbell_info *db;
u32 cookie; u32 cookie;
...@@ -549,7 +549,7 @@ static void guc_ring_doorbell(struct i915_guc_client *client) ...@@ -549,7 +549,7 @@ static void guc_ring_doorbell(struct i915_guc_client *client)
static void guc_add_request(struct intel_guc *guc, static void guc_add_request(struct intel_guc *guc,
struct drm_i915_gem_request *rq) struct drm_i915_gem_request *rq)
{ {
struct i915_guc_client *client = guc->execbuf_client; struct intel_guc_client *client = guc->execbuf_client;
struct intel_engine_cs *engine = rq->engine; struct intel_engine_cs *engine = rq->engine;
u32 ctx_desc = lower_32_bits(intel_lr_context_descriptor(rq->ctx, engine)); u32 ctx_desc = lower_32_bits(intel_lr_context_descriptor(rq->ctx, engine));
u32 ring_tail = intel_ring_set_tail(rq->ring, rq->tail) / sizeof(u64); u32 ring_tail = intel_ring_set_tail(rq->ring, rq->tail) / sizeof(u64);
...@@ -589,7 +589,7 @@ static void inject_preempt_context(struct work_struct *work) ...@@ -589,7 +589,7 @@ static void inject_preempt_context(struct work_struct *work)
struct intel_engine_cs *engine = preempt_work->engine; struct intel_engine_cs *engine = preempt_work->engine;
struct intel_guc *guc = container_of(preempt_work, typeof(*guc), struct intel_guc *guc = container_of(preempt_work, typeof(*guc),
preempt_work[engine->id]); preempt_work[engine->id]);
struct i915_guc_client *client = guc->preempt_client; struct intel_guc_client *client = guc->preempt_client;
struct guc_stage_desc *stage_desc = __get_stage_desc(client); struct guc_stage_desc *stage_desc = __get_stage_desc(client);
struct intel_ring *ring = client->owner->engine[engine->id].ring; struct intel_ring *ring = client->owner->engine[engine->id].ring;
u32 ctx_desc = lower_32_bits(intel_lr_context_descriptor(client->owner, u32 ctx_desc = lower_32_bits(intel_lr_context_descriptor(client->owner,
...@@ -866,7 +866,7 @@ static bool doorbell_ok(struct intel_guc *guc, u16 db_id) ...@@ -866,7 +866,7 @@ static bool doorbell_ok(struct intel_guc *guc, u16 db_id)
* reloaded the GuC FW) we can use this function to tell the GuC to reassign the * reloaded the GuC FW) we can use this function to tell the GuC to reassign the
* doorbell to the rightful owner. * doorbell to the rightful owner.
*/ */
static int __reset_doorbell(struct i915_guc_client* client, u16 db_id) static int __reset_doorbell(struct intel_guc_client *client, u16 db_id)
{ {
int err; int err;
...@@ -887,7 +887,7 @@ static int __reset_doorbell(struct i915_guc_client* client, u16 db_id) ...@@ -887,7 +887,7 @@ static int __reset_doorbell(struct i915_guc_client* client, u16 db_id)
*/ */
static int guc_init_doorbell_hw(struct intel_guc *guc) static int guc_init_doorbell_hw(struct intel_guc *guc)
{ {
struct i915_guc_client *client = guc->execbuf_client; struct intel_guc_client *client = guc->execbuf_client;
bool recreate_first_client = false; bool recreate_first_client = false;
u16 db_id; u16 db_id;
int ret; int ret;
...@@ -937,7 +937,7 @@ static int guc_init_doorbell_hw(struct intel_guc *guc) ...@@ -937,7 +937,7 @@ static int guc_init_doorbell_hw(struct intel_guc *guc)
} }
/** /**
* guc_client_alloc() - Allocate an i915_guc_client * guc_client_alloc() - Allocate an intel_guc_client
* @dev_priv: driver private data structure * @dev_priv: driver private data structure
* @engines: The set of engines to enable for this client * @engines: The set of engines to enable for this client
* @priority: four levels priority _CRITICAL, _HIGH, _NORMAL and _LOW * @priority: four levels priority _CRITICAL, _HIGH, _NORMAL and _LOW
...@@ -947,15 +947,15 @@ static int guc_init_doorbell_hw(struct intel_guc *guc) ...@@ -947,15 +947,15 @@ static int guc_init_doorbell_hw(struct intel_guc *guc)
* @ctx: the context that owns the client (we use the default render * @ctx: the context that owns the client (we use the default render
* context) * context)
* *
* Return: An i915_guc_client object if success, else NULL. * Return: An intel_guc_client object if success, else NULL.
*/ */
static struct i915_guc_client * static struct intel_guc_client *
guc_client_alloc(struct drm_i915_private *dev_priv, guc_client_alloc(struct drm_i915_private *dev_priv,
u32 engines, u32 engines,
u32 priority, u32 priority,
struct i915_gem_context *ctx) struct i915_gem_context *ctx)
{ {
struct i915_guc_client *client; struct intel_guc_client *client;
struct intel_guc *guc = &dev_priv->guc; struct intel_guc *guc = &dev_priv->guc;
struct i915_vma *vma; struct i915_vma *vma;
void *vaddr; void *vaddr;
...@@ -1033,7 +1033,7 @@ guc_client_alloc(struct drm_i915_private *dev_priv, ...@@ -1033,7 +1033,7 @@ guc_client_alloc(struct drm_i915_private *dev_priv,
return ERR_PTR(ret); return ERR_PTR(ret);
} }
static void guc_client_free(struct i915_guc_client *client) static void guc_client_free(struct intel_guc_client *client)
{ {
/* /*
* XXX: wait for any outstanding submissions before freeing memory. * XXX: wait for any outstanding submissions before freeing memory.
...@@ -1054,7 +1054,7 @@ static void guc_client_free(struct i915_guc_client *client) ...@@ -1054,7 +1054,7 @@ static void guc_client_free(struct i915_guc_client *client)
static int guc_clients_create(struct intel_guc *guc) static int guc_clients_create(struct intel_guc *guc)
{ {
struct drm_i915_private *dev_priv = guc_to_i915(guc); struct drm_i915_private *dev_priv = guc_to_i915(guc);
struct i915_guc_client *client; struct intel_guc_client *client;
GEM_BUG_ON(guc->execbuf_client); GEM_BUG_ON(guc->execbuf_client);
GEM_BUG_ON(guc->preempt_client); GEM_BUG_ON(guc->preempt_client);
...@@ -1086,7 +1086,7 @@ static int guc_clients_create(struct intel_guc *guc) ...@@ -1086,7 +1086,7 @@ static int guc_clients_create(struct intel_guc *guc)
static void guc_clients_destroy(struct intel_guc *guc) static void guc_clients_destroy(struct intel_guc *guc)
{ {
struct i915_guc_client *client; struct intel_guc_client *client;
client = fetch_and_zero(&guc->execbuf_client); client = fetch_and_zero(&guc->execbuf_client);
guc_client_free(client); guc_client_free(client);
......
...@@ -52,7 +52,7 @@ struct drm_i915_private; ...@@ -52,7 +52,7 @@ struct drm_i915_private;
* queue (a circular array of work items), again described in the process * queue (a circular array of work items), again described in the process
* descriptor. Work queue pages are mapped momentarily as required. * descriptor. Work queue pages are mapped momentarily as required.
*/ */
struct i915_guc_client { struct intel_guc_client {
struct i915_vma *vma; struct i915_vma *vma;
void *vaddr; void *vaddr;
struct i915_gem_context *owner; struct i915_gem_context *owner;
......
...@@ -41,7 +41,7 @@ struct guc_preempt_work { ...@@ -41,7 +41,7 @@ struct guc_preempt_work {
/* /*
* Top level structure of GuC. It handles firmware loading and manages client * Top level structure of GuC. It handles firmware loading and manages client
* pool and doorbells. intel_guc owns a i915_guc_client to replace the legacy * pool and doorbells. intel_guc owns a intel_guc_client to replace the legacy
* ExecList submission. * ExecList submission.
*/ */
struct intel_guc { struct intel_guc {
...@@ -62,8 +62,8 @@ struct intel_guc { ...@@ -62,8 +62,8 @@ struct intel_guc {
struct i915_vma *shared_data; struct i915_vma *shared_data;
void *shared_data_vaddr; void *shared_data_vaddr;
struct i915_guc_client *execbuf_client; struct intel_guc_client *execbuf_client;
struct i915_guc_client *preempt_client; struct intel_guc_client *preempt_client;
struct guc_preempt_work preempt_work[I915_NUM_ENGINES]; struct guc_preempt_work preempt_work[I915_NUM_ENGINES];
struct workqueue_struct *preempt_wq; struct workqueue_struct *preempt_wq;
......
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