uvd failed to resume during suspend

Tom St Denis tom.stdenis at amd.com
Mon Oct 23 13:54:55 UTC 2017


On 23/10/17 09:27 AM, Tom St Denis wrote:
> Doing a suspend during playback results in the uvd not resuming when 
> waking up with drm-next as the kernel.

Trying with cg_mask=pg_mask=0 It hangs on decode start.  I've attached 
the readout of the ring which looks normal.

Initially I thought maybe it's a PG related issue with suspend/resume 
but since I can't reliably playback with PG/CG disabled I can't test 
this theory.

Tom
-------------- next part --------------

carrizo.uvd.rptr == 32
carrizo.uvd.wptr == 64
carrizo.uvd.drv_wptr == 64
carrizo.uvd.ring[   1] == 0x00000000    ... 
carrizo.uvd.ring[   2] == 0x00003c67    ... 
carrizo.uvd.ring[   3] == 0x005e6500    ... 
carrizo.uvd.ring[   4] == 0x00003c66    ... 
carrizo.uvd.ring[   5] == 0x00000000    ... 
carrizo.uvd.ring[   6] == 0x00003da2    ... 
carrizo.uvd.ring[   7] == 0x00000030    ... 
carrizo.uvd.ring[   8] == 0x00003dbd    ... 
carrizo.uvd.ring[   9] == 0x0000000d    ... 
carrizo.uvd.ring[  10] == 0x00003bc4    ... 
carrizo.uvd.ring[  11] == 0x00296560    ... 
carrizo.uvd.ring[  12] == 0x00003bc5    ... 
carrizo.uvd.ring[  13] == 0x000000f4    ... 
carrizo.uvd.ring[  14] == 0x00003bc3    ... 
carrizo.uvd.ring[  15] == 0x00000000    ... 
carrizo.uvd.ring[  16] == 0x00003bc4    ... 
carrizo.uvd.ring[  17] == 0x00000000    ... 
carrizo.uvd.ring[  18] == 0x00003bc5    ... 
carrizo.uvd.ring[  19] == 0x00000000    ... 
carrizo.uvd.ring[  20] == 0x00003bc3    ... 
carrizo.uvd.ring[  21] == 0x00000002    ... 
carrizo.uvd.ring[  22] == 0x00003bff    ... 
carrizo.uvd.ring[  23] == 0x00003bff    ... 
carrizo.uvd.ring[  24] == 0x00003bff    ... 
carrizo.uvd.ring[  25] == 0x00003bff    ... 
carrizo.uvd.ring[  26] == 0x00003bff    ... 
carrizo.uvd.ring[  27] == 0x00003bff    ... 
carrizo.uvd.ring[  28] == 0x00003bff    ... 
carrizo.uvd.ring[  29] == 0x00003bff    ... 
carrizo.uvd.ring[  30] == 0x00003bff    ... 
carrizo.uvd.ring[  31] == 0x00003bff    ... 
carrizo.uvd.ring[  32] == 0x00003da1    r.. PKT0, COUNT:1, BASE_INDEX:0x3da1
carrizo.uvd.ring[  33] == 0x00000000    ...    word (0): uvd6.mmUVD_LMI_RBC_IB_VMID(0x3da1) <= 0x0
carrizo.uvd.ring[  34] == 0x00003c67    ... PKT0, COUNT:1, BASE_INDEX:0x3c67
carrizo.uvd.ring[  35] == 0x005e9800    ...    word (0): uvd6.mmUVD_LMI_RBC_IB_64BIT_BAR_LOW(0x3c67) <= 0x5e9800
carrizo.uvd.ring[  36] == 0x00003c66    ... PKT0, COUNT:1, BASE_INDEX:0x3c66
carrizo.uvd.ring[  37] == 0x00000000    ...    word (0): uvd6.mmUVD_LMI_RBC_IB_64BIT_BAR_HIGH(0x3c66) <= 0x0
carrizo.uvd.ring[  38] == 0x00003da2    ... PKT0, COUNT:1, BASE_INDEX:0x3da2
carrizo.uvd.ring[  39] == 0x00000030    ...    word (0): uvd6.mmUVD_RBC_IB_SIZE(0x3da2) <= 0x30
carrizo.uvd.ring[  40] == 0x00003dbd    ... PKT0, COUNT:1, BASE_INDEX:0x3dbd
carrizo.uvd.ring[  41] == 0x0000000e    ...    word (0): uvd6.mmUVD_CONTEXT_ID(0x3dbd) <= 0xe
carrizo.uvd.ring[  42] == 0x00003bc4    ... PKT0, COUNT:1, BASE_INDEX:0x3bc4
carrizo.uvd.ring[  43] == 0x00296560    ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA0(0x3bc4) <= 0x296560
carrizo.uvd.ring[  44] == 0x00003bc5    ... PKT0, COUNT:1, BASE_INDEX:0x3bc5
carrizo.uvd.ring[  45] == 0x000000f4    ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA1(0x3bc5) <= 0xf4
carrizo.uvd.ring[  46] == 0x00003bc3    ... PKT0, COUNT:1, BASE_INDEX:0x3bc3
carrizo.uvd.ring[  47] == 0x00000000    ...    word (0): uvd6.mmUVD_GPCOM_VCPU_CMD(0x3bc3) <= 0x0
carrizo.uvd.ring[  48] == 0x00003bc4    ... PKT0, COUNT:1, BASE_INDEX:0x3bc4
carrizo.uvd.ring[  49] == 0x00000000    ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA0(0x3bc4) <= 0x0
carrizo.uvd.ring[  50] == 0x00003bc5    ... PKT0, COUNT:1, BASE_INDEX:0x3bc5
carrizo.uvd.ring[  51] == 0x00000000    ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA1(0x3bc5) <= 0x0
carrizo.uvd.ring[  52] == 0x00003bc3    ... PKT0, COUNT:1, BASE_INDEX:0x3bc3
carrizo.uvd.ring[  53] == 0x00000002    ...    word (0): uvd6.mmUVD_GPCOM_VCPU_CMD(0x3bc3) <= 0x2
carrizo.uvd.ring[  54] == 0x00003bff    ... PKT0, COUNT:1, BASE_INDEX:0x3bff
carrizo.uvd.ring[  55] == 0x00003bff    ...    word (0): uvd6.mmUVD_NO_OP(0x3bff) <= 0x3bff
carrizo.uvd.ring[  56] == 0x00003bff    ... PKT0, COUNT:1, BASE_INDEX:0x3bff
carrizo.uvd.ring[  57] == 0x00003bff    ...    word (0): uvd6.mmUVD_NO_OP(0x3bff) <= 0x3bff
carrizo.uvd.ring[  58] == 0x00003bff    ... PKT0, COUNT:1, BASE_INDEX:0x3bff
carrizo.uvd.ring[  59] == 0x00003bff    ...    word (0): uvd6.mmUVD_NO_OP(0x3bff) <= 0x3bff
carrizo.uvd.ring[  60] == 0x00003bff    ... PKT0, COUNT:1, BASE_INDEX:0x3bff
carrizo.uvd.ring[  61] == 0x00003bff    ...    word (0): uvd6.mmUVD_NO_OP(0x3bff) <= 0x3bff
carrizo.uvd.ring[  62] == 0x00003bff    ... PKT0, COUNT:1, BASE_INDEX:0x3bff
carrizo.uvd.ring[  63] == 0x00003bff    ...    word (0): uvd6.mmUVD_NO_OP(0x3bff) <= 0x3bff
carrizo.uvd.ring[  64] == 0x00003da1    .wD PKT0, COUNT:1, BASE_INDEX:0x3da1

