drm/amdgpu: add amdgpu <--> amdkfd gfx7 interface
Oded Gabbay
oded.gabbay at gmail.com
Wed Jul 29 00:31:08 PDT 2015
On Tue, Jul 28, 2015 at 6:56 PM, Dan Carpenter <dan.carpenter at oracle.com>
wrote:
> Hello Oded Gabbay,
>
> The patch 32c22e994f44: "drm/amdgpu: add amdgpu <--> amdkfd gfx7
> interface" from Jun 12, 2015, leads to the following static checker
> warning:
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c:453
> kgd_hqd_destroy()
> warn: bitwise AND condition is false here
>
> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c
> 439 static int kgd_hqd_destroy(struct kgd_dev *kgd, uint32_t
> reset_type,
> 440 unsigned int timeout, uint32_t
> pipe_id,
> 441 uint32_t queue_id)
> 442 {
> 443 struct amdgpu_device *adev = get_amdgpu_device(kgd);
> 444 uint32_t temp;
> 445
> 446 acquire_queue(kgd, pipe_id, queue_id);
> 447 WREG32(mmCP_HQD_PQ_DOORBELL_CONTROL, 0);
> 448
> 449 WREG32(mmCP_HQD_DEQUEUE_REQUEST, reset_type);
> 450
> 451 while (true) {
> 452 temp = RREG32(mmCP_HQD_ACTIVE);
> 453 if (temp & CP_HQD_ACTIVE__ACTIVE__SHIFT)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Never true. ANDing against a shift is weird. A zero shift is sort of
> pointless, also.
>
> 454 break;
> 455 if (timeout == 0) {
> 456 pr_err("kfd: cp queue preemption time out
> (%dms)\n",
> 457 temp);
> 458 release_queue(kgd);
> 459 return -ETIME;
> 460 }
> 461 msleep(20);
> 462 timeout -= 20;
> 463 }
> 464
> 465 release_queue(kgd);
> 466 return 0;
> 467 }
>
> regards,
> dan carpenter
>
Dan, thanks for catching that!
Will send a fix shortly.
Oded
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20150729/a75626ab/attachment-0001.html>
More information about the dri-devel
mailing list