Re: [PATCH] drm/radeon: fix a semaphore deadlock on pre cayman asics

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2012/3/7 Christian König <deathsimple@xxxxxxxxxxx>:
> The out of order execution of semaphore commands on
> pre cayman asics doesn't work correctly and can
> cause deadlocks, so turn it off for now.
>
> Signed-off-by: Christian König <deathsimple@xxxxxxxxxxx>

Good catch.

Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx>

> ---
>  drivers/gpu/drm/radeon/r600.c  |    3 +++
>  drivers/gpu/drm/radeon/r600d.h |    1 +
>  2 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
> index 8a6d68c..f0b3323 100644
> --- a/drivers/gpu/drm/radeon/r600.c
> +++ b/drivers/gpu/drm/radeon/r600.c
> @@ -2362,6 +2362,9 @@ void r600_semaphore_ring_emit(struct radeon_device *rdev,
>        uint64_t addr = semaphore->gpu_addr;
>        unsigned sel = emit_wait ? PACKET3_SEM_SEL_WAIT : PACKET3_SEM_SEL_SIGNAL;
>
> +       if (rdev->family < CHIP_CAYMAN)
> +               sel |= PACKET3_SEM_WAIT_ON_SIGNAL;
> +
>        radeon_ring_write(ring, PACKET3(PACKET3_MEM_SEMAPHORE, 1));
>        radeon_ring_write(ring, addr & 0xffffffff);
>        radeon_ring_write(ring, (upper_32_bits(addr) & 0xff) | sel);
> diff --git a/drivers/gpu/drm/radeon/r600d.h b/drivers/gpu/drm/radeon/r600d.h
> index 2ba460b..8ae328f 100644
> --- a/drivers/gpu/drm/radeon/r600d.h
> +++ b/drivers/gpu/drm/radeon/r600d.h
> @@ -850,6 +850,7 @@
>  #define        PACKET3_STRMOUT_BUFFER_UPDATE                   0x34
>  #define        PACKET3_INDIRECT_BUFFER_MP                      0x38
>  #define        PACKET3_MEM_SEMAPHORE                           0x39
> +#              define PACKET3_SEM_WAIT_ON_SIGNAL    (0x1 << 12)
>  #              define PACKET3_SEM_SEL_SIGNAL       (0x6 << 29)
>  #              define PACKET3_SEM_SEL_WAIT         (0x7 << 29)
>  #define        PACKET3_MPEG_INDEX                              0x3A
> --
> 1.7.5.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux