ASoC: q6asm: add command opcode to timeout error report
[linux-2.6-microblaze.git] / sound / soc / qcom / qdsp6 / q6asm.c
index 0e0e8f7..e098397 100644 (file)
@@ -25,6 +25,7 @@
 #define ASM_STREAM_CMD_FLUSH                   0x00010BCE
 #define ASM_SESSION_CMD_PAUSE                  0x00010BD3
 #define ASM_DATA_CMD_EOS                       0x00010BDB
+#define ASM_DATA_EVENT_RENDERED_EOS            0x00010C1C
 #define ASM_NULL_POPP_TOPOLOGY                 0x00010C68
 #define ASM_STREAM_CMD_FLUSH_READBUFS          0x00010C09
 #define ASM_STREAM_CMD_SET_ENCDEC_PARAM                0x00010C10
@@ -310,7 +311,7 @@ static int q6asm_apr_send_session_pkt(struct q6asm *a, struct audio_client *ac,
                                        5 * HZ);
 
        if (!rc) {
-               dev_err(a->dev, "CMD timeout\n");
+               dev_err(a->dev, "CMD %x timeout\n", hdr->opcode);
                rc = -ETIMEDOUT;
        } else if (ac->result.status > 0) {
                dev_err(a->dev, "DSP returned error[%x]\n",
@@ -622,9 +623,6 @@ static int32_t q6asm_stream_callback(struct apr_device *adev,
                case ASM_SESSION_CMD_SUSPEND:
                        client_event = ASM_CLIENT_EVENT_CMD_SUSPEND_DONE;
                        break;
-               case ASM_DATA_CMD_EOS:
-                       client_event = ASM_CLIENT_EVENT_CMD_EOS_DONE;
-                       break;
                case ASM_STREAM_CMD_FLUSH:
                        client_event = ASM_CLIENT_EVENT_CMD_FLUSH_DONE;
                        break;
@@ -727,6 +725,9 @@ static int32_t q6asm_stream_callback(struct apr_device *adev,
                        spin_unlock_irqrestore(&ac->lock, flags);
                }
 
+               break;
+       case ASM_DATA_EVENT_RENDERED_EOS:
+               client_event = ASM_CLIENT_EVENT_CMD_EOS_DONE;
                break;
        }
 
@@ -890,7 +891,7 @@ static int q6asm_ac_send_cmd_sync(struct audio_client *ac, struct apr_pkt *pkt)
        rc = wait_event_timeout(ac->cmd_wait,
                                (ac->result.opcode == hdr->opcode), 5 * HZ);
        if (!rc) {
-               dev_err(ac->dev, "CMD timeout\n");
+               dev_err(ac->dev, "CMD %x timeout\n", hdr->opcode);
                rc =  -ETIMEDOUT;
                goto err;
        }