|
@@ -348,7 +348,7 @@ int pm_send_set_resources(struct packet_manager *pm,
|
|
pr_debug("kfd: In func %s\n", __func__);
|
|
pr_debug("kfd: In func %s\n", __func__);
|
|
|
|
|
|
mutex_lock(&pm->lock);
|
|
mutex_lock(&pm->lock);
|
|
- pm->priv_queue->acquire_packet_buffer(pm->priv_queue,
|
|
|
|
|
|
+ pm->priv_queue->ops.acquire_packet_buffer(pm->priv_queue,
|
|
sizeof(*packet) / sizeof(uint32_t),
|
|
sizeof(*packet) / sizeof(uint32_t),
|
|
(unsigned int **)&packet);
|
|
(unsigned int **)&packet);
|
|
if (packet == NULL) {
|
|
if (packet == NULL) {
|
|
@@ -375,8 +375,8 @@ int pm_send_set_resources(struct packet_manager *pm,
|
|
packet->queue_mask_lo = lower_32_bits(res->queue_mask);
|
|
packet->queue_mask_lo = lower_32_bits(res->queue_mask);
|
|
packet->queue_mask_hi = upper_32_bits(res->queue_mask);
|
|
packet->queue_mask_hi = upper_32_bits(res->queue_mask);
|
|
|
|
|
|
- pm->priv_queue->submit_packet(pm->priv_queue);
|
|
|
|
- pm->priv_queue->sync_with_hw(pm->priv_queue, KFD_HIQ_TIMEOUT);
|
|
|
|
|
|
+ pm->priv_queue->ops.submit_packet(pm->priv_queue);
|
|
|
|
+ pm->priv_queue->ops.sync_with_hw(pm->priv_queue, KFD_HIQ_TIMEOUT);
|
|
|
|
|
|
mutex_unlock(&pm->lock);
|
|
mutex_unlock(&pm->lock);
|
|
|
|
|
|
@@ -402,7 +402,7 @@ int pm_send_runlist(struct packet_manager *pm, struct list_head *dqm_queues)
|
|
packet_size_dwords = sizeof(struct pm4_runlist) / sizeof(uint32_t);
|
|
packet_size_dwords = sizeof(struct pm4_runlist) / sizeof(uint32_t);
|
|
mutex_lock(&pm->lock);
|
|
mutex_lock(&pm->lock);
|
|
|
|
|
|
- retval = pm->priv_queue->acquire_packet_buffer(pm->priv_queue,
|
|
|
|
|
|
+ retval = pm->priv_queue->ops.acquire_packet_buffer(pm->priv_queue,
|
|
packet_size_dwords, &rl_buffer);
|
|
packet_size_dwords, &rl_buffer);
|
|
if (retval != 0)
|
|
if (retval != 0)
|
|
goto fail_acquire_packet_buffer;
|
|
goto fail_acquire_packet_buffer;
|
|
@@ -412,15 +412,15 @@ int pm_send_runlist(struct packet_manager *pm, struct list_head *dqm_queues)
|
|
if (retval != 0)
|
|
if (retval != 0)
|
|
goto fail_create_runlist;
|
|
goto fail_create_runlist;
|
|
|
|
|
|
- pm->priv_queue->submit_packet(pm->priv_queue);
|
|
|
|
- pm->priv_queue->sync_with_hw(pm->priv_queue, KFD_HIQ_TIMEOUT);
|
|
|
|
|
|
+ pm->priv_queue->ops.submit_packet(pm->priv_queue);
|
|
|
|
+ pm->priv_queue->ops.sync_with_hw(pm->priv_queue, KFD_HIQ_TIMEOUT);
|
|
|
|
|
|
mutex_unlock(&pm->lock);
|
|
mutex_unlock(&pm->lock);
|
|
|
|
|
|
return retval;
|
|
return retval;
|
|
|
|
|
|
fail_create_runlist:
|
|
fail_create_runlist:
|
|
- pm->priv_queue->rollback_packet(pm->priv_queue);
|
|
|
|
|
|
+ pm->priv_queue->ops.rollback_packet(pm->priv_queue);
|
|
fail_acquire_packet_buffer:
|
|
fail_acquire_packet_buffer:
|
|
mutex_unlock(&pm->lock);
|
|
mutex_unlock(&pm->lock);
|
|
fail_create_runlist_ib:
|
|
fail_create_runlist_ib:
|
|
@@ -438,7 +438,7 @@ int pm_send_query_status(struct packet_manager *pm, uint64_t fence_address,
|
|
BUG_ON(!pm || !fence_address);
|
|
BUG_ON(!pm || !fence_address);
|
|
|
|
|
|
mutex_lock(&pm->lock);
|
|
mutex_lock(&pm->lock);
|
|
- retval = pm->priv_queue->acquire_packet_buffer(
|
|
|
|
|
|
+ retval = pm->priv_queue->ops.acquire_packet_buffer(
|
|
pm->priv_queue,
|
|
pm->priv_queue,
|
|
sizeof(struct pm4_query_status) / sizeof(uint32_t),
|
|
sizeof(struct pm4_query_status) / sizeof(uint32_t),
|
|
(unsigned int **)&packet);
|
|
(unsigned int **)&packet);
|
|
@@ -459,8 +459,8 @@ int pm_send_query_status(struct packet_manager *pm, uint64_t fence_address,
|
|
packet->data_hi = upper_32_bits((uint64_t)fence_value);
|
|
packet->data_hi = upper_32_bits((uint64_t)fence_value);
|
|
packet->data_lo = lower_32_bits((uint64_t)fence_value);
|
|
packet->data_lo = lower_32_bits((uint64_t)fence_value);
|
|
|
|
|
|
- pm->priv_queue->submit_packet(pm->priv_queue);
|
|
|
|
- pm->priv_queue->sync_with_hw(pm->priv_queue, KFD_HIQ_TIMEOUT);
|
|
|
|
|
|
+ pm->priv_queue->ops.submit_packet(pm->priv_queue);
|
|
|
|
+ pm->priv_queue->ops.sync_with_hw(pm->priv_queue, KFD_HIQ_TIMEOUT);
|
|
mutex_unlock(&pm->lock);
|
|
mutex_unlock(&pm->lock);
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
@@ -482,7 +482,7 @@ int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type,
|
|
BUG_ON(!pm);
|
|
BUG_ON(!pm);
|
|
|
|
|
|
mutex_lock(&pm->lock);
|
|
mutex_lock(&pm->lock);
|
|
- retval = pm->priv_queue->acquire_packet_buffer(
|
|
|
|
|
|
+ retval = pm->priv_queue->ops.acquire_packet_buffer(
|
|
pm->priv_queue,
|
|
pm->priv_queue,
|
|
sizeof(struct pm4_unmap_queues) / sizeof(uint32_t),
|
|
sizeof(struct pm4_unmap_queues) / sizeof(uint32_t),
|
|
&buffer);
|
|
&buffer);
|
|
@@ -537,8 +537,8 @@ int pm_send_unmap_queue(struct packet_manager *pm, enum kfd_queue_type type,
|
|
break;
|
|
break;
|
|
};
|
|
};
|
|
|
|
|
|
- pm->priv_queue->submit_packet(pm->priv_queue);
|
|
|
|
- pm->priv_queue->sync_with_hw(pm->priv_queue, KFD_HIQ_TIMEOUT);
|
|
|
|
|
|
+ pm->priv_queue->ops.submit_packet(pm->priv_queue);
|
|
|
|
+ pm->priv_queue->ops.sync_with_hw(pm->priv_queue, KFD_HIQ_TIMEOUT);
|
|
|
|
|
|
mutex_unlock(&pm->lock);
|
|
mutex_unlock(&pm->lock);
|
|
return 0;
|
|
return 0;
|