On Mon, Oct 12, 2015 at 02:39:42PM +0200, Hans Verkuil wrote:
On 10/12/2015 02:33 PM, Kamil Debski wrote:
The possible status values that are implemented in the CEC framework are following:
+/* cec status field */ +#define CEC_TX_STATUS_OK (0) +#define CEC_TX_STATUS_ARB_LOST (1 << 0) +#define CEC_TX_STATUS_RETRY_TIMEOUT (1 << 1) +#define CEC_TX_STATUS_FEATURE_ABORT (1 << 2) +#define CEC_TX_STATUS_REPLY_TIMEOUT (1 << 3) +#define CEC_RX_STATUS_READY (0)
The only two ones I could match with the Exynos CEC module status bits are CEC_TX_STATUS_OK and CEC_TX_STATUS_RETRY_TIMEOUT.
The status bits in Exynos HW are:
Tx_Error
Tx_Done
Tx_Transferring
Tx_Running
Tx_Bytes_Transferred
Tx_Wait
Tx_Sending_Status_Bit
Tx_Sending_Hdr_Blk
Tx_Sending_Data_Blk
Tx_Latest_Initiator
Tx_Wait_SFT_Succ
Tx_Wait_SFT_New
Tx_Wait_SFT_Retran
Tx_Retrans_Cnt
Tx_ACK_Failed
So are these all intermediate states? And every transfer always ends with Tx_Done or Tx_Error state?
It does look that way...
For the Synopsis DW CEC, I have:
Bit Field Description 4 ERROR_INIT An error is detected on cec line (for initiator only). 3 ARB_LOST The initiator losses the CEC line arbitration to a second initiator. (specification CEC 9). 2 NACK A frame is not acknowledged in a directly addressed message. Or a frame is negatively acknowledged in a broadcast message (for initiator only). 0 DONE The current transmission is successful (for initiator only).
That's about as much of a description that there is for this hardware. Quite what comprises an "ERROR_INIT", I don't know.