Commit 5cd78de5 authored by Oded Gabbay's avatar Oded Gabbay

amdkfd: add __iomem attribute to doorbell_ptr

This patch was done due to sparse warning. It changes the definition of
doorbell_ptr in queue_properties to be with __iomem attribute, so it would
match the type which the doorbell module functions are returning.
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarOded Gabbay <oded.gabbay@amd.com>
parent d80d19bd
...@@ -66,8 +66,7 @@ static bool initialize(struct kernel_queue *kq, struct kfd_dev *dev, ...@@ -66,8 +66,7 @@ static bool initialize(struct kernel_queue *kq, struct kfd_dev *dev,
if (kq->mqd == NULL) if (kq->mqd == NULL)
return false; return false;
prop.doorbell_ptr = prop.doorbell_ptr = kfd_get_kernel_doorbell(dev, &prop.doorbell_off);
(uint32_t *)kfd_get_kernel_doorbell(dev, &prop.doorbell_off);
if (prop.doorbell_ptr == NULL) if (prop.doorbell_ptr == NULL)
goto err_get_kernel_doorbell; goto err_get_kernel_doorbell;
...@@ -172,7 +171,7 @@ static bool initialize(struct kernel_queue *kq, struct kfd_dev *dev, ...@@ -172,7 +171,7 @@ static bool initialize(struct kernel_queue *kq, struct kfd_dev *dev,
kfd2kgd->free_mem(dev->kgd, (struct kgd_mem *) kq->pq); kfd2kgd->free_mem(dev->kgd, (struct kgd_mem *) kq->pq);
err_pq_allocate_vidmem: err_pq_allocate_vidmem:
pr_err("kfd: error init pq\n"); pr_err("kfd: error init pq\n");
kfd_release_kernel_doorbell(dev, (u32 *)prop.doorbell_ptr); kfd_release_kernel_doorbell(dev, prop.doorbell_ptr);
err_get_kernel_doorbell: err_get_kernel_doorbell:
pr_err("kfd: error init doorbell"); pr_err("kfd: error init doorbell");
return false; return false;
...@@ -195,7 +194,7 @@ static void uninitialize(struct kernel_queue *kq) ...@@ -195,7 +194,7 @@ static void uninitialize(struct kernel_queue *kq)
kfd2kgd->free_mem(kq->dev->kgd, (struct kgd_mem *) kq->wptr_mem); kfd2kgd->free_mem(kq->dev->kgd, (struct kgd_mem *) kq->wptr_mem);
kfd2kgd->free_mem(kq->dev->kgd, (struct kgd_mem *) kq->pq); kfd2kgd->free_mem(kq->dev->kgd, (struct kgd_mem *) kq->pq);
kfd_release_kernel_doorbell(kq->dev, kfd_release_kernel_doorbell(kq->dev,
(u32 *)kq->queue->properties.doorbell_ptr); kq->queue->properties.doorbell_ptr);
uninit_queue(kq->queue); uninit_queue(kq->queue);
} }
...@@ -255,7 +254,7 @@ static void submit_packet(struct kernel_queue *kq) ...@@ -255,7 +254,7 @@ static void submit_packet(struct kernel_queue *kq)
#endif #endif
*kq->wptr_kernel = kq->pending_wptr; *kq->wptr_kernel = kq->pending_wptr;
write_kernel_doorbell((u32 *)kq->queue->properties.doorbell_ptr, write_kernel_doorbell(kq->queue->properties.doorbell_ptr,
kq->pending_wptr); kq->pending_wptr);
} }
......
...@@ -279,7 +279,7 @@ struct queue_properties { ...@@ -279,7 +279,7 @@ struct queue_properties {
uint32_t queue_percent; uint32_t queue_percent;
uint32_t *read_ptr; uint32_t *read_ptr;
uint32_t *write_ptr; uint32_t *write_ptr;
uint32_t *doorbell_ptr; uint32_t __iomem *doorbell_ptr;
uint32_t doorbell_off; uint32_t doorbell_off;
bool is_interop; bool is_interop;
bool is_active; bool is_active;
......
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