Dumping IB at (gfxhub) VMID:0 0x5e9800 of 48 words
IB[    0] = 0x00003bc4 ... PKT0, COUNT:1, BASE_INDEX:0x3bc4
IB[    1] = 0x00eee000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA0(0x3bc4) <= 0xeee000
IB[    2] = 0x00003bc5 ... PKT0, COUNT:1, BASE_INDEX:0x3bc5
IB[    3] = 0x00000000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA1(0x3bc5) <= 0x0
IB[    4] = 0x00003bc3 ... PKT0, COUNT:1, BASE_INDEX:0x3bc3
IB[    5] = 0x00000000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_CMD(0x3bc3) <= 0x0
IB[    6] = 0x00003bc4 ... PKT0, COUNT:1, BASE_INDEX:0x3bc4
IB[    7] = 0x11133000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA0(0x3bc4) <= 0x11133000
IB[    8] = 0x00003bc5 ... PKT0, COUNT:1, BASE_INDEX:0x3bc5
IB[    9] = 0x000000f4 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA1(0x3bc5) <= 0xf4
IB[   10] = 0x00003bc3 ... PKT0, COUNT:1, BASE_INDEX:0x3bc3
IB[   11] = 0x00000002 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_CMD(0x3bc3) <= 0x2
IB[   12] = 0x00003bc4 ... PKT0, COUNT:1, BASE_INDEX:0x3bc4
IB[   13] = 0x10e3d000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA0(0x3bc4) <= 0x10e3d000
IB[   14] = 0x00003bc5 ... PKT0, COUNT:1, BASE_INDEX:0x3bc5
IB[   15] = 0x000000f4 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA1(0x3bc5) <= 0xf4
IB[   16] = 0x00003bc3 ... PKT0, COUNT:1, BASE_INDEX:0x3bc3
IB[   17] = 0x0000040c ...    word (0): uvd6.mmUVD_GPCOM_VCPU_CMD(0x3bc3) <= 0x40c
IB[   18] = 0x00003bc4 ... PKT0, COUNT:1, BASE_INDEX:0x3bc4
IB[   19] = 0x00ef0000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA0(0x3bc4) <= 0xef0000
IB[   20] = 0x00003bc5 ... PKT0, COUNT:1, BASE_INDEX:0x3bc5
IB[   21] = 0x00000000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA1(0x3bc5) <= 0x0
IB[   22] = 0x00003bc3 ... PKT0, COUNT:1, BASE_INDEX:0x3bc3
IB[   23] = 0x00000200 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_CMD(0x3bc3) <= 0x200
IB[   24] = 0x00003bc4 ... PKT0, COUNT:1, BASE_INDEX:0x3bc4
IB[   25] = 0x0e400000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA0(0x3bc4) <= 0xe400000
IB[   26] = 0x00003bc5 ... PKT0, COUNT:1, BASE_INDEX:0x3bc5
IB[   27] = 0x000000f4 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA1(0x3bc5) <= 0xf4
IB[   28] = 0x00003bc3 ... PKT0, COUNT:1, BASE_INDEX:0x3bc3
IB[   29] = 0x00000004 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_CMD(0x3bc3) <= 0x4
IB[   30] = 0x00003bc4 ... PKT0, COUNT:1, BASE_INDEX:0x3bc4
IB[   31] = 0x00eef000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA0(0x3bc4) <= 0xeef000
IB[   32] = 0x00003bc5 ... PKT0, COUNT:1, BASE_INDEX:0x3bc5
IB[   33] = 0x00000000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA1(0x3bc5) <= 0x0
IB[   34] = 0x00003bc3 ... PKT0, COUNT:1, BASE_INDEX:0x3bc3
IB[   35] = 0x00000006 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_CMD(0x3bc3) <= 0x6
IB[   36] = 0x00003bc4 ... PKT0, COUNT:1, BASE_INDEX:0x3bc4
IB[   37] = 0x00eef800 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA0(0x3bc4) <= 0xeef800
IB[   38] = 0x00003bc5 ... PKT0, COUNT:1, BASE_INDEX:0x3bc5
IB[   39] = 0x00000000 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_DATA1(0x3bc5) <= 0x0
IB[   40] = 0x00003bc3 ... PKT0, COUNT:1, BASE_INDEX:0x3bc3
IB[   41] = 0x00000408 ...    word (0): uvd6.mmUVD_GPCOM_VCPU_CMD(0x3bc3) <= 0x408
IB[   42] = 0x00003bc6 ... PKT0, COUNT:1, BASE_INDEX:0x3bc6
IB[   43] = 0x00000001 ...    word (0): uvd6.mmUVD_ENGINE_CNTL(0x3bc6) <= 0x1
IB[   44] = 0x80000000 ... PKT2
IB[   45] = 0x80000000 ... PKT2
IB[   46] = 0x80000000 ... PKT2
IB[   47] = 0x80000000 ... PKT2



More information about the amd-gfx mailing list